Browse Source
[t:4413] merge old dev branch into new
[t:4413] merge old dev branch into new
git-svn-id: file:///svn/toku/tokudb.4413c/xz-4.999.9beta@42460 c7de825b-a66e-492c-adef-691d508d4ae1pull/56/head
392 changed files with 111578 additions and 0 deletions
-
1101third_party/xz-4.999.9beta/ABOUT-NLS
-
27third_party/xz-4.999.9beta/AUTHORS
-
65third_party/xz-4.999.9beta/COPYING
-
339third_party/xz-4.999.9beta/COPYING.GPLv2
-
674third_party/xz-4.999.9beta/COPYING.GPLv3
-
504third_party/xz-4.999.9beta/COPYING.LGPLv2.1
-
7041third_party/xz-4.999.9beta/ChangeLog
-
1234third_party/xz-4.999.9beta/Doxyfile.in
-
339third_party/xz-4.999.9beta/INSTALL
-
302third_party/xz-4.999.9beta/INSTALL.generic
-
80third_party/xz-4.999.9beta/Makefile.am
-
887third_party/xz-4.999.9beta/Makefile.in
-
0third_party/xz-4.999.9beta/NEWS
-
279third_party/xz-4.999.9beta/PACKAGERS
-
217third_party/xz-4.999.9beta/README
-
47third_party/xz-4.999.9beta/THANKS
-
56third_party/xz-4.999.9beta/TODO
-
1027third_party/xz-4.999.9beta/aclocal.m4
-
22third_party/xz-4.999.9beta/autogen.sh
-
143third_party/xz-4.999.9beta/build-aux/compile
-
1561third_party/xz-4.999.9beta/build-aux/config.guess
-
614third_party/xz-4.999.9beta/build-aux/config.rpath
-
1686third_party/xz-4.999.9beta/build-aux/config.sub
-
630third_party/xz-4.999.9beta/build-aux/depcomp
-
520third_party/xz-4.999.9beta/build-aux/install-sh
-
8406third_party/xz-4.999.9beta/build-aux/ltmain.sh
-
376third_party/xz-4.999.9beta/build-aux/missing
-
404third_party/xz-4.999.9beta/config.h.in
-
19363third_party/xz-4.999.9beta/configure
-
706third_party/xz-4.999.9beta/configure.ac
-
30third_party/xz-4.999.9beta/debug/Makefile.am
-
580third_party/xz-4.999.9beta/debug/Makefile.in
-
17third_party/xz-4.999.9beta/debug/README
-
38third_party/xz-4.999.9beta/debug/crc32.c
-
102third_party/xz-4.999.9beta/debug/full_flush.c
-
53third_party/xz-4.999.9beta/debug/hex2bin.c
-
129third_party/xz-4.999.9beta/debug/known_sizes.c
-
49third_party/xz-4.999.9beta/debug/memusage.c
-
36third_party/xz-4.999.9beta/debug/repeat.c
-
133third_party/xz-4.999.9beta/debug/sync_flush.c
-
122third_party/xz-4.999.9beta/doc/faq.txt
-
149third_party/xz-4.999.9beta/doc/history.txt
-
166third_party/xz-4.999.9beta/doc/lzma-file-format.txt
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-a4/xz-a4.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-a4/xzdec-a4.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-a4/xzdiff-a4.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-a4/xzgrep-a4.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-a4/xzless-a4.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-a4/xzmore-a4.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-letter/xz-letter.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-letter/xzdec-letter.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-letter/xzdiff-letter.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-letter/xzgrep-letter.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-letter/xzless-letter.pdf
-
BINthird_party/xz-4.999.9beta/doc/man/pdf-letter/xzmore-letter.pdf
-
786third_party/xz-4.999.9beta/doc/man/txt/xz.txt
-
95third_party/xz-4.999.9beta/doc/man/txt/xzdec.txt
-
36third_party/xz-4.999.9beta/doc/man/txt/xzdiff.txt
-
39third_party/xz-4.999.9beta/doc/man/txt/xzgrep.txt
-
40third_party/xz-4.999.9beta/doc/man/txt/xzless.txt
-
34third_party/xz-4.999.9beta/doc/man/txt/xzmore.txt
-
1150third_party/xz-4.999.9beta/doc/xz-file-format.txt
-
255third_party/xz-4.999.9beta/dos/Makefile
-
113third_party/xz-4.999.9beta/dos/README
-
150third_party/xz-4.999.9beta/dos/config.h
-
115third_party/xz-4.999.9beta/extra/7z2lzma/7z2lzma.bash
-
84third_party/xz-4.999.9beta/extra/scanlzma/scanlzma.c
-
32third_party/xz-4.999.9beta/lib/Makefile.am
-
525third_party/xz-4.999.9beta/lib/Makefile.in
-
1197third_party/xz-4.999.9beta/lib/getopt.c
-
226third_party/xz-4.999.9beta/lib/getopt.in.h
-
171third_party/xz-4.999.9beta/lib/getopt1.c
-
131third_party/xz-4.999.9beta/lib/getopt_int.h
-
279third_party/xz-4.999.9beta/m4/acx_pthread.m4
-
71third_party/xz-4.999.9beta/m4/getopt.m4
-
419third_party/xz-4.999.9beta/m4/gettext.m4
-
101third_party/xz-4.999.9beta/m4/iconv.m4
-
57third_party/xz-4.999.9beta/m4/lc_cpucores.m4
-
84third_party/xz-4.999.9beta/m4/lc_physmem.m4
-
110third_party/xz-4.999.9beta/m4/lib-ld.m4
-
644third_party/xz-4.999.9beta/m4/lib-link.m4
-
185third_party/xz-4.999.9beta/m4/lib-prefix.m4
-
7357third_party/xz-4.999.9beta/m4/libtool.m4
-
368third_party/xz-4.999.9beta/m4/ltoptions.m4
-
123third_party/xz-4.999.9beta/m4/ltsugar.m4
-
23third_party/xz-4.999.9beta/m4/ltversion.m4
-
92third_party/xz-4.999.9beta/m4/lt~obsolete.m4
-
31third_party/xz-4.999.9beta/m4/nls.m4
-
428third_party/xz-4.999.9beta/m4/po.m4
-
63third_party/xz-4.999.9beta/m4/posix-shell.m4
-
92third_party/xz-4.999.9beta/m4/progtest.m4
-
52third_party/xz-4.999.9beta/m4/visibility.m4
-
0third_party/xz-4.999.9beta/po/LINGUAS
-
403third_party/xz-4.999.9beta/po/Makefile.in.in
-
46third_party/xz-4.999.9beta/po/Makevars
-
10third_party/xz-4.999.9beta/po/POTFILES.in
-
47third_party/xz-4.999.9beta/po/Rules-quot
-
10third_party/xz-4.999.9beta/po/boldquot.sed
-
25third_party/xz-4.999.9beta/po/en@boldquot.header
-
22third_party/xz-4.999.9beta/po/en@quot.header
1101
third_party/xz-4.999.9beta/ABOUT-NLS
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,27 @@ |
|||
|
|||
Authors of XZ Utils |
|||
=================== |
|||
|
|||
XZ Utils is developed and maintained by Lasse Collin |
|||
<lasse.collin@tukaani.org>. |
|||
|
|||
Major parts of liblzma are based on code written by Igor Pavlov, |
|||
specifically the LZMA SDK <http://7-zip.org/sdk.html>. Without |
|||
this code, XZ Utils wouldn't exist. |
|||
|
|||
The SHA-256 implementation in liblzma is based on the code found from |
|||
7-Zip <http://7-zip.org/>, which has a modified version of the SHA-256 |
|||
code found from Crypto++ <http://www.cryptopp.com/>. The SHA-256 code |
|||
in Crypto++ was written by Kevin Springle and Wei Dai. |
|||
|
|||
Some scripts have been adapted from gzip. The original versions |
|||
were written by Jean-loup Gailly, Charles Levert, and Paul Eggert. |
|||
Andrew Dudman helped adapting the script and their man pages for |
|||
XZ Utils. |
|||
|
|||
The GNU Autotools based build system contains files from many authors, |
|||
which I'm not trying list here. |
|||
|
|||
Several people have contributed fixes or reported bugs. Most of them |
|||
are mentioned in the file THANKS. |
|||
|
@ -0,0 +1,65 @@ |
|||
|
|||
XZ Utils Licensing |
|||
================== |
|||
|
|||
Different licenses apply to different files in this package. Here |
|||
is a rough summary of which licenses apply to which parts of this |
|||
package (but check the individual files to be sure!): |
|||
|
|||
- liblzma is in the public domain. |
|||
|
|||
- xz, xzdec, and lzmadec command line tools are in the public |
|||
domain unless GNU getopt_long had to be compiled and linked |
|||
in from the lib directory. The getopt_long code is under |
|||
GNU LGPLv2.1+. |
|||
|
|||
- The scripts to grep, diff, and view compressed files have been |
|||
adapted from gzip. These scripts and their documentation are |
|||
under GNU GPLv2+. |
|||
|
|||
- All the documentation in the doc directory and most of the |
|||
XZ Utils specific documentation files in other directories |
|||
are in the public domain. |
|||
|
|||
- Translated messages are in the public domain. |
|||
|
|||
- The build system contains public domain files, and files that |
|||
are under GNU GPLv2+ or GNU GPLv3+. None of these files end up |
|||
in the binaries being built. |
|||
|
|||
- Test files and test code in the tests directory, and debugging |
|||
utilities in the debug directory are in the public domain. |
|||
|
|||
- The extra directory may contain public domain files, and files |
|||
that are under various free software licenses. |
|||
|
|||
You can do whatever you want with the files that have been put into |
|||
the public domain. If you find public domain legally problematic, |
|||
take the previous sentence as a license grant. If you still find |
|||
the lack of copyright legally problematic, you have too many |
|||
lawyers. |
|||
|
|||
As usual, this software is provided "as is", without any warranty. |
|||
|
|||
If you copy significant amounts of public domain code from XZ Utils |
|||
into your project, acknowledging this somewhere in your software is |
|||
polite (especially if it is proprietary, non-free software), but |
|||
naturally it is not legally required. Here is an example of a good |
|||
notice to put into "about box" or into documentation: |
|||
|
|||
This software includes code from XZ Utils <http://tukaani.org/xz/>. |
|||
|
|||
The following license texts are included in the following files: |
|||
- COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1 |
|||
- COPYING.GPLv2: GNU General Public License version 2 |
|||
- COPYING.GPLv3: GNU General Public License version 3 |
|||
|
|||
Note that the toolchain (compiler, linker etc.) may add some code |
|||
pieces that are copyrighted. Thus, it is possible that e.g. liblzma |
|||
binary wouldn't actually be in the public domain in its entirety |
|||
even though it contains no copyrighted code from the XZ Utils source |
|||
package. |
|||
|
|||
If you have questions, don't hesitate to ask the author(s) for more |
|||
information. |
|||
|
@ -0,0 +1,339 @@ |
|||
GNU GENERAL PUBLIC LICENSE |
|||
Version 2, June 1991 |
|||
|
|||
Copyright (C) 1989, 1991 Free Software Foundation, Inc., |
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|||
Everyone is permitted to copy and distribute verbatim copies |
|||
of this license document, but changing it is not allowed. |
|||
|
|||
Preamble |
|||
|
|||
The licenses for most software are designed to take away your |
|||
freedom to share and change it. By contrast, the GNU General Public |
|||
License is intended to guarantee your freedom to share and change free |
|||
software--to make sure the software is free for all its users. This |
|||
General Public License applies to most of the Free Software |
|||
Foundation's software and to any other program whose authors commit to |
|||
using it. (Some other Free Software Foundation software is covered by |
|||
the GNU Lesser General Public License instead.) You can apply it to |
|||
your programs, too. |
|||
|
|||
When we speak of free software, we are referring to freedom, not |
|||
price. Our General Public Licenses are designed to make sure that you |
|||
have the freedom to distribute copies of free software (and charge for |
|||
this service if you wish), that you receive source code or can get it |
|||
if you want it, that you can change the software or use pieces of it |
|||
in new free programs; and that you know you can do these things. |
|||
|
|||
To protect your rights, we need to make restrictions that forbid |
|||
anyone to deny you these rights or to ask you to surrender the rights. |
|||
These restrictions translate to certain responsibilities for you if you |
|||
distribute copies of the software, or if you modify it. |
|||
|
|||
For example, if you distribute copies of such a program, whether |
|||
gratis or for a fee, you must give the recipients all the rights that |
|||
you have. You must make sure that they, too, receive or can get the |
|||
source code. And you must show them these terms so they know their |
|||
rights. |
|||
|
|||
We protect your rights with two steps: (1) copyright the software, and |
|||
(2) offer you this license which gives you legal permission to copy, |
|||
distribute and/or modify the software. |
|||
|
|||
Also, for each author's protection and ours, we want to make certain |
|||
that everyone understands that there is no warranty for this free |
|||
software. If the software is modified by someone else and passed on, we |
|||
want its recipients to know that what they have is not the original, so |
|||
that any problems introduced by others will not reflect on the original |
|||
authors' reputations. |
|||
|
|||
Finally, any free program is threatened constantly by software |
|||
patents. We wish to avoid the danger that redistributors of a free |
|||
program will individually obtain patent licenses, in effect making the |
|||
program proprietary. To prevent this, we have made it clear that any |
|||
patent must be licensed for everyone's free use or not licensed at all. |
|||
|
|||
The precise terms and conditions for copying, distribution and |
|||
modification follow. |
|||
|
|||
GNU GENERAL PUBLIC LICENSE |
|||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|||
|
|||
0. This License applies to any program or other work which contains |
|||
a notice placed by the copyright holder saying it may be distributed |
|||
under the terms of this General Public License. The "Program", below, |
|||
refers to any such program or work, and a "work based on the Program" |
|||
means either the Program or any derivative work under copyright law: |
|||
that is to say, a work containing the Program or a portion of it, |
|||
either verbatim or with modifications and/or translated into another |
|||
language. (Hereinafter, translation is included without limitation in |
|||
the term "modification".) Each licensee is addressed as "you". |
|||
|
|||
Activities other than copying, distribution and modification are not |
|||
covered by this License; they are outside its scope. The act of |
|||
running the Program is not restricted, and the output from the Program |
|||
is covered only if its contents constitute a work based on the |
|||
Program (independent of having been made by running the Program). |
|||
Whether that is true depends on what the Program does. |
|||
|
|||
1. You may copy and distribute verbatim copies of the Program's |
|||
source code as you receive it, in any medium, provided that you |
|||
conspicuously and appropriately publish on each copy an appropriate |
|||
copyright notice and disclaimer of warranty; keep intact all the |
|||
notices that refer to this License and to the absence of any warranty; |
|||
and give any other recipients of the Program a copy of this License |
|||
along with the Program. |
|||
|
|||
You may charge a fee for the physical act of transferring a copy, and |
|||
you may at your option offer warranty protection in exchange for a fee. |
|||
|
|||
2. You may modify your copy or copies of the Program or any portion |
|||
of it, thus forming a work based on the Program, and copy and |
|||
distribute such modifications or work under the terms of Section 1 |
|||
above, provided that you also meet all of these conditions: |
|||
|
|||
a) You must cause the modified files to carry prominent notices |
|||
stating that you changed the files and the date of any change. |
|||
|
|||
b) You must cause any work that you distribute or publish, that in |
|||
whole or in part contains or is derived from the Program or any |
|||
part thereof, to be licensed as a whole at no charge to all third |
|||
parties under the terms of this License. |
|||
|
|||
c) If the modified program normally reads commands interactively |
|||
when run, you must cause it, when started running for such |
|||
interactive use in the most ordinary way, to print or display an |
|||
announcement including an appropriate copyright notice and a |
|||
notice that there is no warranty (or else, saying that you provide |
|||
a warranty) and that users may redistribute the program under |
|||
these conditions, and telling the user how to view a copy of this |
|||
License. (Exception: if the Program itself is interactive but |
|||
does not normally print such an announcement, your work based on |
|||
the Program is not required to print an announcement.) |
|||
|
|||
These requirements apply to the modified work as a whole. If |
|||
identifiable sections of that work are not derived from the Program, |
|||
and can be reasonably considered independent and separate works in |
|||
themselves, then this License, and its terms, do not apply to those |
|||
sections when you distribute them as separate works. But when you |
|||
distribute the same sections as part of a whole which is a work based |
|||
on the Program, the distribution of the whole must be on the terms of |
|||
this License, whose permissions for other licensees extend to the |
|||
entire whole, and thus to each and every part regardless of who wrote it. |
|||
|
|||
Thus, it is not the intent of this section to claim rights or contest |
|||
your rights to work written entirely by you; rather, the intent is to |
|||
exercise the right to control the distribution of derivative or |
|||
collective works based on the Program. |
|||
|
|||
In addition, mere aggregation of another work not based on the Program |
|||
with the Program (or with a work based on the Program) on a volume of |
|||
a storage or distribution medium does not bring the other work under |
|||
the scope of this License. |
|||
|
|||
3. You may copy and distribute the Program (or a work based on it, |
|||
under Section 2) in object code or executable form under the terms of |
|||
Sections 1 and 2 above provided that you also do one of the following: |
|||
|
|||
a) Accompany it with the complete corresponding machine-readable |
|||
source code, which must be distributed under the terms of Sections |
|||
1 and 2 above on a medium customarily used for software interchange; or, |
|||
|
|||
b) Accompany it with a written offer, valid for at least three |
|||
years, to give any third party, for a charge no more than your |
|||
cost of physically performing source distribution, a complete |
|||
machine-readable copy of the corresponding source code, to be |
|||
distributed under the terms of Sections 1 and 2 above on a medium |
|||
customarily used for software interchange; or, |
|||
|
|||
c) Accompany it with the information you received as to the offer |
|||
to distribute corresponding source code. (This alternative is |
|||
allowed only for noncommercial distribution and only if you |
|||
received the program in object code or executable form with such |
|||
an offer, in accord with Subsection b above.) |
|||
|
|||
The source code for a work means the preferred form of the work for |
|||
making modifications to it. For an executable work, complete source |
|||
code means all the source code for all modules it contains, plus any |
|||
associated interface definition files, plus the scripts used to |
|||
control compilation and installation of the executable. However, as a |
|||
special exception, the source code distributed need not include |
|||
anything that is normally distributed (in either source or binary |
|||
form) with the major components (compiler, kernel, and so on) of the |
|||
operating system on which the executable runs, unless that component |
|||
itself accompanies the executable. |
|||
|
|||
If distribution of executable or object code is made by offering |
|||
access to copy from a designated place, then offering equivalent |
|||
access to copy the source code from the same place counts as |
|||
distribution of the source code, even though third parties are not |
|||
compelled to copy the source along with the object code. |
|||
|
|||
4. You may not copy, modify, sublicense, or distribute the Program |
|||
except as expressly provided under this License. Any attempt |
|||
otherwise to copy, modify, sublicense or distribute the Program is |
|||
void, and will automatically terminate your rights under this License. |
|||
However, parties who have received copies, or rights, from you under |
|||
this License will not have their licenses terminated so long as such |
|||
parties remain in full compliance. |
|||
|
|||
5. You are not required to accept this License, since you have not |
|||
signed it. However, nothing else grants you permission to modify or |
|||
distribute the Program or its derivative works. These actions are |
|||
prohibited by law if you do not accept this License. Therefore, by |
|||
modifying or distributing the Program (or any work based on the |
|||
Program), you indicate your acceptance of this License to do so, and |
|||
all its terms and conditions for copying, distributing or modifying |
|||
the Program or works based on it. |
|||
|
|||
6. Each time you redistribute the Program (or any work based on the |
|||
Program), the recipient automatically receives a license from the |
|||
original licensor to copy, distribute or modify the Program subject to |
|||
these terms and conditions. You may not impose any further |
|||
restrictions on the recipients' exercise of the rights granted herein. |
|||
You are not responsible for enforcing compliance by third parties to |
|||
this License. |
|||
|
|||
7. If, as a consequence of a court judgment or allegation of patent |
|||
infringement or for any other reason (not limited to patent issues), |
|||
conditions are imposed on you (whether by court order, agreement or |
|||
otherwise) that contradict the conditions of this License, they do not |
|||
excuse you from the conditions of this License. If you cannot |
|||
distribute so as to satisfy simultaneously your obligations under this |
|||
License and any other pertinent obligations, then as a consequence you |
|||
may not distribute the Program at all. For example, if a patent |
|||
license would not permit royalty-free redistribution of the Program by |
|||
all those who receive copies directly or indirectly through you, then |
|||
the only way you could satisfy both it and this License would be to |
|||
refrain entirely from distribution of the Program. |
|||
|
|||
If any portion of this section is held invalid or unenforceable under |
|||
any particular circumstance, the balance of the section is intended to |
|||
apply and the section as a whole is intended to apply in other |
|||
circumstances. |
|||
|
|||
It is not the purpose of this section to induce you to infringe any |
|||
patents or other property right claims or to contest validity of any |
|||
such claims; this section has the sole purpose of protecting the |
|||
integrity of the free software distribution system, which is |
|||
implemented by public license practices. Many people have made |
|||
generous contributions to the wide range of software distributed |
|||
through that system in reliance on consistent application of that |
|||
system; it is up to the author/donor to decide if he or she is willing |
|||
to distribute software through any other system and a licensee cannot |
|||
impose that choice. |
|||
|
|||
This section is intended to make thoroughly clear what is believed to |
|||
be a consequence of the rest of this License. |
|||
|
|||
8. If the distribution and/or use of the Program is restricted in |
|||
certain countries either by patents or by copyrighted interfaces, the |
|||
original copyright holder who places the Program under this License |
|||
may add an explicit geographical distribution limitation excluding |
|||
those countries, so that distribution is permitted only in or among |
|||
countries not thus excluded. In such case, this License incorporates |
|||
the limitation as if written in the body of this License. |
|||
|
|||
9. The Free Software Foundation may publish revised and/or new versions |
|||
of the General Public License from time to time. Such new versions will |
|||
be similar in spirit to the present version, but may differ in detail to |
|||
address new problems or concerns. |
|||
|
|||
Each version is given a distinguishing version number. If the Program |
|||
specifies a version number of this License which applies to it and "any |
|||
later version", you have the option of following the terms and conditions |
|||
either of that version or of any later version published by the Free |
|||
Software Foundation. If the Program does not specify a version number of |
|||
this License, you may choose any version ever published by the Free Software |
|||
Foundation. |
|||
|
|||
10. If you wish to incorporate parts of the Program into other free |
|||
programs whose distribution conditions are different, write to the author |
|||
to ask for permission. For software which is copyrighted by the Free |
|||
Software Foundation, write to the Free Software Foundation; we sometimes |
|||
make exceptions for this. Our decision will be guided by the two goals |
|||
of preserving the free status of all derivatives of our free software and |
|||
of promoting the sharing and reuse of software generally. |
|||
|
|||
NO WARRANTY |
|||
|
|||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
|||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
|||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
|||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
|||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
|||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
|||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
|||
REPAIR OR CORRECTION. |
|||
|
|||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
|||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
|||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
|||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
|||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
|||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
|||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
|||
POSSIBILITY OF SUCH DAMAGES. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
How to Apply These Terms to Your New Programs |
|||
|
|||
If you develop a new program, and you want it to be of the greatest |
|||
possible use to the public, the best way to achieve this is to make it |
|||
free software which everyone can redistribute and change under these terms. |
|||
|
|||
To do so, attach the following notices to the program. It is safest |
|||
to attach them to the start of each source file to most effectively |
|||
convey the exclusion of warranty; and each file should have at least |
|||
the "copyright" line and a pointer to where the full notice is found. |
|||
|
|||
<one line to give the program's name and a brief idea of what it does.> |
|||
Copyright (C) <year> <name of author> |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License along |
|||
with this program; if not, write to the Free Software Foundation, Inc., |
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
|||
|
|||
Also add information on how to contact you by electronic and paper mail. |
|||
|
|||
If the program is interactive, make it output a short notice like this |
|||
when it starts in an interactive mode: |
|||
|
|||
Gnomovision version 69, Copyright (C) year name of author |
|||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|||
This is free software, and you are welcome to redistribute it |
|||
under certain conditions; type `show c' for details. |
|||
|
|||
The hypothetical commands `show w' and `show c' should show the appropriate |
|||
parts of the General Public License. Of course, the commands you use may |
|||
be called something other than `show w' and `show c'; they could even be |
|||
mouse-clicks or menu items--whatever suits your program. |
|||
|
|||
You should also get your employer (if you work as a programmer) or your |
|||
school, if any, to sign a "copyright disclaimer" for the program, if |
|||
necessary. Here is a sample; alter the names: |
|||
|
|||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
|||
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
|||
|
|||
<signature of Ty Coon>, 1 April 1989 |
|||
Ty Coon, President of Vice |
|||
|
|||
This General Public License does not permit incorporating your program into |
|||
proprietary programs. If your program is a subroutine library, you may |
|||
consider it more useful to permit linking proprietary applications with the |
|||
library. If this is what you want to do, use the GNU Lesser General |
|||
Public License instead of this License. |
@ -0,0 +1,674 @@ |
|||
GNU GENERAL PUBLIC LICENSE |
|||
Version 3, 29 June 2007 |
|||
|
|||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |
|||
Everyone is permitted to copy and distribute verbatim copies |
|||
of this license document, but changing it is not allowed. |
|||
|
|||
Preamble |
|||
|
|||
The GNU General Public License is a free, copyleft license for |
|||
software and other kinds of works. |
|||
|
|||
The licenses for most software and other practical works are designed |
|||
to take away your freedom to share and change the works. By contrast, |
|||
the GNU General Public License is intended to guarantee your freedom to |
|||
share and change all versions of a program--to make sure it remains free |
|||
software for all its users. We, the Free Software Foundation, use the |
|||
GNU General Public License for most of our software; it applies also to |
|||
any other work released this way by its authors. You can apply it to |
|||
your programs, too. |
|||
|
|||
When we speak of free software, we are referring to freedom, not |
|||
price. Our General Public Licenses are designed to make sure that you |
|||
have the freedom to distribute copies of free software (and charge for |
|||
them if you wish), that you receive source code or can get it if you |
|||
want it, that you can change the software or use pieces of it in new |
|||
free programs, and that you know you can do these things. |
|||
|
|||
To protect your rights, we need to prevent others from denying you |
|||
these rights or asking you to surrender the rights. Therefore, you have |
|||
certain responsibilities if you distribute copies of the software, or if |
|||
you modify it: responsibilities to respect the freedom of others. |
|||
|
|||
For example, if you distribute copies of such a program, whether |
|||
gratis or for a fee, you must pass on to the recipients the same |
|||
freedoms that you received. You must make sure that they, too, receive |
|||
or can get the source code. And you must show them these terms so they |
|||
know their rights. |
|||
|
|||
Developers that use the GNU GPL protect your rights with two steps: |
|||
(1) assert copyright on the software, and (2) offer you this License |
|||
giving you legal permission to copy, distribute and/or modify it. |
|||
|
|||
For the developers' and authors' protection, the GPL clearly explains |
|||
that there is no warranty for this free software. For both users' and |
|||
authors' sake, the GPL requires that modified versions be marked as |
|||
changed, so that their problems will not be attributed erroneously to |
|||
authors of previous versions. |
|||
|
|||
Some devices are designed to deny users access to install or run |
|||
modified versions of the software inside them, although the manufacturer |
|||
can do so. This is fundamentally incompatible with the aim of |
|||
protecting users' freedom to change the software. The systematic |
|||
pattern of such abuse occurs in the area of products for individuals to |
|||
use, which is precisely where it is most unacceptable. Therefore, we |
|||
have designed this version of the GPL to prohibit the practice for those |
|||
products. If such problems arise substantially in other domains, we |
|||
stand ready to extend this provision to those domains in future versions |
|||
of the GPL, as needed to protect the freedom of users. |
|||
|
|||
Finally, every program is threatened constantly by software patents. |
|||
States should not allow patents to restrict development and use of |
|||
software on general-purpose computers, but in those that do, we wish to |
|||
avoid the special danger that patents applied to a free program could |
|||
make it effectively proprietary. To prevent this, the GPL assures that |
|||
patents cannot be used to render the program non-free. |
|||
|
|||
The precise terms and conditions for copying, distribution and |
|||
modification follow. |
|||
|
|||
TERMS AND CONDITIONS |
|||
|
|||
0. Definitions. |
|||
|
|||
"This License" refers to version 3 of the GNU General Public License. |
|||
|
|||
"Copyright" also means copyright-like laws that apply to other kinds of |
|||
works, such as semiconductor masks. |
|||
|
|||
"The Program" refers to any copyrightable work licensed under this |
|||
License. Each licensee is addressed as "you". "Licensees" and |
|||
"recipients" may be individuals or organizations. |
|||
|
|||
To "modify" a work means to copy from or adapt all or part of the work |
|||
in a fashion requiring copyright permission, other than the making of an |
|||
exact copy. The resulting work is called a "modified version" of the |
|||
earlier work or a work "based on" the earlier work. |
|||
|
|||
A "covered work" means either the unmodified Program or a work based |
|||
on the Program. |
|||
|
|||
To "propagate" a work means to do anything with it that, without |
|||
permission, would make you directly or secondarily liable for |
|||
infringement under applicable copyright law, except executing it on a |
|||
computer or modifying a private copy. Propagation includes copying, |
|||
distribution (with or without modification), making available to the |
|||
public, and in some countries other activities as well. |
|||
|
|||
To "convey" a work means any kind of propagation that enables other |
|||
parties to make or receive copies. Mere interaction with a user through |
|||
a computer network, with no transfer of a copy, is not conveying. |
|||
|
|||
An interactive user interface displays "Appropriate Legal Notices" |
|||
to the extent that it includes a convenient and prominently visible |
|||
feature that (1) displays an appropriate copyright notice, and (2) |
|||
tells the user that there is no warranty for the work (except to the |
|||
extent that warranties are provided), that licensees may convey the |
|||
work under this License, and how to view a copy of this License. If |
|||
the interface presents a list of user commands or options, such as a |
|||
menu, a prominent item in the list meets this criterion. |
|||
|
|||
1. Source Code. |
|||
|
|||
The "source code" for a work means the preferred form of the work |
|||
for making modifications to it. "Object code" means any non-source |
|||
form of a work. |
|||
|
|||
A "Standard Interface" means an interface that either is an official |
|||
standard defined by a recognized standards body, or, in the case of |
|||
interfaces specified for a particular programming language, one that |
|||
is widely used among developers working in that language. |
|||
|
|||
The "System Libraries" of an executable work include anything, other |
|||
than the work as a whole, that (a) is included in the normal form of |
|||
packaging a Major Component, but which is not part of that Major |
|||
Component, and (b) serves only to enable use of the work with that |
|||
Major Component, or to implement a Standard Interface for which an |
|||
implementation is available to the public in source code form. A |
|||
"Major Component", in this context, means a major essential component |
|||
(kernel, window system, and so on) of the specific operating system |
|||
(if any) on which the executable work runs, or a compiler used to |
|||
produce the work, or an object code interpreter used to run it. |
|||
|
|||
The "Corresponding Source" for a work in object code form means all |
|||
the source code needed to generate, install, and (for an executable |
|||
work) run the object code and to modify the work, including scripts to |
|||
control those activities. However, it does not include the work's |
|||
System Libraries, or general-purpose tools or generally available free |
|||
programs which are used unmodified in performing those activities but |
|||
which are not part of the work. For example, Corresponding Source |
|||
includes interface definition files associated with source files for |
|||
the work, and the source code for shared libraries and dynamically |
|||
linked subprograms that the work is specifically designed to require, |
|||
such as by intimate data communication or control flow between those |
|||
subprograms and other parts of the work. |
|||
|
|||
The Corresponding Source need not include anything that users |
|||
can regenerate automatically from other parts of the Corresponding |
|||
Source. |
|||
|
|||
The Corresponding Source for a work in source code form is that |
|||
same work. |
|||
|
|||
2. Basic Permissions. |
|||
|
|||
All rights granted under this License are granted for the term of |
|||
copyright on the Program, and are irrevocable provided the stated |
|||
conditions are met. This License explicitly affirms your unlimited |
|||
permission to run the unmodified Program. The output from running a |
|||
covered work is covered by this License only if the output, given its |
|||
content, constitutes a covered work. This License acknowledges your |
|||
rights of fair use or other equivalent, as provided by copyright law. |
|||
|
|||
You may make, run and propagate covered works that you do not |
|||
convey, without conditions so long as your license otherwise remains |
|||
in force. You may convey covered works to others for the sole purpose |
|||
of having them make modifications exclusively for you, or provide you |
|||
with facilities for running those works, provided that you comply with |
|||
the terms of this License in conveying all material for which you do |
|||
not control copyright. Those thus making or running the covered works |
|||
for you must do so exclusively on your behalf, under your direction |
|||
and control, on terms that prohibit them from making any copies of |
|||
your copyrighted material outside their relationship with you. |
|||
|
|||
Conveying under any other circumstances is permitted solely under |
|||
the conditions stated below. Sublicensing is not allowed; section 10 |
|||
makes it unnecessary. |
|||
|
|||
3. Protecting Users' Legal Rights From Anti-Circumvention Law. |
|||
|
|||
No covered work shall be deemed part of an effective technological |
|||
measure under any applicable law fulfilling obligations under article |
|||
11 of the WIPO copyright treaty adopted on 20 December 1996, or |
|||
similar laws prohibiting or restricting circumvention of such |
|||
measures. |
|||
|
|||
When you convey a covered work, you waive any legal power to forbid |
|||
circumvention of technological measures to the extent such circumvention |
|||
is effected by exercising rights under this License with respect to |
|||
the covered work, and you disclaim any intention to limit operation or |
|||
modification of the work as a means of enforcing, against the work's |
|||
users, your or third parties' legal rights to forbid circumvention of |
|||
technological measures. |
|||
|
|||
4. Conveying Verbatim Copies. |
|||
|
|||
You may convey verbatim copies of the Program's source code as you |
|||
receive it, in any medium, provided that you conspicuously and |
|||
appropriately publish on each copy an appropriate copyright notice; |
|||
keep intact all notices stating that this License and any |
|||
non-permissive terms added in accord with section 7 apply to the code; |
|||
keep intact all notices of the absence of any warranty; and give all |
|||
recipients a copy of this License along with the Program. |
|||
|
|||
You may charge any price or no price for each copy that you convey, |
|||
and you may offer support or warranty protection for a fee. |
|||
|
|||
5. Conveying Modified Source Versions. |
|||
|
|||
You may convey a work based on the Program, or the modifications to |
|||
produce it from the Program, in the form of source code under the |
|||
terms of section 4, provided that you also meet all of these conditions: |
|||
|
|||
a) The work must carry prominent notices stating that you modified |
|||
it, and giving a relevant date. |
|||
|
|||
b) The work must carry prominent notices stating that it is |
|||
released under this License and any conditions added under section |
|||
7. This requirement modifies the requirement in section 4 to |
|||
"keep intact all notices". |
|||
|
|||
c) You must license the entire work, as a whole, under this |
|||
License to anyone who comes into possession of a copy. This |
|||
License will therefore apply, along with any applicable section 7 |
|||
additional terms, to the whole of the work, and all its parts, |
|||
regardless of how they are packaged. This License gives no |
|||
permission to license the work in any other way, but it does not |
|||
invalidate such permission if you have separately received it. |
|||
|
|||
d) If the work has interactive user interfaces, each must display |
|||
Appropriate Legal Notices; however, if the Program has interactive |
|||
interfaces that do not display Appropriate Legal Notices, your |
|||
work need not make them do so. |
|||
|
|||
A compilation of a covered work with other separate and independent |
|||
works, which are not by their nature extensions of the covered work, |
|||
and which are not combined with it such as to form a larger program, |
|||
in or on a volume of a storage or distribution medium, is called an |
|||
"aggregate" if the compilation and its resulting copyright are not |
|||
used to limit the access or legal rights of the compilation's users |
|||
beyond what the individual works permit. Inclusion of a covered work |
|||
in an aggregate does not cause this License to apply to the other |
|||
parts of the aggregate. |
|||
|
|||
6. Conveying Non-Source Forms. |
|||
|
|||
You may convey a covered work in object code form under the terms |
|||
of sections 4 and 5, provided that you also convey the |
|||
machine-readable Corresponding Source under the terms of this License, |
|||
in one of these ways: |
|||
|
|||
a) Convey the object code in, or embodied in, a physical product |
|||
(including a physical distribution medium), accompanied by the |
|||
Corresponding Source fixed on a durable physical medium |
|||
customarily used for software interchange. |
|||
|
|||
b) Convey the object code in, or embodied in, a physical product |
|||
(including a physical distribution medium), accompanied by a |
|||
written offer, valid for at least three years and valid for as |
|||
long as you offer spare parts or customer support for that product |
|||
model, to give anyone who possesses the object code either (1) a |
|||
copy of the Corresponding Source for all the software in the |
|||
product that is covered by this License, on a durable physical |
|||
medium customarily used for software interchange, for a price no |
|||
more than your reasonable cost of physically performing this |
|||
conveying of source, or (2) access to copy the |
|||
Corresponding Source from a network server at no charge. |
|||
|
|||
c) Convey individual copies of the object code with a copy of the |
|||
written offer to provide the Corresponding Source. This |
|||
alternative is allowed only occasionally and noncommercially, and |
|||
only if you received the object code with such an offer, in accord |
|||
with subsection 6b. |
|||
|
|||
d) Convey the object code by offering access from a designated |
|||
place (gratis or for a charge), and offer equivalent access to the |
|||
Corresponding Source in the same way through the same place at no |
|||
further charge. You need not require recipients to copy the |
|||
Corresponding Source along with the object code. If the place to |
|||
copy the object code is a network server, the Corresponding Source |
|||
may be on a different server (operated by you or a third party) |
|||
that supports equivalent copying facilities, provided you maintain |
|||
clear directions next to the object code saying where to find the |
|||
Corresponding Source. Regardless of what server hosts the |
|||
Corresponding Source, you remain obligated to ensure that it is |
|||
available for as long as needed to satisfy these requirements. |
|||
|
|||
e) Convey the object code using peer-to-peer transmission, provided |
|||
you inform other peers where the object code and Corresponding |
|||
Source of the work are being offered to the general public at no |
|||
charge under subsection 6d. |
|||
|
|||
A separable portion of the object code, whose source code is excluded |
|||
from the Corresponding Source as a System Library, need not be |
|||
included in conveying the object code work. |
|||
|
|||
A "User Product" is either (1) a "consumer product", which means any |
|||
tangible personal property which is normally used for personal, family, |
|||
or household purposes, or (2) anything designed or sold for incorporation |
|||
into a dwelling. In determining whether a product is a consumer product, |
|||
doubtful cases shall be resolved in favor of coverage. For a particular |
|||
product received by a particular user, "normally used" refers to a |
|||
typical or common use of that class of product, regardless of the status |
|||
of the particular user or of the way in which the particular user |
|||
actually uses, or expects or is expected to use, the product. A product |
|||
is a consumer product regardless of whether the product has substantial |
|||
commercial, industrial or non-consumer uses, unless such uses represent |
|||
the only significant mode of use of the product. |
|||
|
|||
"Installation Information" for a User Product means any methods, |
|||
procedures, authorization keys, or other information required to install |
|||
and execute modified versions of a covered work in that User Product from |
|||
a modified version of its Corresponding Source. The information must |
|||
suffice to ensure that the continued functioning of the modified object |
|||
code is in no case prevented or interfered with solely because |
|||
modification has been made. |
|||
|
|||
If you convey an object code work under this section in, or with, or |
|||
specifically for use in, a User Product, and the conveying occurs as |
|||
part of a transaction in which the right of possession and use of the |
|||
User Product is transferred to the recipient in perpetuity or for a |
|||
fixed term (regardless of how the transaction is characterized), the |
|||
Corresponding Source conveyed under this section must be accompanied |
|||
by the Installation Information. But this requirement does not apply |
|||
if neither you nor any third party retains the ability to install |
|||
modified object code on the User Product (for example, the work has |
|||
been installed in ROM). |
|||
|
|||
The requirement to provide Installation Information does not include a |
|||
requirement to continue to provide support service, warranty, or updates |
|||
for a work that has been modified or installed by the recipient, or for |
|||
the User Product in which it has been modified or installed. Access to a |
|||
network may be denied when the modification itself materially and |
|||
adversely affects the operation of the network or violates the rules and |
|||
protocols for communication across the network. |
|||
|
|||
Corresponding Source conveyed, and Installation Information provided, |
|||
in accord with this section must be in a format that is publicly |
|||
documented (and with an implementation available to the public in |
|||
source code form), and must require no special password or key for |
|||
unpacking, reading or copying. |
|||
|
|||
7. Additional Terms. |
|||
|
|||
"Additional permissions" are terms that supplement the terms of this |
|||
License by making exceptions from one or more of its conditions. |
|||
Additional permissions that are applicable to the entire Program shall |
|||
be treated as though they were included in this License, to the extent |
|||
that they are valid under applicable law. If additional permissions |
|||
apply only to part of the Program, that part may be used separately |
|||
under those permissions, but the entire Program remains governed by |
|||
this License without regard to the additional permissions. |
|||
|
|||
When you convey a copy of a covered work, you may at your option |
|||
remove any additional permissions from that copy, or from any part of |
|||
it. (Additional permissions may be written to require their own |
|||
removal in certain cases when you modify the work.) You may place |
|||
additional permissions on material, added by you to a covered work, |
|||
for which you have or can give appropriate copyright permission. |
|||
|
|||
Notwithstanding any other provision of this License, for material you |
|||
add to a covered work, you may (if authorized by the copyright holders of |
|||
that material) supplement the terms of this License with terms: |
|||
|
|||
a) Disclaiming warranty or limiting liability differently from the |
|||
terms of sections 15 and 16 of this License; or |
|||
|
|||
b) Requiring preservation of specified reasonable legal notices or |
|||
author attributions in that material or in the Appropriate Legal |
|||
Notices displayed by works containing it; or |
|||
|
|||
c) Prohibiting misrepresentation of the origin of that material, or |
|||
requiring that modified versions of such material be marked in |
|||
reasonable ways as different from the original version; or |
|||
|
|||
d) Limiting the use for publicity purposes of names of licensors or |
|||
authors of the material; or |
|||
|
|||
e) Declining to grant rights under trademark law for use of some |
|||
trade names, trademarks, or service marks; or |
|||
|
|||
f) Requiring indemnification of licensors and authors of that |
|||
material by anyone who conveys the material (or modified versions of |
|||
it) with contractual assumptions of liability to the recipient, for |
|||
any liability that these contractual assumptions directly impose on |
|||
those licensors and authors. |
|||
|
|||
All other non-permissive additional terms are considered "further |
|||
restrictions" within the meaning of section 10. If the Program as you |
|||
received it, or any part of it, contains a notice stating that it is |
|||
governed by this License along with a term that is a further |
|||
restriction, you may remove that term. If a license document contains |
|||
a further restriction but permits relicensing or conveying under this |
|||
License, you may add to a covered work material governed by the terms |
|||
of that license document, provided that the further restriction does |
|||
not survive such relicensing or conveying. |
|||
|
|||
If you add terms to a covered work in accord with this section, you |
|||
must place, in the relevant source files, a statement of the |
|||
additional terms that apply to those files, or a notice indicating |
|||
where to find the applicable terms. |
|||
|
|||
Additional terms, permissive or non-permissive, may be stated in the |
|||
form of a separately written license, or stated as exceptions; |
|||
the above requirements apply either way. |
|||
|
|||
8. Termination. |
|||
|
|||
You may not propagate or modify a covered work except as expressly |
|||
provided under this License. Any attempt otherwise to propagate or |
|||
modify it is void, and will automatically terminate your rights under |
|||
this License (including any patent licenses granted under the third |
|||
paragraph of section 11). |
|||
|
|||
However, if you cease all violation of this License, then your |
|||
license from a particular copyright holder is reinstated (a) |
|||
provisionally, unless and until the copyright holder explicitly and |
|||
finally terminates your license, and (b) permanently, if the copyright |
|||
holder fails to notify you of the violation by some reasonable means |
|||
prior to 60 days after the cessation. |
|||
|
|||
Moreover, your license from a particular copyright holder is |
|||
reinstated permanently if the copyright holder notifies you of the |
|||
violation by some reasonable means, this is the first time you have |
|||
received notice of violation of this License (for any work) from that |
|||
copyright holder, and you cure the violation prior to 30 days after |
|||
your receipt of the notice. |
|||
|
|||
Termination of your rights under this section does not terminate the |
|||
licenses of parties who have received copies or rights from you under |
|||
this License. If your rights have been terminated and not permanently |
|||
reinstated, you do not qualify to receive new licenses for the same |
|||
material under section 10. |
|||
|
|||
9. Acceptance Not Required for Having Copies. |
|||
|
|||
You are not required to accept this License in order to receive or |
|||
run a copy of the Program. Ancillary propagation of a covered work |
|||
occurring solely as a consequence of using peer-to-peer transmission |
|||
to receive a copy likewise does not require acceptance. However, |
|||
nothing other than this License grants you permission to propagate or |
|||
modify any covered work. These actions infringe copyright if you do |
|||
not accept this License. Therefore, by modifying or propagating a |
|||
covered work, you indicate your acceptance of this License to do so. |
|||
|
|||
10. Automatic Licensing of Downstream Recipients. |
|||
|
|||
Each time you convey a covered work, the recipient automatically |
|||
receives a license from the original licensors, to run, modify and |
|||
propagate that work, subject to this License. You are not responsible |
|||
for enforcing compliance by third parties with this License. |
|||
|
|||
An "entity transaction" is a transaction transferring control of an |
|||
organization, or substantially all assets of one, or subdividing an |
|||
organization, or merging organizations. If propagation of a covered |
|||
work results from an entity transaction, each party to that |
|||
transaction who receives a copy of the work also receives whatever |
|||
licenses to the work the party's predecessor in interest had or could |
|||
give under the previous paragraph, plus a right to possession of the |
|||
Corresponding Source of the work from the predecessor in interest, if |
|||
the predecessor has it or can get it with reasonable efforts. |
|||
|
|||
You may not impose any further restrictions on the exercise of the |
|||
rights granted or affirmed under this License. For example, you may |
|||
not impose a license fee, royalty, or other charge for exercise of |
|||
rights granted under this License, and you may not initiate litigation |
|||
(including a cross-claim or counterclaim in a lawsuit) alleging that |
|||
any patent claim is infringed by making, using, selling, offering for |
|||
sale, or importing the Program or any portion of it. |
|||
|
|||
11. Patents. |
|||
|
|||
A "contributor" is a copyright holder who authorizes use under this |
|||
License of the Program or a work on which the Program is based. The |
|||
work thus licensed is called the contributor's "contributor version". |
|||
|
|||
A contributor's "essential patent claims" are all patent claims |
|||
owned or controlled by the contributor, whether already acquired or |
|||
hereafter acquired, that would be infringed by some manner, permitted |
|||
by this License, of making, using, or selling its contributor version, |
|||
but do not include claims that would be infringed only as a |
|||
consequence of further modification of the contributor version. For |
|||
purposes of this definition, "control" includes the right to grant |
|||
patent sublicenses in a manner consistent with the requirements of |
|||
this License. |
|||
|
|||
Each contributor grants you a non-exclusive, worldwide, royalty-free |
|||
patent license under the contributor's essential patent claims, to |
|||
make, use, sell, offer for sale, import and otherwise run, modify and |
|||
propagate the contents of its contributor version. |
|||
|
|||
In the following three paragraphs, a "patent license" is any express |
|||
agreement or commitment, however denominated, not to enforce a patent |
|||
(such as an express permission to practice a patent or covenant not to |
|||
sue for patent infringement). To "grant" such a patent license to a |
|||
party means to make such an agreement or commitment not to enforce a |
|||
patent against the party. |
|||
|
|||
If you convey a covered work, knowingly relying on a patent license, |
|||
and the Corresponding Source of the work is not available for anyone |
|||
to copy, free of charge and under the terms of this License, through a |
|||
publicly available network server or other readily accessible means, |
|||
then you must either (1) cause the Corresponding Source to be so |
|||
available, or (2) arrange to deprive yourself of the benefit of the |
|||
patent license for this particular work, or (3) arrange, in a manner |
|||
consistent with the requirements of this License, to extend the patent |
|||
license to downstream recipients. "Knowingly relying" means you have |
|||
actual knowledge that, but for the patent license, your conveying the |
|||
covered work in a country, or your recipient's use of the covered work |
|||
in a country, would infringe one or more identifiable patents in that |
|||
country that you have reason to believe are valid. |
|||
|
|||
If, pursuant to or in connection with a single transaction or |
|||
arrangement, you convey, or propagate by procuring conveyance of, a |
|||
covered work, and grant a patent license to some of the parties |
|||
receiving the covered work authorizing them to use, propagate, modify |
|||
or convey a specific copy of the covered work, then the patent license |
|||
you grant is automatically extended to all recipients of the covered |
|||
work and works based on it. |
|||
|
|||
A patent license is "discriminatory" if it does not include within |
|||
the scope of its coverage, prohibits the exercise of, or is |
|||
conditioned on the non-exercise of one or more of the rights that are |
|||
specifically granted under this License. You may not convey a covered |
|||
work if you are a party to an arrangement with a third party that is |
|||
in the business of distributing software, under which you make payment |
|||
to the third party based on the extent of your activity of conveying |
|||
the work, and under which the third party grants, to any of the |
|||
parties who would receive the covered work from you, a discriminatory |
|||
patent license (a) in connection with copies of the covered work |
|||
conveyed by you (or copies made from those copies), or (b) primarily |
|||
for and in connection with specific products or compilations that |
|||
contain the covered work, unless you entered into that arrangement, |
|||
or that patent license was granted, prior to 28 March 2007. |
|||
|
|||
Nothing in this License shall be construed as excluding or limiting |
|||
any implied license or other defenses to infringement that may |
|||
otherwise be available to you under applicable patent law. |
|||
|
|||
12. No Surrender of Others' Freedom. |
|||
|
|||
If conditions are imposed on you (whether by court order, agreement or |
|||
otherwise) that contradict the conditions of this License, they do not |
|||
excuse you from the conditions of this License. If you cannot convey a |
|||
covered work so as to satisfy simultaneously your obligations under this |
|||
License and any other pertinent obligations, then as a consequence you may |
|||
not convey it at all. For example, if you agree to terms that obligate you |
|||
to collect a royalty for further conveying from those to whom you convey |
|||
the Program, the only way you could satisfy both those terms and this |
|||
License would be to refrain entirely from conveying the Program. |
|||
|
|||
13. Use with the GNU Affero General Public License. |
|||
|
|||
Notwithstanding any other provision of this License, you have |
|||
permission to link or combine any covered work with a work licensed |
|||
under version 3 of the GNU Affero General Public License into a single |
|||
combined work, and to convey the resulting work. The terms of this |
|||
License will continue to apply to the part which is the covered work, |
|||
but the special requirements of the GNU Affero General Public License, |
|||
section 13, concerning interaction through a network will apply to the |
|||
combination as such. |
|||
|
|||
14. Revised Versions of this License. |
|||
|
|||
The Free Software Foundation may publish revised and/or new versions of |
|||
the GNU General Public License from time to time. Such new versions will |
|||
be similar in spirit to the present version, but may differ in detail to |
|||
address new problems or concerns. |
|||
|
|||
Each version is given a distinguishing version number. If the |
|||
Program specifies that a certain numbered version of the GNU General |
|||
Public License "or any later version" applies to it, you have the |
|||
option of following the terms and conditions either of that numbered |
|||
version or of any later version published by the Free Software |
|||
Foundation. If the Program does not specify a version number of the |
|||
GNU General Public License, you may choose any version ever published |
|||
by the Free Software Foundation. |
|||
|
|||
If the Program specifies that a proxy can decide which future |
|||
versions of the GNU General Public License can be used, that proxy's |
|||
public statement of acceptance of a version permanently authorizes you |
|||
to choose that version for the Program. |
|||
|
|||
Later license versions may give you additional or different |
|||
permissions. However, no additional obligations are imposed on any |
|||
author or copyright holder as a result of your choosing to follow a |
|||
later version. |
|||
|
|||
15. Disclaimer of Warranty. |
|||
|
|||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY |
|||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT |
|||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY |
|||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, |
|||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM |
|||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF |
|||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
|||
|
|||
16. Limitation of Liability. |
|||
|
|||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS |
|||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY |
|||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE |
|||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF |
|||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD |
|||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), |
|||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF |
|||
SUCH DAMAGES. |
|||
|
|||
17. Interpretation of Sections 15 and 16. |
|||
|
|||
If the disclaimer of warranty and limitation of liability provided |
|||
above cannot be given local legal effect according to their terms, |
|||
reviewing courts shall apply local law that most closely approximates |
|||
an absolute waiver of all civil liability in connection with the |
|||
Program, unless a warranty or assumption of liability accompanies a |
|||
copy of the Program in return for a fee. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
How to Apply These Terms to Your New Programs |
|||
|
|||
If you develop a new program, and you want it to be of the greatest |
|||
possible use to the public, the best way to achieve this is to make it |
|||
free software which everyone can redistribute and change under these terms. |
|||
|
|||
To do so, attach the following notices to the program. It is safest |
|||
to attach them to the start of each source file to most effectively |
|||
state the exclusion of warranty; and each file should have at least |
|||
the "copyright" line and a pointer to where the full notice is found. |
|||
|
|||
<one line to give the program's name and a brief idea of what it does.> |
|||
Copyright (C) <year> <name of author> |
|||
|
|||
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 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 <http://www.gnu.org/licenses/>. |
|||
|
|||
Also add information on how to contact you by electronic and paper mail. |
|||
|
|||
If the program does terminal interaction, make it output a short |
|||
notice like this when it starts in an interactive mode: |
|||
|
|||
<program> Copyright (C) <year> <name of author> |
|||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|||
This is free software, and you are welcome to redistribute it |
|||
under certain conditions; type `show c' for details. |
|||
|
|||
The hypothetical commands `show w' and `show c' should show the appropriate |
|||
parts of the General Public License. Of course, your program's commands |
|||
might be different; for a GUI interface, you would use an "about box". |
|||
|
|||
You should also get your employer (if you work as a programmer) or school, |
|||
if any, to sign a "copyright disclaimer" for the program, if necessary. |
|||
For more information on this, and how to apply and follow the GNU GPL, see |
|||
<http://www.gnu.org/licenses/>. |
|||
|
|||
The GNU General Public License does not permit incorporating your program |
|||
into proprietary programs. If your program is a subroutine library, you |
|||
may consider it more useful to permit linking proprietary applications with |
|||
the library. If this is what you want to do, use the GNU Lesser General |
|||
Public License instead of this License. But first, please read |
|||
<http://www.gnu.org/philosophy/why-not-lgpl.html>. |
@ -0,0 +1,504 @@ |
|||
GNU LESSER GENERAL PUBLIC LICENSE |
|||
Version 2.1, February 1999 |
|||
|
|||
Copyright (C) 1991, 1999 Free Software Foundation, Inc. |
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|||
Everyone is permitted to copy and distribute verbatim copies |
|||
of this license document, but changing it is not allowed. |
|||
|
|||
[This is the first released version of the Lesser GPL. It also counts |
|||
as the successor of the GNU Library Public License, version 2, hence |
|||
the version number 2.1.] |
|||
|
|||
Preamble |
|||
|
|||
The licenses for most software are designed to take away your |
|||
freedom to share and change it. By contrast, the GNU General Public |
|||
Licenses are intended to guarantee your freedom to share and change |
|||
free software--to make sure the software is free for all its users. |
|||
|
|||
This license, the Lesser General Public License, applies to some |
|||
specially designated software packages--typically libraries--of the |
|||
Free Software Foundation and other authors who decide to use it. You |
|||
can use it too, but we suggest you first think carefully about whether |
|||
this license or the ordinary General Public License is the better |
|||
strategy to use in any particular case, based on the explanations below. |
|||
|
|||
When we speak of free software, we are referring to freedom of use, |
|||
not price. Our General Public Licenses are designed to make sure that |
|||
you have the freedom to distribute copies of free software (and charge |
|||
for this service if you wish); that you receive source code or can get |
|||
it if you want it; that you can change the software and use pieces of |
|||
it in new free programs; and that you are informed that you can do |
|||
these things. |
|||
|
|||
To protect your rights, we need to make restrictions that forbid |
|||
distributors to deny you these rights or to ask you to surrender these |
|||
rights. These restrictions translate to certain responsibilities for |
|||
you if you distribute copies of the library or if you modify it. |
|||
|
|||
For example, if you distribute copies of the library, whether gratis |
|||
or for a fee, you must give the recipients all the rights that we gave |
|||
you. You must make sure that they, too, receive or can get the source |
|||
code. If you link other code with the library, you must provide |
|||
complete object files to the recipients, so that they can relink them |
|||
with the library after making changes to the library and recompiling |
|||
it. And you must show them these terms so they know their rights. |
|||
|
|||
We protect your rights with a two-step method: (1) we copyright the |
|||
library, and (2) we offer you this license, which gives you legal |
|||
permission to copy, distribute and/or modify the library. |
|||
|
|||
To protect each distributor, we want to make it very clear that |
|||
there is no warranty for the free library. Also, if the library is |
|||
modified by someone else and passed on, the recipients should know |
|||
that what they have is not the original version, so that the original |
|||
author's reputation will not be affected by problems that might be |
|||
introduced by others. |
|||
|
|||
Finally, software patents pose a constant threat to the existence of |
|||
any free program. We wish to make sure that a company cannot |
|||
effectively restrict the users of a free program by obtaining a |
|||
restrictive license from a patent holder. Therefore, we insist that |
|||
any patent license obtained for a version of the library must be |
|||
consistent with the full freedom of use specified in this license. |
|||
|
|||
Most GNU software, including some libraries, is covered by the |
|||
ordinary GNU General Public License. This license, the GNU Lesser |
|||
General Public License, applies to certain designated libraries, and |
|||
is quite different from the ordinary General Public License. We use |
|||
this license for certain libraries in order to permit linking those |
|||
libraries into non-free programs. |
|||
|
|||
When a program is linked with a library, whether statically or using |
|||
a shared library, the combination of the two is legally speaking a |
|||
combined work, a derivative of the original library. The ordinary |
|||
General Public License therefore permits such linking only if the |
|||
entire combination fits its criteria of freedom. The Lesser General |
|||
Public License permits more lax criteria for linking other code with |
|||
the library. |
|||
|
|||
We call this license the "Lesser" General Public License because it |
|||
does Less to protect the user's freedom than the ordinary General |
|||
Public License. It also provides other free software developers Less |
|||
of an advantage over competing non-free programs. These disadvantages |
|||
are the reason we use the ordinary General Public License for many |
|||
libraries. However, the Lesser license provides advantages in certain |
|||
special circumstances. |
|||
|
|||
For example, on rare occasions, there may be a special need to |
|||
encourage the widest possible use of a certain library, so that it becomes |
|||
a de-facto standard. To achieve this, non-free programs must be |
|||
allowed to use the library. A more frequent case is that a free |
|||
library does the same job as widely used non-free libraries. In this |
|||
case, there is little to gain by limiting the free library to free |
|||
software only, so we use the Lesser General Public License. |
|||
|
|||
In other cases, permission to use a particular library in non-free |
|||
programs enables a greater number of people to use a large body of |
|||
free software. For example, permission to use the GNU C Library in |
|||
non-free programs enables many more people to use the whole GNU |
|||
operating system, as well as its variant, the GNU/Linux operating |
|||
system. |
|||
|
|||
Although the Lesser General Public License is Less protective of the |
|||
users' freedom, it does ensure that the user of a program that is |
|||
linked with the Library has the freedom and the wherewithal to run |
|||
that program using a modified version of the Library. |
|||
|
|||
The precise terms and conditions for copying, distribution and |
|||
modification follow. Pay close attention to the difference between a |
|||
"work based on the library" and a "work that uses the library". The |
|||
former contains code derived from the library, whereas the latter must |
|||
be combined with the library in order to run. |
|||
|
|||
GNU LESSER GENERAL PUBLIC LICENSE |
|||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|||
|
|||
0. This License Agreement applies to any software library or other |
|||
program which contains a notice placed by the copyright holder or |
|||
other authorized party saying it may be distributed under the terms of |
|||
this Lesser General Public License (also called "this License"). |
|||
Each licensee is addressed as "you". |
|||
|
|||
A "library" means a collection of software functions and/or data |
|||
prepared so as to be conveniently linked with application programs |
|||
(which use some of those functions and data) to form executables. |
|||
|
|||
The "Library", below, refers to any such software library or work |
|||
which has been distributed under these terms. A "work based on the |
|||
Library" means either the Library or any derivative work under |
|||
copyright law: that is to say, a work containing the Library or a |
|||
portion of it, either verbatim or with modifications and/or translated |
|||
straightforwardly into another language. (Hereinafter, translation is |
|||
included without limitation in the term "modification".) |
|||
|
|||
"Source code" for a work means the preferred form of the work for |
|||
making modifications to it. For a library, complete source code means |
|||
all the source code for all modules it contains, plus any associated |
|||
interface definition files, plus the scripts used to control compilation |
|||
and installation of the library. |
|||
|
|||
Activities other than copying, distribution and modification are not |
|||
covered by this License; they are outside its scope. The act of |
|||
running a program using the Library is not restricted, and output from |
|||
such a program is covered only if its contents constitute a work based |
|||
on the Library (independent of the use of the Library in a tool for |
|||
writing it). Whether that is true depends on what the Library does |
|||
and what the program that uses the Library does. |
|||
|
|||
1. You may copy and distribute verbatim copies of the Library's |
|||
complete source code as you receive it, in any medium, provided that |
|||
you conspicuously and appropriately publish on each copy an |
|||
appropriate copyright notice and disclaimer of warranty; keep intact |
|||
all the notices that refer to this License and to the absence of any |
|||
warranty; and distribute a copy of this License along with the |
|||
Library. |
|||
|
|||
You may charge a fee for the physical act of transferring a copy, |
|||
and you may at your option offer warranty protection in exchange for a |
|||
fee. |
|||
|
|||
2. You may modify your copy or copies of the Library or any portion |
|||
of it, thus forming a work based on the Library, and copy and |
|||
distribute such modifications or work under the terms of Section 1 |
|||
above, provided that you also meet all of these conditions: |
|||
|
|||
a) The modified work must itself be a software library. |
|||
|
|||
b) You must cause the files modified to carry prominent notices |
|||
stating that you changed the files and the date of any change. |
|||
|
|||
c) You must cause the whole of the work to be licensed at no |
|||
charge to all third parties under the terms of this License. |
|||
|
|||
d) If a facility in the modified Library refers to a function or a |
|||
table of data to be supplied by an application program that uses |
|||
the facility, other than as an argument passed when the facility |
|||
is invoked, then you must make a good faith effort to ensure that, |
|||
in the event an application does not supply such function or |
|||
table, the facility still operates, and performs whatever part of |
|||
its purpose remains meaningful. |
|||
|
|||
(For example, a function in a library to compute square roots has |
|||
a purpose that is entirely well-defined independent of the |
|||
application. Therefore, Subsection 2d requires that any |
|||
application-supplied function or table used by this function must |
|||
be optional: if the application does not supply it, the square |
|||
root function must still compute square roots.) |
|||
|
|||
These requirements apply to the modified work as a whole. If |
|||
identifiable sections of that work are not derived from the Library, |
|||
and can be reasonably considered independent and separate works in |
|||
themselves, then this License, and its terms, do not apply to those |
|||
sections when you distribute them as separate works. But when you |
|||
distribute the same sections as part of a whole which is a work based |
|||
on the Library, the distribution of the whole must be on the terms of |
|||
this License, whose permissions for other licensees extend to the |
|||
entire whole, and thus to each and every part regardless of who wrote |
|||
it. |
|||
|
|||
Thus, it is not the intent of this section to claim rights or contest |
|||
your rights to work written entirely by you; rather, the intent is to |
|||
exercise the right to control the distribution of derivative or |
|||
collective works based on the Library. |
|||
|
|||
In addition, mere aggregation of another work not based on the Library |
|||
with the Library (or with a work based on the Library) on a volume of |
|||
a storage or distribution medium does not bring the other work under |
|||
the scope of this License. |
|||
|
|||
3. You may opt to apply the terms of the ordinary GNU General Public |
|||
License instead of this License to a given copy of the Library. To do |
|||
this, you must alter all the notices that refer to this License, so |
|||
that they refer to the ordinary GNU General Public License, version 2, |
|||
instead of to this License. (If a newer version than version 2 of the |
|||
ordinary GNU General Public License has appeared, then you can specify |
|||
that version instead if you wish.) Do not make any other change in |
|||
these notices. |
|||
|
|||
Once this change is made in a given copy, it is irreversible for |
|||
that copy, so the ordinary GNU General Public License applies to all |
|||
subsequent copies and derivative works made from that copy. |
|||
|
|||
This option is useful when you wish to copy part of the code of |
|||
the Library into a program that is not a library. |
|||
|
|||
4. You may copy and distribute the Library (or a portion or |
|||
derivative of it, under Section 2) in object code or executable form |
|||
under the terms of Sections 1 and 2 above provided that you accompany |
|||
it with the complete corresponding machine-readable source code, which |
|||
must be distributed under the terms of Sections 1 and 2 above on a |
|||
medium customarily used for software interchange. |
|||
|
|||
If distribution of object code is made by offering access to copy |
|||
from a designated place, then offering equivalent access to copy the |
|||
source code from the same place satisfies the requirement to |
|||
distribute the source code, even though third parties are not |
|||
compelled to copy the source along with the object code. |
|||
|
|||
5. A program that contains no derivative of any portion of the |
|||
Library, but is designed to work with the Library by being compiled or |
|||
linked with it, is called a "work that uses the Library". Such a |
|||
work, in isolation, is not a derivative work of the Library, and |
|||
therefore falls outside the scope of this License. |
|||
|
|||
However, linking a "work that uses the Library" with the Library |
|||
creates an executable that is a derivative of the Library (because it |
|||
contains portions of the Library), rather than a "work that uses the |
|||
library". The executable is therefore covered by this License. |
|||
Section 6 states terms for distribution of such executables. |
|||
|
|||
When a "work that uses the Library" uses material from a header file |
|||
that is part of the Library, the object code for the work may be a |
|||
derivative work of the Library even though the source code is not. |
|||
Whether this is true is especially significant if the work can be |
|||
linked without the Library, or if the work is itself a library. The |
|||
threshold for this to be true is not precisely defined by law. |
|||
|
|||
If such an object file uses only numerical parameters, data |
|||
structure layouts and accessors, and small macros and small inline |
|||
functions (ten lines or less in length), then the use of the object |
|||
file is unrestricted, regardless of whether it is legally a derivative |
|||
work. (Executables containing this object code plus portions of the |
|||
Library will still fall under Section 6.) |
|||
|
|||
Otherwise, if the work is a derivative of the Library, you may |
|||
distribute the object code for the work under the terms of Section 6. |
|||
Any executables containing that work also fall under Section 6, |
|||
whether or not they are linked directly with the Library itself. |
|||
|
|||
6. As an exception to the Sections above, you may also combine or |
|||
link a "work that uses the Library" with the Library to produce a |
|||
work containing portions of the Library, and distribute that work |
|||
under terms of your choice, provided that the terms permit |
|||
modification of the work for the customer's own use and reverse |
|||
engineering for debugging such modifications. |
|||
|
|||
You must give prominent notice with each copy of the work that the |
|||
Library is used in it and that the Library and its use are covered by |
|||
this License. You must supply a copy of this License. If the work |
|||
during execution displays copyright notices, you must include the |
|||
copyright notice for the Library among them, as well as a reference |
|||
directing the user to the copy of this License. Also, you must do one |
|||
of these things: |
|||
|
|||
a) Accompany the work with the complete corresponding |
|||
machine-readable source code for the Library including whatever |
|||
changes were used in the work (which must be distributed under |
|||
Sections 1 and 2 above); and, if the work is an executable linked |
|||
with the Library, with the complete machine-readable "work that |
|||
uses the Library", as object code and/or source code, so that the |
|||
user can modify the Library and then relink to produce a modified |
|||
executable containing the modified Library. (It is understood |
|||
that the user who changes the contents of definitions files in the |
|||
Library will not necessarily be able to recompile the application |
|||
to use the modified definitions.) |
|||
|
|||
b) Use a suitable shared library mechanism for linking with the |
|||
Library. A suitable mechanism is one that (1) uses at run time a |
|||
copy of the library already present on the user's computer system, |
|||
rather than copying library functions into the executable, and (2) |
|||
will operate properly with a modified version of the library, if |
|||
the user installs one, as long as the modified version is |
|||
interface-compatible with the version that the work was made with. |
|||
|
|||
c) Accompany the work with a written offer, valid for at |
|||
least three years, to give the same user the materials |
|||
specified in Subsection 6a, above, for a charge no more |
|||
than the cost of performing this distribution. |
|||
|
|||
d) If distribution of the work is made by offering access to copy |
|||
from a designated place, offer equivalent access to copy the above |
|||
specified materials from the same place. |
|||
|
|||
e) Verify that the user has already received a copy of these |
|||
materials or that you have already sent this user a copy. |
|||
|
|||
For an executable, the required form of the "work that uses the |
|||
Library" must include any data and utility programs needed for |
|||
reproducing the executable from it. However, as a special exception, |
|||
the materials to be distributed need not include anything that is |
|||
normally distributed (in either source or binary form) with the major |
|||
components (compiler, kernel, and so on) of the operating system on |
|||
which the executable runs, unless that component itself accompanies |
|||
the executable. |
|||
|
|||
It may happen that this requirement contradicts the license |
|||
restrictions of other proprietary libraries that do not normally |
|||
accompany the operating system. Such a contradiction means you cannot |
|||
use both them and the Library together in an executable that you |
|||
distribute. |
|||
|
|||
7. You may place library facilities that are a work based on the |
|||
Library side-by-side in a single library together with other library |
|||
facilities not covered by this License, and distribute such a combined |
|||
library, provided that the separate distribution of the work based on |
|||
the Library and of the other library facilities is otherwise |
|||
permitted, and provided that you do these two things: |
|||
|
|||
a) Accompany the combined library with a copy of the same work |
|||
based on the Library, uncombined with any other library |
|||
facilities. This must be distributed under the terms of the |
|||
Sections above. |
|||
|
|||
b) Give prominent notice with the combined library of the fact |
|||
that part of it is a work based on the Library, and explaining |
|||
where to find the accompanying uncombined form of the same work. |
|||
|
|||
8. You may not copy, modify, sublicense, link with, or distribute |
|||
the Library except as expressly provided under this License. Any |
|||
attempt otherwise to copy, modify, sublicense, link with, or |
|||
distribute the Library is void, and will automatically terminate your |
|||
rights under this License. However, parties who have received copies, |
|||
or rights, from you under this License will not have their licenses |
|||
terminated so long as such parties remain in full compliance. |
|||
|
|||
9. You are not required to accept this License, since you have not |
|||
signed it. However, nothing else grants you permission to modify or |
|||
distribute the Library or its derivative works. These actions are |
|||
prohibited by law if you do not accept this License. Therefore, by |
|||
modifying or distributing the Library (or any work based on the |
|||
Library), you indicate your acceptance of this License to do so, and |
|||
all its terms and conditions for copying, distributing or modifying |
|||
the Library or works based on it. |
|||
|
|||
10. Each time you redistribute the Library (or any work based on the |
|||
Library), the recipient automatically receives a license from the |
|||
original licensor to copy, distribute, link with or modify the Library |
|||
subject to these terms and conditions. You may not impose any further |
|||
restrictions on the recipients' exercise of the rights granted herein. |
|||
You are not responsible for enforcing compliance by third parties with |
|||
this License. |
|||
|
|||
11. If, as a consequence of a court judgment or allegation of patent |
|||
infringement or for any other reason (not limited to patent issues), |
|||
conditions are imposed on you (whether by court order, agreement or |
|||
otherwise) that contradict the conditions of this License, they do not |
|||
excuse you from the conditions of this License. If you cannot |
|||
distribute so as to satisfy simultaneously your obligations under this |
|||
License and any other pertinent obligations, then as a consequence you |
|||
may not distribute the Library at all. For example, if a patent |
|||
license would not permit royalty-free redistribution of the Library by |
|||
all those who receive copies directly or indirectly through you, then |
|||
the only way you could satisfy both it and this License would be to |
|||
refrain entirely from distribution of the Library. |
|||
|
|||
If any portion of this section is held invalid or unenforceable under any |
|||
particular circumstance, the balance of the section is intended to apply, |
|||
and the section as a whole is intended to apply in other circumstances. |
|||
|
|||
It is not the purpose of this section to induce you to infringe any |
|||
patents or other property right claims or to contest validity of any |
|||
such claims; this section has the sole purpose of protecting the |
|||
integrity of the free software distribution system which is |
|||
implemented by public license practices. Many people have made |
|||
generous contributions to the wide range of software distributed |
|||
through that system in reliance on consistent application of that |
|||
system; it is up to the author/donor to decide if he or she is willing |
|||
to distribute software through any other system and a licensee cannot |
|||
impose that choice. |
|||
|
|||
This section is intended to make thoroughly clear what is believed to |
|||
be a consequence of the rest of this License. |
|||
|
|||
12. If the distribution and/or use of the Library is restricted in |
|||
certain countries either by patents or by copyrighted interfaces, the |
|||
original copyright holder who places the Library under this License may add |
|||
an explicit geographical distribution limitation excluding those countries, |
|||
so that distribution is permitted only in or among countries not thus |
|||
excluded. In such case, this License incorporates the limitation as if |
|||
written in the body of this License. |
|||
|
|||
13. The Free Software Foundation may publish revised and/or new |
|||
versions of the Lesser General Public License from time to time. |
|||
Such new versions will be similar in spirit to the present version, |
|||
but may differ in detail to address new problems or concerns. |
|||
|
|||
Each version is given a distinguishing version number. If the Library |
|||
specifies a version number of this License which applies to it and |
|||
"any later version", you have the option of following the terms and |
|||
conditions either of that version or of any later version published by |
|||
the Free Software Foundation. If the Library does not specify a |
|||
license version number, you may choose any version ever published by |
|||
the Free Software Foundation. |
|||
|
|||
14. If you wish to incorporate parts of the Library into other free |
|||
programs whose distribution conditions are incompatible with these, |
|||
write to the author to ask for permission. For software which is |
|||
copyrighted by the Free Software Foundation, write to the Free |
|||
Software Foundation; we sometimes make exceptions for this. Our |
|||
decision will be guided by the two goals of preserving the free status |
|||
of all derivatives of our free software and of promoting the sharing |
|||
and reuse of software generally. |
|||
|
|||
NO WARRANTY |
|||
|
|||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO |
|||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. |
|||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR |
|||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY |
|||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE |
|||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE |
|||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME |
|||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
|||
|
|||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN |
|||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY |
|||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU |
|||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR |
|||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE |
|||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING |
|||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A |
|||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF |
|||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
|||
DAMAGES. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
How to Apply These Terms to Your New Libraries |
|||
|
|||
If you develop a new library, and you want it to be of the greatest |
|||
possible use to the public, we recommend making it free software that |
|||
everyone can redistribute and change. You can do so by permitting |
|||
redistribution under these terms (or, alternatively, under the terms of the |
|||
ordinary General Public License). |
|||
|
|||
To apply these terms, attach the following notices to the library. It is |
|||
safest to attach them to the start of each source file to most effectively |
|||
convey the exclusion of warranty; and each file should have at least the |
|||
"copyright" line and a pointer to where the full notice is found. |
|||
|
|||
<one line to give the library's name and a brief idea of what it does.> |
|||
Copyright (C) <year> <name of author> |
|||
|
|||
This library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 of the License, or (at your option) any later version. |
|||
|
|||
This library 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 |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with this library; if not, write to the Free Software |
|||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|||
|
|||
Also add information on how to contact you by electronic and paper mail. |
|||
|
|||
You should also get your employer (if you work as a programmer) or your |
|||
school, if any, to sign a "copyright disclaimer" for the library, if |
|||
necessary. Here is a sample; alter the names: |
|||
|
|||
Yoyodyne, Inc., hereby disclaims all copyright interest in the |
|||
library `Frob' (a library for tweaking knobs) written by James Random Hacker. |
|||
|
|||
<signature of Ty Coon>, 1 April 1990 |
|||
Ty Coon, President of Vice |
|||
|
|||
That's all there is to it! |
|||
|
|||
|
7041
third_party/xz-4.999.9beta/ChangeLog
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
1234
third_party/xz-4.999.9beta/Doxyfile.in
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,339 @@ |
|||
|
|||
XZ Utils Installation |
|||
===================== |
|||
|
|||
0. Preface |
|||
1. Supported platforms |
|||
1.1. Compilers |
|||
1.2. Platform-specific notes |
|||
1.2.1. Darwin (Mac OS X) |
|||
1.2.2. Tru64 |
|||
1.2.3. Windows |
|||
1.2.4. DOS |
|||
1.2.5. OS/2 |
|||
1.3. Adding support for new platforms |
|||
2. configure options |
|||
3. xzgrep and other scripts |
|||
3.1. Dependencies |
|||
3.2. PATH |
|||
4. Troubleshooting |
|||
4.1. "No C99 compiler was found." |
|||
4.1. "No POSIX conforming shell (sh) was found." |
|||
4.2. configure works but build fails at crc32_x86.S |
|||
|
|||
|
|||
0. Preface |
|||
---------- |
|||
|
|||
If you aren't familiar with building packages that use GNU Autotools, |
|||
see the file INSTALL.generic for generic instructions before reading |
|||
further. |
|||
|
|||
If you are going to build a package for distribution, see also the |
|||
file PACKAGERS. It contains information that should help making the |
|||
binary packages as good as possible, but the information isn't very |
|||
interesting to those making local builds for private use or for use |
|||
in special situations like embedded systems. |
|||
|
|||
|
|||
1. Supported platforms |
|||
---------------------- |
|||
|
|||
XZ Utils are developed on GNU/Linux, but they should work on many |
|||
POSIX-like operating systems like *BSDs and Solaris, and even on |
|||
a few non-POSIX operating systems. |
|||
|
|||
|
|||
1.1. Compilers |
|||
|
|||
A C99 compiler is required to compile XZ Utils. If you use GCC, you |
|||
need at least version 3.x.x. GCC version 2.xx.x doesn't support some |
|||
C99 features used in XZ Utils source code, thus GCC 2 won't compile |
|||
XZ Utils. |
|||
|
|||
XZ Utils takes advantage of some GNU C extensions when building |
|||
with GCC. Because these extensions are used only when building |
|||
with GCC, it should be possible to use any C99 compiler. |
|||
|
|||
|
|||
1.2. Platform-specific notes |
|||
|
|||
1.2.1. Darwin (Mac OS X) |
|||
|
|||
You may need --disable-assembler if building universal binaries on |
|||
Darwin. This is because different files are built when assembler is |
|||
enabled, and there's no way to make it work with universal build. |
|||
If you want to keep the assembler code, consider building one |
|||
architecture at a time, and then combining the results to create |
|||
universal binaries (see lipo(1)). |
|||
|
|||
|
|||
1.2.2. Tru64 |
|||
|
|||
If you try to use the native C compiler on Tru64 (passing CC=cc to |
|||
configure), it is possible that the configure script will complain |
|||
that no C99 compiler was found even when the native compiler supports |
|||
C99. You can safely override the test for C99 compiler by passing |
|||
ac_cv_prog_cc_c99= as the argument to the configure script. |
|||
|
|||
|
|||
1.2.3. Windows |
|||
|
|||
Building XZ Utils on Windows is supported under MinGW and Cygwin. |
|||
If the Autotools based build gives you trouble with MinGW, you may |
|||
want try the alternative method found from the "windows" directory. |
|||
|
|||
MSVC doesn't support C99, thus it is not possible to use MSVC to |
|||
compile XZ Utils. However, it is possible to use liblzma.dll from |
|||
MSVC once liblzma.dll has been built with MinGW. The required |
|||
import library for MSVC can be created from liblzma.def using the |
|||
"lib" command shipped in MSVC: |
|||
|
|||
lib /def:liblzma.def /out:liblzma.lib /machine:ix86 |
|||
|
|||
On x86-64, the /machine argument has to naturally be changed: |
|||
|
|||
lib /def:liblzma.def /out:liblzma.lib /machine:x64 |
|||
|
|||
|
|||
1.2.4. DOS |
|||
|
|||
There is an experimental Makefile in the "dos" directory to build |
|||
XZ Utils on DOS using DJGPP. Support for long file names (LFN) is |
|||
needed. |
|||
|
|||
GNU Autotools based build hasn't been tried on DOS. |
|||
|
|||
|
|||
1.2.5. OS/2 |
|||
|
|||
You will need to pass --disable-assembler to configure when building |
|||
on OS/2. |
|||
|
|||
|
|||
1.3. Adding support for new platforms |
|||
|
|||
If you have written patches to make XZ Utils to work on previously |
|||
unsupported platform, please send the patches to me! I will consider |
|||
including them to the official version. It's nice to minimize the |
|||
need of third-party patching. |
|||
|
|||
One exception: Don't request or send patches to change the whole |
|||
source package to C89. I find C99 substantially nicer to write and |
|||
maintain. However, the public library headers must be in C89 to |
|||
avoid frustrating those who maintain programs, which are strictly |
|||
in C89 or C++. |
|||
|
|||
|
|||
2. configure options |
|||
-------------------- |
|||
|
|||
In most cases, the defaults are what you want. Most of the options |
|||
below are useful only when building a size-optimized version of |
|||
liblzma or command line tools. |
|||
|
|||
--enable-encoders=LIST |
|||
--disable-encoders |
|||
Specify a comma-separated LIST of filter encoders to |
|||
build. See "./configure --help" for exact list of |
|||
available filter encoders. The default is to build all |
|||
supported encoders. |
|||
|
|||
If LIST is empty or --disable-encoders is used, no filter |
|||
encoders will be built and also the code shared between |
|||
encoders will be omitted. |
|||
|
|||
Disabling encoders will remove some symbols from the |
|||
liblzma ABI, so this option should be used only when it |
|||
is known to not cause problems. |
|||
|
|||
--enable-decoders=LIST |
|||
--disable-decoders |
|||
This is like --enable-encoders but for decoders. The |
|||
default is to build all supported decoders. |
|||
|
|||
--enable-match-finders=LIST |
|||
liblzma includes two categories of match finders: |
|||
hash chains and binary trees. Hash chains (hc3 and hc4) |
|||
are quite fast but they don't provide the best compression |
|||
ratio. Binary trees (bt2, bt3 and bt4) give excellent |
|||
compression ratio, but they are slower and need more |
|||
memory than hash chains. |
|||
|
|||
You need to enable at least one match finder to build the |
|||
LZMA1 or LZMA2 filter encoders. Usually hash chains are |
|||
used only in the fast mode, while binary trees are used to |
|||
when the best compression ratio is wanted. |
|||
|
|||
The default is to build all the match finders if LZMA1 |
|||
or LZMA2 filter encoders are being built. |
|||
|
|||
--enable-checks=LIST |
|||
liblzma support multiple integrity checks. CRC32 is |
|||
mandatory, and cannot be omitted. See "./configure --help" |
|||
for exact list of available integrity check types. |
|||
|
|||
liblzma and the command line tools can decompress files |
|||
which use unsupported integrity check type, but naturally |
|||
the file integrity cannot be verified in that case. |
|||
|
|||
Disabling integrity checks may remove some symbols from |
|||
the liblzma ABI, so this option should be used only when |
|||
it is known to not cause problems. |
|||
|
|||
--disable-assembler |
|||
liblzma includes some assembler optimizations. Currently |
|||
there is only assembler code for CRC32 and CRC64 for |
|||
32-bit x86. |
|||
|
|||
All the assembler code in liblzma is position-independent |
|||
code, which is suitable for use in shared libraries and |
|||
position-independent executables. So far only i386 |
|||
instructions are used, but the code is optimized for i686 |
|||
class CPUs. If you are compiling liblzma exclusively for |
|||
pre-i686 systems, you may want to disable the assembler |
|||
code. |
|||
|
|||
--enable-unaligned-access |
|||
Allow liblzma to use unaligned memory access for 16-bit |
|||
and 32-bit loads and stores. This should be enabled only |
|||
when the hardware supports this, i.e. when unaligned |
|||
access is fast. Some operating system kernels emulate |
|||
unaligned access, which is extremely slow. This option |
|||
shouldn't be used on systems that rely on such emulation. |
|||
|
|||
Unaligned access is enabled by default on x86, x86-64, |
|||
and big endian PowerPC. |
|||
|
|||
--enable-small |
|||
Reduce the size of liblzma by selecting smaller but |
|||
semantically equivalent version of some functions, and |
|||
omit precomputed lookup tables. This option tends to |
|||
make liblzma slightly slower. |
|||
|
|||
Note that while omitting the precomputed tables makes |
|||
liblzma smaller on disk, the tables are still needed at |
|||
run time, and need to be computed at startup. This also |
|||
means that the RAM holding the tables won't be shared |
|||
between applications linked against shared liblzma. |
|||
|
|||
--disable-threads |
|||
Disable threading support. This makes some things |
|||
thread-unsafe, meaning that if multithreaded application |
|||
calls liblzma functions from more than one thread, |
|||
something bad may happen. |
|||
|
|||
Use this option if threading support causes you trouble, |
|||
or if you know that you will use liblzma only from |
|||
single-threaded applications and want to avoid dependency |
|||
on libpthread. |
|||
|
|||
--enable-dynamic=TYPE |
|||
Specify how command line tools should be linked against |
|||
liblzma. Possible TYPES: |
|||
|
|||
yes All command line tools are linked against |
|||
shared liblzma (if shared liblzma was built). |
|||
This is equivalent to --enable-dynamic (i.e. |
|||
no =TYPE). |
|||
|
|||
mixed Some tools are linked against static liblzma |
|||
and some against shared liblzma. This is the |
|||
default and recommended way. |
|||
|
|||
no All command line tools are linked against |
|||
static liblzma (if static liblzma was built). |
|||
This is equivalent to --disable-dynamic. |
|||
|
|||
This option is mostly useful for packagers, if distro |
|||
policy requires linking against shared libaries. See the |
|||
file PACKAGERS for more information about pros and cons |
|||
of this option. |
|||
|
|||
--enable-debug |
|||
This enables the assert() macro and possibly some other |
|||
run-time consistency checks. It makes the code slower, so |
|||
you normally don't want to have this enabled. |
|||
|
|||
--enable-werror |
|||
If building with GCC, make all compiler warnings an error, |
|||
that abort the compilation. This may help catching bugs, |
|||
and should work on most systems. This has no effect on the |
|||
resulting binaries. |
|||
|
|||
|
|||
3. xzgrep and other scripts |
|||
--------------------------- |
|||
|
|||
3.1. Dependencies |
|||
|
|||
POSIX shell (sh) and bunch of other standard POSIX tools are required |
|||
to run the scripts. The configure script tries to find a POSIX |
|||
compliant sh, but if it fails, you can force the shell by passing |
|||
gl_cv_posix_shell=/path/to/posix-sh as an argument to the configure |
|||
script. |
|||
|
|||
Some of the scripts require also mktemp. The original mktemp can be |
|||
found from <http://www.mktemp.org/>. On GNU, most will use the mktemp |
|||
program from GNU coreutils instead of the original implementation. |
|||
Both mktemp versions are fine for XZ Utils (and practically for |
|||
everything else too). |
|||
|
|||
|
|||
3.2. PATH |
|||
|
|||
The scripts assume that the required tools (standard POSIX utilities, |
|||
mktemp, and xz) are in PATH; the scripts don't set the PATH themselves. |
|||
Some people like this while some think this is a bug. Those in the |
|||
latter group can easily patch the scripts before running the configure |
|||
script by taking advantage of a placeholder line in the scripts. |
|||
|
|||
For example, to make the scripts prefix /usr/bin:/bin to PATH: |
|||
|
|||
perl -pi -e 's|^#SET_PATH.*$|PATH=/usr/bin:/bin:\$PATH|' \ |
|||
src/scripts/xz*.in |
|||
|
|||
|
|||
4. Troubleshooting |
|||
------------------ |
|||
|
|||
4.1. "No C99 compiler was found." |
|||
|
|||
You need a C99 compiler to build XZ Utils. If the configure script |
|||
cannot find a C99 compiler and you think you have such a compiler |
|||
installed, set the compiler command by passing CC=/path/to/c99 as |
|||
an argument to the configure script. |
|||
|
|||
If you get this error even when you think your compiler supports C99, |
|||
you can override the test by passing ac_cv_prog_cc_c99= as an argument |
|||
to the configure script. The test for C99 compiler is not perfect (and |
|||
it is not as easy to make it perfect as it sounds), so sometimes this |
|||
may be needed. You will get a compile error if your compiler doesn't |
|||
support enough C99. |
|||
|
|||
|
|||
4.1. "No POSIX conforming shell (sh) was found." |
|||
|
|||
xzgrep and other scripts need a shell that (roughly) conforms |
|||
to POSIX. The configure script tries to find such a shell. If |
|||
it fails, you can force the shell to be used by passing |
|||
gl_cv_posix_shell=/path/to/posix-sh as an argument to the configure |
|||
script. |
|||
|
|||
|
|||
4.2. configure works but build fails at crc32_x86.S |
|||
|
|||
The easy fix is to pass --disable-assembler to the configure script. |
|||
|
|||
The configure script determines if assembler code can be used by |
|||
looking at the configure triplet; there is currently no check if |
|||
the assembler code can actually actually be built. The x86 assembler |
|||
code should work on x86 GNU/Linux, *BSDs, Solaris, Darwin, MinGW, |
|||
Cygwin, and DJGPP. On other x86 systems, there may be problems and |
|||
the assembler code may need to be disabled with the configure option. |
|||
|
|||
If you get this error when building for x86-64, you have specified or |
|||
the configure script has misguessed your architecture. Pass the |
|||
correct configure triplet using the --build=CPU-COMPANY-SYSTEM option |
|||
(see INSTALL.generic). |
|||
|
@ -0,0 +1,302 @@ |
|||
Installation Instructions |
|||
************************* |
|||
|
|||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, |
|||
2006, 2007, 2008, 2009 Free Software Foundation, Inc. |
|||
|
|||
This file is free documentation; the Free Software Foundation gives |
|||
unlimited permission to copy, distribute and modify it. |
|||
|
|||
Basic Installation |
|||
================== |
|||
|
|||
Briefly, the shell commands `./configure; make; make install' should |
|||
configure, build, and install this package. The following |
|||
more-detailed instructions are generic; see the `README' file for |
|||
instructions specific to this package. |
|||
|
|||
The `configure' shell script attempts to guess correct values for |
|||
various system-dependent variables used during compilation. It uses |
|||
those values to create a `Makefile' in each directory of the package. |
|||
It may also create one or more `.h' files containing system-dependent |
|||
definitions. Finally, it creates a shell script `config.status' that |
|||
you can run in the future to recreate the current configuration, and a |
|||
file `config.log' containing compiler output (useful mainly for |
|||
debugging `configure'). |
|||
|
|||
It can also use an optional file (typically called `config.cache' |
|||
and enabled with `--cache-file=config.cache' or simply `-C') that saves |
|||
the results of its tests to speed up reconfiguring. Caching is |
|||
disabled by default to prevent problems with accidental use of stale |
|||
cache files. |
|||
|
|||
If you need to do unusual things to compile the package, please try |
|||
to figure out how `configure' could check whether to do them, and mail |
|||
diffs or instructions to the address given in the `README' so they can |
|||
be considered for the next release. If you are using the cache, and at |
|||
some point `config.cache' contains results you don't want to keep, you |
|||
may remove or edit it. |
|||
|
|||
The file `configure.ac' (or `configure.in') is used to create |
|||
`configure' by a program called `autoconf'. You need `configure.ac' if |
|||
you want to change it or regenerate `configure' using a newer version |
|||
of `autoconf'. |
|||
|
|||
The simplest way to compile this package is: |
|||
|
|||
1. `cd' to the directory containing the package's source code and type |
|||
`./configure' to configure the package for your system. |
|||
|
|||
Running `configure' might take a while. While running, it prints |
|||
some messages telling which features it is checking for. |
|||
|
|||
2. Type `make' to compile the package. |
|||
|
|||
3. Optionally, type `make check' to run any self-tests that come with |
|||
the package. |
|||
|
|||
4. Type `make install' to install the programs and any data files and |
|||
documentation. |
|||
|
|||
5. You can remove the program binaries and object files from the |
|||
source code directory by typing `make clean'. To also remove the |
|||
files that `configure' created (so you can compile the package for |
|||
a different kind of computer), type `make distclean'. There is |
|||
also a `make maintainer-clean' target, but that is intended mainly |
|||
for the package's developers. If you use it, you may have to get |
|||
all sorts of other programs in order to regenerate files that came |
|||
with the distribution. |
|||
|
|||
6. Often, you can also type `make uninstall' to remove the installed |
|||
files again. |
|||
|
|||
Compilers and Options |
|||
===================== |
|||
|
|||
Some systems require unusual options for compilation or linking that |
|||
the `configure' script does not know about. Run `./configure --help' |
|||
for details on some of the pertinent environment variables. |
|||
|
|||
You can give `configure' initial values for configuration parameters |
|||
by setting variables in the command line or in the environment. Here |
|||
is an example: |
|||
|
|||
./configure CC=c99 CFLAGS=-g LIBS=-lposix |
|||
|
|||
*Note Defining Variables::, for more details. |
|||
|
|||
Compiling For Multiple Architectures |
|||
==================================== |
|||
|
|||
You can compile the package for more than one kind of computer at the |
|||
same time, by placing the object files for each architecture in their |
|||
own directory. To do this, you can use GNU `make'. `cd' to the |
|||
directory where you want the object files and executables to go and run |
|||
the `configure' script. `configure' automatically checks for the |
|||
source code in the directory that `configure' is in and in `..'. |
|||
|
|||
With a non-GNU `make', it is safer to compile the package for one |
|||
architecture at a time in the source code directory. After you have |
|||
installed the package for one architecture, use `make distclean' before |
|||
reconfiguring for another architecture. |
|||
|
|||
On MacOS X 10.5 and later systems, you can create libraries and |
|||
executables that work on multiple system types--known as "fat" or |
|||
"universal" binaries--by specifying multiple `-arch' options to the |
|||
compiler but only a single `-arch' option to the preprocessor. Like |
|||
this: |
|||
|
|||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ |
|||
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ |
|||
CPP="gcc -E" CXXCPP="g++ -E" |
|||
|
|||
This is not guaranteed to produce working output in all cases, you |
|||
may have to build one architecture at a time and combine the results |
|||
using the `lipo' tool if you have problems. |
|||
|
|||
Installation Names |
|||
================== |
|||
|
|||
By default, `make install' installs the package's commands under |
|||
`/usr/local/bin', include files under `/usr/local/include', etc. You |
|||
can specify an installation prefix other than `/usr/local' by giving |
|||
`configure' the option `--prefix=PREFIX'. |
|||
|
|||
You can specify separate installation prefixes for |
|||
architecture-specific files and architecture-independent files. If you |
|||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses |
|||
PREFIX as the prefix for installing programs and libraries. |
|||
Documentation and other data files still use the regular prefix. |
|||
|
|||
In addition, if you use an unusual directory layout you can give |
|||
options like `--bindir=DIR' to specify different values for particular |
|||
kinds of files. Run `configure --help' for a list of the directories |
|||
you can set and what kinds of files go in them. |
|||
|
|||
If the package supports it, you can cause programs to be installed |
|||
with an extra prefix or suffix on their names by giving `configure' the |
|||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. |
|||
|
|||
Optional Features |
|||
================= |
|||
|
|||
Some packages pay attention to `--enable-FEATURE' options to |
|||
`configure', where FEATURE indicates an optional part of the package. |
|||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE |
|||
is something like `gnu-as' or `x' (for the X Window System). The |
|||
`README' should mention any `--enable-' and `--with-' options that the |
|||
package recognizes. |
|||
|
|||
For packages that use the X Window System, `configure' can usually |
|||
find the X include and library files automatically, but if it doesn't, |
|||
you can use the `configure' options `--x-includes=DIR' and |
|||
`--x-libraries=DIR' to specify their locations. |
|||
|
|||
Particular systems |
|||
================== |
|||
|
|||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU |
|||
CC is not installed, it is recommended to use the following options in |
|||
order to use an ANSI C compiler: |
|||
|
|||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500" |
|||
|
|||
and if that doesn't work, install pre-built binaries of GCC for HP-UX. |
|||
|
|||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot |
|||
parse its `<wchar.h>' header file. The option `-nodtk' can be used as |
|||
a workaround. If GNU CC is not installed, it is therefore recommended |
|||
to try |
|||
|
|||
./configure CC="cc" |
|||
|
|||
and if that doesn't work, try |
|||
|
|||
./configure CC="cc -nodtk" |
|||
|
|||
On Solaris, don't put `/usr/ucb' early in your `PATH'. This |
|||
directory contains several dysfunctional programs; working variants of |
|||
these programs are available in `/usr/bin'. So, if you need `/usr/ucb' |
|||
in your `PATH', put it _after_ `/usr/bin'. |
|||
|
|||
On Haiku, software installed for all users goes in `/boot/common', |
|||
not `/usr/local'. It is recommended to use the following options: |
|||
|
|||
./configure --prefix=/boot/common |
|||
|
|||
Specifying the System Type |
|||
========================== |
|||
|
|||
There may be some features `configure' cannot figure out |
|||
automatically, but needs to determine by the type of machine the package |
|||
will run on. Usually, assuming the package is built to be run on the |
|||
_same_ architectures, `configure' can figure that out, but if it prints |
|||
a message saying it cannot guess the machine type, give it the |
|||
`--build=TYPE' option. TYPE can either be a short name for the system |
|||
type, such as `sun4', or a canonical name which has the form: |
|||
|
|||
CPU-COMPANY-SYSTEM |
|||
|
|||
where SYSTEM can have one of these forms: |
|||
|
|||
OS |
|||
KERNEL-OS |
|||
|
|||
See the file `config.sub' for the possible values of each field. If |
|||
`config.sub' isn't included in this package, then this package doesn't |
|||
need to know the machine type. |
|||
|
|||
If you are _building_ compiler tools for cross-compiling, you should |
|||
use the option `--target=TYPE' to select the type of system they will |
|||
produce code for. |
|||
|
|||
If you want to _use_ a cross compiler, that generates code for a |
|||
platform different from the build platform, you should specify the |
|||
"host" platform (i.e., that on which the generated programs will |
|||
eventually be run) with `--host=TYPE'. |
|||
|
|||
Sharing Defaults |
|||
================ |
|||
|
|||
If you want to set default values for `configure' scripts to share, |
|||
you can create a site shell script called `config.site' that gives |
|||
default values for variables like `CC', `cache_file', and `prefix'. |
|||
`configure' looks for `PREFIX/share/config.site' if it exists, then |
|||
`PREFIX/etc/config.site' if it exists. Or, you can set the |
|||
`CONFIG_SITE' environment variable to the location of the site script. |
|||
A warning: not all `configure' scripts look for a site script. |
|||
|
|||
Defining Variables |
|||
================== |
|||
|
|||
Variables not defined in a site shell script can be set in the |
|||
environment passed to `configure'. However, some packages may run |
|||
configure again during the build, and the customized values of these |
|||
variables may be lost. In order to avoid this problem, you should set |
|||
them in the `configure' command line, using `VAR=value'. For example: |
|||
|
|||
./configure CC=/usr/local2/bin/gcc |
|||
|
|||
causes the specified `gcc' to be used as the C compiler (unless it is |
|||
overridden in the site shell script). |
|||
|
|||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to |
|||
an Autoconf bug. Until the bug is fixed you can use this workaround: |
|||
|
|||
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash |
|||
|
|||
`configure' Invocation |
|||
====================== |
|||
|
|||
`configure' recognizes the following options to control how it |
|||
operates. |
|||
|
|||
`--help' |
|||
`-h' |
|||
Print a summary of all of the options to `configure', and exit. |
|||
|
|||
`--help=short' |
|||
`--help=recursive' |
|||
Print a summary of the options unique to this package's |
|||
`configure', and exit. The `short' variant lists options used |
|||
only in the top level, while the `recursive' variant lists options |
|||
also present in any nested packages. |
|||
|
|||
`--version' |
|||
`-V' |
|||
Print the version of Autoconf used to generate the `configure' |
|||
script, and exit. |
|||
|
|||
`--cache-file=FILE' |
|||
Enable the cache: use and save the results of the tests in FILE, |
|||
traditionally `config.cache'. FILE defaults to `/dev/null' to |
|||
disable caching. |
|||
|
|||
`--config-cache' |
|||
`-C' |
|||
Alias for `--cache-file=config.cache'. |
|||
|
|||
`--quiet' |
|||
`--silent' |
|||
`-q' |
|||
Do not print messages saying which checks are being made. To |
|||
suppress all normal output, redirect it to `/dev/null' (any error |
|||
messages will still be shown). |
|||
|
|||
`--srcdir=DIR' |
|||
Look for the package's source code in directory DIR. Usually |
|||
`configure' can determine that directory automatically. |
|||
|
|||
`--prefix=DIR' |
|||
Use DIR as the installation prefix. *Note Installation Names:: |
|||
for more details, including other options available for fine-tuning |
|||
the installation locations. |
|||
|
|||
`--no-create' |
|||
`-n' |
|||
Run the configure checks, but stop before creating any output |
|||
files. |
|||
|
|||
`configure' also accepts some other, not widely useful, options. Run |
|||
`configure --help' for more details. |
|||
|
@ -0,0 +1,80 @@ |
|||
##
|
|||
## Author: Lasse Collin
|
|||
##
|
|||
## This file has been put into the public domain.
|
|||
## You can do whatever you want with this file.
|
|||
##
|
|||
|
|||
DIST_SUBDIRS = lib src po tests debug |
|||
SUBDIRS = |
|||
|
|||
if COND_GNULIB |
|||
SUBDIRS += lib |
|||
endif |
|||
|
|||
SUBDIRS += src po tests |
|||
|
|||
dist_doc_DATA = \
|
|||
AUTHORS \
|
|||
COPYING \
|
|||
COPYING.GPLv2 \
|
|||
NEWS \
|
|||
README \
|
|||
THANKS \
|
|||
TODO \
|
|||
doc/faq.txt \
|
|||
doc/history.txt \
|
|||
doc/xz-file-format.txt \
|
|||
doc/lzma-file-format.txt |
|||
|
|||
EXTRA_DIST = \
|
|||
extra \
|
|||
dos \
|
|||
windows \
|
|||
autogen.sh \
|
|||
version.sh \
|
|||
Doxyfile.in \
|
|||
COPYING.GPLv2 \
|
|||
COPYING.GPLv3 \
|
|||
COPYING.LGPLv2.1 \
|
|||
INSTALL.generic \
|
|||
PACKAGERS |
|||
|
|||
ACLOCAL_AMFLAGS = -I m4 |
|||
|
|||
# List of man pages to conver to PDF and plain text in the dist-hook target.
|
|||
manfiles = \
|
|||
src/xz/xz.1 \
|
|||
src/xzdec/xzdec.1 \
|
|||
src/scripts/xzdiff.1 \
|
|||
src/scripts/xzgrep.1 \
|
|||
src/scripts/xzless.1 \
|
|||
src/scripts/xzmore.1 |
|||
|
|||
# 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 ) \
|
|||
> "$(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` && \
|
|||
groff -man -t -Tps -P-pa4 < "$(srcdir)/$$FILE" \
|
|||
| ps2pdf - - \
|
|||
> "$$dest/pdf-a4/$$BASE-a4.pdf" && \
|
|||
groff -man -t -Tps -P-pletter < "$(srcdir)/$$FILE" \
|
|||
| ps2pdf - - \
|
|||
> "$$dest/pdf-letter/$$BASE-letter.pdf" && \
|
|||
groff -man -t -Tascii < "$(srcdir)/$$FILE" \
|
|||
| col -bx > "$$dest/txt/$$BASE.txt"; \
|
|||
done; \
|
|||
fi |
|||
|
|||
# This works with GNU tar and gives cleaner package than normal 'make dist'.
|
|||
mydist: |
|||
TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w' \
|
|||
$(MAKE) dist-gzip |
@ -0,0 +1,887 @@ |
|||
# Makefile.in generated by automake 1.11 from Makefile.am.
|
|||
# @configure_input@
|
|||
|
|||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
|||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
|||
# Inc.
|
|||
# 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@ |
|||
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 = . |
|||
DIST_COMMON = README $(am__configure_deps) $(dist_doc_DATA) \
|
|||
$(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \
|
|||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
|||
$(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \
|
|||
INSTALL NEWS 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 |
|||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
|||
am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
|
|||
$(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettext.m4 \
|
|||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lc_cpucores.m4 \
|
|||
$(top_srcdir)/m4/lc_physmem.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/visibility.m4 \
|
|||
$(top_srcdir)/configure.ac |
|||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|||
$(ACLOCAL_M4) |
|||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
|||
configure.lineno config.status.lineno |
|||
mkinstalldirs = $(install_sh) -d |
|||
CONFIG_HEADER = config.h |
|||
CONFIG_CLEAN_FILES = Doxyfile |
|||
CONFIG_CLEAN_VPATH_FILES = |
|||
SOURCES = |
|||
DIST_SOURCES = |
|||
RECURSIVE_TARGETS = all-recursive check-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 uninstall-recursive |
|||
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__installdirs = "$(DESTDIR)$(docdir)" |
|||
DATA = $(dist_doc_DATA) |
|||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
|||
distclean-recursive maintainer-clean-recursive |
|||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
|||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
|||
distdir dist dist-all distcheck |
|||
ETAGS = etags |
|||
CTAGS = ctags |
|||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
|||
distdir = $(PACKAGE)-$(VERSION) |
|||
top_distdir = $(distdir) |
|||
am__remove_distdir = \
|
|||
{ test ! -d "$(distdir)" \
|
|||
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
|||
&& rm -fr "$(distdir)"; }; } |
|||
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 |
|||
GZIP_ENV = --best |
|||
distuninstallcheck_listfiles = find . -type f -print |
|||
distcleancheck_listfiles = find . -type f -print |
|||
ACLOCAL = @ACLOCAL@ |
|||
AMTAR = @AMTAR@ |
|||
AM_CFLAGS = @AM_CFLAGS@ |
|||
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@ |
|||
CYGPATH_W = @CYGPATH_W@ |
|||
DEFS = @DEFS@ |
|||
DEPDIR = @DEPDIR@ |
|||
DLLTOOL = @DLLTOOL@ |
|||
DSYMUTIL = @DSYMUTIL@ |
|||
DUMPBIN = @DUMPBIN@ |
|||
DYNAMIC_CPPFLAGS = @DYNAMIC_CPPFLAGS@ |
|||
DYNAMIC_LDFLAGS = @DYNAMIC_LDFLAGS@ |
|||
ECHO_C = @ECHO_C@ |
|||
ECHO_N = @ECHO_N@ |
|||
ECHO_T = @ECHO_T@ |
|||
EGREP = @EGREP@ |
|||
EXEEXT = @EXEEXT@ |
|||
FGREP = @FGREP@ |
|||
GETOPT_H = @GETOPT_H@ |
|||
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_S = @LN_S@ |
|||
LTLIBICONV = @LTLIBICONV@ |
|||
LTLIBINTL = @LTLIBINTL@ |
|||
LTLIBOBJS = @LTLIBOBJS@ |
|||
MAKEINFO = @MAKEINFO@ |
|||
MKDIR_P = @MKDIR_P@ |
|||
MSGFMT = @MSGFMT@ |
|||
MSGFMT_015 = @MSGFMT_015@ |
|||
MSGMERGE = @MSGMERGE@ |
|||
NM = @NM@ |
|||
NMEDIT = @NMEDIT@ |
|||
OBJDUMP = @OBJDUMP@ |
|||
OBJEXT = @OBJEXT@ |
|||
OTOOL = @OTOOL@ |
|||
OTOOL64 = @OTOOL64@ |
|||
PACKAGE = @PACKAGE@ |
|||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
|||
PACKAGE_HOMEPAGE = @PACKAGE_HOMEPAGE@ |
|||
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_LIBS = @PTHREAD_LIBS@ |
|||
RANLIB = @RANLIB@ |
|||
RC = @RC@ |
|||
SED = @SED@ |
|||
SET_MAKE = @SET_MAKE@ |
|||
SHELL = @SHELL@ |
|||
STATIC_CPPFLAGS = @STATIC_CPPFLAGS@ |
|||
STATIC_LDFLAGS = @STATIC_LDFLAGS@ |
|||
STRIP = @STRIP@ |
|||
USE_NLS = @USE_NLS@ |
|||
VERSION = @VERSION@ |
|||
XGETTEXT = @XGETTEXT@ |
|||
XGETTEXT_015 = @XGETTEXT_015@ |
|||
abs_builddir = @abs_builddir@ |
|||
abs_srcdir = @abs_srcdir@ |
|||
abs_top_builddir = @abs_top_builddir@ |
|||
abs_top_srcdir = @abs_top_srcdir@ |
|||
ac_ct_CC = @ac_ct_CC@ |
|||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
|||
acx_pthread_config = @acx_pthread_config@ |
|||
am__include = @am__include@ |
|||
am__leading_dot = @am__leading_dot@ |
|||
am__quote = @am__quote@ |
|||
am__tar = @am__tar@ |
|||
am__untar = @am__untar@ |
|||
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@ |
|||
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@ |
|||
localstatedir = @localstatedir@ |
|||
lt_ECHO = @lt_ECHO@ |
|||
mandir = @mandir@ |
|||
mkdir_p = @mkdir_p@ |
|||
oldincludedir = @oldincludedir@ |
|||
pdfdir = @pdfdir@ |
|||
prefix = @prefix@ |
|||
program_transform_name = @program_transform_name@ |
|||
psdir = @psdir@ |
|||
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@ |
|||
DIST_SUBDIRS = lib src po tests debug |
|||
SUBDIRS = $(am__append_1) src po tests |
|||
dist_doc_DATA = \
|
|||
AUTHORS \
|
|||
COPYING \
|
|||
COPYING.GPLv2 \
|
|||
NEWS \
|
|||
README \
|
|||
THANKS \
|
|||
TODO \
|
|||
doc/faq.txt \
|
|||
doc/history.txt \
|
|||
doc/xz-file-format.txt \
|
|||
doc/lzma-file-format.txt |
|||
|
|||
EXTRA_DIST = \
|
|||
extra \
|
|||
dos \
|
|||
windows \
|
|||
autogen.sh \
|
|||
version.sh \
|
|||
Doxyfile.in \
|
|||
COPYING.GPLv2 \
|
|||
COPYING.GPLv3 \
|
|||
COPYING.LGPLv2.1 \
|
|||
INSTALL.generic \
|
|||
PACKAGERS |
|||
|
|||
ACLOCAL_AMFLAGS = -I m4 |
|||
|
|||
# List of man pages to conver to PDF and plain text in the dist-hook target.
|
|||
manfiles = \
|
|||
src/xz/xz.1 \
|
|||
src/xzdec/xzdec.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: |
|||
@: |
|||
$(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 |
|||
.PRECIOUS: 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__depfiles_maybe)'; \
|
|||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
|||
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 |
|||
@if test ! -f $@; then \
|
|||
rm -f stamp-h1; \
|
|||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
|||
else :; fi |
|||
|
|||
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 |
|||
Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in |
|||
cd $(top_builddir) && $(SHELL) ./config.status $@ |
|||
|
|||
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) |
|||
test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" |
|||
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
|
|||
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|^.*/||'`; \
|
|||
test -n "$$files" || exit 0; \
|
|||
echo " ( cd '$(DESTDIR)$(docdir)' && rm -f" $$files ")"; \
|
|||
cd "$(DESTDIR)$(docdir)" && rm -f $$files |
|||
|
|||
# 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.
|
|||
$(RECURSIVE_TARGETS): |
|||
@failcom='exit 1'; \
|
|||
for f in x $$MAKEFLAGS; do \
|
|||
case $$f in \
|
|||
*=* | --[!k]*);; \
|
|||
*k*) failcom='fail=yes';; \
|
|||
esac; \
|
|||
done; \
|
|||
dot_seen=no; \
|
|||
target=`echo $@ | sed s/-recursive//`; \
|
|||
list='$(SUBDIRS)'; 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" |
|||
|
|||
$(RECURSIVE_CLEAN_TARGETS): |
|||
@failcom='exit 1'; \
|
|||
for f in x $$MAKEFLAGS; do \
|
|||
case $$f in \
|
|||
*=* | --[!k]*);; \
|
|||
*k*) failcom='fail=yes';; \
|
|||
esac; \
|
|||
done; \
|
|||
dot_seen=no; \
|
|||
case "$@" in \
|
|||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
|||
*) list='$(SUBDIRS)' ;; \
|
|||
esac; \
|
|||
rev=''; for subdir in $$list; do \
|
|||
if test "$$subdir" = "."; then :; else \
|
|||
rev="$$subdir $$rev"; \
|
|||
fi; \
|
|||
done; \
|
|||
rev="$$rev ."; \
|
|||
target=`echo $@ | sed s/-recursive//`; \
|
|||
for subdir in $$rev; do \
|
|||
echo "Making $$target in $$subdir"; \
|
|||
if test "$$subdir" = "."; then \
|
|||
local_target="$$target-am"; \
|
|||
else \
|
|||
local_target="$$target"; \
|
|||
fi; \
|
|||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
|||
|| eval $$failcom; \
|
|||
done && test -z "$$fail" |
|||
tags-recursive: |
|||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
|||
done |
|||
ctags-recursive: |
|||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
|||
done |
|||
|
|||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) |
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
mkid -fID $$unique |
|||
tags: TAGS |
|||
|
|||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
|||
$(TAGS_FILES) $(LISP) |
|||
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; \
|
|||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
shift; \
|
|||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
|||
test -n "$$unique" || unique=$$empty_fix; \
|
|||
if test $$# -gt 0; then \ |
|||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|||
"$$@" $$unique; \
|
|||
else \
|
|||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|||
$$unique; \
|
|||
fi; \
|
|||
fi |
|||
ctags: CTAGS |
|||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
|||
$(TAGS_FILES) $(LISP) |
|||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
test -z "$(CTAGS_ARGS)$$unique" \
|
|||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|||
$$unique |
|||
|
|||
GTAGS: |
|||
here=`$(am__cd) $(top_builddir) && pwd` \
|
|||
&& $(am__cd) $(top_srcdir) \
|
|||
&& gtags -i $(GTAGS_ARGS) "$$here" |
|||
|
|||
distclean-tags: |
|||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
|||
|
|||
distdir: $(DISTFILES) |
|||
$(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 \
|
|||
test -d "$(distdir)/$$subdir" \
|
|||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
|||
|| exit 1; \
|
|||
fi; \
|
|||
done |
|||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
|||
if test "$$subdir" = .; then :; else \
|
|||
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 -777 -exec chmod a+rwx {} \; -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) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz |
|||
$(am__remove_distdir) |
|||
|
|||
dist-bzip2: distdir |
|||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 |
|||
$(am__remove_distdir) |
|||
|
|||
dist-lzma: distdir |
|||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma |
|||
$(am__remove_distdir) |
|||
|
|||
dist-xz: distdir |
|||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz |
|||
$(am__remove_distdir) |
|||
|
|||
dist-tarZ: distdir |
|||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z |
|||
$(am__remove_distdir) |
|||
|
|||
dist-shar: distdir |
|||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz |
|||
$(am__remove_distdir) |
|||
|
|||
dist-zip: distdir |
|||
-rm -f $(distdir).zip |
|||
zip -rq $(distdir).zip $(distdir) |
|||
$(am__remove_distdir) |
|||
|
|||
dist dist-all: distdir |
|||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz |
|||
$(am__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*) \
|
|||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
|||
*.tar.bz2*) \
|
|||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
|||
*.tar.lzma*) \
|
|||
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
|
|||
*.tar.xz*) \
|
|||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
|||
*.tar.Z*) \
|
|||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
|||
*.shar.gz*) \
|
|||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
|||
*.zip*) \
|
|||
unzip $(distdir).zip ;;\
|
|||
esac |
|||
chmod -R a-w $(distdir); chmod a+w $(distdir) |
|||
mkdir $(distdir)/_build |
|||
mkdir $(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 \
|
|||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
|||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
|||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
|||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
|||
&& $(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__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: |
|||
@$(am__cd) '$(distuninstallcheck_dir)' \
|
|||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
|||
|| { 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)"; 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: |
|||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|||
`test -z '$(STRIP)' || \
|
|||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install |
|||
mostlyclean-generic: |
|||
|
|||
clean-generic: |
|||
|
|||
distclean-generic: |
|||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
|||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
|||
|
|||
maintainer-clean-generic: |
|||
@echo "This command is intended for maintainers to use" |
|||
@echo "it deletes files that may require special tools to rebuild." |
|||
clean: clean-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-dist_docDATA |
|||
|
|||
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 |
|||
|
|||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ |
|||
ctags-recursive install-am install-strip tags-recursive |
|||
|
|||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ |
|||
all all-am am--refresh check check-am clean clean-generic \
|
|||
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
|
|||
dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \
|
|||
dist-zip distcheck distclean distclean-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-dist_docDATA 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-recursive \
|
|||
uninstall uninstall-am uninstall-dist_docDATA |
|||
|
|||
|
|||
# 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 ) \
|
|||
> "$(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` && \
|
|||
groff -man -t -Tps -P-pa4 < "$(srcdir)/$$FILE" \
|
|||
| ps2pdf - - \
|
|||
> "$$dest/pdf-a4/$$BASE-a4.pdf" && \
|
|||
groff -man -t -Tps -P-pletter < "$(srcdir)/$$FILE" \
|
|||
| ps2pdf - - \
|
|||
> "$$dest/pdf-letter/$$BASE-letter.pdf" && \
|
|||
groff -man -t -Tascii < "$(srcdir)/$$FILE" \
|
|||
| col -bx > "$$dest/txt/$$BASE.txt"; \
|
|||
done; \
|
|||
fi |
|||
|
|||
# This works with GNU tar and gives cleaner package than normal 'make dist'.
|
|||
mydist: |
|||
TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w' \
|
|||
$(MAKE) 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: |
@ -0,0 +1,279 @@ |
|||
|
|||
Information to packagers of XZ Utils |
|||
==================================== |
|||
|
|||
0. Preface |
|||
1. Package naming |
|||
2. Package description |
|||
3. License |
|||
4. configure options |
|||
4.1. Static vs. dynamic linking of liblzma |
|||
4.2. Optimizing xzdec and lzmadec |
|||
5. Additional documentation |
|||
6. Extra files |
|||
7. Installing XZ Utils and LZMA Utils in parallel |
|||
8. Example |
|||
|
|||
|
|||
0. Preface |
|||
---------- |
|||
|
|||
This document is meant for people who create and maintain XZ Utils |
|||
packages for operating system distributions. The focus is on GNU/Linux |
|||
systems, but most things apply to other systems too. |
|||
|
|||
While the standard "configure && make DESTDIR=$PKG install" should |
|||
give a pretty good package, there are some details which packagers |
|||
may want to tweak. |
|||
|
|||
Packagers should also read the INSTALL file. |
|||
|
|||
|
|||
1. Package naming |
|||
----------------- |
|||
|
|||
The preferred name for the XZ Utils package is "xz", because that's |
|||
the name of the upstream tarball. Naturally you may have good reasons |
|||
to use some other name; I won't get angry about it. ;-) It's just nice |
|||
to be able to point people to the correct package name without asking |
|||
what distro they have. |
|||
|
|||
If your distro policy is to split things into small pieces, here is |
|||
one suggestion: |
|||
|
|||
xz xz, xzdec, scripts (xzdiff, xzgrep, etc.), docs |
|||
xz-lzma lzma, unlzma, lzcat, lzgrep etc. symlinks and |
|||
lzmadec binary for compatibility with LZMA Utils |
|||
liblzma liblzma.so.* |
|||
liblzma-devel liblzma.so, liblzma.a, API headers |
|||
|
|||
|
|||
2. Package description |
|||
---------------------- |
|||
|
|||
Here is a suggestion which you may use as the package description. |
|||
If you can use only one-line description, pick only the first line. |
|||
Naturally, feel free to use some other description if you find it |
|||
better, and maybe send it to me too. |
|||
|
|||
Library and command line tools for XZ and LZMA compressed files |
|||
|
|||
XZ Utils provide a general purpose data compression library |
|||
and command line tools. The native file format is the .xz |
|||
format, but also the legacy .lzma format is supported. The .xz |
|||
format supports multiple compression algorithms, of which LZMA2 |
|||
is currently the primary algorithm. With typical files, XZ Utils |
|||
create about 30 % smaller files than gzip. |
|||
|
|||
If you are splitting XZ Utils into multiple packages, here are some |
|||
suggestions for package descriptions: |
|||
|
|||
xz: |
|||
|
|||
Command line tools for XZ and LZMA compressed files |
|||
|
|||
This package includes the xz compression tool and other command |
|||
line tools from XZ Utils. xz has command line syntax similar to |
|||
that of gzip. The native file format is the .xz format, but also |
|||
the legacy .lzma format is supported. The .xz format supports |
|||
multiple compression algorithms, of which LZMA2 is currently the |
|||
primary algorithm. With typical files, XZ Utils create about 30 % |
|||
smaller files than gzip. |
|||
|
|||
Note that this package doesn't include the files needed for |
|||
LZMA Utils 4.32.x compatibility. Install also the xz-lzma |
|||
package to make XZ Utils emulate LZMA Utils 4.32.x. |
|||
|
|||
xz-lzma: |
|||
|
|||
LZMA Utils emulation with XZ Utils |
|||
|
|||
This package includes executables and symlinks to make |
|||
XZ Utils emulate lzma, unlzma, lzcat, and other command |
|||
line tools found from the legacy LZMA Utils 4.32.x package. |
|||
|
|||
liblzma: |
|||
|
|||
Library for XZ and LZMA compressed files |
|||
|
|||
liblzma is a general purpose data compression library with |
|||
an API similar to that of zlib. liblzma supports multiple |
|||
algorithms, of which LZMA2 is currently the primary algorithm. |
|||
The native file format is .xz, but also the legacy .lzma |
|||
format and raw streams (no headers at all) are supported. |
|||
|
|||
This package includes the shared library. |
|||
|
|||
liblzma-devel: |
|||
|
|||
Library for XZ and LZMA compressed files |
|||
|
|||
This package includes the API headers, static library, and |
|||
other development files related to liblzma. |
|||
|
|||
|
|||
3. License |
|||
---------- |
|||
|
|||
If the package manager supports a license field, you probably should |
|||
put GPLv2+ there (GNU GPL v2 or later). The interesting parts of |
|||
XZ Utils are in the public domain, but some less important files |
|||
ending up into the binary package are under GPLv2+. So it is simplest |
|||
to just say GPLv2+ if you cannot specify "public domain and GPLv2+". |
|||
|
|||
If you split XZ Utils into multiple packages as described earlier |
|||
in this file, liblzma and liblzma-dev packages will contain only |
|||
public domain code (from XZ Utils at least; compiler or linker may |
|||
add some third-party code, which may be copyrighted). |
|||
|
|||
|
|||
4. configure options |
|||
-------------------- |
|||
|
|||
Unless you are building a package for a distribution that is meant |
|||
only for embedded systems, don't use the following configure options: |
|||
|
|||
--enable-debug |
|||
--enable-encoders (*) |
|||
--enable-decoders |
|||
--enable-match-finders |
|||
--enable-checks |
|||
--enable-small (*) |
|||
--disable-threads (*) |
|||
|
|||
(*) These are OK when building xzdec and lzmadec as explained later. |
|||
|
|||
You may use --enable-werror but be careful with it since it may break |
|||
the build due to some useless warning when the build environment |
|||
changes (like CPU architecture or compiler version). |
|||
|
|||
|
|||
4.1. Static vs. dynamic linking of liblzma |
|||
|
|||
The default is to link the most important command line tools against |
|||
static liblzma, and the less important tools against shared liblzma. |
|||
This can be changed by passing --enable-dynamic to configure, or by |
|||
not building static libraries at all by passing --disable-static |
|||
to configure. It is mildly recommended that you use the default, but |
|||
the configure options make it easy to do otherwise if the distro policy |
|||
so requires. |
|||
|
|||
On 32-bit x86, linking against static liblzma can give a minor |
|||
speed improvement. Static libraries on x86 are usually compiled as |
|||
position-dependent code (non-PIC) and shared libraries are built as |
|||
position-independent code (PIC). PIC wastes one register, which can |
|||
make the code slightly slower compared to a non-PIC version. (Note |
|||
that this doesn't apply to x86-64.) |
|||
|
|||
Linking against static liblzma avoids a dependency on liblzma shared |
|||
library, and makes it slightly easier to copy the command line tools |
|||
between systems (e.g. quick 'n' dirty emergency recovery of some |
|||
files). It also allows putting the command line tools to /bin while |
|||
leaving liblzma to /usr/lib (assuming that your distribution uses |
|||
such a file system hierarchy), if no other file in /bin would require |
|||
liblzma. |
|||
|
|||
If you don't want to distribute static libraries but you still |
|||
want to link the command line tools against static liblzma, it is |
|||
probably easiest to build both static and shared liblzma, but after |
|||
"make DESTDIR=$PKG install" remove liblzma.a and modify liblzma.la |
|||
to not contain a reference to liblzma.a. |
|||
|
|||
|
|||
4.2. Optimizing xzdec and lzmadec |
|||
|
|||
xzdec and lzmadec are intended to be relatively small instead of |
|||
optimizing for the best speed. Thus, it is a good idea to build |
|||
xzdec and lzmadec separately: |
|||
|
|||
- Only decoder code is needed, so you can speed up the build |
|||
slightly by passing --disable-encoders to configure. This |
|||
shouldn't affect the final size of the executables though, |
|||
because the linker is able to omit the encoder code anyway. |
|||
|
|||
- xzdec and lzmadec will never use multithreading capabilities of |
|||
liblzma. You can avoid dependency on libpthread by passing |
|||
--disable-threads to configure. |
|||
|
|||
- There are and will be no translated messages for xzdec and |
|||
lzmadec, so it is fine to pass also --disable-nls to configure. |
|||
|
|||
- To select somewhat size-optimized variant of some things in |
|||
liblzma, pass --enable-small to configure. |
|||
|
|||
- Tell the compiler to optimize for size instead of speed. |
|||
E.g. with GCC, put -Os into CFLAGS. |
|||
|
|||
|
|||
5. Additional documentation |
|||
--------------------------- |
|||
|
|||
"make install" copies some additional documentation to $docdir |
|||
(--docdir in configure). These a copy of the GNU GPL v2, which can |
|||
be replaced with a symlink if your distro ships with shared copies |
|||
of the common license texts. |
|||
|
|||
|
|||
6. Extra files |
|||
-------------- |
|||
|
|||
The "extra" directory contains some small extra tools or other files. |
|||
The exact set of extra files can vary between XZ Utils releases. The |
|||
extra files have only limited use or they are too dangerous to be |
|||
put directly to $bindir (7z2lzma.sh is a good example, since it can |
|||
silently create corrupt output if certain conditions are not met). |
|||
|
|||
If you feel like it, you may copy the extra directory under the doc |
|||
directory (e.g. /usr/share/doc/xz/extra). Maybe some people will find |
|||
them useful. However, most people needing these tools probably are |
|||
able to find them from the source package too. |
|||
|
|||
The "debug" directory contains some tools that are useful only when |
|||
hacking on XZ Utils. Don't package these tools. |
|||
|
|||
|
|||
7. Installing XZ Utils and LZMA Utils in parallel |
|||
------------------------------------------------- |
|||
|
|||
XZ Utils and LZMA Utils 4.32.x can be installed in parallel by |
|||
omitting the compatibility symlinks (lzma, unlzma, lzcat, lzgrep etc.) |
|||
from the XZ Utils package. It's probably a good idea to still package |
|||
the symlinks into a separate package so that users may choose if they |
|||
want to use XZ Utils or LZMA Utils for handling .lzma files. |
|||
|
|||
|
|||
8. Example |
|||
---------- |
|||
|
|||
Here is an example for i686 GNU/Linux that |
|||
- links xz against static liblzma; |
|||
- includes only shared liblzma in the final package; |
|||
- links xzdec and lzmadec against static liblzma while |
|||
avoiding libpthread dependency. |
|||
|
|||
PKG=/tmp/xz-pkg |
|||
tar xf xz-x.y.z.tar.gz |
|||
cd xz-x.y.z |
|||
./configure \ |
|||
--prefix=/usr \ |
|||
--sysconfdir=/etc \ |
|||
CFLAGS='-march=i686 -O2' |
|||
make |
|||
make DESTDIR=$PKG install-strip |
|||
rm -f $PKG/usr/lib/lib*.a |
|||
sed -i "s/^old_library=.*$/old_library=''/" $PKG/usr/lib/lib*.la |
|||
make clean |
|||
./configure \ |
|||
--prefix=/usr \ |
|||
--sysconfdir=/etc \ |
|||
--disable-shared \ |
|||
--disable-nls \ |
|||
--disable-encoders \ |
|||
--enable-small \ |
|||
--disable-threads \ |
|||
CFLAGS='-march=i686 -Os' |
|||
make -C src/liblzma |
|||
make -C src/xzdec |
|||
make -C src/xzdec DESTDIR=$PKG install-strip |
|||
cp -a extra $PKG/usr/share/doc/xz |
|||
|
@ -0,0 +1,217 @@ |
|||
|
|||
XZ Utils |
|||
======== |
|||
|
|||
0. Overview |
|||
1. Documentation |
|||
1.1. Overall documentation |
|||
1.2. Documentation for command line tools |
|||
1.3. Documentation for liblzma |
|||
2. Version numbering |
|||
3. Reporting bugs |
|||
4. Other implementations of the .xz format |
|||
5. Contact information |
|||
|
|||
|
|||
0. Overview |
|||
----------- |
|||
|
|||
XZ Utils provide a general purporse data compression library and |
|||
command line tools. The native file format is the .xz format, but |
|||
also the legacy .lzma format is supported. The .xz format supports |
|||
multiple compression algorithms, which are called "filters" in |
|||
context of XZ Utils. The primary filter is currently LZMA2. With |
|||
typical files, XZ Utils create about 30 % smaller files than gzip. |
|||
|
|||
To ease adapting support for the .xz format into existing applications |
|||
and scripts, the API of liblzma is somewhat similar to the API of the |
|||
popular zlib library. For the same reason, the command line tool xz |
|||
has similar command line syntax than that of gzip. |
|||
|
|||
When aiming for the highest compression ratio, LZMA2 encoder uses |
|||
a lot of CPU time and may use, depending on the settings, even |
|||
hundreds of megabytes of RAM. However, in fast modes, LZMA2 encoder |
|||
competes with bzip2 in compression speed, RAM usage, and compression |
|||
ratio. |
|||
|
|||
LZMA2 is reasonably fast to decompress. It is a little slower than |
|||
gzip, but a lot faster than bzip2. Being fast to decompress means |
|||
that the .xz format is especially nice when the same file will be |
|||
decompressed very many times (usually on different computers), which |
|||
is the case e.g. when distributing software packages. In such |
|||
situations, it's not too bad if the compression takes some time, |
|||
since that needs to be done only once to benefit many people. |
|||
|
|||
With some file types, combining (or "chaining") LZMA2 with an |
|||
additional filter can improve compression ratio. A filter chain may |
|||
contain up to four filters, although usually only one two is used. |
|||
For example, putting a BCJ (Branch/Call/Jump) filter before LZMA2 |
|||
in the filter chain can improve compression ratio of executable files. |
|||
|
|||
Since the .xz format allows adding new filter IDs, it is possible that |
|||
some day there will be a filter that is, for example, much faster to |
|||
compress than LZMA2 (but probably with worse compression ratio). |
|||
Similarly, it is possible that some day there is a filter that will |
|||
compress better than LZMA2. |
|||
|
|||
XZ Utils doesn't support multithreaded compression or decompression |
|||
yet. It has been planned though and taken into account when designing |
|||
the .xz file format. |
|||
|
|||
|
|||
1. Documentation |
|||
---------------- |
|||
|
|||
1.1. Overall documentation |
|||
|
|||
README This file |
|||
|
|||
INSTALL.generic Generic install instructions for those not familiar |
|||
with packages using GNU Autotools |
|||
INSTALL Installation instructions specific to XZ Utils |
|||
PACKAGERS Information to packagers of XZ Utils |
|||
|
|||
COPYING XZ Utils copyright and license information |
|||
COPYING.GPLv2 GNU General Public License version 2 |
|||
COPYING.GPLv3 GNU General Public License version 3 |
|||
COPYING.LGPLv2.1 GNU Lesser General Public License version 2.1 |
|||
|
|||
AUTHORS The main authors of XZ Utils |
|||
THANKS Incomplete list of people who have helped making |
|||
this software |
|||
NEWS User-visible changes between XZ Utils releases |
|||
ChangeLog Detailed list of changes (commit log) |
|||
|
|||
Note that only some of the above files are included in binary |
|||
packages. |
|||
|
|||
|
|||
1.2. Documentation for command line tools |
|||
|
|||
The command line tools are documented as man pages. In source code |
|||
releases (and possibly also in some binary packages), the man pages |
|||
are also provided in plain text (ASCII only) and PDF formats in the |
|||
directory "doc/man" to make the man pages more accessible to those |
|||
whose operating system doesn't provide an easy way to view man pages. |
|||
|
|||
|
|||
1.3. Documentation for liblzma |
|||
|
|||
The liblzma API headers include short docs about each function |
|||
and data type as Doxygen tags. These docs should be quite OK as |
|||
a quick reference. |
|||
|
|||
I have planned to write a bunch of very well documented example |
|||
programs, which (due to comments) should work as a tutorial to |
|||
various features of liblzma. No such example programs have been |
|||
written yet. |
|||
|
|||
For now, if you have never used liblzma, libbzip2, or zlib, I |
|||
recommend learning *basics* of zlib API. Once you know that, it |
|||
should be easier to learn liblzma. |
|||
|
|||
http://zlib.net/manual.html |
|||
http://zlib.net/zlib_how.html |
|||
|
|||
|
|||
2. Version numbering |
|||
-------------------- |
|||
|
|||
The version number format of XZ Utils is X.Y.ZS: |
|||
|
|||
- X is the major version. When this is incremented, the library |
|||
API and ABI break. |
|||
|
|||
- Y is the minor version. It is incremented when new features are |
|||
added without breaking existing API or ABI. Even Y indicates |
|||
stable release and odd Y indicates unstable (alpha or beta |
|||
version). |
|||
|
|||
- Z is the revision. This has different meaning for stable and |
|||
unstable releases: |
|||
* Stable: Z is incremented when bugs get fixed without adding |
|||
any new features. |
|||
* Unstable: Z is just a counter. API or ABI of features added |
|||
in earlier unstable releases having the same X.Y may break. |
|||
|
|||
- S indicates stability of the release. It is missing from the |
|||
stable releases where Y is an even number. When Y is odd, S |
|||
is either "alpha" or "beta" to make it very clear that such |
|||
versions are not stable releases. The same X.Y.Z combination is |
|||
not used for more than one stability level i.e. after X.Y.Zalpha, |
|||
the next version can be X.Y.(Z+1)beta but not X.Y.Zbeta. |
|||
|
|||
|
|||
3. Reporting bugs |
|||
----------------- |
|||
|
|||
Naturally it is easiest for me if you already know what causes the |
|||
unexpected behavior. Even better if you have a patch to propose. |
|||
However, quite often the reason for unexpected behavior is unknown, |
|||
so here are a few things to do before sending a bug report: |
|||
|
|||
1. Try to create a small example how to reprocude the issue. |
|||
|
|||
2. Compile XZ Utils with debugging code using configure switches |
|||
--enable-debug and, if possible, --disable-shared. If you are |
|||
using GCC, use CFLAGS='-O0 -ggdb3'. Don't strip the resulting |
|||
binaries. |
|||
|
|||
3. Turn on core dumps. The exact command depends on your shell; |
|||
for example in GNU bash it is done with "ulimit -c unlimited", |
|||
and in tcsh with "limit coredumpsize unlimited". |
|||
|
|||
4. Try to reproduce the suspected bug. If you get "assertion failed" |
|||
message, be sure to include the complete message in your bug |
|||
report. If the application leaves a coredump, get a backtrace |
|||
using gdb: |
|||
$ gdb /path/to/app-binary # Load the app to the debugger. |
|||
(gdb) core core # Open the coredump. |
|||
(gdb) bt # Print the backtrace. Copy & paste to bug report. |
|||
(gdb) quit # Quit gdb. |
|||
|
|||
Report your bug via email or IRC (see Contact information below). |
|||
Don't send core dump files or any executables. If you have a small |
|||
example file(s) (total size less than 256 KiB), please include |
|||
it/them as an attachment. If you have bigger test files, put them |
|||
online somewhere and include an URL to the file(s) in the bug report. |
|||
|
|||
Always include the exact version number of XZ Utils in the bug report. |
|||
If you are using a snapshot from the git repository, use "git describe" |
|||
to get the exact snapshot version. If you are using XZ Utils shipped |
|||
in an operating system distribution, mention the distribution name, |
|||
distribution version, and exact xz package version; if you cannot |
|||
repeat the bug with the code compiled from unpatched source code, |
|||
you probably need to report a bug to your distribution's bug tracking |
|||
system. |
|||
|
|||
|
|||
4. Other implementations of the .xz format |
|||
------------------------------------------ |
|||
|
|||
7-Zip and the p7zip port of 7-Zip support the .xz format starting |
|||
from the version 9.00alpha. |
|||
|
|||
http://7-zip.org/ |
|||
http://p7zip.sourceforge.net/ |
|||
|
|||
XZ Embedded is a limited implementation written for use in the Linux |
|||
kernel, but it is also suitable for other embedded use. |
|||
|
|||
http://tukaani.org/xz/embedded.html |
|||
|
|||
|
|||
5. Contact information |
|||
---------------------- |
|||
|
|||
If you have questions, bug reports, patches etc. related to XZ Utils, |
|||
contact Lasse Collin <lasse.collin@tukaani.org> (in Finnish or English). |
|||
tukaani.org uses greylisting to reduce spam, thus when you send your |
|||
first email, it may get delayed by a few hours. In addition to that, |
|||
I'm sometimes slow at replying. If you haven't got a reply within two |
|||
weeks, assume that your email has got lost and resend it or use IRC. |
|||
|
|||
You can find me also from #tukaani on Freenode; my nick is Larhzu. |
|||
The channel tends to be pretty quiet, so just ask your question and |
|||
someone may wake up. |
|||
|
@ -0,0 +1,47 @@ |
|||
|
|||
Thanks |
|||
====== |
|||
|
|||
Some people have helped more, some less, but nevertheless everyone's help |
|||
has been important. :-) In alphabetical order: |
|||
- Mark Adler |
|||
- H. Peter Anvin |
|||
- Nelson H. F. Beebe |
|||
- Anders F. Björklund |
|||
- Emmanuel Blot |
|||
- David Burklund |
|||
- Andrew Dudman |
|||
- İsmail Dönmez |
|||
- Mike Frysinger |
|||
- Per Øyvind Karlsen |
|||
- Ville Koskinen |
|||
- Stephan Kulow |
|||
- Peter Lawler |
|||
- Hin-Tak Leung |
|||
- Andraž 'ruskie' Levstik |
|||
- Jim Meyering |
|||
- Hongbo Ni |
|||
- Jonathan Nieder |
|||
- Igor Pavlov |
|||
- Mikko Pouru |
|||
- Bernhard Reutner-Fischer |
|||
- Christian von Roques |
|||
- Alexandre Sauvé |
|||
- Andreas Schwab |
|||
- Dan Shechter |
|||
- Jonathan Stott |
|||
- Paul Townsend |
|||
- Mohammed Adnène Trojette |
|||
- Patrick J. Volkerding |
|||
- Bert Wesarg |
|||
- Ralf Wildenhues |
|||
- Charles Wilson |
|||
- Lars Wirzenius |
|||
- Pilorz Wojciech |
|||
- Andreas Zieringer |
|||
|
|||
Also thanks to all the people who have participated in the Tukaani project. |
|||
|
|||
I have probably forgot to add some names to the above list. Sorry about |
|||
that and thanks for your help. |
|||
|
@ -0,0 +1,56 @@ |
|||
|
|||
XZ Utils To-Do List |
|||
=================== |
|||
|
|||
Known bugs |
|||
---------- |
|||
|
|||
The test suite is too incomplete. |
|||
|
|||
If the memor usage limit is less than about 13 MiB, xz is unable to |
|||
automatically scale down the compression settings enough even though |
|||
it would be possible by switching from BT2/BT3/BT4 match finder to |
|||
HC3/HC4. |
|||
|
|||
The code to detect number of CPU cores doesn't count hyperthreading |
|||
as multiple cores. In context of xz, it probably should. |
|||
Hyperthreading is good at least with p7zip. |
|||
|
|||
XZ Utils compress some files significantly worse than LZMA Utils. |
|||
This is due to faster compression presets used by XZ Utils, and |
|||
can be worked around by using "xz --extreme". However, the presets |
|||
need some tweaking and maybe this issue can be minimized without |
|||
making the typical case too much slower. |
|||
|
|||
|
|||
Missing features |
|||
---------------- |
|||
|
|||
"xz --list" |
|||
|
|||
xz could create sparse files when decompressing. (Some prototyping |
|||
has been done.) |
|||
|
|||
xz doesn't support copying extended attributes, access control |
|||
lists etc. from source to target file. |
|||
|
|||
Multithreaded compression |
|||
|
|||
Multithreaded decompression |
|||
|
|||
Buffer-to-buffer coding could use less RAM (especially when |
|||
decompressing LZMA1 or LZMA2). |
|||
|
|||
I/O library is not implemented. It will possibly be named libzzf. |
|||
|
|||
|
|||
Documentation |
|||
------------- |
|||
|
|||
Some tutorial is needed for liblzma. I have planned to write some |
|||
extremely well commented example programs, which would work as |
|||
a tutorial. I suppose the Doxygen tags are quite OK as a quick |
|||
reference once one is familiar with the liblzma API. |
|||
|
|||
Document the LZMA1 and LZMA2 algorithms. |
|||
|
1027
third_party/xz-4.999.9beta/aclocal.m4
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,22 @@ |
|||
#!/bin/sh |
|||
|
|||
############################################################################### |
|||
# |
|||
# Author: Lasse Collin |
|||
# |
|||
# This file has been put into the public domain. |
|||
# You can do whatever you want with this file. |
|||
# |
|||
############################################################################### |
|||
|
|||
# The result of using "autoreconf -fi" should be identical to using this |
|||
# script. I'm leaving this script here just in case someone finds it useful. |
|||
|
|||
set -e -x |
|||
|
|||
${AUTOPOINT:-autopoint} -f |
|||
${LIBTOOLIZE:-libtoolize} -c -f || glibtoolize -c -f |
|||
${ACLOCAL:-aclocal} -I m4 |
|||
${AUTOCONF:-autoconf} |
|||
${AUTOHEADER:-autoheader} |
|||
${AUTOMAKE:-automake} -acf --foreign |
@ -0,0 +1,143 @@ |
|||
#! /bin/sh |
|||
# Wrapper for compilers which do not understand `-c -o'. |
|||
|
|||
scriptversion=2009-04-28.21; # UTC |
|||
|
|||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 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 <http://www.gnu.org/licenses/>. |
|||
|
|||
# As a special exception to the GNU General Public License, if you |
|||
# distribute this file as part of a program that contains a |
|||
# configuration script generated by Autoconf, you may include it under |
|||
# the same distribution terms that you use for the rest of that program. |
|||
|
|||
# This file is maintained in Automake, please report |
|||
# bugs to <bug-automake@gnu.org> or send patches to |
|||
# <automake-patches@gnu.org>. |
|||
|
|||
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 $? |
|||
;; |
|||
esac |
|||
|
|||
ofile= |
|||
cfile= |
|||
eat= |
|||
|
|||
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 |
|||
mv "$cofile" "$ofile" |
|||
elif test -f "${cofile}bj"; then |
|||
mv "${cofile}bj" "$ofile" |
|||
fi |
|||
|
|||
rmdir "$lockdir" |
|||
exit $ret |
|||
|
|||
# Local Variables: |
|||
# mode: shell-script |
|||
# sh-indentation: 2 |
|||
# eval: (add-hook 'write-file-hooks 'time-stamp) |
|||
# time-stamp-start: "scriptversion=" |
|||
# time-stamp-format: "%:y-%02m-%02d.%02H" |
|||
# time-stamp-time-zone: "UTC" |
|||
# time-stamp-end: "; # UTC" |
|||
# End: |
1561
third_party/xz-4.999.9beta/build-aux/config.guess
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,614 @@ |
|||
#! /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-2006 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 AC_LIBTOOL_PROG_COMPILER_PIC. |
|||
|
|||
wl= |
|||
if test "$GCC" = yes; then |
|||
wl='-Wl,' |
|||
else |
|||
case "$host_os" in |
|||
aix*) |
|||
wl='-Wl,' |
|||
;; |
|||
darwin*) |
|||
case $cc_basename in |
|||
xlc*) |
|||
wl='-Wl,' |
|||
;; |
|||
esac |
|||
;; |
|||
mingw* | pw32* | os2*) |
|||
;; |
|||
hpux9* | hpux10* | hpux11*) |
|||
wl='-Wl,' |
|||
;; |
|||
irix5* | irix6* | nonstopux*) |
|||
wl='-Wl,' |
|||
;; |
|||
newsos6) |
|||
;; |
|||
linux*) |
|||
case $cc_basename in |
|||
icc* | ecc*) |
|||
wl='-Wl,' |
|||
;; |
|||
pgcc | pgf77 | pgf90) |
|||
wl='-Wl,' |
|||
;; |
|||
ccc*) |
|||
wl='-Wl,' |
|||
;; |
|||
como) |
|||
wl='-lopt=' |
|||
;; |
|||
*) |
|||
case `$CC -V 2>&1 | sed 5q` in |
|||
*Sun\ C*) |
|||
wl='-Wl,' |
|||
;; |
|||
esac |
|||
;; |
|||
esac |
|||
;; |
|||
osf3* | osf4* | osf5*) |
|||
wl='-Wl,' |
|||
;; |
|||
sco3.2v5*) |
|||
;; |
|||
solaris*) |
|||
wl='-Wl,' |
|||
;; |
|||
sunos4*) |
|||
wl='-Qoption ld ' |
|||
;; |
|||
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) |
|||
wl='-Wl,' |
|||
;; |
|||
sysv4*MP*) |
|||
;; |
|||
unicos*) |
|||
wl='-Wl,' |
|||
;; |
|||
uts4*) |
|||
;; |
|||
esac |
|||
fi |
|||
|
|||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. |
|||
|
|||
hardcode_libdir_flag_spec= |
|||
hardcode_libdir_separator= |
|||
hardcode_direct=no |
|||
hardcode_minus_L=no |
|||
|
|||
case "$host_os" in |
|||
cygwin* | mingw* | pw32*) |
|||
# 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 |
|||
aix3* | aix4* | aix5*) |
|||
# On AIX/PPC, the GNU linker is very broken |
|||
if test "$host_cpu" != ia64; then |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
amigaos*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
hardcode_minus_L=yes |
|||
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports |
|||
# that the semantics of dynamic libraries on AmigaOS, at least up |
|||
# to version 4, is to share data among multiple programs linked |
|||
# with the same dynamic library. Since this doesn't match the |
|||
# behavior of shared libraries on other platforms, we cannot use |
|||
# them. |
|||
ld_shlibs=no |
|||
;; |
|||
beos*) |
|||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
|||
: |
|||
else |
|||
ld_shlibs=no |
|||
fi |
|||
;; |
|||
cygwin* | mingw* | pw32*) |
|||
# 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 |
|||
;; |
|||
interix3*) |
|||
hardcode_direct=no |
|||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir' |
|||
;; |
|||
linux*) |
|||
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 |
|||
;; |
|||
aix4* | aix5*) |
|||
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].*|aix5*) |
|||
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 |
|||
hardcode_direct=yes |
|||
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*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
hardcode_minus_L=yes |
|||
# see comment about different semantics on the GNU ld section |
|||
ld_shlibs=no |
|||
;; |
|||
bsdi[45]*) |
|||
;; |
|||
cygwin* | mingw* | pw32*) |
|||
# 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 test "$GCC" = yes ; then |
|||
: |
|||
else |
|||
case $cc_basename in |
|||
xlc*) |
|||
;; |
|||
*) |
|||
ld_shlibs=no |
|||
;; |
|||
esac |
|||
fi |
|||
;; |
|||
dgux*) |
|||
hardcode_libdir_flag_spec='-L$libdir' |
|||
;; |
|||
freebsd1*) |
|||
ld_shlibs=no |
|||
;; |
|||
freebsd2.2*) |
|||
hardcode_libdir_flag_spec='-R$libdir' |
|||
hardcode_direct=yes |
|||
;; |
|||
freebsd2*) |
|||
hardcode_direct=yes |
|||
hardcode_minus_L=yes |
|||
;; |
|||
freebsd* | kfreebsd*-gnu | dragonfly*) |
|||
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=: |
|||
;; |
|||
openbsd*) |
|||
hardcode_direct=yes |
|||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then |
|||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir' |
|||
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 |
|||
;; |
|||
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*) |
|||
;; |
|||
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 AC_LIBTOOL_SYS_DYNAMIC_LINKER. |
|||
libname_spec='lib$name' |
|||
case "$host_os" in |
|||
aix3*) |
|||
;; |
|||
aix4* | aix5*) |
|||
;; |
|||
amigaos*) |
|||
;; |
|||
beos*) |
|||
;; |
|||
bsdi[45]*) |
|||
;; |
|||
cygwin* | mingw* | pw32*) |
|||
shrext=.dll |
|||
;; |
|||
darwin* | rhapsody*) |
|||
shrext=.dylib |
|||
;; |
|||
dgux*) |
|||
;; |
|||
freebsd1*) |
|||
;; |
|||
kfreebsd*-gnu) |
|||
;; |
|||
freebsd* | dragonfly*) |
|||
;; |
|||
gnu*) |
|||
;; |
|||
hpux9* | hpux10* | hpux11*) |
|||
case $host_cpu in |
|||
ia64*) |
|||
shrext=.so |
|||
;; |
|||
hppa*64*) |
|||
shrext=.sl |
|||
;; |
|||
*) |
|||
shrext=.sl |
|||
;; |
|||
esac |
|||
;; |
|||
interix3*) |
|||
;; |
|||
irix5* | irix6* | nonstopux*) |
|||
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*) |
|||
;; |
|||
knetbsd*-gnu) |
|||
;; |
|||
netbsd*) |
|||
;; |
|||
newsos6) |
|||
;; |
|||
nto-qnx*) |
|||
;; |
|||
openbsd*) |
|||
;; |
|||
os2*) |
|||
libname_spec='$name' |
|||
shrext=.dll |
|||
;; |
|||
osf3* | osf4* | osf5*) |
|||
;; |
|||
solaris*) |
|||
;; |
|||
sunos4*) |
|||
;; |
|||
sysv4 | sysv4.3*) |
|||
;; |
|||
sysv4*MP*) |
|||
;; |
|||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) |
|||
;; |
|||
uts4*) |
|||
;; |
|||
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_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" |
|||
|
|||
# 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 |
1686
third_party/xz-4.999.9beta/build-aux/config.sub
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,630 @@ |
|||
#! /bin/sh |
|||
# depcomp - compile a program generating dependencies as side-effects |
|||
|
|||
scriptversion=2009-04-28.21; # UTC |
|||
|
|||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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 <http://www.gnu.org/licenses/>. |
|||
|
|||
# As a special exception to the GNU General Public License, if you |
|||
# distribute this file as part of a program that contains a |
|||
# configuration script generated by Autoconf, you may include it under |
|||
# the same distribution terms that you use for the rest of that program. |
|||
|
|||
# Originally written by 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 outputing dependencies. |
|||
libtool Whether libtool is used (yes/no). |
|||
|
|||
Report bugs to <bug-automake@gnu.org>. |
|||
EOF |
|||
exit $? |
|||
;; |
|||
-v | --v*) |
|||
echo "depcomp $scriptversion" |
|||
exit $? |
|||
;; |
|||
esac |
|||
|
|||
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" |
|||
|
|||
# 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 |
|||
|
|||
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 -eq 0; then : |
|||
else |
|||
rm -f "$tmpdepfile" |
|||
exit $stat |
|||
fi |
|||
mv "$tmpdepfile" "$depfile" |
|||
;; |
|||
|
|||
gcc) |
|||
## 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). |
|||
## - 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 -eq 0; then : |
|||
else |
|||
rm -f "$tmpdepfile" |
|||
exit $stat |
|||
fi |
|||
rm -f "$depfile" |
|||
echo "$object : \\" > "$depfile" |
|||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz |
|||
## 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. |
|||
tr ' ' ' |
|||
' < "$tmpdepfile" | |
|||
## Some versions of gcc put a space before the `:'. On the theory |
|||
## that the space means something, we add a space to the output as |
|||
## well. |
|||
## Some versions of the HPUX 10.20 sed can't process this invocation |
|||
## correctly. Breaking it into two sed invocations is a workaround. |
|||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
|||
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 -eq 0; then : |
|||
else |
|||
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 ' ' ' |
|||
' < "$tmpdepfile" \ |
|||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ |
|||
tr ' |
|||
' ' ' >> "$depfile" |
|||
echo >> "$depfile" |
|||
|
|||
# The second pass generates a dummy entry for each header file. |
|||
tr ' ' ' |
|||
' < "$tmpdepfile" \ |
|||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ |
|||
>> "$depfile" |
|||
else |
|||
# The sourcefile does not contain any dependencies, so just |
|||
# store a dummy comment line, to avoid errors with the Makefile |
|||
# "include basename.Plo" scheme. |
|||
echo "#dummy" > "$depfile" |
|||
fi |
|||
rm -f "$tmpdepfile" |
|||
;; |
|||
|
|||
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. |
|||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` |
|||
test "x$dir" = "x$object" && dir= |
|||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` |
|||
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 -eq 0; then : |
|||
else |
|||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" |
|||
exit $stat |
|||
fi |
|||
|
|||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" |
|||
do |
|||
test -f "$tmpdepfile" && break |
|||
done |
|||
if test -f "$tmpdepfile"; then |
|||
# Each line is of the form `foo.o: dependent.h'. |
|||
# Do two passes, one to just change these to |
|||
# `$object: dependent.h' and one to simply `dependent.h:'. |
|||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" |
|||
# That's a tab and a space in the []. |
|||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" |
|||
else |
|||
# The sourcefile does not contain any dependencies, so just |
|||
# store a dummy comment line, to avoid errors with the Makefile |
|||
# "include basename.Plo" scheme. |
|||
echo "#dummy" > "$depfile" |
|||
fi |
|||
rm -f "$tmpdepfile" |
|||
;; |
|||
|
|||
icc) |
|||
# Intel's C compiler understands `-MD -MF file'. However on |
|||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c |
|||
# ICC 7.0 will fill foo.d with something like |
|||
# foo.o: sub/foo.c |
|||
# foo.o: sub/foo.h |
|||
# which is wrong. We want: |
|||
# sub/foo.o: sub/foo.c |
|||
# sub/foo.o: sub/foo.h |
|||
# sub/foo.c: |
|||
# sub/foo.h: |
|||
# ICC 7.1 will output |
|||
# foo.o: sub/foo.c sub/foo.h |
|||
# and will wrap long lines using \ : |
|||
# foo.o: sub/foo.c ... \ |
|||
# sub/foo.h ... \ |
|||
# ... |
|||
|
|||
"$@" -MD -MF "$tmpdepfile" |
|||
stat=$? |
|||
if test $stat -eq 0; then : |
|||
else |
|||
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. |
|||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` |
|||
test "x$dir" = "x$object" && dir= |
|||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` |
|||
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 -eq 0; then : |
|||
else |
|||
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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" |
|||
# Add `dependent.h:' lines. |
|||
sed -ne '2,${ |
|||
s/^ *// |
|||
s/ \\*$// |
|||
s/$/:/ |
|||
p |
|||
}' "$tmpdepfile" >> "$depfile" |
|||
else |
|||
echo "#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. |
|||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` |
|||
test "x$dir" = "x$object" && dir= |
|||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` |
|||
|
|||
if test "$libtool" = yes; then |
|||
# With Tru64 cc, shared objects can also be used to make a |
|||
# static library. This mechanism is used in libtool 1.4 series to |
|||
# handle both shared and static libraries in a single compilation. |
|||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. |
|||
# |
|||
# With libtool 1.5 this exception was removed, and libtool now |
|||
# 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.libs/$base.lo.d # libtool 1.4 |
|||
tmpdepfile2=$dir$base.o.d # libtool 1.5 |
|||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 |
|||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 |
|||
"$@" -Wc,-MD |
|||
else |
|||
tmpdepfile1=$dir$base.o.d |
|||
tmpdepfile2=$dir$base.d |
|||
tmpdepfile3=$dir$base.d |
|||
tmpdepfile4=$dir$base.d |
|||
"$@" -MD |
|||
fi |
|||
|
|||
stat=$? |
|||
if test $stat -eq 0; then : |
|||
else |
|||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" |
|||
exit $stat |
|||
fi |
|||
|
|||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" |
|||
do |
|||
test -f "$tmpdepfile" && break |
|||
done |
|||
if test -f "$tmpdepfile"; then |
|||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" |
|||
# That's a tab and a space in the []. |
|||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" |
|||
else |
|||
echo "#dummy" > "$depfile" |
|||
fi |
|||
rm -f "$tmpdepfile" |
|||
;; |
|||
|
|||
#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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" |
|||
rm -f "$depfile" |
|||
cat < "$tmpdepfile" > "$depfile" |
|||
tr ' ' ' |
|||
' < "$tmpdepfile" | \ |
|||
## Some versions of the HPUX 10.20 sed can't process this invocation |
|||
## correctly. Breaking it into two sed invocations is a workaround. |
|||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
|||
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" |
|||
cat < "$tmpdepfile" > "$depfile" |
|||
sed '1,2d' "$tmpdepfile" | tr ' ' ' |
|||
' | \ |
|||
## Some versions of the HPUX 10.20 sed can't process this invocation |
|||
## correctly. Breaking it into two sed invocations is a workaround. |
|||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
|||
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:: \1 \\:p' >> "$depfile" |
|||
echo " " >> "$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 'write-file-hooks 'time-stamp) |
|||
# time-stamp-start: "scriptversion=" |
|||
# time-stamp-format: "%:y-%02m-%02d.%02H" |
|||
# time-stamp-time-zone: "UTC" |
|||
# time-stamp-end: "; # UTC" |
|||
# End: |
@ -0,0 +1,520 @@ |
|||
#!/bin/sh |
|||
# install - install a program, script, or datafile |
|||
|
|||
scriptversion=2009-04-28.21; # 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. |
|||
|
|||
nl=' |
|||
' |
|||
IFS=" "" $nl" |
|||
|
|||
# set DOITPROG to echo to test this script |
|||
|
|||
# Don't use :- since 4.3BSD and earlier shells don't like it. |
|||
doit=${DOITPROG-} |
|||
if test -z "$doit"; then |
|||
doit_exec=exec |
|||
else |
|||
doit_exec=$doit |
|||
fi |
|||
|
|||
# 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_glob='?' |
|||
initialize_posix_glob=' |
|||
test "$posix_glob" != "?" || { |
|||
if (set -f) 2>/dev/null; then |
|||
posix_glob= |
|||
else |
|||
posix_glob=: |
|||
fi |
|||
} |
|||
' |
|||
|
|||
posix_mkdir= |
|||
|
|||
# Desired mode of installed file. |
|||
mode=0755 |
|||
|
|||
chgrpcmd= |
|||
chmodcmd=$chmodprog |
|||
chowncmd= |
|||
mvcmd=$mvprog |
|||
rmcmd="$rmprog -f" |
|||
stripcmd= |
|||
|
|||
src= |
|||
dst= |
|||
dir_arg= |
|||
dst_arg= |
|||
|
|||
copy_on_change=false |
|||
no_target_directory= |
|||
|
|||
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 the last 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. |
|||
-s $stripprog installed files. |
|||
-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 |
|||
" |
|||
|
|||
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 |
|||
*' '* | *' '* | *' |
|||
'* | *'*'* | *'?'* | *'['*) |
|||
echo "$0: invalid mode: $mode" >&2 |
|||
exit 1;; |
|||
esac |
|||
shift;; |
|||
|
|||
-o) chowncmd="$chownprog $2" |
|||
shift;; |
|||
|
|||
-s) stripcmd=$stripprog;; |
|||
|
|||
-t) dst_arg=$2 |
|||
shift;; |
|||
|
|||
-T) no_target_directory=true;; |
|||
|
|||
--version) echo "$0 $scriptversion"; exit $?;; |
|||
|
|||
--) shift |
|||
break;; |
|||
|
|||
-*) echo "$0: invalid option: $1" >&2 |
|||
exit 1;; |
|||
|
|||
*) break;; |
|||
esac |
|||
shift |
|||
done |
|||
|
|||
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 |
|||
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 |
|||
trap '(exit $?); exit' 1 2 13 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 starting with `-'. |
|||
case $src in |
|||
-*) src=./$src;; |
|||
esac |
|||
|
|||
if test -n "$dir_arg"; then |
|||
dst=$src |
|||
dstdir=$dst |
|||
test -d "$dstdir" |
|||
dstdir_status=$? |
|||
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 |
|||
# Protect names starting with `-'. |
|||
case $dst in |
|||
-*) dst=./$dst;; |
|||
esac |
|||
|
|||
# If destination is a directory, append the input filename; won't work |
|||
# if double slashes aren't ignored. |
|||
if test -d "$dst"; then |
|||
if test -n "$no_target_directory"; then |
|||
echo "$0: $dst_arg: Is a directory" >&2 |
|||
exit 1 |
|||
fi |
|||
dstdir=$dst |
|||
dst=$dstdir/`basename "$src"` |
|||
dstdir_status=0 |
|||
else |
|||
# Prefer dirname, but fall back on a substitute if dirname fails. |
|||
dstdir=` |
|||
(dirname "$dst") 2>/dev/null || |
|||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ |
|||
X"$dst" : 'X\(//\)[^/]' \| \ |
|||
X"$dst" : 'X\(//\)$' \| \ |
|||
X"$dst" : 'X\(/\)' \| . 2>/dev/null || |
|||
echo X"$dst" | |
|||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ |
|||
s//\1/ |
|||
q |
|||
} |
|||
/^X\(\/\/\)[^/].*/{ |
|||
s//\1/ |
|||
q |
|||
} |
|||
/^X\(\/\/\)$/{ |
|||
s//\1/ |
|||
q |
|||
} |
|||
/^X\(\/\).*/{ |
|||
s//\1/ |
|||
q |
|||
} |
|||
s/.*/./; q' |
|||
` |
|||
|
|||
test -d "$dstdir" |
|||
dstdir_status=$? |
|||
fi |
|||
fi |
|||
|
|||
obsolete_mkdir_used=false |
|||
|
|||
if test $dstdir_status != 0; then |
|||
case $posix_mkdir in |
|||
'') |
|||
# Create intermediate dirs using mode 755 as modified by the umask. |
|||
# This is like FreeBSD 'install' as of 1997-10-28. |
|||
umask=`umask` |
|||
case $stripcmd.$umask in |
|||
# Optimize common cases. |
|||
*[2367][2367]) mkdir_umask=$umask;; |
|||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; |
|||
|
|||
*[0-7]) |
|||
mkdir_umask=`expr $umask + 22 \ |
|||
- $umask % 100 % 40 + $umask % 20 \ |
|||
- $umask % 10 % 4 + $umask % 2 |
|||
`;; |
|||
*) mkdir_umask=$umask,go-w;; |
|||
esac |
|||
|
|||
# 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 |
|||
case $umask in |
|||
*[123567][0-7][0-7]) |
|||
# POSIX mkdir -p sets u+wx bits regardless of umask, which |
|||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0. |
|||
;; |
|||
*) |
|||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ |
|||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 |
|||
|
|||
if (umask $mkdir_umask && |
|||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/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-writeable bit of parent directory when it shouldn't. |
|||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory. |
|||
ls_ld_tmpdir=`ls -ld "$tmpdir"` |
|||
case $ls_ld_tmpdir in |
|||
d????-?r-*) different_mode=700;; |
|||
d????-?--*) different_mode=755;; |
|||
*) false;; |
|||
esac && |
|||
$mkdirprog -m$different_mode -p -- "$tmpdir" && { |
|||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"` |
|||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" |
|||
} |
|||
} |
|||
then posix_mkdir=: |
|||
fi |
|||
rmdir "$tmpdir/d" "$tmpdir" |
|||
else |
|||
# Remove any dirs left behind by ancient mkdir implementations. |
|||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null |
|||
fi |
|||
trap '' 0;; |
|||
esac;; |
|||
esac |
|||
|
|||
if |
|||
$posix_mkdir && ( |
|||
umask $mkdir_umask && |
|||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" |
|||
) |
|||
then : |
|||
else |
|||
|
|||
# The umask is ridiculous, or 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 |
|||
|
|||
eval "$initialize_posix_glob" |
|||
|
|||
oIFS=$IFS |
|||
IFS=/ |
|||
$posix_glob set -f |
|||
set fnord $dstdir |
|||
shift |
|||
$posix_glob set +f |
|||
IFS=$oIFS |
|||
|
|||
prefixes= |
|||
|
|||
for d |
|||
do |
|||
test -z "$d" && 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=$dstdir/_inst.$$_ |
|||
rmtmp=$dstdir/_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 && $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` && |
|||
|
|||
eval "$initialize_posix_glob" && |
|||
$posix_glob set -f && |
|||
set X $old && old=:$2:$4:$5:$6 && |
|||
set X $new && new=:$2:$4:$5:$6 && |
|||
$posix_glob set +f && |
|||
|
|||
test "$old" = "$new" && |
|||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 |
|||
then |
|||
rm -f "$dsttmp" |
|||
else |
|||
# 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 -f "$dst" 2>/dev/null || |
|||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && |
|||
{ $doit $rmcmd -f "$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 'write-file-hooks 'time-stamp) |
|||
# time-stamp-start: "scriptversion=" |
|||
# time-stamp-format: "%:y-%02m-%02d.%02H" |
|||
# time-stamp-time-zone: "UTC" |
|||
# time-stamp-end: "; # UTC" |
|||
# End: |
8406
third_party/xz-4.999.9beta/build-aux/ltmain.sh
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,376 @@ |
|||
#! /bin/sh |
|||
# Common stub for a few missing GNU programs while installing. |
|||
|
|||
scriptversion=2009-04-28.21; # UTC |
|||
|
|||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, |
|||
# 2008, 2009 Free Software Foundation, Inc. |
|||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. |
|||
|
|||
# This program is free software; you can redistribute it and/or modify |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
|
|||
# As a special exception to the GNU General Public License, if you |
|||
# distribute this file as part of a program that contains a |
|||
# configuration script generated by Autoconf, you may include it under |
|||
# the same distribution terms that you use for the rest of that program. |
|||
|
|||
if test $# -eq 0; then |
|||
echo 1>&2 "Try \`$0 --help' for more information" |
|||
exit 1 |
|||
fi |
|||
|
|||
run=: |
|||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' |
|||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p' |
|||
|
|||
# In the cases where this matters, `missing' is being run in the |
|||
# srcdir already. |
|||
if test -f configure.ac; then |
|||
configure_ac=configure.ac |
|||
else |
|||
configure_ac=configure.in |
|||
fi |
|||
|
|||
msg="missing on your system" |
|||
|
|||
case $1 in |
|||
--run) |
|||
# Try to run requested program, and just exit if it succeeds. |
|||
run= |
|||
shift |
|||
"$@" && exit 0 |
|||
# Exit code 63 means version mismatch. This often happens |
|||
# when the user try to use an ancient version of a tool on |
|||
# a file that requires a minimum version. In this case we |
|||
# we should proceed has if the program had been absent, or |
|||
# if --run hadn't been passed. |
|||
if test $? = 63; then |
|||
run=: |
|||
msg="probably too old" |
|||
fi |
|||
;; |
|||
|
|||
-h|--h|--he|--hel|--help) |
|||
echo "\ |
|||
$0 [OPTION]... PROGRAM [ARGUMENT]... |
|||
|
|||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an |
|||
error status if there is no known handling for PROGRAM. |
|||
|
|||
Options: |
|||
-h, --help display this help and exit |
|||
-v, --version output version information and exit |
|||
--run try to run the given command, and emulate it if it fails |
|||
|
|||
Supported PROGRAM values: |
|||
aclocal touch file \`aclocal.m4' |
|||
autoconf touch file \`configure' |
|||
autoheader touch file \`config.h.in' |
|||
autom4te touch the output file, or create a stub one |
|||
automake touch all \`Makefile.in' files |
|||
bison create \`y.tab.[ch]', if possible, from existing .[ch] |
|||
flex create \`lex.yy.c', if possible, from existing .c |
|||
help2man touch the output file |
|||
lex create \`lex.yy.c', if possible, from existing .c |
|||
makeinfo touch the output file |
|||
tar try tar, gnutar, gtar, then tar without non-portable flags |
|||
yacc create \`y.tab.[ch]', if possible, from existing .[ch] |
|||
|
|||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and |
|||
\`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 |
|||
|
|||
# normalize program name to check for. |
|||
program=`echo "$1" | sed ' |
|||
s/^gnu-//; t |
|||
s/^gnu//; t |
|||
s/^g//; t'` |
|||
|
|||
# Now exit if we have it, but it failed. Also exit now if we |
|||
# don't have it and --version was passed (most likely to detect |
|||
# the program). This is about non-GNU programs, so use $1 not |
|||
# $program. |
|||
case $1 in |
|||
lex*|yacc*) |
|||
# Not GNU programs, they don't have --version. |
|||
;; |
|||
|
|||
tar*) |
|||
if test -n "$run"; then |
|||
echo 1>&2 "ERROR: \`tar' requires --run" |
|||
exit 1 |
|||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then |
|||
exit 1 |
|||
fi |
|||
;; |
|||
|
|||
*) |
|||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
|||
# We have it, but it failed. |
|||
exit 1 |
|||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then |
|||
# Could not run --version or --help. This is probably someone |
|||
# running `$TOOL --version' or `$TOOL --help' to check whether |
|||
# $TOOL exists and not knowing $TOOL uses missing. |
|||
exit 1 |
|||
fi |
|||
;; |
|||
esac |
|||
|
|||
# If it does not exist, or fails to run (possibly an outdated version), |
|||
# try to emulate it. |
|||
case $program in |
|||
aclocal*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is $msg. You should only need it if |
|||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want |
|||
to install the \`Automake' and \`Perl' packages. Grab them from |
|||
any GNU archive site." |
|||
touch aclocal.m4 |
|||
;; |
|||
|
|||
autoconf*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is $msg. You should only need it if |
|||
you modified \`${configure_ac}'. You might want to install the |
|||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU |
|||
archive site." |
|||
touch configure |
|||
;; |
|||
|
|||
autoheader*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is $msg. You should only need it if |
|||
you modified \`acconfig.h' or \`${configure_ac}'. You might want |
|||
to install the \`Autoconf' and \`GNU m4' packages. Grab them |
|||
from any GNU archive site." |
|||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` |
|||
test -z "$files" && files="config.h" |
|||
touch_files= |
|||
for f in $files; do |
|||
case $f in |
|||
*:*) touch_files="$touch_files "`echo "$f" | |
|||
sed -e 's/^[^:]*://' -e 's/:.*//'`;; |
|||
*) touch_files="$touch_files $f.in";; |
|||
esac |
|||
done |
|||
touch $touch_files |
|||
;; |
|||
|
|||
automake*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is $msg. You should only need it if |
|||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. |
|||
You might want to install the \`Automake' and \`Perl' packages. |
|||
Grab them from any GNU archive site." |
|||
find . -type f -name Makefile.am -print | |
|||
sed 's/\.am$/.in/' | |
|||
while read f; do touch "$f"; done |
|||
;; |
|||
|
|||
autom4te*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is needed, but is $msg. |
|||
You might have modified some files without having the |
|||
proper tools for further handling them. |
|||
You can get \`$1' as part of \`Autoconf' from any GNU |
|||
archive site." |
|||
|
|||
file=`echo "$*" | sed -n "$sed_output"` |
|||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` |
|||
if test -f "$file"; then |
|||
touch $file |
|||
else |
|||
test -z "$file" || exec >$file |
|||
echo "#! /bin/sh" |
|||
echo "# Created by GNU Automake missing as a replacement of" |
|||
echo "# $ $@" |
|||
echo "exit 0" |
|||
chmod +x $file |
|||
exit 1 |
|||
fi |
|||
;; |
|||
|
|||
bison*|yacc*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' $msg. You should only need it if |
|||
you modified a \`.y' file. You may need the \`Bison' package |
|||
in order for those modifications to take effect. You can get |
|||
\`Bison' from any GNU archive site." |
|||
rm -f y.tab.c y.tab.h |
|||
if test $# -ne 1; then |
|||
eval LASTARG="\${$#}" |
|||
case $LASTARG in |
|||
*.y) |
|||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` |
|||
if test -f "$SRCFILE"; then |
|||
cp "$SRCFILE" y.tab.c |
|||
fi |
|||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` |
|||
if test -f "$SRCFILE"; then |
|||
cp "$SRCFILE" y.tab.h |
|||
fi |
|||
;; |
|||
esac |
|||
fi |
|||
if test ! -f y.tab.h; then |
|||
echo >y.tab.h |
|||
fi |
|||
if test ! -f y.tab.c; then |
|||
echo 'main() { return 0; }' >y.tab.c |
|||
fi |
|||
;; |
|||
|
|||
lex*|flex*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is $msg. You should only need it if |
|||
you modified a \`.l' file. You may need the \`Flex' package |
|||
in order for those modifications to take effect. You can get |
|||
\`Flex' from any GNU archive site." |
|||
rm -f lex.yy.c |
|||
if test $# -ne 1; then |
|||
eval LASTARG="\${$#}" |
|||
case $LASTARG in |
|||
*.l) |
|||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` |
|||
if test -f "$SRCFILE"; then |
|||
cp "$SRCFILE" lex.yy.c |
|||
fi |
|||
;; |
|||
esac |
|||
fi |
|||
if test ! -f lex.yy.c; then |
|||
echo 'main() { return 0; }' >lex.yy.c |
|||
fi |
|||
;; |
|||
|
|||
help2man*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is $msg. You should only need it if |
|||
you modified a dependency of a manual page. You may need the |
|||
\`Help2man' package in order for those modifications to take |
|||
effect. You can get \`Help2man' from any GNU archive site." |
|||
|
|||
file=`echo "$*" | sed -n "$sed_output"` |
|||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` |
|||
if test -f "$file"; then |
|||
touch $file |
|||
else |
|||
test -z "$file" || exec >$file |
|||
echo ".ab help2man is required to generate this page" |
|||
exit $? |
|||
fi |
|||
;; |
|||
|
|||
makeinfo*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is $msg. You should only need it if |
|||
you modified a \`.texi' or \`.texinfo' file, or any other file |
|||
indirectly affecting the aspect of the manual. The spurious |
|||
call might also be the consequence of using a buggy \`make' (AIX, |
|||
DU, IRIX). You might want to install the \`Texinfo' package or |
|||
the \`GNU make' package. Grab either from any GNU archive site." |
|||
# The file to touch is that specified with -o ... |
|||
file=`echo "$*" | sed -n "$sed_output"` |
|||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` |
|||
if test -z "$file"; then |
|||
# ... or it is the one specified with @setfilename ... |
|||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` |
|||
file=`sed -n ' |
|||
/^@setfilename/{ |
|||
s/.* \([^ ]*\) *$/\1/ |
|||
p |
|||
q |
|||
}' $infile` |
|||
# ... or it is derived from the source name (dir/f.texi becomes f.info) |
|||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info |
|||
fi |
|||
# If the file does not exist, the user really needs makeinfo; |
|||
# let's fail without touching anything. |
|||
test -f $file || exit 1 |
|||
touch $file |
|||
;; |
|||
|
|||
tar*) |
|||
shift |
|||
|
|||
# We have already tried tar in the generic part. |
|||
# Look for gnutar/gtar before invocation to avoid ugly error |
|||
# messages. |
|||
if (gnutar --version > /dev/null 2>&1); then |
|||
gnutar "$@" && exit 0 |
|||
fi |
|||
if (gtar --version > /dev/null 2>&1); then |
|||
gtar "$@" && exit 0 |
|||
fi |
|||
firstarg="$1" |
|||
if shift; then |
|||
case $firstarg in |
|||
*o*) |
|||
firstarg=`echo "$firstarg" | sed s/o//` |
|||
tar "$firstarg" "$@" && exit 0 |
|||
;; |
|||
esac |
|||
case $firstarg in |
|||
*h*) |
|||
firstarg=`echo "$firstarg" | sed s/h//` |
|||
tar "$firstarg" "$@" && exit 0 |
|||
;; |
|||
esac |
|||
fi |
|||
|
|||
echo 1>&2 "\ |
|||
WARNING: I can't seem to be able to run \`tar' with the given arguments. |
|||
You may want to install GNU tar or Free paxutils, or check the |
|||
command line arguments." |
|||
exit 1 |
|||
;; |
|||
|
|||
*) |
|||
echo 1>&2 "\ |
|||
WARNING: \`$1' is needed, and is $msg. |
|||
You might have modified some files without having the |
|||
proper tools for further handling them. Check the \`README' file, |
|||
it often tells you about the needed prerequisites for installing |
|||
this package. You may also peek at any GNU archive site, in case |
|||
some other package would contain this missing \`$1' program." |
|||
exit 1 |
|||
;; |
|||
esac |
|||
|
|||
exit 0 |
|||
|
|||
# Local variables: |
|||
# eval: (add-hook 'write-file-hooks 'time-stamp) |
|||
# time-stamp-start: "scriptversion=" |
|||
# time-stamp-format: "%:y-%02m-%02d.%02H" |
|||
# time-stamp-time-zone: "UTC" |
|||
# time-stamp-end: "; # UTC" |
|||
# End: |
@ -0,0 +1,404 @@ |
|||
/* config.h.in. Generated from configure.ac by autoheader. */ |
|||
|
|||
/* Define if building universal (internal helper macro) */ |
|||
#undef AC_APPLE_UNIVERSAL_BUILD |
|||
|
|||
/* Define to 1 if translation of program messages to the user's native |
|||
language is requested. */ |
|||
#undef ENABLE_NLS |
|||
|
|||
/* Define to 1 if using x86 assembler optimizations. */ |
|||
#undef HAVE_ASM_X86 |
|||
|
|||
/* Define to 1 if using x86_64 assembler optimizations. */ |
|||
#undef HAVE_ASM_X86_64 |
|||
|
|||
/* 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 MacOS X function CFLocaleCopyCurrent in the |
|||
CoreFoundation framework. */ |
|||
#undef HAVE_CFLOCALECOPYCURRENT |
|||
|
|||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in |
|||
the CoreFoundation framework. */ |
|||
#undef HAVE_CFPREFERENCESCOPYAPPVALUE |
|||
|
|||
/* Define to 1 if 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 the number of available CPU cores can be detected with |
|||
sysconf(_SC_NPROCESSORS_ONLN). */ |
|||
#undef HAVE_CPUCORES_SYSCONF |
|||
|
|||
/* Define to 1 if the number of available CPU cores can be detected with |
|||
sysctl(). */ |
|||
#undef HAVE_CPUCORES_SYSCTL |
|||
|
|||
/* Define if the GNU dcgettext() function is already present or preinstalled. |
|||
*/ |
|||
#undef HAVE_DCGETTEXT |
|||
|
|||
/* Define to 1 if decoder components are enabled. */ |
|||
#undef HAVE_DECODER |
|||
|
|||
/* Define to 1 if arm decoder is enabled. */ |
|||
#undef HAVE_DECODER_ARM |
|||
|
|||
/* 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 sparc decoder is enabled. */ |
|||
#undef HAVE_DECODER_SPARC |
|||
|
|||
/* Define to 1 if subblock decoder is enabled. */ |
|||
#undef HAVE_DECODER_SUBBLOCK |
|||
|
|||
/* 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 encoder components are enabled. */ |
|||
#undef HAVE_ENCODER |
|||
|
|||
/* Define to 1 if arm encoder is enabled. */ |
|||
#undef HAVE_ENCODER_ARM |
|||
|
|||
/* 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 sparc encoder is enabled. */ |
|||
#undef HAVE_ENCODER_SPARC |
|||
|
|||
/* Define to 1 if subblock encoder is enabled. */ |
|||
#undef HAVE_ENCODER_SUBBLOCK |
|||
|
|||
/* Define to 1 if x86 encoder is enabled. */ |
|||
#undef HAVE_ENCODER_X86 |
|||
|
|||
/* Define to 1 if the system supports fast unaligned memory access. */ |
|||
#undef HAVE_FAST_UNALIGNED_ACCESS |
|||
|
|||
/* Define to 1 if you have the <fcntl.h> header file. */ |
|||
#undef HAVE_FCNTL_H |
|||
|
|||
/* 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 <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. */ |
|||
#undef HAVE_ICONV |
|||
|
|||
/* 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 you have the <memory.h> header file. */ |
|||
#undef HAVE_MEMORY_H |
|||
|
|||
/* 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 getopt.h declares extern int optreset. */ |
|||
#undef HAVE_OPTRESET |
|||
|
|||
/* Define to 1 if the amount of physical memory can be detected with |
|||
sysconf(_SC_PAGESIZE) and sysconf(_SC_PHYS_PAGES). */ |
|||
#undef HAVE_PHYSMEM_SYSCONF |
|||
|
|||
/* Define to 1 if the amount of physical memory can be detected with sysctl(). |
|||
*/ |
|||
#undef HAVE_PHYSMEM_SYSCTL |
|||
|
|||
/* Define to 1 if the amount of physical memory can be detected with Linux |
|||
sysinfo(). */ |
|||
#undef HAVE_PHYSMEM_SYSINFO |
|||
|
|||
/* Define if you have POSIX threads libraries and header files. */ |
|||
#undef HAVE_PTHREAD |
|||
|
|||
/* 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 <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 `struct stat' is a member of `st_atimensec'. */ |
|||
#undef HAVE_STRUCT_STAT_ST_ATIMENSEC |
|||
|
|||
/* Define to 1 if `struct stat' is a member of `st_atimespec.tv_nsec'. */ |
|||
#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC |
|||
|
|||
/* Define to 1 if `struct stat' is a member of `st_atim.st__tim.tv_nsec'. */ |
|||
#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC |
|||
|
|||
/* Define to 1 if `struct stat' is a member of `st_atim.tv_nsec'. */ |
|||
#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC |
|||
|
|||
/* Define to 1 if `struct stat' is a member of `st_uatime'. */ |
|||
#undef HAVE_STRUCT_STAT_ST_UATIME |
|||
|
|||
/* 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/sysctl.h> header file. */ |
|||
#undef HAVE_SYS_SYSCTL_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 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 the system has the type `_Bool'. */ |
|||
#undef HAVE__BOOL |
|||
|
|||
/* Define to the sub-directory in which libtool stores uninstalled libraries. |
|||
*/ |
|||
#undef LT_OBJDIR |
|||
|
|||
/* Define to 1 to disable debugging code. */ |
|||
#undef NDEBUG |
|||
|
|||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */ |
|||
#undef NO_MINUS_C_MINUS_O |
|||
|
|||
/* Name of package */ |
|||
#undef PACKAGE |
|||
|
|||
/* Define to the address where bug reports for this package should be sent. */ |
|||
#undef PACKAGE_BUGREPORT |
|||
|
|||
/* Define to the URL of the home page of this package. */ |
|||
#undef PACKAGE_HOMEPAGE |
|||
|
|||
/* 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 you have the ANSI C header files. */ |
|||
#undef STDC_HEADERS |
|||
|
|||
/* Enable extensions on AIX 3, Interix. */ |
|||
#ifndef _ALL_SOURCE |
|||
# undef _ALL_SOURCE |
|||
#endif |
|||
/* Enable GNU extensions on systems that have them. */ |
|||
#ifndef _GNU_SOURCE |
|||
# undef _GNU_SOURCE |
|||
#endif |
|||
/* Enable threading extensions on Solaris. */ |
|||
#ifndef _POSIX_PTHREAD_SEMANTICS |
|||
# undef _POSIX_PTHREAD_SEMANTICS |
|||
#endif |
|||
/* Enable extensions on HP NonStop. */ |
|||
#ifndef _TANDEM_SOURCE |
|||
# undef _TANDEM_SOURCE |
|||
#endif |
|||
/* Enable general extensions on Solaris. */ |
|||
#ifndef __EXTENSIONS__ |
|||
# undef __EXTENSIONS__ |
|||
#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 for large files, on AIX-style hosts. */ |
|||
#undef _LARGE_FILES |
|||
|
|||
/* Define to 1 if on MINIX. */ |
|||
#undef _MINIX |
|||
|
|||
/* Define to 2 if the system does not provide POSIX.1 features except with |
|||
this defined. */ |
|||
#undef _POSIX_1_SOURCE |
|||
|
|||
/* Define to 1 if you need to in order for `stat' and other things to work. */ |
|||
#undef _POSIX_SOURCE |
|||
|
|||
/* 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 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 |
19363
third_party/xz-4.999.9beta/configure
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,706 @@ |
|||
# -*- Autoconf -*- |
|||
# Process this file with autoconf to produce a configure script. |
|||
|
|||
############################################################################### |
|||
# |
|||
# Author: Lasse Collin |
|||
# |
|||
# This file has been put into the public domain. |
|||
# You can do whatever you want with this file. |
|||
# |
|||
############################################################################### |
|||
|
|||
# NOTE: Don't add useless checks. autoscan detects this and that, but don't |
|||
# let it confuse you. For example, we don't care about checking for behavior |
|||
# of malloc(), stat(), or lstat(), since we don't use those functions in |
|||
# a way that would cause the problems the autoconf macros check. |
|||
|
|||
AC_PREREQ([2.61]) |
|||
|
|||
AC_INIT([XZ Utils], m4_esyscmd([/bin/sh version.sh]), |
|||
[lasse.collin@tukaani.org], [xz]) |
|||
AC_CONFIG_SRCDIR([src/liblzma/common/common.h]) |
|||
AC_CONFIG_AUX_DIR([build-aux]) |
|||
AC_CONFIG_MACRO_DIR([m4]) |
|||
AC_CONFIG_HEADER([config.h]) |
|||
|
|||
PACKAGE_HOMEPAGE=http://tukaani.org/xz/ |
|||
AC_DEFINE_UNQUOTED([PACKAGE_HOMEPAGE], ["$PACKAGE_HOMEPAGE"], |
|||
[Define to the URL of the home page of this package.]) |
|||
AC_SUBST([PACKAGE_HOMEPAGE]) |
|||
|
|||
echo |
|||
echo "$PACKAGE_STRING" |
|||
|
|||
echo |
|||
echo "System type:" |
|||
# This is needed to know if assembler optimizations can be used. |
|||
AC_CANONICAL_HOST |
|||
|
|||
# We do some special things on Windows (32-bit or 64-bit) builds. |
|||
case $host_os in |
|||
mingw* | cygwin*) is_w32=yes ;; |
|||
*) is_w32=no ;; |
|||
esac |
|||
AM_CONDITIONAL([COND_W32], [test "$is_w32" = yes]) |
|||
|
|||
|
|||
echo |
|||
echo "Configure options:" |
|||
AM_CFLAGS= |
|||
|
|||
|
|||
############# |
|||
# Debugging # |
|||
############# |
|||
|
|||
AC_MSG_CHECKING([if debugging code should be compiled]) |
|||
AC_ARG_ENABLE([debug], AC_HELP_STRING([--enable-debug], [Enable debugging code.]), |
|||
[], enable_debug=no) |
|||
if test "x$enable_debug" = xyes; then |
|||
AC_MSG_RESULT([yes]) |
|||
else |
|||
AC_DEFINE([NDEBUG], [1], [Define to 1 to disable debugging code.]) |
|||
AC_MSG_RESULT([no]) |
|||
fi |
|||
|
|||
|
|||
########### |
|||
# Filters # |
|||
########### |
|||
|
|||
m4_define([SUPPORTED_FILTERS], [lzma1,lzma2,subblock,delta,x86,powerpc,ia64,arm,armthumb,sparc])dnl |
|||
m4_define([SIMPLE_FILTERS], [x86,powerpc,ia64,arm,armthumb,sparc]) |
|||
m4_define([LZ_FILTERS], [lzma1,lzma2]) |
|||
|
|||
m4_foreach([NAME], [SUPPORTED_FILTERS], |
|||
[enable_filter_[]NAME=no |
|||
enable_encoder_[]NAME=no |
|||
enable_decoder_[]NAME=no |
|||
])dnl |
|||
|
|||
AC_MSG_CHECKING([which encoders to build]) |
|||
AC_ARG_ENABLE([encoders], AC_HELP_STRING([--enable-encoders=LIST], |
|||
[Comma-separated list of encoders to build. Default=all. |
|||
Available encoders:] |
|||
m4_translit(m4_defn([SUPPORTED_FILTERS]), [,], [ ])), |
|||
[], [enable_encoders=SUPPORTED_FILTERS]) |
|||
enable_encoders=`echo "$enable_encoders" | sed 's/,subblock//; s/,/ /g'` |
|||
if test "x$enable_encoders" = xno || test "x$enable_encoders" = x; then |
|||
AC_MSG_RESULT([(none)]) |
|||
else |
|||
AC_DEFINE([HAVE_ENCODER], [1], |
|||
[Define to 1 if encoder components are enabled.]) |
|||
for arg in $enable_encoders |
|||
do |
|||
case $arg in m4_foreach([NAME], [SUPPORTED_FILTERS], [ |
|||
NAME) |
|||
enable_filter_[]NAME=yes |
|||
enable_encoder_[]NAME=yes |
|||
AC_DEFINE(HAVE_ENCODER_[]m4_toupper(NAME), [1], |
|||
[Define to 1 if] NAME [encoder is enabled.]) |
|||
;;]) |
|||
*) |
|||
AC_MSG_RESULT([]) |
|||
AC_MSG_ERROR([unknown filter: $arg]) |
|||
;; |
|||
esac |
|||
done |
|||
AC_MSG_RESULT([$enable_encoders]) |
|||
fi |
|||
|
|||
AC_MSG_CHECKING([which decoders to build]) |
|||
AC_ARG_ENABLE([decoders], AC_HELP_STRING([--enable-decoders=LIST], |
|||
[Comma-separated list of decoders to build. Default=all. |
|||
Available decoders are the same as available encoders.]), |
|||
[], [enable_decoders=SUPPORTED_FILTERS]) |
|||
enable_decoders=`echo "$enable_decoders" | sed 's/,subblock//; s/,/ /g'` |
|||
if test "x$enable_decoders" = xno || test "x$enable_decoders" = x; then |
|||
AC_MSG_RESULT([(none)]) |
|||
else |
|||
AC_DEFINE([HAVE_DECODER], [1], |
|||
[Define to 1 if decoder components are enabled.]) |
|||
for arg in $enable_decoders |
|||
do |
|||
case $arg in m4_foreach([NAME], [SUPPORTED_FILTERS], [ |
|||
NAME) |
|||
enable_filter_[]NAME=yes |
|||
enable_decoder_[]NAME=yes |
|||
AC_DEFINE(HAVE_DECODER_[]m4_toupper(NAME), [1], |
|||
[Define to 1 if] NAME [decoder is enabled.]) |
|||
;;]) |
|||
*) |
|||
AC_MSG_RESULT([]) |
|||
AC_MSG_ERROR([unknown filter: $arg]) |
|||
;; |
|||
esac |
|||
done |
|||
|
|||
# LZMA2 requires that LZMA1 is enabled. |
|||
test "x$enable_encoder_lzma2" = xyes && enable_encoder_lzma1=yes |
|||
test "x$enable_decoder_lzma2" = xyes && enable_decoder_lzma1=yes |
|||
|
|||
AC_MSG_RESULT([$enable_decoders]) |
|||
fi |
|||
|
|||
if test "x$enable_encoder_lzma2$enable_encoder_lzma1" = xyesno \ |
|||
|| test "x$enable_decoder_lzma2$enable_decoder_lzma1" = xyesno; then |
|||
AC_MSG_ERROR([LZMA2 requires that LZMA1 is also enabled.]) |
|||
fi |
|||
|
|||
AM_CONDITIONAL(COND_MAIN_ENCODER, test "x$enable_encoders" != xno && test "x$enable_encoders" != x) |
|||
AM_CONDITIONAL(COND_MAIN_DECODER, test "x$enable_decoders" != xno && test "x$enable_decoders" != x) |
|||
|
|||
m4_foreach([NAME], [SUPPORTED_FILTERS], |
|||
[AM_CONDITIONAL(COND_FILTER_[]m4_toupper(NAME), test "x$enable_filter_[]NAME" = xyes) |
|||
AM_CONDITIONAL(COND_ENCODER_[]m4_toupper(NAME), test "x$enable_encoder_[]NAME" = xyes) |
|||
AM_CONDITIONAL(COND_DECODER_[]m4_toupper(NAME), test "x$enable_decoder_[]NAME" = xyes) |
|||
])dnl |
|||
|
|||
# The so called "simple filters" share common code. |
|||
enable_filter_simple=no |
|||
enable_encoder_simple=no |
|||
enable_decoder_simple=no |
|||
m4_foreach([NAME], [SIMPLE_FILTERS], |
|||
[test "x$enable_filter_[]NAME" = xyes && enable_filter_simple=yes |
|||
test "x$enable_encoder_[]NAME" = xyes && enable_encoder_simple=yes |
|||
test "x$enable_decoder_[]NAME" = xyes && enable_decoder_simple=yes |
|||
])dnl |
|||
AM_CONDITIONAL(COND_FILTER_SIMPLE, test "x$enable_filter_simple" = xyes) |
|||
AM_CONDITIONAL(COND_ENCODER_SIMPLE, test "x$enable_encoder_simple" = xyes) |
|||
AM_CONDITIONAL(COND_DECODER_SIMPLE, test "x$enable_decoder_simple" = xyes) |
|||
|
|||
# LZ-based filters share common code. |
|||
enable_filter_lz=no |
|||
enable_encoder_lz=no |
|||
enable_decoder_lz=no |
|||
m4_foreach([NAME], [LZ_FILTERS], |
|||
[test "x$enable_filter_[]NAME" = xyes && enable_filter_lz=yes |
|||
test "x$enable_encoder_[]NAME" = xyes && enable_encoder_lz=yes |
|||
test "x$enable_decoder_[]NAME" = xyes && enable_decoder_lz=yes |
|||
])dnl |
|||
AM_CONDITIONAL(COND_FILTER_LZ, test "x$enable_filter_lz" = xyes) |
|||
AM_CONDITIONAL(COND_ENCODER_LZ, test "x$enable_encoder_lz" = xyes) |
|||
AM_CONDITIONAL(COND_DECODER_LZ, test "x$enable_decoder_lz" = xyes) |
|||
|
|||
|
|||
################# |
|||
# Match finders # |
|||
################# |
|||
|
|||
m4_define([SUPPORTED_MATCH_FINDERS], [hc3,hc4,bt2,bt3,bt4]) |
|||
|
|||
m4_foreach([NAME], [SUPPORTED_MATCH_FINDERS], |
|||
[enable_match_finder_[]NAME=no |
|||
]) |
|||
|
|||
AC_MSG_CHECKING([which match finders to build]) |
|||
AC_ARG_ENABLE([match-finders], AC_HELP_STRING([--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:] |
|||
m4_translit(m4_defn([SUPPORTED_MATCH_FINDERS]), [,], [ ])), [], |
|||
[enable_match_finders=SUPPORTED_MATCH_FINDERS]) |
|||
enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'` |
|||
if test "x$enable_encoder_lz" = xyes ; then |
|||
for arg in $enable_match_finders |
|||
do |
|||
case $arg in m4_foreach([NAME], [SUPPORTED_MATCH_FINDERS], [ |
|||
NAME) |
|||
enable_match_finder_[]NAME=yes |
|||
AC_DEFINE(HAVE_MF_[]m4_toupper(NAME), [1], |
|||
[Define to 1 to enable] NAME [match finder.]) |
|||
;;]) |
|||
*) |
|||
AC_MSG_RESULT([]) |
|||
AC_MSG_ERROR([unknown match finder: $arg]) |
|||
;; |
|||
esac |
|||
done |
|||
AC_MSG_RESULT([$enable_match_finders]) |
|||
else |
|||
AC_MSG_RESULT([(none because not building any LZ-based encoder)]) |
|||
fi |
|||
|
|||
|
|||
#################### |
|||
# Integrity checks # |
|||
#################### |
|||
|
|||
m4_define([SUPPORTED_CHECKS], [crc32,crc64,sha256]) |
|||
|
|||
m4_foreach([NAME], [SUPPORTED_FILTERS], |
|||
[enable_check_[]NAME=no |
|||
])dnl |
|||
|
|||
AC_MSG_CHECKING([which integrity checks to build]) |
|||
AC_ARG_ENABLE([checks], AC_HELP_STRING([--enable-checks=LIST], |
|||
[Comma-separated list of integrity checks to build. |
|||
Default=all. Available integrity checks:] |
|||
m4_translit(m4_defn([SUPPORTED_CHECKS]), [,], [ ])), |
|||
[], [enable_checks=SUPPORTED_CHECKS]) |
|||
enable_checks=`echo "$enable_checks" | sed 's/,/ /g'` |
|||
if test "x$enable_checks" = xno || test "x$enable_checks" = x; then |
|||
AC_MSG_RESULT([(none)]) |
|||
else |
|||
for arg in $enable_checks |
|||
do |
|||
case $arg in m4_foreach([NAME], [SUPPORTED_CHECKS], [ |
|||
NAME) |
|||
enable_check_[]NAME=yes |
|||
AC_DEFINE(HAVE_CHECK_[]m4_toupper(NAME), [1], |
|||
[Define to 1 if] NAME |
|||
[integrity check is enabled.]) |
|||
;;]) |
|||
*) |
|||
AC_MSG_RESULT([]) |
|||
AC_MSG_ERROR([unknown integrity check: $arg]) |
|||
;; |
|||
esac |
|||
done |
|||
AC_MSG_RESULT([$enable_checks]) |
|||
fi |
|||
if test "x$enable_checks_crc32" = xno ; then |
|||
AC_MSG_ERROR([For now, the CRC32 check must always be enabled.]) |
|||
fi |
|||
|
|||
m4_foreach([NAME], [SUPPORTED_CHECKS], |
|||
[AM_CONDITIONAL(COND_CHECK_[]m4_toupper(NAME), test "x$enable_check_[]NAME" = xyes) |
|||
])dnl |
|||
|
|||
|
|||
########################### |
|||
# Assembler optimizations # |
|||
########################### |
|||
|
|||
AC_MSG_CHECKING([if assembler optimizations should be used]) |
|||
AC_ARG_ENABLE([assembler], AC_HELP_STRING([--disable-assembler], |
|||
[Do not use assembler optimizations even if such exist |
|||
for the architecture.]), |
|||
[], [enable_assembler=yes]) |
|||
if test "x$enable_assembler" = xyes; then |
|||
case $host_cpu in |
|||
i?86) enable_assembler=x86 ;; |
|||
x86_64) enable_assembler=x86_64 ;; |
|||
*) enable_assembler=no ;; |
|||
esac |
|||
fi |
|||
case $enable_assembler in |
|||
x86) |
|||
AC_DEFINE([HAVE_ASM_X86], [1], |
|||
[Define to 1 if using x86 assembler optimizations.]) |
|||
;; |
|||
x86_64) |
|||
AC_DEFINE([HAVE_ASM_X86_64], [1], |
|||
[Define to 1 if using x86_64 assembler optimizations.]) |
|||
;; |
|||
no) |
|||
;; |
|||
*) |
|||
AC_MSG_RESULT([]) |
|||
AC_MSG_ERROR([--enable-assembler accepts only \`yes', \`no', \`x86', or \`x86_64'.]) |
|||
;; |
|||
esac |
|||
AC_MSG_RESULT([$enable_assembler]) |
|||
AM_CONDITIONAL(COND_ASM_X86, test "x$enable_assembler" = xx86) |
|||
AM_CONDITIONAL(COND_ASM_X86_64, test "x$enable_assembler" = xx86_64) |
|||
|
|||
|
|||
################################ |
|||
# Fast unaligned memory access # |
|||
################################ |
|||
|
|||
AC_MSG_CHECKING([if unaligned memory access should be used]) |
|||
AC_ARG_ENABLE([unaligned-access], AC_HELP_STRING([--enable-unaligned-access], |
|||
[Enable if the system supports *fast* unaligned memory access |
|||
with 16-bit and 32-bit integers. By default, this is enabled |
|||
only on x86, x86_64, and big endian PowerPC.]), |
|||
[], [enable_unaligned_access=auto]) |
|||
if test "x$enable_unaligned_access" = xauto ; then |
|||
case $host_cpu in |
|||
i?86|x86_64|powerpc|powerpc64) |
|||
enable_unaligned_access=yes |
|||
;; |
|||
*) |
|||
enable_unaligned_access=no |
|||
;; |
|||
esac |
|||
fi |
|||
if test "x$enable_unaligned_access" = xyes ; then |
|||
AC_DEFINE([HAVE_FAST_UNALIGNED_ACCESS], [1], [Define to 1 if |
|||
the system supports fast unaligned memory access.]) |
|||
AC_MSG_RESULT([yes]) |
|||
else |
|||
AC_MSG_RESULT([no]) |
|||
fi |
|||
|
|||
|
|||
##################### |
|||
# Size optimization # |
|||
##################### |
|||
|
|||
AC_MSG_CHECKING([if small size is preferred over speed]) |
|||
AC_ARG_ENABLE([small], AC_HELP_STRING([--enable-small], |
|||
[Make liblzma smaller and a little slower. |
|||
This is disabled by default to optimize for speed.]), |
|||
[], [enable_small=no]) |
|||
if test "x$enable_small" = xyes; then |
|||
AC_DEFINE([HAVE_SMALL], [1], [Define to 1 if optimizing for size.]) |
|||
elif test "x$enable_small" != xno; then |
|||
AC_MSG_RESULT([]) |
|||
AC_MSG_ERROR([--enable-small accepts only \`yes' or \`no']) |
|||
fi |
|||
AC_MSG_RESULT([$enable_small]) |
|||
AM_CONDITIONAL(COND_SMALL, test "x$enable_small" = xyes) |
|||
|
|||
|
|||
############# |
|||
# Threading # |
|||
############# |
|||
|
|||
AC_MSG_CHECKING([if threading support is wanted]) |
|||
AC_ARG_ENABLE([threads], AC_HELP_STRING([--disable-threads], |
|||
[Disable threading support. |
|||
This makes some things thread-unsafe.]), |
|||
[], [enable_threads=yes]) |
|||
if test "x$enable_threads" != xyes && test "x$enable_threads" != xno; then |
|||
AC_MSG_RESULT([]) |
|||
AC_MSG_ERROR([--enable-threads accepts only \`yes' or \`no']) |
|||
fi |
|||
AC_MSG_RESULT([$enable_threads]) |
|||
# We use the actual result a little later. |
|||
|
|||
|
|||
############################################ |
|||
# xz/xzdec/lzmadec linkage against liblzma # |
|||
############################################ |
|||
|
|||
# Link the xz, xzdec, and lzmadec command line tools against static liblzma |
|||
# unless using --enable-dynamic. Using static liblzma gives a little bit |
|||
# faster executable on x86, because no register is wasted for PIC. We also |
|||
# have one dependency less, which allows users to more freely copy the xz |
|||
# binary to other boxes. However, I wouldn't be surprised if distro |
|||
# maintainers still prefer dynamic linking, so let's make it easy for them. |
|||
|
|||
AC_MSG_CHECKING([how programs should be linked against liblzma]) |
|||
AC_ARG_ENABLE([dynamic], [AC_HELP_STRING([--enable-dynamic=TYPE], |
|||
[Set how command line tools are linked against liblzma. |
|||
TYPE can be mixed, yes, or no. The default is mixed.])], |
|||
[], [enable_dynamic=mixed]) |
|||
case $enable_dynamic in |
|||
mixed) |
|||
AC_MSG_RESULT([mixed (some dynamically, some statically)]) |
|||
;; |
|||
yes) |
|||
AC_MSG_RESULT([dynamically]) |
|||
;; |
|||
no) |
|||
AC_MSG_RESULT([statically]) |
|||
;; |
|||
*) |
|||
AC_MSG_RESULT([]) |
|||
AC_MSG_ERROR([--enable-dynamic accepts only \`mixed', \`yes', or \`no']) |
|||
;; |
|||
esac |
|||
# We use the actual results later, because we don't know yet |
|||
# if --disable-shared or --disable-static was used. |
|||
|
|||
|
|||
############################################################################### |
|||
# Checks for programs. |
|||
############################################################################### |
|||
|
|||
echo |
|||
gl_POSIX_SHELL |
|||
if test -z "$POSIX_SHELL" ; then |
|||
AC_MSG_ERROR([No POSIX conforming shell (sh) was found.]) |
|||
fi |
|||
|
|||
echo |
|||
echo "Initializing Automake:" |
|||
|
|||
AM_INIT_AUTOMAKE([1.10 foreign tar-v7 filename-length-max=99]) |
|||
AC_PROG_LN_S |
|||
|
|||
AC_PROG_CC_C99 |
|||
if test x$ac_cv_prog_cc_c99 = xno ; then |
|||
AC_MSG_ERROR([No C99 compiler was found.]) |
|||
fi |
|||
|
|||
AM_PROG_CC_C_O |
|||
AM_PROG_AS |
|||
AC_USE_SYSTEM_EXTENSIONS |
|||
|
|||
if test "x$enable_threads" = xyes; then |
|||
echo |
|||
echo "Threading support:" |
|||
ACX_PTHREAD |
|||
LIBS="$LIBS $PTHREAD_LIBS" |
|||
AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" |
|||
CC="$PTHREAD_CC" |
|||
fi |
|||
|
|||
echo |
|||
echo "Initializing Libtool:" |
|||
LT_PREREQ([2.2]) |
|||
LT_INIT([win32-dll]) |
|||
LT_LANG([Windows Resource]) |
|||
|
|||
# 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. |
|||
AM_CONDITIONAL([COND_SHARED], [test "x$enable_shared" != xno]) |
|||
|
|||
|
|||
############################################################################### |
|||
# Checks for libraries. |
|||
############################################################################### |
|||
|
|||
echo |
|||
echo "Initializing gettext:" |
|||
AM_GNU_GETTEXT_VERSION([0.16.1]) |
|||
AM_GNU_GETTEXT([external]) |
|||
|
|||
############################################################################### |
|||
# 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. |
|||
AC_CHECK_HEADERS([fcntl.h limits.h sys/time.h], |
|||
[], |
|||
[AC_MSG_ERROR([Required header file(s) are missing.])]) |
|||
|
|||
# If any of these headers are missing, things should still work correctly: |
|||
AC_CHECK_HEADERS([sys/param.h sys/sysctl.h byteswap.h], |
|||
[], [], [ |
|||
#ifdef HAVE_SYS_PARAM_H |
|||
# include <sys/param.h> |
|||
#endif |
|||
]) |
|||
|
|||
# Even if we have byteswap.h, we may lack the specific macros/functions. |
|||
if test x$ac_cv_header_byteswap_h = xyes ; then |
|||
m4_foreach([FUNC], [bswap_16,bswap_32,bswap_64], [ |
|||
AC_MSG_CHECKING([if FUNC is available]) |
|||
AC_LINK_IFELSE([AC_LANG_SOURCE([ |
|||
#include <byteswap.h> |
|||
int |
|||
main(void) |
|||
{ |
|||
FUNC[](42); |
|||
return 0; |
|||
} |
|||
])], [ |
|||
AC_DEFINE(HAVE_[]m4_toupper(FUNC), [1], |
|||
[Define to 1 if] FUNC [is available.]) |
|||
AC_MSG_RESULT([yes]) |
|||
], [AC_MSG_RESULT([no])]) |
|||
|
|||
])dnl |
|||
fi |
|||
|
|||
|
|||
############################################################################### |
|||
# Checks for typedefs, structures, and compiler characteristics. |
|||
############################################################################### |
|||
|
|||
dnl We don't need these as long as we need a C99 compiler anyway. |
|||
dnl AC_C_INLINE |
|||
dnl AC_C_RESTRICT |
|||
|
|||
AC_HEADER_STDBOOL |
|||
|
|||
AC_TYPE_UINT8_T |
|||
AC_TYPE_UINT16_T |
|||
AC_TYPE_INT32_T |
|||
AC_TYPE_UINT32_T |
|||
AC_TYPE_INT64_T |
|||
AC_TYPE_UINT64_T |
|||
AC_TYPE_UINTPTR_T |
|||
|
|||
AC_CHECK_SIZEOF([size_t]) |
|||
|
|||
# The command line tool can copy high resolution timestamps if such |
|||
# information is availabe in struct stat. Otherwise one second accuracy |
|||
# is used. |
|||
AC_CHECK_MEMBERS([ |
|||
struct stat.st_atim.tv_nsec, |
|||
struct stat.st_atimespec.tv_nsec, |
|||
struct stat.st_atimensec, |
|||
struct stat.st_uatime, |
|||
struct stat.st_atim.st__tim.tv_nsec]) |
|||
|
|||
AC_SYS_LARGEFILE |
|||
AC_C_BIGENDIAN |
|||
|
|||
|
|||
############################################################################### |
|||
# Checks for library functions. |
|||
############################################################################### |
|||
|
|||
# Gnulib replacements as needed |
|||
gl_GETOPT |
|||
|
|||
# Find the best function to set timestamps. |
|||
AC_CHECK_FUNCS([futimens futimes futimesat utimes utime], [break]) |
|||
|
|||
lc_PHYSMEM |
|||
lc_CPUCORES |
|||
|
|||
|
|||
############################################################################### |
|||
# 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. |
|||
gl_VISIBILITY |
|||
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. |
|||
# * -Wcast-align breaks optimized CRC32 and CRC64 implementation |
|||
# on some architectures (not on x86), where this warning is bogus, |
|||
# because we take care of correct alignment. |
|||
# * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations |
|||
# don't seem so useful here; at least the last one gives some |
|||
# warnings which are not bugs. |
|||
for NEW_FLAG in \ |
|||
-Wall \ |
|||
-Wextra \ |
|||
-Wformat=2 \ |
|||
-Winit-self \ |
|||
-Wmissing-include-dirs \ |
|||
-Wstrict-aliasing \ |
|||
-Wfloat-equal \ |
|||
-Wundef \ |
|||
-Wshadow \ |
|||
-Wpointer-arith \ |
|||
-Wbad-function-cast \ |
|||
-Wwrite-strings \ |
|||
-Wlogical-op \ |
|||
-Waggregate-return \ |
|||
-Wstrict-prototypes \ |
|||
-Wold-style-definition \ |
|||
-Wmissing-prototypes \ |
|||
-Wmissing-declarations \ |
|||
-Wmissing-noreturn \ |
|||
-Wredundant-decls |
|||
do |
|||
AC_MSG_CHECKING([if $CC accepts $NEW_FLAG]) |
|||
OLD_CFLAGS="$CFLAGS" |
|||
CFLAGS="$CFLAGS $NEW_FLAG" |
|||
AC_COMPILE_IFELSE([void foo(void) { }], [ |
|||
AM_CFLAGS="$AM_CFLAGS $NEW_FLAG" |
|||
AC_MSG_RESULT([yes]) |
|||
], [ |
|||
AC_MSG_RESULT([no]) |
|||
]) |
|||
CFLAGS="$OLD_CFLAGS" |
|||
done |
|||
|
|||
AC_ARG_ENABLE([werror], |
|||
AC_HELP_STRING([--enable-werror], [Enable -Werror to abort |
|||
compilation on all compiler warnings.]), |
|||
[], [enable_werror=no]) |
|||
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. |
|||
AM_CONDITIONAL([COND_GNULIB], test -n "$LIBOBJS") |
|||
|
|||
# Add default AM_CFLAGS. |
|||
AC_SUBST([AM_CFLAGS]) |
|||
|
|||
# Set additional flags for static/dynamic linking. The idea is that every |
|||
# program (not library) being built will use either STATIC_{CPPFLAGS,LDFLAGS} |
|||
# or DYNAMIC_{CPPFLAGS,LDFLAGS} depending on which type of linkage is |
|||
# preferred. These preferences get overriden by use of --disable-static, |
|||
# --disable-shared, or --enable-dynamic. |
|||
# |
|||
# This is quite messy, because we want to use LZMA_API_STATIC when linking |
|||
# against static liblzma. It's needed on Windows. |
|||
if test "x$enable_static" = xno; then |
|||
enable_dynamic=yes |
|||
fi |
|||
if test "x$enable_shared" = xno; then |
|||
enable_dynamic=no |
|||
fi |
|||
case $enable_dynamic in |
|||
yes) |
|||
STATIC_CPPFLAGS= |
|||
STATIC_LDFLAGS= |
|||
DYNAMIC_CPPFLAGS= |
|||
DYNAMIC_LDFLAGS= |
|||
;; |
|||
mixed) |
|||
STATIC_CPPFLAGS="-DLZMA_API_STATIC" |
|||
STATIC_LDFLAGS="-static" |
|||
DYNAMIC_CPPFLAGS= |
|||
DYNAMIC_LDFLAGS= |
|||
;; |
|||
no) |
|||
STATIC_CPPFLAGS="-DLZMA_API_STATIC" |
|||
STATIC_LDFLAGS="-static" |
|||
DYNAMIC_CPPFLAGS="-DLZMA_API_STATIC" |
|||
DYNAMIC_LDFLAGS="-static" |
|||
;; |
|||
esac |
|||
AC_SUBST([STATIC_CPPFLAGS]) |
|||
AC_SUBST([STATIC_LDFLAGS]) |
|||
AC_SUBST([DYNAMIC_CPPFLAGS]) |
|||
AC_SUBST([DYNAMIC_LDFLAGS]) |
|||
|
|||
# This is needed for src/scripts. |
|||
xz=`echo xz | sed "$program_transform_name"` |
|||
AC_SUBST([xz]) |
|||
|
|||
AC_CONFIG_FILES([ |
|||
Doxyfile |
|||
Makefile |
|||
po/Makefile.in |
|||
lib/Makefile |
|||
src/Makefile |
|||
src/liblzma/liblzma.pc |
|||
src/liblzma/Makefile |
|||
src/liblzma/api/Makefile |
|||
src/xz/Makefile |
|||
src/xzdec/Makefile |
|||
src/lzmainfo/Makefile |
|||
src/scripts/Makefile |
|||
src/scripts/xzdiff |
|||
src/scripts/xzgrep |
|||
src/scripts/xzmore |
|||
src/scripts/xzless |
|||
tests/Makefile |
|||
debug/Makefile |
|||
]) |
|||
|
|||
AC_OUTPUT |
@ -0,0 +1,30 @@ |
|||
##
|
|||
## Author: Lasse Collin
|
|||
##
|
|||
## This file has been put into the public domain.
|
|||
## You can do whatever you want with this file.
|
|||
##
|
|||
|
|||
noinst_PROGRAMS = \
|
|||
repeat \
|
|||
sync_flush \
|
|||
full_flush \
|
|||
memusage \
|
|||
crc32 \
|
|||
known_sizes \
|
|||
hex2bin |
|||
|
|||
AM_CPPFLAGS = \
|
|||
-I$(top_srcdir)/src/common \
|
|||
-I$(top_srcdir)/src/liblzma/api \
|
|||
$(STATIC_CPPFLAGS) |
|||
|
|||
AM_LDFLAGS = $(STATIC_LDFLAGS) |
|||
|
|||
LDADD = $(top_builddir)/src/liblzma/liblzma.la |
|||
|
|||
if COND_GNULIB |
|||
LDADD += $(top_builddir)/lib/libgnu.a |
|||
endif |
|||
|
|||
LDADD += $(LTLIBINTL) |
@ -0,0 +1,580 @@ |
|||
# Makefile.in generated by automake 1.11 from Makefile.am.
|
|||
# @configure_input@
|
|||
|
|||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
|||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
|||
# Inc.
|
|||
# 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@ |
|||
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 |
|||
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
|||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
|||
am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
|
|||
$(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettext.m4 \
|
|||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lc_cpucores.m4 \
|
|||
$(top_srcdir)/m4/lc_physmem.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/visibility.m4 \
|
|||
$(top_srcdir)/configure.ac |
|||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|||
$(ACLOCAL_M4) |
|||
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) |
|||
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) |
|||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) |
|||
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp |
|||
am__depfiles_maybe = depfiles |
|||
am__mv = mv -f |
|||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
|||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
|||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
|||
CCLD = $(CC) |
|||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
|||
$(LDFLAGS) -o $@ |
|||
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 |
|||
ETAGS = etags |
|||
CTAGS = ctags |
|||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
|||
ACLOCAL = @ACLOCAL@ |
|||
AMTAR = @AMTAR@ |
|||
AM_CFLAGS = @AM_CFLAGS@ |
|||
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@ |
|||
CYGPATH_W = @CYGPATH_W@ |
|||
DEFS = @DEFS@ |
|||
DEPDIR = @DEPDIR@ |
|||
DLLTOOL = @DLLTOOL@ |
|||
DSYMUTIL = @DSYMUTIL@ |
|||
DUMPBIN = @DUMPBIN@ |
|||
DYNAMIC_CPPFLAGS = @DYNAMIC_CPPFLAGS@ |
|||
DYNAMIC_LDFLAGS = @DYNAMIC_LDFLAGS@ |
|||
ECHO_C = @ECHO_C@ |
|||
ECHO_N = @ECHO_N@ |
|||
ECHO_T = @ECHO_T@ |
|||
EGREP = @EGREP@ |
|||
EXEEXT = @EXEEXT@ |
|||
FGREP = @FGREP@ |
|||
GETOPT_H = @GETOPT_H@ |
|||
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_S = @LN_S@ |
|||
LTLIBICONV = @LTLIBICONV@ |
|||
LTLIBINTL = @LTLIBINTL@ |
|||
LTLIBOBJS = @LTLIBOBJS@ |
|||
MAKEINFO = @MAKEINFO@ |
|||
MKDIR_P = @MKDIR_P@ |
|||
MSGFMT = @MSGFMT@ |
|||
MSGFMT_015 = @MSGFMT_015@ |
|||
MSGMERGE = @MSGMERGE@ |
|||
NM = @NM@ |
|||
NMEDIT = @NMEDIT@ |
|||
OBJDUMP = @OBJDUMP@ |
|||
OBJEXT = @OBJEXT@ |
|||
OTOOL = @OTOOL@ |
|||
OTOOL64 = @OTOOL64@ |
|||
PACKAGE = @PACKAGE@ |
|||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
|||
PACKAGE_HOMEPAGE = @PACKAGE_HOMEPAGE@ |
|||
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_LIBS = @PTHREAD_LIBS@ |
|||
RANLIB = @RANLIB@ |
|||
RC = @RC@ |
|||
SED = @SED@ |
|||
SET_MAKE = @SET_MAKE@ |
|||
SHELL = @SHELL@ |
|||
STATIC_CPPFLAGS = @STATIC_CPPFLAGS@ |
|||
STATIC_LDFLAGS = @STATIC_LDFLAGS@ |
|||
STRIP = @STRIP@ |
|||
USE_NLS = @USE_NLS@ |
|||
VERSION = @VERSION@ |
|||
XGETTEXT = @XGETTEXT@ |
|||
XGETTEXT_015 = @XGETTEXT_015@ |
|||
abs_builddir = @abs_builddir@ |
|||
abs_srcdir = @abs_srcdir@ |
|||
abs_top_builddir = @abs_top_builddir@ |
|||
abs_top_srcdir = @abs_top_srcdir@ |
|||
ac_ct_CC = @ac_ct_CC@ |
|||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
|||
acx_pthread_config = @acx_pthread_config@ |
|||
am__include = @am__include@ |
|||
am__leading_dot = @am__leading_dot@ |
|||
am__quote = @am__quote@ |
|||
am__tar = @am__tar@ |
|||
am__untar = @am__untar@ |
|||
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@ |
|||
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@ |
|||
localstatedir = @localstatedir@ |
|||
lt_ECHO = @lt_ECHO@ |
|||
mandir = @mandir@ |
|||
mkdir_p = @mkdir_p@ |
|||
oldincludedir = @oldincludedir@ |
|||
pdfdir = @pdfdir@ |
|||
prefix = @prefix@ |
|||
program_transform_name = @program_transform_name@ |
|||
psdir = @psdir@ |
|||
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@ |
|||
AM_CPPFLAGS = \
|
|||
-I$(top_srcdir)/src/common \
|
|||
-I$(top_srcdir)/src/liblzma/api \
|
|||
$(STATIC_CPPFLAGS) |
|||
|
|||
AM_LDFLAGS = $(STATIC_LDFLAGS) |
|||
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 |
|||
.PRECIOUS: Makefile |
|||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
|||
@case '$?' in \
|
|||
*config.status*) \
|
|||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
|||
*) \
|
|||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
|||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
|||
esac; |
|||
|
|||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
|||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
|||
|
|||
$(top_srcdir)/configure: $(am__configure_deps) |
|||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
|||
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
|||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
|||
$(am__aclocal_m4_deps): |
|||
|
|||
clean-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) |
|||
@rm -f crc32$(EXEEXT) |
|||
$(LINK) $(crc32_OBJECTS) $(crc32_LDADD) $(LIBS) |
|||
full_flush$(EXEEXT): $(full_flush_OBJECTS) $(full_flush_DEPENDENCIES) |
|||
@rm -f full_flush$(EXEEXT) |
|||
$(LINK) $(full_flush_OBJECTS) $(full_flush_LDADD) $(LIBS) |
|||
hex2bin$(EXEEXT): $(hex2bin_OBJECTS) $(hex2bin_DEPENDENCIES) |
|||
@rm -f hex2bin$(EXEEXT) |
|||
$(LINK) $(hex2bin_OBJECTS) $(hex2bin_LDADD) $(LIBS) |
|||
known_sizes$(EXEEXT): $(known_sizes_OBJECTS) $(known_sizes_DEPENDENCIES) |
|||
@rm -f known_sizes$(EXEEXT) |
|||
$(LINK) $(known_sizes_OBJECTS) $(known_sizes_LDADD) $(LIBS) |
|||
memusage$(EXEEXT): $(memusage_OBJECTS) $(memusage_DEPENDENCIES) |
|||
@rm -f memusage$(EXEEXT) |
|||
$(LINK) $(memusage_OBJECTS) $(memusage_LDADD) $(LIBS) |
|||
repeat$(EXEEXT): $(repeat_OBJECTS) $(repeat_DEPENDENCIES) |
|||
@rm -f repeat$(EXEEXT) |
|||
$(LINK) $(repeat_OBJECTS) $(repeat_LDADD) $(LIBS) |
|||
sync_flush$(EXEEXT): $(sync_flush_OBJECTS) $(sync_flush_DEPENDENCIES) |
|||
@rm -f sync_flush$(EXEEXT) |
|||
$(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@ |
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full_flush.Po@am__quote@ |
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hex2bin.Po@am__quote@ |
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/known_sizes.Po@am__quote@ |
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memusage.Po@am__quote@ |
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/repeat.Po@am__quote@ |
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_flush.Po@am__quote@ |
|||
|
|||
.c.o: |
|||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
|||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
|||
@am__fastdepCC_FALSE@ $(COMPILE) -c $< |
|||
|
|||
.c.obj: |
|||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
|||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
|||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` |
|||
|
|||
.c.lo: |
|||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
|||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
|||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< |
|||
|
|||
mostlyclean-libtool: |
|||
-rm -f *.lo |
|||
|
|||
clean-libtool: |
|||
-rm -rf .libs _libs |
|||
|
|||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) |
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
mkid -fID $$unique |
|||
tags: TAGS |
|||
|
|||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ |
|||
$(TAGS_FILES) $(LISP) |
|||
set x; \
|
|||
here=`pwd`; \
|
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
shift; \
|
|||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
|||
test -n "$$unique" || unique=$$empty_fix; \
|
|||
if test $$# -gt 0; then \ |
|||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|||
"$$@" $$unique; \
|
|||
else \
|
|||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|||
$$unique; \
|
|||
fi; \
|
|||
fi |
|||
ctags: CTAGS |
|||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ |
|||
$(TAGS_FILES) $(LISP) |
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
test -z "$(CTAGS_ARGS)$$unique" \
|
|||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|||
$$unique |
|||
|
|||
GTAGS: |
|||
here=`$(am__cd) $(top_builddir) && pwd` \
|
|||
&& $(am__cd) $(top_srcdir) \
|
|||
&& gtags -i $(GTAGS_ARGS) "$$here" |
|||
|
|||
distclean-tags: |
|||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
|||
|
|||
distdir: $(DISTFILES) |
|||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|||
list='$(DISTFILES)'; \
|
|||
dist_files=`for file in $$list; do echo $$file; done | \
|
|||
sed -e "s|^$$srcdirstrip/||;t" \
|
|||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
|||
case $$dist_files in \
|
|||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
|||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
|||
sort -u` ;; \
|
|||
esac; \
|
|||
for file in $$dist_files; do \
|
|||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
|||
if test -d $$d/$$file; then \
|
|||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
|||
if test -d "$(distdir)/$$file"; then \
|
|||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|||
fi; \
|
|||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
|||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
|||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|||
fi; \
|
|||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
|||
else \
|
|||
test -f "$(distdir)/$$file" \
|
|||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
|||
|| exit 1; \
|
|||
fi; \
|
|||
done |
|||
check-am: all-am |
|||
check: check-am |
|||
all-am: Makefile $(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: |
|||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|||
`test -z '$(STRIP)' || \
|
|||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install |
|||
mostlyclean-generic: |
|||
|
|||
clean-generic: |
|||
|
|||
distclean-generic: |
|||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
|||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
|||
|
|||
maintainer-clean-generic: |
|||
@echo "This command is intended for maintainers to use" |
|||
@echo "it deletes files that may require special tools to rebuild." |
|||
clean: clean-am |
|||
|
|||
clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ |
|||
mostlyclean-am |
|||
|
|||
distclean: distclean-am |
|||
-rm -rf ./$(DEPDIR) |
|||
-rm -f Makefile |
|||
distclean-am: clean-am distclean-compile distclean-generic \ |
|||
distclean-tags |
|||
|
|||
dvi: dvi-am |
|||
|
|||
dvi-am: |
|||
|
|||
html: html-am |
|||
|
|||
html-am: |
|||
|
|||
info: info-am |
|||
|
|||
info-am: |
|||
|
|||
install-data-am: |
|||
|
|||
install-dvi: install-dvi-am |
|||
|
|||
install-dvi-am: |
|||
|
|||
install-exec-am: |
|||
|
|||
install-html: install-html-am |
|||
|
|||
install-html-am: |
|||
|
|||
install-info: install-info-am |
|||
|
|||
install-info-am: |
|||
|
|||
install-man: |
|||
|
|||
install-pdf: install-pdf-am |
|||
|
|||
install-pdf-am: |
|||
|
|||
install-ps: install-ps-am |
|||
|
|||
install-ps-am: |
|||
|
|||
installcheck-am: |
|||
|
|||
maintainer-clean: maintainer-clean-am |
|||
-rm -rf ./$(DEPDIR) |
|||
-rm -f Makefile |
|||
maintainer-clean-am: distclean-am maintainer-clean-generic |
|||
|
|||
mostlyclean: mostlyclean-am |
|||
|
|||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
|||
mostlyclean-libtool |
|||
|
|||
pdf: pdf-am |
|||
|
|||
pdf-am: |
|||
|
|||
ps: ps-am |
|||
|
|||
ps-am: |
|||
|
|||
uninstall-am: |
|||
|
|||
.MAKE: install-am install-strip |
|||
|
|||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ |
|||
clean-libtool clean-noinstPROGRAMS ctags 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 uninstall uninstall-am |
|||
|
|||
|
|||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|||
.NOEXPORT: |
@ -0,0 +1,17 @@ |
|||
|
|||
Debug tools |
|||
----------- |
|||
|
|||
This directory contains a few tiny programs that may be helpful when |
|||
debugging LZMA Utils. |
|||
|
|||
These tools are not meant to be installed. Often one needs to edit |
|||
the source code a little to make the programs do the wanted things. |
|||
If you don't know how these programs could help you, it is likely |
|||
that they really are useless to you. |
|||
|
|||
These aren't intended to be used as example programs. They take some |
|||
shortcuts here and there, which correct programs should not do. Many |
|||
possible errors (especially I/O errors) are ignored. Don't report |
|||
bugs or send patches to fix this kind of bugs. |
|||
|
@ -0,0 +1,38 @@ |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
/// \file crc32.c |
|||
/// \brief Primitive CRC32 calculation tool |
|||
// |
|||
// Author: Lasse Collin |
|||
// |
|||
// This file has been put into the public domain. |
|||
// You can do whatever you want with this file. |
|||
// |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#include "sysdefs.h" |
|||
#include <stdio.h> |
|||
|
|||
|
|||
int |
|||
main(void) |
|||
{ |
|||
uint32_t crc = 0; |
|||
|
|||
do { |
|||
uint8_t buf[BUFSIZ]; |
|||
const size_t size = fread(buf, 1, sizeof(buf), stdin); |
|||
crc = lzma_crc32(buf, size, crc); |
|||
} while (!ferror(stdin) && !feof(stdin)); |
|||
|
|||
//printf("%08" PRIX32 "\n", crc); |
|||
|
|||
// I want it little endian so it's easy to work with hex editor. |
|||
printf("%02" PRIX32 " ", crc & 0xFF); |
|||
printf("%02" PRIX32 " ", (crc >> 8) & 0xFF); |
|||
printf("%02" PRIX32 " ", (crc >> 16) & 0xFF); |
|||
printf("%02" PRIX32 " ", crc >> 24); |
|||
printf("\n"); |
|||
|
|||
return 0; |
|||
} |
@ -0,0 +1,102 @@ |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
/// \file full_flush.c |
|||
/// \brief Encode files using LZMA_FULL_FLUSH |
|||
// |
|||
// Author: Lasse Collin |
|||
// |
|||
// This file has been put into the public domain. |
|||
// You can do whatever you want with this file. |
|||
// |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#include "sysdefs.h" |
|||
#include "lzma.h" |
|||
#include <stdio.h> |
|||
|
|||
|
|||
static lzma_stream strm = LZMA_STREAM_INIT; |
|||
static FILE *file_in; |
|||
|
|||
|
|||
static void |
|||
encode(size_t size, lzma_action action) |
|||
{ |
|||
static const size_t CHUNK = 64; |
|||
uint8_t in[CHUNK]; |
|||
uint8_t out[CHUNK]; |
|||
lzma_ret ret; |
|||
|
|||
do { |
|||
if (strm.avail_in == 0 && size > 0) { |
|||
const size_t amount = MIN(size, CHUNK); |
|||
strm.avail_in = fread(in, 1, amount, file_in); |
|||
strm.next_in = in; |
|||
size -= amount; // Intentionally not using avail_in. |
|||
} |
|||
|
|||
strm.next_out = out; |
|||
strm.avail_out = CHUNK; |
|||
|
|||
ret = lzma_code(&strm, size == 0 ? action : LZMA_RUN); |
|||
|
|||
if (ret != LZMA_OK && ret != LZMA_STREAM_END) { |
|||
fprintf(stderr, "%s:%u: %s: ret == %d\n", |
|||
__FILE__, __LINE__, __func__, ret); |
|||
exit(1); |
|||
} |
|||
|
|||
fwrite(out, 1, CHUNK - strm.avail_out, stdout); |
|||
|
|||
} while (size > 0 || strm.avail_out == 0); |
|||
|
|||
if ((action == LZMA_RUN && ret != LZMA_OK) |
|||
|| (action != LZMA_RUN && ret != LZMA_STREAM_END)) { |
|||
fprintf(stderr, "%s:%u: %s: ret == %d\n", |
|||
__FILE__, __LINE__, __func__, ret); |
|||
exit(1); |
|||
} |
|||
} |
|||
|
|||
|
|||
int |
|||
main(int argc, char **argv) |
|||
{ |
|||
file_in = argc > 1 ? fopen(argv[1], "rb") : stdin; |
|||
|
|||
|
|||
// Config |
|||
lzma_options_lzma opt_lzma; |
|||
if (lzma_lzma_preset(&opt_lzma, 1)) { |
|||
fprintf(stderr, "preset failed\n"); |
|||
exit(1); |
|||
} |
|||
lzma_filter filters[LZMA_FILTERS_MAX + 1]; |
|||
filters[0].id = LZMA_FILTER_LZMA2; |
|||
filters[0].options = &opt_lzma; |
|||
filters[1].id = LZMA_VLI_UNKNOWN; |
|||
|
|||
// Init |
|||
if (lzma_stream_encoder(&strm, filters, LZMA_CHECK_CRC32) != LZMA_OK) { |
|||
fprintf(stderr, "init failed\n"); |
|||
exit(1); |
|||
} |
|||
|
|||
// if (lzma_easy_encoder(&strm, 1)) { |
|||
// fprintf(stderr, "init failed\n"); |
|||
// exit(1); |
|||
// } |
|||
|
|||
// Encoding |
|||
encode(0, LZMA_FULL_FLUSH); |
|||
encode(6, LZMA_FULL_FLUSH); |
|||
encode(0, LZMA_FULL_FLUSH); |
|||
encode(7, LZMA_FULL_FLUSH); |
|||
encode(0, LZMA_FULL_FLUSH); |
|||
encode(0, LZMA_FINISH); |
|||
|
|||
// Clean up |
|||
lzma_end(&strm); |
|||
|
|||
return 0; |
|||
} |
@ -0,0 +1,53 @@ |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
/// \file hex2bin.c |
|||
/// \brief Converts hexadecimal input strings to binary |
|||
// |
|||
// Author: Lasse Collin |
|||
// |
|||
// This file has been put into the public domain. |
|||
// You can do whatever you want with this file. |
|||
// |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#include "sysdefs.h" |
|||
#include <stdio.h> |
|||
#include <ctype.h> |
|||
|
|||
|
|||
static int |
|||
getbin(int x) |
|||
{ |
|||
if (x >= '0' && x <= '9') |
|||
return x - '0'; |
|||
|
|||
if (x >= 'A' && x <= 'F') |
|||
return x - 'A' + 10; |
|||
|
|||
return x - 'a' + 10; |
|||
} |
|||
|
|||
|
|||
int |
|||
main(void) |
|||
{ |
|||
while (true) { |
|||
int byte = getchar(); |
|||
if (byte == EOF) |
|||
return 0; |
|||
if (!isxdigit(byte)) |
|||
continue; |
|||
|
|||
const int digit = getchar(); |
|||
if (digit == EOF || !isxdigit(digit)) { |
|||
fprintf(stderr, "Invalid input\n"); |
|||
return 1; |
|||
} |
|||
|
|||
byte = (getbin(byte) << 4) | getbin(digit); |
|||
if (putchar(byte) == EOF) { |
|||
perror(NULL); |
|||
return 1; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,129 @@ |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
/// \file known_sizes.c |
|||
/// \brief Encodes .lzma Stream with sizes known in Block Header |
|||
/// |
|||
/// The input file is encoded in RAM, and the known Compressed Size |
|||
/// and/or Uncompressed Size values are stored in the Block Header. |
|||
/// As of writing there's no such Stream encoder in liblzma. |
|||
// |
|||
// Author: Lasse Collin |
|||
// |
|||
// This file has been put into the public domain. |
|||
// You can do whatever you want with this file. |
|||
// |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#include "sysdefs.h" |
|||
#include "lzma.h" |
|||
#include <sys/types.h> |
|||
#include <sys/stat.h> |
|||
#include <sys/unistd.h> |
|||
#include <stdio.h> |
|||
|
|||
|
|||
// Support file sizes up to 1 MiB. We use this for output space too, so files |
|||
// close to 1 MiB had better compress at least a little or we have a buffer |
|||
// overflow. |
|||
#define BUFFER_SIZE (1U << 20) |
|||
|
|||
|
|||
int |
|||
main(void) |
|||
{ |
|||
// Allocate the buffers. |
|||
uint8_t *in = malloc(BUFFER_SIZE); |
|||
uint8_t *out = malloc(BUFFER_SIZE); |
|||
if (in == NULL || out == NULL) |
|||
return 1; |
|||
|
|||
// Fill the input buffer. |
|||
const size_t in_size = fread(in, 1, BUFFER_SIZE, stdin); |
|||
|
|||
// Filter setup |
|||
lzma_options_lzma opt_lzma; |
|||
if (lzma_lzma_preset(&opt_lzma, 1)) |
|||
return 1; |
|||
|
|||
lzma_filter filters[] = { |
|||
{ |
|||
.id = LZMA_FILTER_LZMA2, |
|||
.options = &opt_lzma |
|||
}, |
|||
{ |
|||
.id = LZMA_VLI_UNKNOWN |
|||
} |
|||
}; |
|||
|
|||
lzma_block block = { |
|||
.check = LZMA_CHECK_CRC32, |
|||
.compressed_size = BUFFER_SIZE, // Worst case reserve |
|||
.uncompressed_size = in_size, |
|||
.filters = filters, |
|||
}; |
|||
|
|||
lzma_stream strm = LZMA_STREAM_INIT; |
|||
if (lzma_block_encoder(&strm, &block) != LZMA_OK) |
|||
return 1; |
|||
|
|||
// Reserve space for Stream Header and Block Header. We need to |
|||
// calculate the size of the Block Header first. |
|||
if (lzma_block_header_size(&block) != LZMA_OK) |
|||
return 1; |
|||
|
|||
size_t out_size = LZMA_STREAM_HEADER_SIZE + block.header_size; |
|||
|
|||
strm.next_in = in; |
|||
strm.avail_in = in_size; |
|||
strm.next_out = out + out_size; |
|||
strm.avail_out = BUFFER_SIZE - out_size; |
|||
|
|||
if (lzma_code(&strm, LZMA_FINISH) != LZMA_STREAM_END) |
|||
return 1; |
|||
|
|||
out_size += strm.total_out; |
|||
|
|||
if (lzma_block_header_encode(&block, out + LZMA_STREAM_HEADER_SIZE) |
|||
!= LZMA_OK) |
|||
return 1; |
|||
|
|||
lzma_index *idx = lzma_index_init(NULL, NULL); |
|||
if (idx == NULL) |
|||
return 1; |
|||
|
|||
if (lzma_index_append(idx, NULL, block.header_size + strm.total_out, |
|||
strm.total_in) != LZMA_OK) |
|||
return 1; |
|||
|
|||
if (lzma_index_encoder(&strm, idx) != LZMA_OK) |
|||
return 1; |
|||
|
|||
if (lzma_code(&strm, LZMA_RUN) != LZMA_STREAM_END) |
|||
return 1; |
|||
|
|||
out_size += strm.total_out; |
|||
|
|||
lzma_end(&strm); |
|||
|
|||
lzma_index_end(idx, NULL); |
|||
|
|||
// Encode the Stream Header and Stream Footer. backwards_size is |
|||
// needed only for the Stream Footer. |
|||
lzma_stream_flags sf = { |
|||
.backward_size = strm.total_out, |
|||
.check = block.check, |
|||
}; |
|||
|
|||
if (lzma_stream_header_encode(&sf, out) != LZMA_OK) |
|||
return 1; |
|||
|
|||
if (lzma_stream_footer_encode(&sf, out + out_size) != LZMA_OK) |
|||
return 1; |
|||
|
|||
out_size += LZMA_STREAM_HEADER_SIZE; |
|||
|
|||
// Write out the file. |
|||
fwrite(out, 1, out_size, stdout); |
|||
|
|||
return 0; |
|||
} |
@ -0,0 +1,49 @@ |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
/// \file memusage.c |
|||
/// \brief Calculates memory usage using lzma_memory_usage() |
|||
// |
|||
// Author: Lasse Collin |
|||
// |
|||
// This file has been put into the public domain. |
|||
// You can do whatever you want with this file. |
|||
// |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#include "sysdefs.h" |
|||
#include "lzma.h" |
|||
#include <stdio.h> |
|||
|
|||
int |
|||
main(void) |
|||
{ |
|||
lzma_options_lzma lzma = { |
|||
.dict_size = (1U << 30) + (1U << 29), |
|||
.lc = 3, |
|||
.lp = 0, |
|||
.pb = 2, |
|||
.preset_dict = NULL, |
|||
.preset_dict_size = 0, |
|||
.mode = LZMA_MODE_NORMAL, |
|||
.nice_len = 48, |
|||
.mf = LZMA_MF_BT4, |
|||
.depth = 0, |
|||
}; |
|||
|
|||
/* |
|||
lzma_options_filter filters[] = { |
|||
{ LZMA_FILTER_LZMA1, |
|||
(lzma_options_lzma *)&lzma_preset_lzma[6 - 1] }, |
|||
{ UINT64_MAX, NULL } |
|||
}; |
|||
*/ |
|||
lzma_filter filters[] = { |
|||
{ LZMA_FILTER_LZMA1, &lzma }, |
|||
{ UINT64_MAX, NULL } |
|||
}; |
|||
|
|||
printf("Encoder: %10" PRIu64 " B\n", lzma_memusage_encoder(filters)); |
|||
printf("Decoder: %10" PRIu64 " B\n", lzma_memusage_decoder(filters)); |
|||
|
|||
return 0; |
|||
} |
@ -0,0 +1,36 @@ |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
/// \file repeat.c |
|||
/// \brief Repeats given string given times |
|||
/// |
|||
/// This program can be useful when debugging run-length encoder in |
|||
/// the Subblock filter, especially the condition when repeat count |
|||
/// doesn't fit into 28-bit integer. |
|||
// |
|||
// Author: Lasse Collin |
|||
// |
|||
// This file has been put into the public domain. |
|||
// You can do whatever you want with this file. |
|||
// |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#include "sysdefs.h" |
|||
#include <stdio.h> |
|||
|
|||
|
|||
int |
|||
main(int argc, char **argv) |
|||
{ |
|||
if (argc != 3) { |
|||
fprintf(stderr, "Usage: %s COUNT STRING\n", argv[0]); |
|||
exit(1); |
|||
} |
|||
|
|||
unsigned long long count = strtoull(argv[1], NULL, 10); |
|||
const size_t size = strlen(argv[2]); |
|||
|
|||
while (count-- != 0) |
|||
fwrite(argv[2], 1, size, stdout); |
|||
|
|||
return !!(ferror(stdout) || fclose(stdout)); |
|||
} |
@ -0,0 +1,133 @@ |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
/// \file sync_flush.c |
|||
/// \brief Encode files using LZMA_SYNC_FLUSH |
|||
// |
|||
// Author: Lasse Collin |
|||
// |
|||
// This file has been put into the public domain. |
|||
// You can do whatever you want with this file. |
|||
// |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#include "sysdefs.h" |
|||
#include "lzma.h" |
|||
#include <stdio.h> |
|||
|
|||
|
|||
static lzma_stream strm = LZMA_STREAM_INIT; |
|||
static FILE *file_in; |
|||
|
|||
|
|||
static void |
|||
encode(size_t size, lzma_action action) |
|||
{ |
|||
static const size_t CHUNK = 64; |
|||
uint8_t in[CHUNK]; |
|||
uint8_t out[CHUNK]; |
|||
lzma_ret ret; |
|||
|
|||
do { |
|||
if (strm.avail_in == 0 && size > 0) { |
|||
const size_t amount = MIN(size, CHUNK); |
|||
strm.avail_in = fread(in, 1, amount, file_in); |
|||
strm.next_in = in; |
|||
size -= amount; // Intentionally not using avail_in. |
|||
} |
|||
|
|||
strm.next_out = out; |
|||
strm.avail_out = CHUNK; |
|||
|
|||
ret = lzma_code(&strm, size == 0 ? action : LZMA_RUN); |
|||
|
|||
if (ret != LZMA_OK && ret != LZMA_STREAM_END) { |
|||
fprintf(stderr, "%s:%u: %s: ret == %d\n", |
|||
__FILE__, __LINE__, __func__, ret); |
|||
exit(1); |
|||
} |
|||
|
|||
fwrite(out, 1, CHUNK - strm.avail_out, stdout); |
|||
|
|||
} while (size > 0 || strm.avail_out == 0); |
|||
|
|||
if ((action == LZMA_RUN && ret != LZMA_OK) |
|||
|| (action != LZMA_RUN && ret != LZMA_STREAM_END)) { |
|||
fprintf(stderr, "%s:%u: %s: ret == %d\n", |
|||
__FILE__, __LINE__, __func__, ret); |
|||
exit(1); |
|||
} |
|||
} |
|||
|
|||
|
|||
int |
|||
main(int argc, char **argv) |
|||
{ |
|||
file_in = argc > 1 ? fopen(argv[1], "rb") : stdin; |
|||
|
|||
// Config |
|||
lzma_options_lzma opt_lzma = { |
|||
.dict_size = 1U << 16, |
|||
.lc = LZMA_LC_DEFAULT, |
|||
.lp = LZMA_LP_DEFAULT, |
|||
.pb = LZMA_PB_DEFAULT, |
|||
.preset_dict = NULL, |
|||
.persistent = true, |
|||
.mode = LZMA_MODE_NORMAL, |
|||
.nice_len = 32, |
|||
.mf = LZMA_MF_HC3, |
|||
.depth = 0, |
|||
}; |
|||
|
|||
lzma_options_delta opt_delta = { |
|||
.dist = 16 |
|||
}; |
|||
|
|||
lzma_options_subblock opt_subblock = { |
|||
.allow_subfilters = true, |
|||
.alignment = 8, // LZMA_SUBBLOCK_ALIGNMENT_DEFAULT, |
|||
.subblock_data_size = LZMA_SUBBLOCK_DATA_SIZE_DEFAULT, |
|||
.rle = 1, // LZMA_SUBBLOCK_RLE_OFF, |
|||
.subfilter_mode = LZMA_SUBFILTER_SET, |
|||
}; |
|||
opt_subblock.subfilter_options.id = LZMA_FILTER_LZMA1; |
|||
opt_subblock.subfilter_options.options = &opt_lzma; |
|||
opt_subblock.subfilter_options.id = LZMA_FILTER_DELTA; |
|||
opt_subblock.subfilter_options.options = &opt_delta; |
|||
|
|||
lzma_filter filters[LZMA_FILTERS_MAX + 1]; |
|||
filters[0].id = LZMA_FILTER_LZMA2; |
|||
filters[0].options = &opt_lzma; |
|||
filters[1].id = LZMA_VLI_UNKNOWN; |
|||
|
|||
// Init |
|||
if (lzma_stream_encoder(&strm, filters, LZMA_CHECK_CRC32) != LZMA_OK) { |
|||
fprintf(stderr, "init failed\n"); |
|||
exit(1); |
|||
} |
|||
|
|||
// Encoding |
|||
|
|||
encode(0, LZMA_SYNC_FLUSH); |
|||
encode(6, LZMA_SYNC_FLUSH); |
|||
encode(0, LZMA_SYNC_FLUSH); |
|||
encode(7, LZMA_SYNC_FLUSH); |
|||
encode(0, LZMA_SYNC_FLUSH); |
|||
encode(0, LZMA_FINISH); |
|||
/* |
|||
encode(53, LZMA_SYNC_FLUSH); |
|||
// opt_lzma.literal_context_bits = 2; |
|||
// opt_lzma.literal_pos_bits = 1; |
|||
// opt_lzma.pos_bits = 0; |
|||
encode(404, LZMA_FINISH); |
|||
*/ |
|||
// Clean up |
|||
lzma_end(&strm); |
|||
|
|||
return 0; |
|||
|
|||
// Prevent useless warnings so we don't need to have special CFLAGS |
|||
// to disable -Werror. |
|||
(void)opt_lzma; |
|||
(void)opt_subblock; |
|||
(void)opt_delta; |
|||
} |
@ -0,0 +1,122 @@ |
|||
|
|||
XZ Utils FAQ |
|||
============ |
|||
|
|||
Q: What do the letters XZ mean? |
|||
|
|||
A: Nothing. They are just two letters, which come from the file format |
|||
suffix .xz. The .xz suffix was selected, because it seemed to be |
|||
pretty much unused. It is no deeper meaning. |
|||
|
|||
|
|||
Q: What are LZMA and LZMA2? |
|||
|
|||
A: LZMA stands for Lempel-Ziv-Markov chain-Algorithm. It is the name |
|||
of the compression algorithm designed by Igor Pavlov for 7-Zip. |
|||
LZMA is based on LZ77 and range encoding. |
|||
|
|||
LZMA2 is an updated version of the original LZMA to fix a couple of |
|||
practical issues. In context of XZ Utils, LZMA is called LZMA1 to |
|||
emphasize that LZMA is not the same thing as LZMA2. LZMA2 is the |
|||
primary compression algorithm in the .xz file format. |
|||
|
|||
|
|||
Q: There are many LZMA related projects. How does XZ Utils relate to them? |
|||
|
|||
A: 7-Zip and LZMA SDK are the original projects. LZMA SDK is roughly |
|||
a subset of the 7-Zip source tree. |
|||
|
|||
p7zip is 7-Zip's command line tools ported to POSIX-like systems. |
|||
|
|||
LZMA Utils provide a gzip-like lzma tool for POSIX-like systems. |
|||
LZMA Utils are based on LZMA SDK. XZ Utils are the successor to |
|||
LZMA Utils. |
|||
|
|||
There are several other projects using LZMA. Most are more or less |
|||
based on LZMA SDK. |
|||
|
|||
|
|||
Q: Do XZ Utils support the .7z format? |
|||
|
|||
A: No. Use 7-Zip (Windows) or p7zip (POSIX-like systems) to handle .7z |
|||
files. |
|||
|
|||
|
|||
Q: I have many .tar.7z files. Can I convert them to .tar.xz without |
|||
spending hours recompressing the data? |
|||
|
|||
A: In the "extra" directory, there is a script named 7z2lzma.bash which |
|||
is able to convert some .7z files to the .lzma format (not .xz). It |
|||
needs the 7za (or 7z) command from p7zip. The script may silently |
|||
produce corrupt output if certain assumptions are not met, so |
|||
decompress the resulting .lzma file and compare it against the |
|||
original before deleting the original file! |
|||
|
|||
|
|||
Q: I have many .lzma files. Can I quickly convert them to the .xz format? |
|||
|
|||
A: For now, no. Since XZ Utils supports the .lzma format, it's usually |
|||
not too bad to keep the old files in the old format. If you want to |
|||
do the conversion anyway, you need to decompress the .lzma files and |
|||
then recompress to the .xz format. |
|||
|
|||
Technically, there is a way to make the conversion relatively fast |
|||
(roughly twice the time that normal decompression takes). Writing |
|||
such a tool would take quite a bit time though, and would probably |
|||
be useful to only a few people. If you really want such a conversion |
|||
tool, contact Lasse Collin and offer some money. |
|||
|
|||
|
|||
Q: Can I recover parts of a broken .xz file (e.g. corrupted CD-R)? |
|||
|
|||
A: It may be possible if the file consists of multiple blocks, which |
|||
typically is not the case if the file was created in single-threaded |
|||
mode. There is no recovery program yet. |
|||
|
|||
|
|||
Q: Is (some part of) XZ Utils patented? |
|||
|
|||
A: Lasse Collin is not aware of any patents that could affect XZ Utils. |
|||
However, due to nature of software patents, it's not possible to |
|||
guarantee that XZ Utils isn't affected by any third party patent(s). |
|||
|
|||
|
|||
Q: Where can I find documentation about the file format and algorithms? |
|||
|
|||
A: The .xz format is documented in xz-file-format.txt. It is a container |
|||
format only, and doesn't include descriptions of any non-trivial |
|||
filters. |
|||
|
|||
Documenting LZMA and LZMA2 is planned, but for now, there is no other |
|||
documentation that the source code. Before you begin, you should know |
|||
the basics of LZ77 and range coding algorithms. LZMA is based on LZ77, |
|||
but LZMA is *a lot* more complex. Range coding is used to compress |
|||
the final bitstream like Huffman coding is used in Deflate. |
|||
|
|||
|
|||
Q: I cannot find BCJ and BCJ2 filters. Don't they exist in liblzma? |
|||
|
|||
A: BCJ filter is called "x86" in liblzma. BCJ2 is not included, |
|||
because it requires using more than one encoded output stream. |
|||
|
|||
|
|||
Q: How do I build a program that needs liblzmadec (lzmadec.h)? |
|||
|
|||
A: liblzmadec is part of LZMA Utils. XZ Utils has liblzma, but no |
|||
liblzmadec. The code using liblzmadec should be ported to use |
|||
liblzma instead. If you cannot or don't want to do that, download |
|||
LZMA Utils from <http://tukaani.org/lzma/>. |
|||
|
|||
|
|||
Q: The default build of liblzma is too big. How can I make it smaller? |
|||
|
|||
A: Give --enable-small to the configure script. Use also appropriate |
|||
--enable or --disable options to include only those filter encoders |
|||
and decoders and integrity checks that you actually need. Use |
|||
CFLAGS=-Os (with GCC) or equivalent to tell your compiler to optimize |
|||
for size. See INSTALL for information about configure options. |
|||
|
|||
If the result is still too big, take a look at XZ Embedded. It is |
|||
a separate project, which provides a limited but signinificantly |
|||
smaller XZ decoder implementation than XZ Utils. |
|||
|
@ -0,0 +1,149 @@ |
|||
|
|||
History of LZMA Utils and XZ Utils |
|||
================================== |
|||
|
|||
Tukaani distribution |
|||
|
|||
In 2005, there was a small group working on Tukaani distribution, which |
|||
was a Slackware fork. One of the project goals was to fit the distro on |
|||
a single 700 MiB ISO-9660 image. Using LZMA instead of gzip helped a |
|||
lot. Roughly speaking, one could fit data that took 1000 MiB in gzipped |
|||
form into 700 MiB with LZMA. Naturally compression ratio varied across |
|||
packages, but this was what we got on average. |
|||
|
|||
Slackware packages have traditionally had .tgz as the filename suffix, |
|||
which is an abbreviation of .tar.gz. A logical naming for LZMA |
|||
compressed packages was .tlz, being an abbreviation of .tar.lzma. |
|||
|
|||
At the end of the year 2007, there was no distribution under the |
|||
Tukaani project anymore, but development of LZMA Utils was kept going. |
|||
Still, there were .tlz packages around, because at least Vector Linux |
|||
(a Slackware based distribution) used LZMA for its packages. |
|||
|
|||
First versions of the modified pkgtools used the LZMA_Alone tool from |
|||
Igor Pavlov's LZMA SDK as is. It was fine, because users wouldn't need |
|||
to interact with LZMA_Alone directly. But people soon wanted to use |
|||
LZMA for other files too, and the interface of LZMA_Alone wasn't |
|||
comfortable for those used to gzip and bzip2. |
|||
|
|||
|
|||
First steps of LZMA Utils |
|||
|
|||
The first version of LZMA Utils (4.22.0) included a shell script called |
|||
lzmash. It was wrapper that had gzip-like command line interface. It |
|||
used the LZMA_Alone tool from LZMA SDK to do all the real work. zgrep, |
|||
zdiff, and related scripts from gzip were adapted work with LZMA and |
|||
were part of the first LZMA Utils release too. |
|||
|
|||
LZMA Utils 4.22.0 included also lzmadec, which was a small (less than |
|||
10 KiB) decoder-only command line tool. It was written on top of the |
|||
decoder-only C code found from the LZMA SDK. lzmadec was convenient in |
|||
situations where LZMA_Alone (a few hundred KiB) would be too big. |
|||
|
|||
lzmash and lzmadec were written by Lasse Collin. |
|||
|
|||
|
|||
Second generation |
|||
|
|||
The lzmash script was an ugly and not very secure hack. The last |
|||
version of LZMA Utils to use lzmash was 4.27.1. |
|||
|
|||
LZMA Utils 4.32.0beta1 introduced a new lzma command line tool written |
|||
by Ville Koskinen. It was written in C++, and used the encoder and |
|||
decoder from C++ LZMA SDK with little modifications. This tool replaced |
|||
both the lzmash script and the LZMA_Alone command line tool in LZMA |
|||
Utils. |
|||
|
|||
Introducing this new tool caused some temporary incompatibilities, |
|||
because LZMA_Alone executable was simply named lzma like the new |
|||
command line tool, but they had completely different command line |
|||
interface. The file format was still the same. |
|||
|
|||
Lasse wrote liblzmadec, which was a small decoder-only library based |
|||
on the C code found from LZMA SDK. liblzmadec had API similar to zlib, |
|||
although there were some significant differences, which made it |
|||
non-trivial to use it in some applications designed for zlib and |
|||
libbzip2. |
|||
|
|||
The lzmadec command line tool was converted to use liblzmadec. |
|||
|
|||
Alexandre Sauvé helped converting build system to use GNU Autotools. |
|||
This made is easier to test for certain less portable features needed |
|||
by the new command line tool. |
|||
|
|||
Since the new command line tool never got completely finished (for |
|||
example, it didn't support LZMA_OPT environment variable), the intent |
|||
was to not call 4.32.x stable. Similarly, liblzmadec wasn't polished, |
|||
but appeared to work well enough, so some people started using it too. |
|||
|
|||
Because the development of the third generation of LZMA Utils was |
|||
delayed considerably (3-4 years), the 4.32.x branch had to be kept |
|||
maintained. It got some bug fixes now and then, and finally it was |
|||
decided to call it stable, although most of the missing features were |
|||
never added. |
|||
|
|||
|
|||
File format problems |
|||
|
|||
The file format used by LZMA_Alone was primitive. It was designed for |
|||
embedded systems in mind, and thus provided only minimal set of |
|||
features. The two biggest problems for non-embedded use were lack of |
|||
magic bytes and integrity check. |
|||
|
|||
Igor and Lasse started developing a new file format with some help |
|||
from Ville Koskinen. Also Mark Adler, Mikko Pouru, H. Peter Anvin, |
|||
and Lars Wirzenius helped with some minor things at some point of the |
|||
development. Designing the new format took quite a long time (actually, |
|||
too long time would be more appropriate expression). It was mostly |
|||
because Lasse was quite slow at getting things done due to personal |
|||
reasons. |
|||
|
|||
Originally the new format was supposed to use the same .lzma suffix |
|||
that was already used by the old file format. Switching to the new |
|||
format wouldn't have caused much trouble when the old format wasn't |
|||
used by many people. But since the development of the new format took |
|||
so long time, the old format got quite popular, and it was decided |
|||
that the new file format must use a different suffix. |
|||
|
|||
It was decided to use .xz as the suffix of the new file format. The |
|||
first stable .xz file format specification was finally released in |
|||
December 2008. In addition to fixing the most obvious problems of |
|||
the old .lzma format, the .xz format added some new features like |
|||
support for multiple filters (compression algorithms), filter chaining |
|||
(like piping on the command line), and limited random-access reading. |
|||
|
|||
Currently the primary compression algorithm used in .xz is LZMA2. |
|||
It is an extension on top of the original LZMA to fix some practical |
|||
problems: LZMA2 adds support for flushing the encoder, uncompressed |
|||
chunks, eases stateful decoder implementations, and improves support |
|||
for multithreading. Since LZMA2 is better than the original LZMA, the |
|||
original LZMA is not supported in .xz. |
|||
|
|||
|
|||
Transition to XZ Utils |
|||
|
|||
The early versions of XZ Utils were called LZMA Utils. The first |
|||
releases were 4.42.0alphas. They dropped the rest of the C++ LZMA SDK. |
|||
The code was still directly based on LZMA SDK but ported to C and |
|||
converted from callback API to stateful API. Later, Igor Pavlov made |
|||
C version of the LZMA encoder too; these ports from C++ to C were |
|||
independent in LZMA SDK and LZMA Utils. |
|||
|
|||
The core of the new LZMA Utils was liblzma, a compression library with |
|||
zlib-like API. liblzma supported both the old and new file format. The |
|||
gzip-like lzma command line tool was rewritten to use liblzma. |
|||
|
|||
The new LZMA Utils code base was renamed to XZ Utils when the name |
|||
of the new file format had been decided. The liblzma compression |
|||
library retained its name though, because changing it would have |
|||
caused unnecessary breakage in applications already using the early |
|||
liblzma snapshots. |
|||
|
|||
The xz command line tool can emulate the gzip-like lzma tool by |
|||
creating appropriate symlinks (e.g. lzma -> xz). Thus, practically |
|||
all scripts using the lzma tool from LZMA Utils will work as is with |
|||
XZ Utils (and will keep using the old .lzma format). Still, the .lzma |
|||
format is more or less deprecated. XZ Utils will keep supporting it, |
|||
but new applications should use the .xz format, and migrating old |
|||
applications to .xz is often a good idea too. |
|||
|
@ -0,0 +1,166 @@ |
|||
|
|||
The .lzma File Format |
|||
===================== |
|||
|
|||
0. Preface |
|||
0.1. Notices and Acknowledgements |
|||
0.2. Changes |
|||
1. File Format |
|||
1.1. Header |
|||
1.1.1. Properties |
|||
1.1.2. Dictionary Size |
|||
1.1.3. Uncompressed Size |
|||
1.2. LZMA Compressed Data |
|||
2. References |
|||
|
|||
|
|||
0. Preface |
|||
|
|||
This document describes the .lzma file format, which is |
|||
sometimes also called LZMA_Alone format. It is a legacy file |
|||
format, which is being or has been replaced by the .xz format. |
|||
The MIME type of the .lzma format is `application/x-lzma'. |
|||
|
|||
The most commonly used software to handle .lzma files are |
|||
LZMA SDK, LZMA Utils, 7-Zip, and XZ Utils. This document |
|||
describes some of the differences between these implementations |
|||
and gives hints what subset of the .lzma format is the most |
|||
portable. |
|||
|
|||
|
|||
0.1. Notices and Acknowledgements |
|||
|
|||
This file format was designed by Igor Pavlov for use in |
|||
LZMA SDK. This document was written by Lasse Collin |
|||
<lasse.collin@tukaani.org> using the documentation found |
|||
from the LZMA SDK. |
|||
|
|||
This document has been put into the public domain. |
|||
|
|||
|
|||
0.2. Changes |
|||
|
|||
Last modified: 2009-05-01 11:15+0300 |
|||
|
|||
|
|||
1. File Format |
|||
|
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+==========================+ |
|||
| Header | LZMA Compressed Data | |
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+==========================+ |
|||
|
|||
The .lzma format file consist of 13-byte Header followed by |
|||
the LZMA Compressed Data. |
|||
|
|||
Unlike the .gz, .bz2, and .xz formats, it is not possible to |
|||
concatenate multiple .lzma files as is and expect the |
|||
decompression tool to decode the resulting file as if it were |
|||
a single .lzma file. |
|||
|
|||
For example, the command line tools from LZMA Utils and |
|||
LZMA SDK silently ignore all the data after the first .lzma |
|||
stream. In contrast, the command line tool from XZ Utils |
|||
considers the .lzma file to be corrupt if there is data after |
|||
the first .lzma stream. |
|||
|
|||
|
|||
1.1. Header |
|||
|
|||
+------------+----+----+----+----+--+--+--+--+--+--+--+--+ |
|||
| Properties | Dictionary Size | Uncompressed Size | |
|||
+------------+----+----+----+----+--+--+--+--+--+--+--+--+ |
|||
|
|||
|
|||
1.1.1. Properties |
|||
|
|||
The Properties field contains three properties. An abbreviation |
|||
is given in parentheses, followed by the value range of the |
|||
property. The field consists of |
|||
|
|||
1) the number of literal context bits (lc, [0, 8]); |
|||
2) the number of literal position bits (lp, [0, 4]); and |
|||
3) the number of position bits (pb, [0, 4]). |
|||
|
|||
The properties are encoded using the following formula: |
|||
|
|||
Properties = (pb * 5 + lp) * 9 + lc |
|||
|
|||
The following C code illustrates a straightforward way to |
|||
decode the Properties field: |
|||
|
|||
uint8_t lc, lp, pb; |
|||
uint8_t prop = get_lzma_properties(); |
|||
if (prop > (4 * 5 + 4) * 9 + 8) |
|||
return LZMA_PROPERTIES_ERROR; |
|||
|
|||
pb = prop / (9 * 5); |
|||
prop -= pb * 9 * 5; |
|||
lp = prop / 9; |
|||
lc = prop - lp * 9; |
|||
|
|||
XZ Utils has an additional requirement: lc + lp <= 4. Files |
|||
which don't follow this requirement cannot be decompressed |
|||
with XZ Utils. Usually this isn't a problem since the most |
|||
common lc/lp/pb values are 3/0/2. It is the only lc/lp/pb |
|||
combination that the files created by LZMA Utils can have, |
|||
but LZMA Utils can decompress files with any lc/lp/pb. |
|||
|
|||
|
|||
1.1.2. Dictionary Size |
|||
|
|||
Dictionary Size is stored as an unsigned 32-bit little endian |
|||
integer. Any 32-bit value is possible, but for maximum |
|||
portability, only sizes of 2^n and 2^n + 2^(n-1) should be |
|||
used. |
|||
|
|||
LZMA Utils creates only files with dictionary size 2^n, |
|||
16 <= n <= 25. LZMA Utils can decompress files with any |
|||
dictionary size. |
|||
|
|||
XZ Utils creates and decompresses .lzma files only with |
|||
dictionary sizes 2^n and 2^n + 2^(n-1). If some other |
|||
dictionary size is specified when compressing, the value |
|||
stored in the Dictionary Size field is a rounded up, but the |
|||
specified value is still used in the actual compression code. |
|||
|
|||
|
|||
1.1.3. Uncompressed Size |
|||
|
|||
Uncompressed Size is stored as unsigned 64-bit little endian |
|||
integer. A special value of 0xFFFF_FFFF_FFFF_FFFF indicates |
|||
that Uncompressed Size is unknown. End of Payload Marker (*) |
|||
is used if and only if Uncompressed Size is unknown. |
|||
|
|||
XZ Utils rejects files whose Uncompressed Size field specifies |
|||
a known size that is 256 GiB or more. This is to reject false |
|||
positives when trying to guess if the input file is in the |
|||
.lzma format. When Uncompressed Size is unknown, there is no |
|||
limit for the uncompressed size of the file. |
|||
|
|||
(*) Some tools use the term End of Stream (EOS) marker |
|||
instead of End of Payload Marker. |
|||
|
|||
|
|||
1.2. LZMA Compressed Data |
|||
|
|||
Detailed description of the format of this field is out of |
|||
scope of this document. |
|||
|
|||
|
|||
2. References |
|||
|
|||
LZMA SDK - The original LZMA implementation |
|||
http://7-zip.org/sdk.html |
|||
|
|||
7-Zip |
|||
http://7-zip.org/ |
|||
|
|||
LZMA Utils - LZMA adapted to POSIX-like systems |
|||
http://tukaani.org/lzma/ |
|||
|
|||
XZ Utils - The next generation of LZMA Utils |
|||
http://tukaani.org/xz/ |
|||
|
|||
The .xz file format - The successor of the the .lzma format |
|||
http://tukaani.org/xz/xz-file-format.txt |
|||
|
@ -0,0 +1,786 @@ |
|||
XZ(1) XZ Utils XZ(1) |
|||
|
|||
|
|||
|
|||
NAME |
|||
xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and |
|||
.lzma files |
|||
|
|||
SYNOPSIS |
|||
xz [option]... [file]... |
|||
|
|||
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 also the legacy .lzma format and raw compressed streams |
|||
with no container format headers are 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 com- |
|||
pressed 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 or .lzma suffix is removed from the |
|||
filename to get the target filename. xz also recognizes the suf- |
|||
fixes .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, thus |
|||
they are never considered to be regular files. |
|||
|
|||
o File has more than one hardlink. |
|||
|
|||
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, or |
|||
.tlz). |
|||
|
|||
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 permis- |
|||
sions 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 extended |
|||
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. |
|||
|
|||
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 affect also the memory usage of the decompressor. |
|||
Typically the decompressor needs only 5 % to 20 % of the amount of RAM |
|||
that the compressor needed when creating the file. Still, the worst- |
|||
case memory usage of the decompressor is several gigabytes. |
|||
|
|||
To prevent uncomfortable surprises caused by huge memory usage, xz has |
|||
a built-in memory usage limiter. The default limit is 40 % of total |
|||
physical RAM. While operating systems provide ways to limit the memory |
|||
usage of processes, relying on it wasn't deemed to be flexible enough. |
|||
|
|||
When compressing, if the selected compression settings exceed the mem- |
|||
ory usage limit, the settings are automatically adjusted downwards and |
|||
a notice about this is displayed. As an exception, if the memory usage |
|||
limit is exceeded when compressing with --format=raw, an error is dis- |
|||
played and xz will exit with exit status 1. |
|||
|
|||
If source file cannot be decompressed without exceeding the memory |
|||
usage limit, an error message is displayed and the file is skipped. |
|||
Note that compressed files may contain many blocks, which may have been |
|||
compressed with different settings. Typically all blocks will have |
|||
roughly the same memory requirements, but it is possible that a block |
|||
later in the file will exceed the memory usage limit, and an error |
|||
about too low memory usage limit gets displayed after some data has |
|||
already been decompressed. |
|||
|
|||
The absolute value of the active memory usage limit can be seen near |
|||
the bottom of the output of --long-help. The default limit can be |
|||
overriden with --memory=limit. |
|||
|
|||
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. |
|||
|
|||
k or kB |
|||
The integer is multiplied by 1,000 (10^3). For example, 5k or |
|||
5kB equals 5000. |
|||
|
|||
Ki or KiB |
|||
The integer is multiplied by 1,024 (2^10). |
|||
|
|||
M or MB |
|||
The integer is multiplied by 1,000,000 (10^6). |
|||
|
|||
Mi or MiB |
|||
The integer is multiplied by 1,048,576 (2^20). |
|||
|
|||
G or GB |
|||
The integer is multiplied by 1,000,000,000 (10^9). |
|||
|
|||
Gi or GiB |
|||
The integer is multiplied by 1,073,741,824 (2^30). |
|||
|
|||
A 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 |
|||
effect. |
|||
|
|||
-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. No files are created or |
|||
removed. This option is equivalent to --decompress --stdout |
|||
except that the decompressed data is discarded instead of being |
|||
written to standard output. |
|||
|
|||
-l, --list |
|||
View information about the compressed 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. |
|||
|
|||
This feature has not been implemented yet. |
|||
|
|||
Operation modifiers |
|||
-k, --keep |
|||
Keep (don't delete) the input files. |
|||
|
|||
-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 not a regular |
|||
file, has more than one hardlink, or has setuid, setgid, or |
|||
sticky bit set. The setuid, setgid, and sticky bits are not |
|||
copied to the target file. |
|||
|
|||
o If combined with --decompress --stdout and xz doesn't recog- |
|||
nize the type of the source file, xz will copy the source |
|||
file as is to standard output. This allows using xzcat |
|||
--force like cat(1) for files that have not been compressed |
|||
with xz. Note that in future, xz might support new com- |
|||
pressed 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 format. |
|||
|
|||
o Allow writing compressed data to a terminal, and reading com- |
|||
pressed data from a terminal. |
|||
|
|||
-c, --stdout, --to-stdout |
|||
Write the compressed or decompressed data to standard output |
|||
instead of a file. This implies --keep. |
|||
|
|||
-S .suf, --suffix=.suf |
|||
When compressing, use .suf as the suffix for the target file |
|||
instead 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 also files with the suffix .suf in |
|||
addition to files with the .xz, .txz, .lzma, or .tlz 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 termi- |
|||
nated with the newline character. If filenames are given also as |
|||
command line arguments, they are processed before the filenames |
|||
read from file. |
|||
|
|||
--files0[=file] |
|||
This is identical to --files[=file] except that the filenames |
|||
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: |
|||
|
|||
o auto: This is the default. When compressing, auto is equiva- |
|||
lent to xz. When decompressing, the format of the input file |
|||
is autodetected. Note that raw streams (created with --for- |
|||
mat=raw) cannot be autodetected. |
|||
|
|||
o xz: Compress to the .xz file format, or accept only .xz files |
|||
when decompressing. |
|||
|
|||
o lzma or 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. |
|||
|
|||
o raw: Compress or uncompress a raw stream (no headers). This |
|||
is meant for advanced users only. To decode raw streams, you |
|||
need to set not only --format=raw but also specify the filter |
|||
chain, which would normally be stored in the container format |
|||
headers. |
|||
|
|||
-C check, --check=check |
|||
Specify the type of the integrity check, which is calculated |
|||
from the uncompressed data. This option has an effect only when |
|||
compressing into the .xz format; the .lzma format doesn't sup- |
|||
port integrity checks. The integrity check (if any) is verified |
|||
when the .xz file is decompressed. |
|||
|
|||
Supported check types: |
|||
|
|||
o 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. |
|||
|
|||
o crc32: Calculate CRC32 using the polynomial from IEEE-802.3 |
|||
(Ethernet). |
|||
|
|||
o 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 negli- |
|||
gible. |
|||
|
|||
o 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. |
|||
|
|||
-0 ... -9 |
|||
Select compression preset. If a preset level is specified multi- |
|||
ple times, the last one takes effect. |
|||
|
|||
The compression preset levels can be categorised roughly into |
|||
three categories: |
|||
|
|||
-0 ... -2 |
|||
Fast presets with relatively low memory usage. -1 and -2 |
|||
should give compression speed and ratios comparable to |
|||
bzip2 -1 and bzip2 -9, respectively. Currently -0 is not |
|||
very good (not much faster than -1 but much worse com- |
|||
pression). In future, -0 may be indicate some fast algo- |
|||
rithm instead of LZMA2. |
|||
|
|||
-3 ... -5 |
|||
Good compression ratio with low to medium memory usage. |
|||
These are significantly slower than levels 0-2. |
|||
|
|||
-6 ... -9 |
|||
Excellent compression with medium to high memory usage. |
|||
These are also slower than the lower preset levels. The |
|||
default is -6. Unless you want to maximize the compres- |
|||
sion ratio, you probably don't want a higher preset level |
|||
than -7 due to speed and memory usage. |
|||
|
|||
The exact compression settings (filter chain) used by each pre- |
|||
set may vary between xz versions. The settings may also vary |
|||
between files being compressed, if xz determines that modified |
|||
settings will probably give better compression ratio without |
|||
significantly affecting compression time or memory usage. |
|||
|
|||
Because the settings may vary, the memory usage may vary too. |
|||
The following table lists the maximum memory usage of each pre- |
|||
set level, which won't be exceeded even in future versions of |
|||
xz. |
|||
|
|||
FIXME: The table below is just a rough idea. |
|||
|
|||
Preset Compression Decompression |
|||
-0 6 MiB 1 MiB |
|||
-1 6 MiB 1 MiB |
|||
-2 10 MiB 1 MiB |
|||
-3 20 MiB 2 MiB |
|||
-4 30 MiB 3 MiB |
|||
-5 60 MiB 6 MiB |
|||
-6 100 MiB 10 MiB |
|||
-7 200 MiB 20 MiB |
|||
-8 400 MiB 40 MiB |
|||
-9 800 MiB 80 MiB |
|||
|
|||
When compressing, xz automatically adjusts the compression set- |
|||
tings downwards if the memory usage limit would be exceeded, so |
|||
it is safe to specify a high preset level even on systems that |
|||
don't have lots of RAM. |
|||
|
|||
--fast and --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. |
|||
|
|||
Especially the name of --best is misleading, because the defini- |
|||
tion of best depends on the input data, and that usually people |
|||
don't want the very best compression ratio anyway, because it |
|||
would be very slow. |
|||
|
|||
-e, --extreme |
|||
Modify the compression preset (-0 ... -9) so that a little bit |
|||
better compression ratio can be achieved without increasing mem- |
|||
ory usage of the compressor or decompressor (exception: compres- |
|||
sor memory usage may increase a little with presets -0 ... -2). |
|||
The downside is that the compression time will increase dramati- |
|||
cally (it can easily double). |
|||
|
|||
-M limit, --memory=limit |
|||
Set the memory usage limit. If this option is specied multiple |
|||
times, the last one takes effect. The limit can be specified in |
|||
multiple ways: |
|||
|
|||
o The limit can be an absolute value in bytes. Using an integer |
|||
suffix like MiB can be useful. Example: --memory=80MiB |
|||
|
|||
o The limit can be specified as a percentage of physical RAM. |
|||
Example: --memory=70% |
|||
|
|||
o The limit can be reset back to its default value (currently |
|||
40 % of physical RAM) by setting it to 0. |
|||
|
|||
o The memory usage limiting can be effectively disabled by set- |
|||
ting limit to max. This isn't recommended. It's usually bet- |
|||
ter to use, for example, --memory=90%. |
|||
|
|||
The current limit can be seen near the bottom of the output of |
|||
the --long-help option. |
|||
|
|||
-T threads, --threads=threads |
|||
Specify the maximum number of worker threads to use. The default |
|||
is the number of available CPU cores. You can see the current |
|||
value of threads near the end of the output of the --long-help |
|||
option. |
|||
|
|||
The actual number of worker threads can be less than threads if |
|||
using more threads would exceed the memory usage limit. In |
|||
addition to CPU-intensive worker threads, xz may use a few aux- |
|||
iliary threads, which don't use a lot of CPU time. |
|||
|
|||
Multithreaded compression and decompression are not implemented |
|||
yet, so this option has no effect for now. |
|||
|
|||
Custom compressor filter chains |
|||
A custom filter chain allows specifying the compression settings in |
|||
detail instead of relying on the settings associated to the preset lev- |
|||
els. When a custom filter chain is specified, the compression preset |
|||
level options (-0 ... -9 and --extreme) are silently ignored. |
|||
|
|||
A filter chain is comparable to piping on the UN*X 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. |
|||
|
|||
Many filters have limitations 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 fil- |
|||
ter design or exists to prevent security issues. |
|||
|
|||
A custom filter chain is specified by using one or more filter options |
|||
in the order they are wanted in the filter chain. That is, the order of |
|||
filter options is significant! When decoding raw streams (--for- |
|||
mat=raw), the filter chain is specified in the same order as it was |
|||
specified when compressing. |
|||
|
|||
Filters take filter-specific options as a comma-separated list. Extra |
|||
commas in options are ignored. Every option has a default value, so you |
|||
need to specify only those you want to change. |
|||
|
|||
--lzma1[=options], --lzma2[=options] |
|||
Add LZMA1 or LZMA2 filter to the filter chain. These filter 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 |
|||
issues 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 |
|||
--extreme. |
|||
|
|||
The default preset is 6, from which the default values |
|||
for the rest of the LZMA1 or LZMA2 options are taken. |
|||
|
|||
dict=size |
|||
Dictionary (history buffer) 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. The big- |
|||
ger the dictionary, the better the compression ratio usu- |
|||
ally is, but dictionaries bigger than the uncompressed |
|||
data are waste of RAM. |
|||
|
|||
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. The decompressor already supports dictio- |
|||
naries up to one byte less than 4 GiB, which is the maxi- |
|||
mum for LZMA1 and LZMA2 stream formats. |
|||
|
|||
Dictionary size has the biggest effect on compression |
|||
ratio. Dictionary size and match finder together deter- |
|||
mine the memory usage of the LZMA1 or LZMA2 encoder. The |
|||
same 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. |
|||
|
|||
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. |
|||
|
|||
lp=lp Specify the number of literal position bits. The minimum |
|||
is 0 and the maximum is 4; the default is 0. |
|||
|
|||
pb=pb Specify the number of position bits. The minimum is 0 and |
|||
the maximum is 4; the default is 2. |
|||
|
|||
mode=mode |
|||
Compression mode specifies the function used to analyze |
|||
the data produced by the match finder. Supported modes |
|||
are fast and normal. The default is fast for presets 0-2 |
|||
and normal for presets 3-9. |
|||
|
|||
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. Hash |
|||
Chains are usually used together with mode=fast and |
|||
Binary Trees with mode=normal. The memory usage formulas |
|||
are only rough estimates, which are closest to 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 |
|||
|
|||
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 |
|||
|
|||
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 expense of speed. The default |
|||
depends on the preset level. |
|||
|
|||
depth=depth |
|||
Specify the maximum search depth in the match finder. The |
|||
default is the special value 0, which makes the compres- |
|||
sor determine a reasonable depth from mf and nice. |
|||
|
|||
Using very high values for depth can make the encoder |
|||
extremely slow with carefully crafted files. Avoid set- |
|||
ting the depth over 1000 unless you are prepared to |
|||
interrupt the compression in case it is taking too long. |
|||
|
|||
When decoding raw streams (--format=raw), LZMA2 needs only the |
|||
value of dict. LZMA1 needs also lc, lp, and pb. |
|||
|
|||
--x86[=options] |
|||
|
|||
--powerpc[=options] |
|||
|
|||
--ia64[=options] |
|||
|
|||
--arm[=options] |
|||
|
|||
--armthumb[=options] |
|||
|
|||
--sparc[=options] |
|||
Add a branch/call/jump (BCJ) filter to the filter chain. These |
|||
filters can be used only as 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 allows e.g. LZMA2 to |
|||
get better compression ratio. |
|||
|
|||
The BCJ filters are always reversible, so using a BCJ filter for |
|||
wrong type of data doesn't cause any data loss. However, apply- |
|||
ing a BCJ filter for wrong type of data is a bad idea, because |
|||
it tends to make the compression ratio worse. |
|||
|
|||
Different instruction sets have have different alignment: |
|||
|
|||
Filter Alignment Notes |
|||
x86 1 32-bit and 64-bit x86 |
|||
PowerPC 4 Big endian only |
|||
ARM 4 Little endian only |
|||
ARM-Thumb 2 Little endian only |
|||
IA-64 16 Big or little endian |
|||
SPARC 4 Big or little endian |
|||
|
|||
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 fil- |
|||
ter. For example, with the IA-64 filter, it's good to set pb=4 |
|||
with LZMA2 (2^4=16). The x86 filter is an exception; it's usu- |
|||
ally good to stick to LZMA2's default four-byte alignment when |
|||
compressing x86 executables. |
|||
|
|||
All BCJ filters support the same options: |
|||
|
|||
start=offset |
|||
Specify the start offset that is used when converting |
|||
between 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 |
|||
default is good; specifying a custom offset is almost |
|||
never useful. |
|||
|
|||
Specifying a non-zero start offset is probably useful |
|||
only if the executable has multiple sections, and there |
|||
are many cross-section jumps or calls. Applying a BCJ |
|||
filter separately for each section with proper start off- |
|||
set and then compressing the result as a single chunk may |
|||
give some improvement in compression ratio compared to |
|||
applying the BCJ filter with the default offset for the |
|||
whole executable. |
|||
|
|||
--delta[=options] |
|||
Add Delta filter to the filter chain. The Delta filter can be |
|||
used only as non-last filter in the filter chain. |
|||
|
|||
Currently only simple byte-wise delta calculation is supported. |
|||
It can be useful when compressing e.g. uncompressed bitmap |
|||
images or uncompressed PCM audio. However, special purpose algo- |
|||
rithms may give significantly better results than Delta + LZMA2. |
|||
This is true especially with audio, which compresses faster and |
|||
better e.g. with FLAC. |
|||
|
|||
Supported options: |
|||
|
|||
dist=distance |
|||
Specify the distance of the delta calculation as 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 (useful mostly for debug- |
|||
ging). |
|||
|
|||
-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. |
|||
|
|||
-h, --help |
|||
Display a help message describing the most commonly used |
|||
options, 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. |
|||
|
|||
EXIT STATUS |
|||
0 All is good. |
|||
|
|||
1 An error occurred. |
|||
|
|||
2 Something worth a warning occurred, but no actual errors |
|||
occurred. |
|||
|
|||
Notices (not warnings or errors) printed on standard error don't affect |
|||
the exit status. |
|||
|
|||
ENVIRONMENT |
|||
XZ_OPT A space-separated list of options is parsed from XZ_OPT before |
|||
parsing the options given on the command line. Note that only |
|||
options are parsed from XZ_OPT; all non-options are silently |
|||
ignored. Parsing is done with getopt_long(3) which is used also |
|||
for the command line arguments. |
|||
|
|||
LZMA UTILS COMPATIBILITY |
|||
The command line syntax of xz is practically a superset of lzma, |
|||
unlzma, 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 |
|||
-1 64 KiB 64 KiB |
|||
-2 512 KiB 1 MiB |
|||
-3 1 MiB 512 KiB |
|||
-4 2 MiB 1 MiB |
|||
-5 4 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 |
|||
-1 2 MiB 2 MiB |
|||
-2 5 MiB 12 MiB |
|||
-3 13 MiB 12 MiB |
|||
-4 25 MiB 16 MiB |
|||
-5 48 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 8 MiB dictionary by default. |
|||
|
|||
Streamed vs. non-streamed .lzma files |
|||
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 exam- |
|||
ple 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 |
|||
uncompressed 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 dictionary size of 2^n |
|||
(a power of 2), but accepts files with any dictionary size. liblzma |
|||
accepts only .lzma files which have dictionary size of 2^n or 2^n + |
|||
2^(n-1). This is to decrease false positives when autodetecting .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. This may break obscure 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 differ- |
|||
ent build options are used or if the endianness of the hardware is dif- |
|||
ferent for different builds. |
|||
|
|||
The above means that implementing --rsyncable to create rsyncable .xz |
|||
files is not going to happen without freezing a part of the encoder |
|||
implementation, which can then be used with --rsyncable. |
|||
|
|||
Embedded .xz decompressors |
|||
Embedded .xz decompressor implementations like XZ Embedded don't neces- |
|||
sarily support files created with 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. |
|||
|
|||
SEE ALSO |
|||
xzdec(1), gzip(1), bzip2(1) |
|||
|
|||
XZ Utils: <http://tukaani.org/xz/> |
|||
XZ Embedded: <http://tukaani.org/xz/embedded.html> |
|||
LZMA SDK: <http://7-zip.org/sdk.html> |
|||
|
|||
|
|||
|
|||
Tukaani 2009-08-27 XZ(1) |
@ -0,0 +1,95 @@ |
|||
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 |
|||
lzmadec 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_OPT envi- |
|||
ronment variable. xzdec doesn't support displaying intermediate |
|||
progress information: sending SIGINFO to xzdec does nothing, but send- |
|||
ing 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. |
|||
|
|||
-M limit, --memory=limit |
|||
Set the memory usage limit. If this option is specified multi- |
|||
ple times, the last one takes effect. The limit can be specified |
|||
in multiple ways: |
|||
|
|||
o The limit can be an absolute value in bytes. Using an integer |
|||
suffix like MiB can be useful. Example: --memory=80MiB |
|||
|
|||
o The limit can be specified as a percentage of physical RAM. |
|||
Example: --memory=70% |
|||
|
|||
o The limit can be reset back to its default value (currently |
|||
40 % of physical RAM) by setting it to 0. |
|||
|
|||
o The memory usage limiting can be effectively disabled by set- |
|||
ting limit to max. This isn't recommended. It's usually bet- |
|||
ter to use, for example, --memory=90%. |
|||
|
|||
The current limit can be seen near the bottom of the output of |
|||
the --help option. |
|||
|
|||
-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 |
|||
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) |
|||
|
|||
|
|||
|
|||
Tukaani 2009-06-04 XZDEC(1) |
@ -0,0 +1,36 @@ |
|||
XZDIFF(1) XZ Utils XZDIFF(1) |
|||
|
|||
|
|||
|
|||
NAME |
|||
xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files |
|||
|
|||
SYNOPSIS |
|||
xzcmp [cmp_options] file1 [file2] |
|||
xzdiff [diff_options] file1 [file2] |
|||
lzcmp [cmp_options] file1 [file2] |
|||
lzdiff [diff_options] file1 [file2] |
|||
|
|||
DESCRIPTION |
|||
xzcmp and xdiff invoke cmp(1) or diff(1) on files compressed with |
|||
xz(1), lzma(1), gzip(1), or bzip2(1). All options specified are passed |
|||
directly to cmp or diff. If only one file is specified, then the files |
|||
compared are file1 (which must have a suffix of a supported compression |
|||
format) and file1 from which the compression format suffix has been |
|||
stripped. If two files are specified, then they are uncompressed if |
|||
necessary and fed to cmp(1) or diff(1). The exit status from cmp or |
|||
diff is preserved. |
|||
|
|||
The names lzcmp and lzdiff are provided for backward compatibility with |
|||
LZMA Utils. |
|||
|
|||
SEE ALSO |
|||
cmp(1), diff(1), xz(1), gzip(1), bzip2(1), zdiff(1) |
|||
|
|||
BUGS |
|||
Messages from the cmp(1) or diff(1) programs refer to temporary file- |
|||
names instead of those specified. |
|||
|
|||
|
|||
|
|||
Tukaani 2009-07-05 XZDIFF(1) |
@ -0,0 +1,39 @@ |
|||
XZGREP(1) XZ Utils XZGREP(1) |
|||
|
|||
|
|||
|
|||
NAME |
|||
xzgrep - search compressed files for a regular expression |
|||
|
|||
SYNOPSIS |
|||
xzgrep [grep_options] [-e] pattern file... |
|||
xzegrep ... |
|||
xzfgrep ... |
|||
lzgrep ... |
|||
lzegrep ... |
|||
lzfgrep ... |
|||
|
|||
DESCRIPTION |
|||
xzgrep invokes grep(1) on files which may be either uncompressed or |
|||
compressed with xz(1), lzma(1), gzip(1), or bzip2(1). All options |
|||
specified are passed directly to grep(1). |
|||
|
|||
If no file is specified, then the standard input is decompressed if |
|||
necessary and fed to grep(1). When reading from standard input, |
|||
gzip(1) and bzip2(1) compressed files are not supported. |
|||
|
|||
If xzgrep is invoked as xzegrep or xzfgrep then egrep(1) or fgrep(1) is |
|||
used instead of grep(1). The same applies to names lzgrep, lzegrep, |
|||
and lzfgrep, which are provided for backward compatibility with LZMA |
|||
Utils. |
|||
|
|||
ENVIRONMENT |
|||
GREP If the GREP environment variable is set, xzgrep uses it instead |
|||
of grep(1), egrep(1), or fgrep(1). |
|||
|
|||
SEE ALSO |
|||
grep(1), xz(1), gzip(1), bzip2(1), zgrep(1) |
|||
|
|||
|
|||
|
|||
Tukaani 2009-07-05 XZGREP(1) |
@ -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 pagefulls of uncompressed text from |
|||
compressed file(s) to a terminal. It works on files compressed with |
|||
xz(1) or lzma(1). If no files are given, xzless reads from standard |
|||
input. |
|||
|
|||
xzless uses less(1) as its only pager. Unlike xzmore, the choice of |
|||
pagers is not alterable by an environment variable. Commands 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 2009-07-05 XZLESS(1) |
@ -0,0 +1,34 @@ |
|||
XZMORE(1) XZ Utils XZMORE(1) |
|||
|
|||
|
|||
|
|||
NAME |
|||
xzmore, lzmore - view xz or lzma compressed (text) files |
|||
|
|||
SYNOPSIS |
|||
xzmore [filename ...] |
|||
lzmore [filename ...] |
|||
|
|||
DESCRIPTION |
|||
xzmore is a filter which allows examination of xz(1) or lzma(1) com- |
|||
pressed text files one screenful at a time on a soft-copy terminal. |
|||
|
|||
To use a pager other than the default more, set environment variable |
|||
PAGER to the name of the desired program. The name lzmore is provided |
|||
for backward compatibility with LZMA Utils. |
|||
|
|||
e or q When the prompt --More--(Next file: file) is printed, this com- |
|||
mand causes xzmore to exit. |
|||
|
|||
s When the prompt --More--(Next file: file) is printed, this com- |
|||
mand causes xzmore to skip the next file and continue. |
|||
|
|||
For list of keyboard commands supported while actually viewing the con- |
|||
tent of a file, refer to manual of the pager you use, usually more(1). |
|||
|
|||
SEE ALSO |
|||
more(1), xz(1), xzless(1), zmore(1) |
|||
|
|||
|
|||
|
|||
Tukaani 2009-07-05 XZMORE(1) |
1150
third_party/xz-4.999.9beta/doc/xz-file-format.txt
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,255 @@ |
|||
###############################################################################
|
|||
#
|
|||
# Makefile to build XZ Utils using DJGPP
|
|||
#
|
|||
# Make flags to alter compilation:
|
|||
#
|
|||
# DEBUG=1 Enable assertions. Don't use this for production builds!
|
|||
# You may also want to set CFLAGS="-g -O0" to disable
|
|||
# optimizations.
|
|||
#
|
|||
# The usual CPPFLAGS and CFLAGS are supported too.
|
|||
#
|
|||
###############################################################################
|
|||
#
|
|||
# Author: Lasse Collin
|
|||
#
|
|||
# This file has been put into the public domain.
|
|||
# You can do whatever you want with this file.
|
|||
#
|
|||
###############################################################################
|
|||
|
|||
CC = gcc |
|||
AR = ar |
|||
STRIP = strip |
|||
SED = sed |
|||
RM = rm -f |
|||
|
|||
CFLAGS = -g -Wextra -Wfatal-errors -Wall -march=i386 -mtune=i686 -O2 |
|||
|
|||
# NOTE: -fgnu89-inline is needed on DJGPP 2.04 beta and GCC 4.3.2
|
|||
# because time.h uses GNU-style "extern inline".
|
|||
ALL_CFLAGS = -std=gnu99 -fgnu89-inline |
|||
|
|||
ALL_CPPFLAGS = \
|
|||
-I. \
|
|||
-I../lib \
|
|||
-I../src/common \
|
|||
-I../src/liblzma/api \
|
|||
-I../src/liblzma/common \
|
|||
-I../src/liblzma/check \
|
|||
-I../src/liblzma/rangecoder \
|
|||
-I../src/liblzma/lz \
|
|||
-I../src/liblzma/lzma \
|
|||
-I../src/liblzma/delta \
|
|||
-I../src/liblzma/simple \
|
|||
-I../src/liblzma/subblock |
|||
|
|||
ALL_CPPFLAGS += -DHAVE_CONFIG_H |
|||
|
|||
ifdef DEBUG |
|||
STRIP := rem Skipping strip |
|||
else |
|||
ALL_CPPFLAGS += -DNDEBUG |
|||
endif |
|||
|
|||
ALL_CPPFLAGS += $(CPPFLAGS) |
|||
ALL_CFLAGS += $(CFLAGS) |
|||
|
|||
|
|||
################
|
|||
# Common rules #
|
|||
################
|
|||
|
|||
.PHONY: all clean |
|||
all: liblzma.a getopt.a xzdec.exe lzmadec.exe xz.exe |
|||
clean: liblzma-clean getopt-clean xzdec-clean xz-clean |
|||
|
|||
|
|||
#############
|
|||
# liblzma.a #
|
|||
#############
|
|||
|
|||
LIBLZMA_SRCS_C = \
|
|||
../src/liblzma/common/alone_decoder.c \
|
|||
../src/liblzma/common/alone_encoder.c \
|
|||
../src/liblzma/common/auto_decoder.c \
|
|||
../src/liblzma/common/block_buffer_decoder.c \
|
|||
../src/liblzma/common/block_buffer_encoder.c \
|
|||
../src/liblzma/common/block_decoder.c \
|
|||
../src/liblzma/common/block_encoder.c \
|
|||
../src/liblzma/common/block_header_decoder.c \
|
|||
../src/liblzma/common/block_header_encoder.c \
|
|||
../src/liblzma/common/block_util.c \
|
|||
../src/liblzma/common/common.c \
|
|||
../src/liblzma/common/easy_buffer_encoder.c \
|
|||
../src/liblzma/common/easy_decoder_memusage.c \
|
|||
../src/liblzma/common/easy_encoder.c \
|
|||
../src/liblzma/common/easy_encoder_memusage.c \
|
|||
../src/liblzma/common/easy_preset.c \
|
|||
../src/liblzma/common/filter_common.c \
|
|||
../src/liblzma/common/filter_decoder.c \
|
|||
../src/liblzma/common/filter_encoder.c \
|
|||
../src/liblzma/common/filter_flags_decoder.c \
|
|||
../src/liblzma/common/filter_flags_encoder.c \
|
|||
../src/liblzma/common/index.c \
|
|||
../src/liblzma/common/index_decoder.c \
|
|||
../src/liblzma/common/index_encoder.c \
|
|||
../src/liblzma/common/index_hash.c \
|
|||
../src/liblzma/common/stream_buffer_decoder.c \
|
|||
../src/liblzma/common/stream_buffer_encoder.c \
|
|||
../src/liblzma/common/stream_decoder.c \
|
|||
../src/liblzma/common/stream_encoder.c \
|
|||
../src/liblzma/common/stream_flags_common.c \
|
|||
../src/liblzma/common/stream_flags_decoder.c \
|
|||
../src/liblzma/common/stream_flags_encoder.c \
|
|||
../src/liblzma/common/vli_decoder.c \
|
|||
../src/liblzma/common/vli_encoder.c \
|
|||
../src/liblzma/common/vli_size.c \
|
|||
../src/liblzma/check/check.c \
|
|||
../src/liblzma/check/crc32_table.c \
|
|||
../src/liblzma/check/crc64_table.c \
|
|||
../src/liblzma/check/sha256.c \
|
|||
../src/liblzma/rangecoder/price_table.c \
|
|||
../src/liblzma/lz/lz_decoder.c \
|
|||
../src/liblzma/lz/lz_encoder.c \
|
|||
../src/liblzma/lz/lz_encoder_mf.c \
|
|||
../src/liblzma/lzma/fastpos_table.c \
|
|||
../src/liblzma/lzma/lzma2_decoder.c \
|
|||
../src/liblzma/lzma/lzma2_encoder.c \
|
|||
../src/liblzma/lzma/lzma_decoder.c \
|
|||
../src/liblzma/lzma/lzma_encoder.c \
|
|||
../src/liblzma/lzma/lzma_encoder_optimum_fast.c \
|
|||
../src/liblzma/lzma/lzma_encoder_optimum_normal.c \
|
|||
../src/liblzma/lzma/lzma_encoder_presets.c \
|
|||
../src/liblzma/delta/delta_common.c \
|
|||
../src/liblzma/delta/delta_decoder.c \
|
|||
../src/liblzma/delta/delta_encoder.c \
|
|||
../src/liblzma/simple/arm.c \
|
|||
../src/liblzma/simple/armthumb.c \
|
|||
../src/liblzma/simple/ia64.c \
|
|||
../src/liblzma/simple/powerpc.c \
|
|||
../src/liblzma/simple/simple_coder.c \
|
|||
../src/liblzma/simple/simple_decoder.c \
|
|||
../src/liblzma/simple/simple_encoder.c \
|
|||
../src/liblzma/simple/sparc.c \
|
|||
../src/liblzma/simple/x86.c |
|||
|
|||
LIBLZMA_SRCS_ASM = \
|
|||
../src/liblzma/check/crc32_x86.S \
|
|||
../src/liblzma/check/crc64_x86.S |
|||
|
|||
LIBLZMA_OBJS_C = $(LIBLZMA_SRCS_C:.c=.o) |
|||
LIBLZMA_OBJS_ASM = $(LIBLZMA_SRCS_ASM:.S=.o) |
|||
LIBLZMA_OBJS = $(LIBLZMA_OBJS_C) $(LIBLZMA_OBJS_ASM) |
|||
|
|||
$(LIBLZMA_OBJS_C): %.o: %.c |
|||
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< |
|||
|
|||
$(LIBLZMA_OBJS_ASM): %.o: %.S |
|||
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< |
|||
|
|||
liblzma.a: $(LIBLZMA_OBJS) |
|||
$(RM) $@ |
|||
$(AR) rcs $@ $(LIBLZMA_OBJS) |
|||
$(STRIP) --strip-unneeded $@ |
|||
|
|||
# Avoid too long command lines.
|
|||
.PHONY: liblzma-clean $(LIBLZMA_OBJS:.o=-clean) |
|||
liblzma-clean: $(LIBLZMA_OBJS:.o=-clean) |
|||
-$(RM) liblzma.a |
|||
|
|||
$(LIBLZMA_OBJS:.o=-clean): |
|||
-$(RM) $(@:-clean=.o) |
|||
|
|||
|
|||
###############
|
|||
# getopt_long #
|
|||
###############
|
|||
|
|||
GETOPT_SRCS = \
|
|||
../lib/getopt.c \
|
|||
../lib/getopt1.c |
|||
|
|||
GETOPT_OBJS = $(GETOPT_SRCS:.c=.o) |
|||
|
|||
GETOPT_H = ../lib/getopt.h |
|||
|
|||
$(GETOPT_H): %.h: %.in.h |
|||
$(SED) "" $< > $@ |
|||
|
|||
$(GETOPT_OBJS): %.o: %.c $(GETOPT_H) |
|||
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< |
|||
|
|||
getopt.a: $(GETOPT_OBJS) |
|||
$(RM) $@ |
|||
$(AR) rcs $@ $(GETOPT_OBJS) |
|||
$(STRIP) --strip-unneeded $@ |
|||
|
|||
getopt-clean: |
|||
$(RM) $(GETOPT_H) $(GETOPT_OBJS) getopt.a |
|||
|
|||
|
|||
###########################
|
|||
# xzdec.exe & lzmadec.exe #
|
|||
###########################
|
|||
|
|||
XZDEC_SRCS = ../src/xzdec/xzdec.c |
|||
|
|||
xzdec.exe: getopt.a liblzma.a $(XZDEC_SRCS) |
|||
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(XZDEC_SRCS) -o $@ getopt.a liblzma.a |
|||
$(STRIP) --strip-all $@ |
|||
exe2coff $@ |
|||
$(RM) $@ |
|||
copy /b $(DJGPP:DJGPP.ENV=BIN\CWSDSTUB.EXE) + $(@:.exe=) $@ |
|||
$(RM) $(@:.exe=) |
|||
|
|||
lzmadec.exe: getopt.a liblzma.a $(XZDEC_SRCS) |
|||
$(CC) $(ALL_CPPFLAGS) -DLZMADEC $(ALL_CFLAGS) $(XZDEC_SRCS) -o $@ getopt.a liblzma.a |
|||
$(STRIP) --strip-all $@ |
|||
exe2coff $@ |
|||
$(RM) $@ |
|||
copy /b $(DJGPP:DJGPP.ENV=BIN\CWSDSTUB.EXE) + $(@:.exe=) $@ |
|||
$(RM) $(@:.exe=) |
|||
|
|||
.PHONY: xzdec-clean |
|||
xzdec-clean: |
|||
-$(RM) xzdec.exe lzmadec.exe xzdec lzmadec |
|||
|
|||
|
|||
##########
|
|||
# xz.exe #
|
|||
##########
|
|||
|
|||
XZ_SRCS = \
|
|||
../src/xz/args.c \
|
|||
../src/xz/coder.c \
|
|||
../src/xz/file_io.c \
|
|||
../src/xz/hardware.c \
|
|||
../src/xz/main.c \
|
|||
../src/xz/message.c \
|
|||
../src/xz/options.c \
|
|||
../src/xz/signals.c \
|
|||
../src/xz/suffix.c \
|
|||
../src/xz/util.c |
|||
|
|||
XZ_OBJS = $(XZ_SRCS:.c=.o) |
|||
|
|||
$(XZ_OBJS): %.o: %.c |
|||
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< |
|||
|
|||
xz.exe: getopt.a liblzma.a $(XZ_OBJS) |
|||
$(CC) $(ALL_CFLAGS) $(XZ_OBJS) -o $@ getopt.a liblzma.a |
|||
$(STRIP) --strip-all $@ |
|||
exe2coff $@ |
|||
$(RM) $@ |
|||
copy /b $(DJGPP:DJGPP.ENV=BIN\CWSDSTUB.EXE) + $(@:.exe=) $@ |
|||
$(RM) $(@:.exe=) |
|||
|
|||
# Avoid too long command lines.
|
|||
.PHONY: xz-clean $(XZ_OBJS:.o=-clean) |
|||
xz-clean: $(XZ_OBJS:.o=-clean) |
|||
-$(RM) xz.exe xz |
|||
|
|||
$(XZ_OBJS:.o=-clean): |
|||
-$(RM) $(@:-clean=.o) |
@ -0,0 +1,113 @@ |
|||
|
|||
XZ Utils on DOS |
|||
=============== |
|||
|
|||
Introduction |
|||
|
|||
This document explains how to build XZ Utils for DOS using DJGPP. |
|||
The resulting binaries should run at least on various DOS versions |
|||
and under Windows 95/98/98SE/ME, which cannot run the Windows version |
|||
of XZ Utils. |
|||
|
|||
This is currently experimental and has got very little testing. |
|||
|
|||
|
|||
Getting and Installing DJGPP |
|||
|
|||
You may use <http://www.delorie.com/djgpp/zip-picker.html> to help |
|||
deciding what to download, but as of writing (2009-02-13) that may |
|||
not be the most convenient way taking into account what components |
|||
are actually required to build XZ Utils. However, using the |
|||
zip-picker can still be worth doing to get nice short summary of |
|||
installation instructions (they can be found from readme.1st too). |
|||
|
|||
For more manual method, first select a mirror from |
|||
<http://www.delorie.com/djgpp/getting.html>. You need |
|||
the following files: |
|||
|
|||
unzip32.exe |
|||
beta/v2/djdev204.zip |
|||
v2gnu/bnu219b.zip |
|||
v2gnu/gcc432b.zip |
|||
v2gnu/mak3791b.zip |
|||
v2gnu/sed415b.zip |
|||
v2misc/csdpmi5b.zip |
|||
|
|||
If newer versions are available, probably you should try them first. |
|||
Note that djdev203.zip is too old to build XZ Utils; you need at |
|||
least djdev204.zip. Also note that you want csdpmi5b.zip even if you |
|||
run under Windows or DOSEMU, because the XZ Utils Makefile will embed |
|||
cwsdstub.exe to the resulting binaries. |
|||
|
|||
See the instructions in readme.1st found from djdev204.zip. Here's |
|||
a short summary, but you should still read readme.1st. |
|||
|
|||
C:\> mkdir DJGPP |
|||
C:\> cd DJGPP |
|||
C:\DJGPP> c:\download\unzip32 c:\download\djdev204.zip |
|||
C:\DJGPP> c:\download\unzip32 c:\download\bnu219b.zip |
|||
C:\DJGPP> c:\download\unzip32 c:\download\gcc432b.zip |
|||
C:\DJGPP> c:\download\unzip32 c:\download\mak3791b.zip |
|||
C:\DJGPP> c:\download\unzip32 c:\download\sed415b.zip |
|||
C:\DJGPP> c:\download\unzip32 c:\download\csdpmi5b.zip |
|||
|
|||
C:\DJGPP> set PATH=C:\DJGPP\BIN;%PATH% |
|||
C:\DJGPP> set DJGPP=C:\DJGPP\DJGPP.ENV |
|||
|
|||
You may want to add the last two lines into AUTOEXEC.BAT or have, |
|||
for example, DJGPP.BAT which you can run before using DJGPP. |
|||
|
|||
Make sure you use completely upper case path in the DJGPP environment |
|||
variable. This is not required by DJGPP, but the XZ Utils Makefile is |
|||
a bit stupid and expects that everything in DJGPP environment variable |
|||
is uppercase. |
|||
|
|||
|
|||
Building |
|||
|
|||
Just run "make" in this directory (the directory containing this |
|||
README). You should get liblzma.a, xz.exe, xzdec.exe, and |
|||
lzmadec.exe. Of these, probably xz.exe is the only interesting one. |
|||
|
|||
Note: You need to have an environment that supports long filenames. |
|||
Once you have built XZ Utils, the resulting binaries can be run |
|||
without long filename support. |
|||
|
|||
|
|||
Additional Make Flags and Targets |
|||
|
|||
You may want to try some additional optimizations, which may or |
|||
may not make the code faster (and may or may not hit possible |
|||
compiler bugs more easily): |
|||
|
|||
make CFLAGS="-O3 -fomit-frame-pointer -funroll-loops" |
|||
|
|||
If you want to enable assertions (the assert() macro), use DEBUG=1. |
|||
You may want to disable optimizations too if you plan to actually |
|||
debug the code. Never use DEBUG=1 for production builds! |
|||
|
|||
make DEBUG=1 CFLAGS="-g -O0" |
|||
|
|||
|
|||
Bugs |
|||
|
|||
"make clean" may remove src/xz/hardware.c when it tries to remove |
|||
src/xz/hardware-fixed.c. This is probably a bug somewhere in the |
|||
DOS environment I use. Maybe it tries truncated 8.3 name first and |
|||
since that gives a name of an existing file, it doesn't look for |
|||
long filename. |
|||
|
|||
"xz -fc /dev/tty" hangs at least in DOSEMU and cannot be interrupted |
|||
by pressing C-c. Maybe xz should never accept non-regular files on |
|||
DOS even when --force is used. |
|||
|
|||
Using different memory usage limit for encoding and decoding doesn't |
|||
make sense under pure DOS. Maybe it is still OK when running under |
|||
Windows. |
|||
|
|||
The progress indicator of "xz -v" doesn't get updated when running |
|||
under Dosbox, but it works in DOSEMU. I currently (2009-02-13) don't |
|||
know if it works in other environments. |
|||
|
|||
Report bugs to <lasse.collin@tukaani.org> (in English or Finnish). |
|||
|
@ -0,0 +1,150 @@ |
|||
/* Define to 1 if using x86 assembler optimizations. */ |
|||
#define HAVE_ASM_X86 1 |
|||
|
|||
/* Define to 1 if crc32 integrity check is enabled. */ |
|||
#define HAVE_CHECK_CRC32 1 |
|||
|
|||
/* Define to 1 if crc64 integrity check is enabled. */ |
|||
#define HAVE_CHECK_CRC64 1 |
|||
|
|||
/* Define to 1 if sha256 integrity check is enabled. */ |
|||
#define HAVE_CHECK_SHA256 1 |
|||
|
|||
/* Define to 1 if decoder components are enabled. */ |
|||
#define HAVE_DECODER 1 |
|||
|
|||
/* Define to 1 if arm decoder is enabled. */ |
|||
#define HAVE_DECODER_ARM 1 |
|||
|
|||
/* Define to 1 if armthumb decoder is enabled. */ |
|||
#define HAVE_DECODER_ARMTHUMB 1 |
|||
|
|||
/* Define to 1 if delta decoder is enabled. */ |
|||
#define HAVE_DECODER_DELTA 1 |
|||
|
|||
/* Define to 1 if ia64 decoder is enabled. */ |
|||
#define HAVE_DECODER_IA64 1 |
|||
|
|||
/* Define to 1 if lzma1 decoder is enabled. */ |
|||
#define HAVE_DECODER_LZMA1 1 |
|||
|
|||
/* Define to 1 if lzma2 decoder is enabled. */ |
|||
#define HAVE_DECODER_LZMA2 1 |
|||
|
|||
/* Define to 1 if powerpc decoder is enabled. */ |
|||
#define HAVE_DECODER_POWERPC 1 |
|||
|
|||
/* Define to 1 if sparc decoder is enabled. */ |
|||
#define HAVE_DECODER_SPARC 1 |
|||
|
|||
/* Define to 1 if subblock decoder is enabled. */ |
|||
/* #undef HAVE_DECODER_SUBBLOCK */ |
|||
|
|||
/* Define to 1 if x86 decoder is enabled. */ |
|||
#define HAVE_DECODER_X86 1 |
|||
|
|||
/* Define to 1 if encoder components are enabled. */ |
|||
#define HAVE_ENCODER 1 |
|||
|
|||
/* Define to 1 if arm encoder is enabled. */ |
|||
#define HAVE_ENCODER_ARM 1 |
|||
|
|||
/* Define to 1 if armthumb encoder is enabled. */ |
|||
#define HAVE_ENCODER_ARMTHUMB 1 |
|||
|
|||
/* Define to 1 if delta encoder is enabled. */ |
|||
#define HAVE_ENCODER_DELTA 1 |
|||
|
|||
/* Define to 1 if ia64 encoder is enabled. */ |
|||
#define HAVE_ENCODER_IA64 1 |
|||
|
|||
/* Define to 1 if lzma1 encoder is enabled. */ |
|||
#define HAVE_ENCODER_LZMA1 1 |
|||
|
|||
/* Define to 1 if lzma2 encoder is enabled. */ |
|||
#define HAVE_ENCODER_LZMA2 1 |
|||
|
|||
/* Define to 1 if powerpc encoder is enabled. */ |
|||
#define HAVE_ENCODER_POWERPC 1 |
|||
|
|||
/* Define to 1 if sparc encoder is enabled. */ |
|||
#define HAVE_ENCODER_SPARC 1 |
|||
|
|||
/* Define to 1 if subblock encoder is enabled. */ |
|||
/* #undef HAVE_ENCODER_SUBBLOCK */ |
|||
|
|||
/* Define to 1 if x86 encoder is enabled. */ |
|||
#define HAVE_ENCODER_X86 1 |
|||
|
|||
/* Define to 1 if the system supports fast unaligned memory access. */ |
|||
#define HAVE_FAST_UNALIGNED_ACCESS 1 |
|||
|
|||
/* Define to 1 if you have the <inttypes.h> header file. */ |
|||
#define HAVE_INTTYPES_H 1 |
|||
|
|||
/* Define to 1 if you have the <limits.h> header file. */ |
|||
#define HAVE_LIMITS_H 1 |
|||
|
|||
/* Define to 1 if you have the <memory.h> header file. */ |
|||
#define HAVE_MEMORY_H 1 |
|||
|
|||
/* Define to 1 to enable bt2 match finder. */ |
|||
#define HAVE_MF_BT2 1 |
|||
|
|||
/* Define to 1 to enable bt3 match finder. */ |
|||
#define HAVE_MF_BT3 1 |
|||
|
|||
/* Define to 1 to enable bt4 match finder. */ |
|||
#define HAVE_MF_BT4 1 |
|||
|
|||
/* Define to 1 to enable hc3 match finder. */ |
|||
#define HAVE_MF_HC3 1 |
|||
|
|||
/* Define to 1 to enable hc4 match finder. */ |
|||
#define HAVE_MF_HC4 1 |
|||
|
|||
/* Define to 1 if optimizing for size. */ |
|||
/* #undef HAVE_SMALL */ |
|||
|
|||
/* Define to 1 if stdbool.h conforms to C99. */ |
|||
#define HAVE_STDBOOL_H 1 |
|||
|
|||
/* Define to 1 if you have the <stdint.h> header file. */ |
|||
#define HAVE_STDINT_H 1 |
|||
|
|||
/* Define to 1 if you have the <stdlib.h> header file. */ |
|||
#define HAVE_STDLIB_H 1 |
|||
|
|||
/* Define to 1 if you have the <strings.h> header file. */ |
|||
#define HAVE_STRINGS_H 1 |
|||
|
|||
/* Define to 1 if you have the <string.h> header file. */ |
|||
#define HAVE_STRING_H 1 |
|||
|
|||
/* Define to 1 if the system has the type `uintptr_t'. */ |
|||
#define HAVE_UINTPTR_T 1 |
|||
|
|||
/* Define to 1 if you have the <sys/time.h> header file. */ |
|||
#define HAVE_SYS_TIME_H 1 |
|||
|
|||
/* Define to 1 if you have the `utimes' function. */ |
|||
#define HAVE_UTIMES 1 |
|||
|
|||
/* Define to 1 or 0, depending whether the compiler supports simple visibility |
|||
declarations. */ |
|||
#define HAVE_VISIBILITY 0 |
|||
|
|||
/* Define to 1 if the system has the type `_Bool'. */ |
|||
#define HAVE__BOOL 1 |
|||
|
|||
/* Define to the address where bug reports for this package should be sent. */ |
|||
#define PACKAGE_BUGREPORT "lasse.collin@tukaani.org" |
|||
|
|||
/* Define to the full name of this package. */ |
|||
#define PACKAGE_NAME "XZ Utils" |
|||
|
|||
/* The size of `size_t', as computed by sizeof. */ |
|||
#define SIZEOF_SIZE_T 4 |
|||
|
|||
/* Define to 1 if you have the ANSI C header files. */ |
|||
#define STDC_HEADERS 1 |
@ -0,0 +1,115 @@ |
|||
#!/bin/bash |
|||
# |
|||
############################################################################# |
|||
# |
|||
# 7z2lzma.bash is very primitive .7z to .lzma converter. The input file must |
|||
# have exactly one LZMA compressed stream, which has been created with the |
|||
# default lc, lp, and pb values. The CRC32 in the .7z archive is not checked, |
|||
# and the script may seem to succeed while it actually created a corrupt .lzma |
|||
# file. You should always try uncompressing both the original .7z and the |
|||
# created .lzma and compare that the output is identical. |
|||
# |
|||
# This script requires basic GNU tools and 7z or 7za tool from p7zip. |
|||
# |
|||
# Last modified: 2009-01-15 14:25+0200 |
|||
# |
|||
############################################################################# |
|||
# |
|||
# Author: Lasse Collin <lasse.collin@tukaani.org> |
|||
# |
|||
# This file has been put into the public domain. |
|||
# You can do whatever you want with this file. |
|||
# |
|||
############################################################################# |
|||
|
|||
# You can use 7z or 7za, both will work. |
|||
SEVENZIP=7za |
|||
|
|||
if [ $# != 2 -o -z "$1" -o -z "$2" ]; then |
|||
echo "Usage: $0 input.7z output.lzma" |
|||
exit 1 |
|||
fi |
|||
|
|||
# Converts an integer variable to little endian binary integer. |
|||
int2bin() |
|||
{ |
|||
local LEN=$1 |
|||
local NUM=$2 |
|||
local HEX=(0 1 2 3 4 5 6 7 8 9 A B C D E F) |
|||
local I |
|||
for ((I=0; I < "$LEN"; ++I)); do |
|||
printf "\\x${HEX[(NUM >> 4) & 0x0F]}${HEX[NUM & 0x0F]}" |
|||
NUM=$((NUM >> 8)) |
|||
done |
|||
} |
|||
|
|||
# Make sure we get possible errors from pipes. |
|||
set -o pipefail |
|||
|
|||
# Get information about the input file. At least older 7z and 7za versions |
|||
# may return with zero exit status even when an error occurred, so check |
|||
# if the output has any lines beginning with "Error". |
|||
INFO=$("$SEVENZIP" l -slt "$1") |
|||
if [ $? != 0 ] || printf '%s\n' "$INFO" | grep -q ^Error; then |
|||
printf '%s\n' "$INFO" |
|||
exit 1 |
|||
fi |
|||
|
|||
# Check if the input file has more than one compressed block. |
|||
if printf '%s\n' "$INFO" | grep -q '^Block = 1'; then |
|||
echo "Cannot convert, because the input file has more than" |
|||
echo "one compressed block." |
|||
exit 1 |
|||
fi |
|||
|
|||
# Get copmressed, uncompressed, and dictionary size. |
|||
CSIZE=$(printf '%s\n' "$INFO" | sed -rn 's|^Packed Size = ([0-9]+$)|\1|p') |
|||
USIZE=$(printf '%s\n' "$INFO" | sed -rn 's|^Size = ([0-9]+$)|\1|p') |
|||
DICT=$(printf '%s\n' "$INFO" | sed -rn 's|^Method = LZMA:([0-9]+[bkm]?)$|\1|p') |
|||
|
|||
if [ -z "$CSIZE" -o -z "$USIZE" -o -z "$DICT" ]; then |
|||
echo "Parsing output of $SEVENZIP failed. Maybe the file uses some" |
|||
echo "other compression method than plain LZMA." |
|||
exit 1 |
|||
fi |
|||
|
|||
# The following assumes that the default lc, lp, and pb settings were used. |
|||
# Otherwise the output will be corrupt. |
|||
printf '\x5D' > "$2" |
|||
|
|||
# Dictionary size can be either was power of two, bytes, kibibytes, or |
|||
# mebibytes. We need to convert it to bytes. |
|||
case $DICT in |
|||
*b) |
|||
DICT=${DICT%b} |
|||
;; |
|||
*k) |
|||
DICT=${DICT%k} |
|||
DICT=$((DICT << 10)) |
|||
;; |
|||
*m) |
|||
DICT=${DICT%m} |
|||
DICT=$((DICT << 20)) |
|||
;; |
|||
*) |
|||
DICT=$((1 << DICT)) |
|||
;; |
|||
esac |
|||
int2bin 4 "$DICT" >> "$2" |
|||
|
|||
# Uncompressed size |
|||
int2bin 8 "$USIZE" >> "$2" |
|||
|
|||
# Copy the actual compressed data. Using multiple dd commands to avoid |
|||
# copying large amount of data with one-byte block size, which would be |
|||
# annoyingly slow. |
|||
BS=8192 |
|||
BIGSIZE=$((CSIZE / BS)) |
|||
CSIZE=$((CSIZE % BS)) |
|||
{ |
|||
dd of=/dev/null bs=32 count=1 \ |
|||
&& dd bs="$BS" count="$BIGSIZE" \ |
|||
&& dd bs=1 count="$CSIZE" |
|||
} < "$1" >> "$2" |
|||
|
|||
exit $? |
@ -0,0 +1,84 @@ |
|||
/* |
|||
scanlzma, scan for lzma compressed data in stdin and echo it to stdout. |
|||
Copyright (C) 2006 Timo Lindfors |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
*/ |
|||
|
|||
/* Usage example: |
|||
|
|||
$ wget http://www.wifi-shop.cz/Files/produkty/wa2204/wa2204av1.4.1.zip |
|||
$ unzip wa2204av1.4.1.zip |
|||
$ gcc scanlzma.c -o scanlzma -Wall |
|||
$ ./scanlzma 0 < WA2204-FW1.4.1/linux-1.4.bin | lzma -c -d | strings | grep -i "copyright" |
|||
UpdateDD version 2.5, Copyright (C) 2005 Philipp Benner. |
|||
Copyright (C) 2005 Philipp Benner. |
|||
Copyright (C) 2005 Philipp Benner. |
|||
mawk 1.3%s%s %s, Copyright (C) Michael D. Brennan |
|||
# Copyright (C) 1998, 1999, 2001 Henry Spencer. |
|||
... |
|||
|
|||
*/ |
|||
|
|||
|
|||
/* LZMA compressed file format */ |
|||
/* --------------------------- */ |
|||
/* Offset Size Description */ |
|||
/* 0 1 Special LZMA properties for compressed data */ |
|||
/* 1 4 Dictionary size (little endian) */ |
|||
/* 5 8 Uncompressed size (little endian). -1 means unknown size */ |
|||
/* 13 Compressed data */ |
|||
|
|||
#define BUFSIZE 4096 |
|||
|
|||
int find_lzma_header(unsigned char *buf) { |
|||
return (buf[0] < 0xE1 |
|||
&& buf[0] == 0x5d |
|||
&& buf[4] < 0x20 |
|||
&& (memcmp (buf + 10 , "\x00\x00\x00", 3) == 0 |
|||
|| (memcmp (buf + 5, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8) == 0))); |
|||
} |
|||
|
|||
int main(int argc, char *argv[]) { |
|||
char buf[BUFSIZE]; |
|||
int ret, i, numlzma, blocks=0; |
|||
|
|||
if (argc != 2) { |
|||
printf("usage: %s numlzma < infile | lzma -c -d > outfile\n" |
|||
"where numlzma is index of lzma file to extract, starting from zero.\n", |
|||
argv[0]); |
|||
exit(1); |
|||
} |
|||
numlzma = atoi(argv[1]); |
|||
|
|||
for (;;) { |
|||
/* Read data. */ |
|||
ret = fread(buf, BUFSIZE, 1, stdin); |
|||
if (ret != 1) |
|||
break; |
|||
|
|||
/* Scan for signature. */ |
|||
for (i = 0; i<BUFSIZE-23; i++) { |
|||
if (find_lzma_header(buf+i) && numlzma-- <= 0) { |
|||
fwrite(buf+i, (BUFSIZE-i), 1, stdout); |
|||
for (;;) { |
|||
int ch; |
|||
ch = getchar(); |
|||
if (ch == EOF) |
|||
exit(0); |
|||
putchar(ch); |
|||
} |
|||
} |
|||
} |
|||
blocks++; |
|||
} |
|||
return 1; |
|||
} |
@ -0,0 +1,32 @@ |
|||
##
|
|||
## Copyright (C) 2004-2007 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 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.
|
|||
##
|
|||
|
|||
## Not using gnulib-tool, at least for now. It is likely that we won't
|
|||
## need anything else from Gnulib than getopt_long().
|
|||
|
|||
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 |
|||
BUILT_SOURCES = $(GETOPT_H) |
|||
MOSTLYCLEANFILES = getopt.h getopt.h-t |
|||
|
|||
getopt.h: getopt.in.h |
|||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
|||
cat $(srcdir)/getopt.in.h; \
|
|||
} > $@-t |
|||
mv -f $@-t $@ |
@ -0,0 +1,525 @@ |
|||
# Makefile.in generated by automake 1.11 from Makefile.am.
|
|||
# @configure_input@
|
|||
|
|||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
|||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
|||
# Inc.
|
|||
# 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@ |
|||
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 |
|||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in getopt.c \
|
|||
getopt1.c |
|||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
|||
am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
|
|||
$(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettext.m4 \
|
|||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lc_cpucores.m4 \
|
|||
$(top_srcdir)/m4/lc_physmem.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/visibility.m4 \
|
|||
$(top_srcdir)/configure.ac |
|||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|||
$(ACLOCAL_M4) |
|||
mkinstalldirs = $(install_sh) -d |
|||
CONFIG_HEADER = $(top_builddir)/config.h |
|||
CONFIG_CLEAN_FILES = |
|||
CONFIG_CLEAN_VPATH_FILES = |
|||
LIBRARIES = $(noinst_LIBRARIES) |
|||
ARFLAGS = cru |
|||
libgnu_a_AR = $(AR) $(ARFLAGS) |
|||
am_libgnu_a_OBJECTS = |
|||
libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) |
|||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) |
|||
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp |
|||
am__depfiles_maybe = depfiles |
|||
am__mv = mv -f |
|||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
|||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
|||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
|||
CCLD = $(CC) |
|||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
|||
$(LDFLAGS) -o $@ |
|||
SOURCES = $(libgnu_a_SOURCES) |
|||
DIST_SOURCES = $(libgnu_a_SOURCES) |
|||
ETAGS = etags |
|||
CTAGS = ctags |
|||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
|||
ACLOCAL = @ACLOCAL@ |
|||
AMTAR = @AMTAR@ |
|||
AM_CFLAGS = @AM_CFLAGS@ |
|||
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@ |
|||
CYGPATH_W = @CYGPATH_W@ |
|||
DEFS = @DEFS@ |
|||
DEPDIR = @DEPDIR@ |
|||
DLLTOOL = @DLLTOOL@ |
|||
DSYMUTIL = @DSYMUTIL@ |
|||
DUMPBIN = @DUMPBIN@ |
|||
DYNAMIC_CPPFLAGS = @DYNAMIC_CPPFLAGS@ |
|||
DYNAMIC_LDFLAGS = @DYNAMIC_LDFLAGS@ |
|||
ECHO_C = @ECHO_C@ |
|||
ECHO_N = @ECHO_N@ |
|||
ECHO_T = @ECHO_T@ |
|||
EGREP = @EGREP@ |
|||
EXEEXT = @EXEEXT@ |
|||
FGREP = @FGREP@ |
|||
GETOPT_H = @GETOPT_H@ |
|||
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_S = @LN_S@ |
|||
LTLIBICONV = @LTLIBICONV@ |
|||
LTLIBINTL = @LTLIBINTL@ |
|||
LTLIBOBJS = @LTLIBOBJS@ |
|||
MAKEINFO = @MAKEINFO@ |
|||
MKDIR_P = @MKDIR_P@ |
|||
MSGFMT = @MSGFMT@ |
|||
MSGFMT_015 = @MSGFMT_015@ |
|||
MSGMERGE = @MSGMERGE@ |
|||
NM = @NM@ |
|||
NMEDIT = @NMEDIT@ |
|||
OBJDUMP = @OBJDUMP@ |
|||
OBJEXT = @OBJEXT@ |
|||
OTOOL = @OTOOL@ |
|||
OTOOL64 = @OTOOL64@ |
|||
PACKAGE = @PACKAGE@ |
|||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
|||
PACKAGE_HOMEPAGE = @PACKAGE_HOMEPAGE@ |
|||
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_LIBS = @PTHREAD_LIBS@ |
|||
RANLIB = @RANLIB@ |
|||
RC = @RC@ |
|||
SED = @SED@ |
|||
SET_MAKE = @SET_MAKE@ |
|||
SHELL = @SHELL@ |
|||
STATIC_CPPFLAGS = @STATIC_CPPFLAGS@ |
|||
STATIC_LDFLAGS = @STATIC_LDFLAGS@ |
|||
STRIP = @STRIP@ |
|||
USE_NLS = @USE_NLS@ |
|||
VERSION = @VERSION@ |
|||
XGETTEXT = @XGETTEXT@ |
|||
XGETTEXT_015 = @XGETTEXT_015@ |
|||
abs_builddir = @abs_builddir@ |
|||
abs_srcdir = @abs_srcdir@ |
|||
abs_top_builddir = @abs_top_builddir@ |
|||
abs_top_srcdir = @abs_top_srcdir@ |
|||
ac_ct_CC = @ac_ct_CC@ |
|||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
|||
acx_pthread_config = @acx_pthread_config@ |
|||
am__include = @am__include@ |
|||
am__leading_dot = @am__leading_dot@ |
|||
am__quote = @am__quote@ |
|||
am__tar = @am__tar@ |
|||
am__untar = @am__untar@ |
|||
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@ |
|||
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@ |
|||
localstatedir = @localstatedir@ |
|||
lt_ECHO = @lt_ECHO@ |
|||
mandir = @mandir@ |
|||
mkdir_p = @mkdir_p@ |
|||
oldincludedir = @oldincludedir@ |
|||
pdfdir = @pdfdir@ |
|||
prefix = @prefix@ |
|||
program_transform_name = @program_transform_name@ |
|||
psdir = @psdir@ |
|||
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 |
|||
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 |
|||
.PRECIOUS: Makefile |
|||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
|||
@case '$?' in \
|
|||
*config.status*) \
|
|||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
|||
*) \
|
|||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
|||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
|||
esac; |
|||
|
|||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
|||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
|||
|
|||
$(top_srcdir)/configure: $(am__configure_deps) |
|||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
|||
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
|||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
|||
$(am__aclocal_m4_deps): |
|||
|
|||
clean-noinstLIBRARIES: |
|||
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) |
|||
libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) |
|||
-rm -f libgnu.a |
|||
$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD) |
|||
$(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@ |
|||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1.Po@am__quote@ |
|||
|
|||
.c.o: |
|||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
|||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
|||
@am__fastdepCC_FALSE@ $(COMPILE) -c $< |
|||
|
|||
.c.obj: |
|||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
|||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
|||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` |
|||
|
|||
.c.lo: |
|||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
|||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
|||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< |
|||
|
|||
mostlyclean-libtool: |
|||
-rm -f *.lo |
|||
|
|||
clean-libtool: |
|||
-rm -rf .libs _libs |
|||
|
|||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) |
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
mkid -fID $$unique |
|||
tags: TAGS |
|||
|
|||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ |
|||
$(TAGS_FILES) $(LISP) |
|||
set x; \
|
|||
here=`pwd`; \
|
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
shift; \
|
|||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
|||
test -n "$$unique" || unique=$$empty_fix; \
|
|||
if test $$# -gt 0; then \ |
|||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|||
"$$@" $$unique; \
|
|||
else \
|
|||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|||
$$unique; \
|
|||
fi; \
|
|||
fi |
|||
ctags: CTAGS |
|||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ |
|||
$(TAGS_FILES) $(LISP) |
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
test -z "$(CTAGS_ARGS)$$unique" \
|
|||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|||
$$unique |
|||
|
|||
GTAGS: |
|||
here=`$(am__cd) $(top_builddir) && pwd` \
|
|||
&& $(am__cd) $(top_srcdir) \
|
|||
&& gtags -i $(GTAGS_ARGS) "$$here" |
|||
|
|||
distclean-tags: |
|||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
|||
|
|||
distdir: $(DISTFILES) |
|||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|||
list='$(DISTFILES)'; \
|
|||
dist_files=`for file in $$list; do echo $$file; done | \
|
|||
sed -e "s|^$$srcdirstrip/||;t" \
|
|||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
|||
case $$dist_files in \
|
|||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
|||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
|||
sort -u` ;; \
|
|||
esac; \
|
|||
for file in $$dist_files; do \
|
|||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
|||
if test -d $$d/$$file; then \
|
|||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
|||
if test -d "$(distdir)/$$file"; then \
|
|||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|||
fi; \
|
|||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
|||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
|||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|||
fi; \
|
|||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
|||
else \
|
|||
test -f "$(distdir)/$$file" \
|
|||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
|||
|| exit 1; \
|
|||
fi; \
|
|||
done |
|||
check-am: all-am |
|||
check: $(BUILT_SOURCES) |
|||
$(MAKE) $(AM_MAKEFLAGS) check-am |
|||
all-am: Makefile $(LIBRARIES) |
|||
installdirs: |
|||
install: $(BUILT_SOURCES) |
|||
$(MAKE) $(AM_MAKEFLAGS) install-am |
|||
install-exec: install-exec-am |
|||
install-data: install-data-am |
|||
uninstall: uninstall-am |
|||
|
|||
install-am: all-am |
|||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
|||
|
|||
installcheck: installcheck-am |
|||
install-strip: |
|||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|||
`test -z '$(STRIP)' || \
|
|||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install |
|||
mostlyclean-generic: |
|||
-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 -rf $(DEPDIR) |
|||
-rm -f Makefile |
|||
distclean-am: clean-am distclean-compile distclean-generic \ |
|||
distclean-tags |
|||
|
|||
dvi: dvi-am |
|||
|
|||
dvi-am: |
|||
|
|||
html: html-am |
|||
|
|||
html-am: |
|||
|
|||
info: info-am |
|||
|
|||
info-am: |
|||
|
|||
install-data-am: |
|||
|
|||
install-dvi: install-dvi-am |
|||
|
|||
install-dvi-am: |
|||
|
|||
install-exec-am: |
|||
|
|||
install-html: install-html-am |
|||
|
|||
install-html-am: |
|||
|
|||
install-info: install-info-am |
|||
|
|||
install-info-am: |
|||
|
|||
install-man: |
|||
|
|||
install-pdf: install-pdf-am |
|||
|
|||
install-pdf-am: |
|||
|
|||
install-ps: install-ps-am |
|||
|
|||
install-ps-am: |
|||
|
|||
installcheck-am: |
|||
|
|||
maintainer-clean: maintainer-clean-am |
|||
-rm -rf $(DEPDIR) |
|||
-rm -f Makefile |
|||
maintainer-clean-am: distclean-am maintainer-clean-generic |
|||
|
|||
mostlyclean: mostlyclean-am |
|||
|
|||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
|||
mostlyclean-libtool |
|||
|
|||
pdf: pdf-am |
|||
|
|||
pdf-am: |
|||
|
|||
ps: ps-am |
|||
|
|||
ps-am: |
|||
|
|||
uninstall-am: |
|||
|
|||
.MAKE: all check install install-am install-strip |
|||
|
|||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ |
|||
clean-libtool clean-noinstLIBRARIES ctags 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 uninstall uninstall-am |
|||
|
|||
|
|||
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: |
1197
third_party/xz-4.999.9beta/lib/getopt.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,226 @@ |
|||
/* Declarations for getopt. |
|||
Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006,2007 |
|||
Free Software Foundation, Inc. |
|||
This file is part of the GNU C Library. |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU Lesser General Public License as published by |
|||
the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public License along |
|||
with this program; if not, write to the Free Software Foundation, |
|||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ |
|||
|
|||
#ifndef _GETOPT_H |
|||
|
|||
#ifndef __need_getopt |
|||
# define _GETOPT_H 1 |
|||
#endif |
|||
|
|||
/* Standalone applications should #define __GETOPT_PREFIX to an |
|||
identifier that prefixes the external functions and variables |
|||
defined in this header. When this happens, include the |
|||
headers that might declare getopt so that they will not cause |
|||
confusion if included after this file. Then systematically rename |
|||
identifiers so that they do not collide with the system functions |
|||
and variables. Renaming avoids problems with some compilers and |
|||
linkers. */ |
|||
#if defined __GETOPT_PREFIX && !defined __need_getopt |
|||
# include <stdlib.h> |
|||
# include <stdio.h> |
|||
# include <unistd.h> |
|||
# undef __need_getopt |
|||
# undef getopt |
|||
# undef getopt_long |
|||
# undef getopt_long_only |
|||
# undef optarg |
|||
# undef opterr |
|||
# undef optind |
|||
# undef optopt |
|||
# define __GETOPT_CONCAT(x, y) x ## y |
|||
# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) |
|||
# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) |
|||
# define getopt __GETOPT_ID (getopt) |
|||
# define getopt_long __GETOPT_ID (getopt_long) |
|||
# define getopt_long_only __GETOPT_ID (getopt_long_only) |
|||
# define optarg __GETOPT_ID (optarg) |
|||
# define opterr __GETOPT_ID (opterr) |
|||
# define optind __GETOPT_ID (optind) |
|||
# define optopt __GETOPT_ID (optopt) |
|||
#endif |
|||
|
|||
/* Standalone applications get correct prototypes for getopt_long and |
|||
getopt_long_only; they declare "char **argv". libc uses prototypes |
|||
with "char *const *argv" that are incorrect because getopt_long and |
|||
getopt_long_only can permute argv; this is required for backward |
|||
compatibility (e.g., for LSB 2.0.1). |
|||
|
|||
This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt', |
|||
but it caused redefinition warnings if both unistd.h and getopt.h were |
|||
included, since unistd.h includes getopt.h having previously defined |
|||
__need_getopt. |
|||
|
|||
The only place where __getopt_argv_const is used is in definitions |
|||
of getopt_long and getopt_long_only below, but these are visible |
|||
only if __need_getopt is not defined, so it is quite safe to rewrite |
|||
the conditional as follows: |
|||
*/ |
|||
#if !defined __need_getopt |
|||
# if defined __GETOPT_PREFIX |
|||
# define __getopt_argv_const /* empty */ |
|||
# else |
|||
# define __getopt_argv_const const |
|||
# endif |
|||
#endif |
|||
|
|||
/* If __GNU_LIBRARY__ is not already defined, either we are being used |
|||
standalone, or this is the first header included in the source file. |
|||
If we are being used with glibc, we need to include <features.h>, but |
|||
that does not exist if we are standalone. So: if __GNU_LIBRARY__ is |
|||
not defined, include <ctype.h>, which will pull in <features.h> for us |
|||
if it's from glibc. (Why ctype.h? It's guaranteed to exist and it |
|||
doesn't flood the namespace with stuff the way some other headers do.) */ |
|||
#if !defined __GNU_LIBRARY__ |
|||
# include <ctype.h> |
|||
#endif |
|||
|
|||
#ifndef __THROW |
|||
# ifndef __GNUC_PREREQ |
|||
# define __GNUC_PREREQ(maj, min) (0) |
|||
# endif |
|||
# if defined __cplusplus && __GNUC_PREREQ (2,8) |
|||
# define __THROW throw () |
|||
# else |
|||
# define __THROW |
|||
# endif |
|||
#endif |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* For communication from `getopt' to the caller. |
|||
When `getopt' finds an option that takes an argument, |
|||
the argument value is returned here. |
|||
Also, when `ordering' is RETURN_IN_ORDER, |
|||
each non-option ARGV-element is returned here. */ |
|||
|
|||
extern char *optarg; |
|||
|
|||
/* Index in ARGV of the next element to be scanned. |
|||
This is used for communication to and from the caller |
|||
and for communication between successive calls to `getopt'. |
|||
|
|||
On entry to `getopt', zero means this is the first call; initialize. |
|||
|
|||
When `getopt' returns -1, this is the index of the first of the |
|||
non-option elements that the caller should itself scan. |
|||
|
|||
Otherwise, `optind' communicates from one call to the next |
|||
how much of ARGV has been scanned so far. */ |
|||
|
|||
extern int optind; |
|||
|
|||
/* Callers store zero here to inhibit the error message `getopt' prints |
|||
for unrecognized options. */ |
|||
|
|||
extern int opterr; |
|||
|
|||
/* Set to an option character which was unrecognized. */ |
|||
|
|||
extern int optopt; |
|||
|
|||
#ifndef __need_getopt |
|||
/* Describe the long-named options requested by the application. |
|||
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector |
|||
of `struct option' terminated by an element containing a name which is |
|||
zero. |
|||
|
|||
The field `has_arg' is: |
|||
no_argument (or 0) if the option does not take an argument, |
|||
required_argument (or 1) if the option requires an argument, |
|||
optional_argument (or 2) if the option takes an optional argument. |
|||
|
|||
If the field `flag' is not NULL, it points to a variable that is set |
|||
to the value given in the field `val' when the option is found, but |
|||
left unchanged if the option is not found. |
|||
|
|||
To have a long-named option do something other than set an `int' to |
|||
a compiled-in constant, such as set a value from `optarg', set the |
|||
option's `flag' field to zero and its `val' field to a nonzero |
|||
value (the equivalent single-letter option character, if there is |
|||
one). For long options that have a zero `flag' field, `getopt' |
|||
returns the contents of the `val' field. */ |
|||
|
|||
struct option |
|||
{ |
|||
const char *name; |
|||
/* has_arg can't be an enum because some compilers complain about |
|||
type mismatches in all the code that assumes it is an int. */ |
|||
int has_arg; |
|||
int *flag; |
|||
int val; |
|||
}; |
|||
|
|||
/* Names for the values of the `has_arg' field of `struct option'. */ |
|||
|
|||
# define no_argument 0 |
|||
# define required_argument 1 |
|||
# define optional_argument 2 |
|||
#endif /* need getopt */ |
|||
|
|||
|
|||
/* Get definitions and prototypes for functions to process the |
|||
arguments in ARGV (ARGC of them, minus the program name) for |
|||
options given in OPTS. |
|||
|
|||
Return the option character from OPTS just read. Return -1 when |
|||
there are no more options. For unrecognized options, or options |
|||
missing arguments, `optopt' is set to the option letter, and '?' is |
|||
returned. |
|||
|
|||
The OPTS string is a list of characters which are recognized option |
|||
letters, optionally followed by colons, specifying that that letter |
|||
takes an argument, to be placed in `optarg'. |
|||
|
|||
If a letter in OPTS is followed by two colons, its argument is |
|||
optional. This behavior is specific to the GNU `getopt'. |
|||
|
|||
The argument `--' causes premature termination of argument |
|||
scanning, explicitly telling `getopt' that there are no more |
|||
options. |
|||
|
|||
If OPTS begins with `-', then non-option arguments are treated as |
|||
arguments to the option '\1'. This behavior is specific to the GNU |
|||
`getopt'. If OPTS begins with `+', or POSIXLY_CORRECT is set in |
|||
the environment, then do not permute arguments. */ |
|||
|
|||
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) |
|||
__THROW; |
|||
|
|||
#ifndef __need_getopt |
|||
extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, |
|||
const char *__shortopts, |
|||
const struct option *__longopts, int *__longind) |
|||
__THROW; |
|||
extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, |
|||
const char *__shortopts, |
|||
const struct option *__longopts, int *__longind) |
|||
__THROW; |
|||
|
|||
#endif |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
/* Make sure we later can get all the definitions and declarations. */ |
|||
#undef __need_getopt |
|||
|
|||
#endif /* getopt.h */ |
@ -0,0 +1,171 @@ |
|||
/* getopt_long and getopt_long_only entry points for GNU getopt. |
|||
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98,2004,2006 |
|||
Free Software Foundation, Inc. |
|||
This file is part of the GNU C Library. |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU Lesser General Public License as published by |
|||
the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public License along |
|||
with this program; if not, write to the Free Software Foundation, |
|||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ |
|||
|
|||
#ifdef _LIBC |
|||
# include <getopt.h> |
|||
#else |
|||
# include <config.h> |
|||
# include "getopt.h" |
|||
#endif |
|||
#include "getopt_int.h" |
|||
|
|||
#include <stdio.h> |
|||
|
|||
/* This needs to come after some library #include |
|||
to get __GNU_LIBRARY__ defined. */ |
|||
#ifdef __GNU_LIBRARY__ |
|||
#include <stdlib.h> |
|||
#endif |
|||
|
|||
#ifndef NULL |
|||
#define NULL 0 |
|||
#endif |
|||
|
|||
int |
|||
getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, |
|||
const struct option *long_options, int *opt_index) |
|||
{ |
|||
return _getopt_internal (argc, (char **) argv, options, long_options, |
|||
opt_index, 0, 0); |
|||
} |
|||
|
|||
int |
|||
_getopt_long_r (int argc, char **argv, const char *options, |
|||
const struct option *long_options, int *opt_index, |
|||
struct _getopt_data *d) |
|||
{ |
|||
return _getopt_internal_r (argc, argv, options, long_options, opt_index, |
|||
0, 0, d); |
|||
} |
|||
|
|||
/* Like getopt_long, but '-' as well as '--' can indicate a long option. |
|||
If an option that starts with '-' (not '--') doesn't match a long option, |
|||
but does match a short option, it is parsed as a short option |
|||
instead. */ |
|||
|
|||
int |
|||
getopt_long_only (int argc, char *__getopt_argv_const *argv, |
|||
const char *options, |
|||
const struct option *long_options, int *opt_index) |
|||
{ |
|||
return _getopt_internal (argc, (char **) argv, options, long_options, |
|||
opt_index, 1, 0); |
|||
} |
|||
|
|||
int |
|||
_getopt_long_only_r (int argc, char **argv, const char *options, |
|||
const struct option *long_options, int *opt_index, |
|||
struct _getopt_data *d) |
|||
{ |
|||
return _getopt_internal_r (argc, argv, options, long_options, opt_index, |
|||
1, 0, d); |
|||
} |
|||
|
|||
|
|||
#ifdef TEST |
|||
|
|||
#include <stdio.h> |
|||
|
|||
int |
|||
main (int argc, char **argv) |
|||
{ |
|||
int c; |
|||
int digit_optind = 0; |
|||
|
|||
while (1) |
|||
{ |
|||
int this_option_optind = optind ? optind : 1; |
|||
int option_index = 0; |
|||
static struct option long_options[] = |
|||
{ |
|||
{"add", 1, 0, 0}, |
|||
{"append", 0, 0, 0}, |
|||
{"delete", 1, 0, 0}, |
|||
{"verbose", 0, 0, 0}, |
|||
{"create", 0, 0, 0}, |
|||
{"file", 1, 0, 0}, |
|||
{0, 0, 0, 0} |
|||
}; |
|||
|
|||
c = getopt_long (argc, argv, "abc:d:0123456789", |
|||
long_options, &option_index); |
|||
if (c == -1) |
|||
break; |
|||
|
|||
switch (c) |
|||
{ |
|||
case 0: |
|||
printf ("option %s", long_options[option_index].name); |
|||
if (optarg) |
|||
printf (" with arg %s", optarg); |
|||
printf ("\n"); |
|||
break; |
|||
|
|||
case '0': |
|||
case '1': |
|||
case '2': |
|||
case '3': |
|||
case '4': |
|||
case '5': |
|||
case '6': |
|||
case '7': |
|||
case '8': |
|||
case '9': |
|||
if (digit_optind != 0 && digit_optind != this_option_optind) |
|||
printf ("digits occur in two different argv-elements.\n"); |
|||
digit_optind = this_option_optind; |
|||
printf ("option %c\n", c); |
|||
break; |
|||
|
|||
case 'a': |
|||
printf ("option a\n"); |
|||
break; |
|||
|
|||
case 'b': |
|||
printf ("option b\n"); |
|||
break; |
|||
|
|||
case 'c': |
|||
printf ("option c with value `%s'\n", optarg); |
|||
break; |
|||
|
|||
case 'd': |
|||
printf ("option d with value `%s'\n", optarg); |
|||
break; |
|||
|
|||
case '?': |
|||
break; |
|||
|
|||
default: |
|||
printf ("?? getopt returned character code 0%o ??\n", c); |
|||
} |
|||
} |
|||
|
|||
if (optind < argc) |
|||
{ |
|||
printf ("non-option ARGV-elements: "); |
|||
while (optind < argc) |
|||
printf ("%s ", argv[optind++]); |
|||
printf ("\n"); |
|||
} |
|||
|
|||
exit (0); |
|||
} |
|||
|
|||
#endif /* TEST */ |
@ -0,0 +1,131 @@ |
|||
/* Internal declarations for getopt. |
|||
Copyright (C) 1989-1994,1996-1999,2001,2003,2004 |
|||
Free Software Foundation, Inc. |
|||
This file is part of the GNU C Library. |
|||
|
|||
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, write to the Free Software Foundation, |
|||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ |
|||
|
|||
#ifndef _GETOPT_INT_H |
|||
#define _GETOPT_INT_H 1 |
|||
|
|||
extern int _getopt_internal (int ___argc, char **___argv, |
|||
const char *__shortopts, |
|||
const struct option *__longopts, int *__longind, |
|||
int __long_only, int __posixly_correct); |
|||
|
|||
|
|||
/* Reentrant versions which can handle parsing multiple argument |
|||
vectors at the same time. */ |
|||
|
|||
/* Data type for reentrant functions. */ |
|||
struct _getopt_data |
|||
{ |
|||
/* These have exactly the same meaning as the corresponding global |
|||
variables, except that they are used for the reentrant |
|||
versions of getopt. */ |
|||
int optind; |
|||
int opterr; |
|||
int optopt; |
|||
char *optarg; |
|||
|
|||
/* Internal members. */ |
|||
|
|||
/* True if the internal members have been initialized. */ |
|||
int __initialized; |
|||
|
|||
/* The next char to be scanned in the option-element |
|||
in which the last option character we returned was found. |
|||
This allows us to pick up the scan where we left off. |
|||
|
|||
If this is zero, or a null string, it means resume the scan |
|||
by advancing to the next ARGV-element. */ |
|||
char *__nextchar; |
|||
|
|||
/* Describe how to deal with options that follow non-option ARGV-elements. |
|||
|
|||
If the caller did not specify anything, |
|||
the default is REQUIRE_ORDER if the environment variable |
|||
POSIXLY_CORRECT is defined, PERMUTE otherwise. |
|||
|
|||
REQUIRE_ORDER means don't recognize them as options; |
|||
stop option processing when the first non-option is seen. |
|||
This is what Unix does. |
|||
This mode of operation is selected by either setting the environment |
|||
variable POSIXLY_CORRECT, or using `+' as the first character |
|||
of the list of option characters, or by calling getopt. |
|||
|
|||
PERMUTE is the default. We permute the contents of ARGV as we |
|||
scan, so that eventually all the non-options are at the end. |
|||
This allows options to be given in any order, even with programs |
|||
that were not written to expect this. |
|||
|
|||
RETURN_IN_ORDER is an option available to programs that were |
|||
written to expect options and other ARGV-elements in any order |
|||
and that care about the ordering of the two. We describe each |
|||
non-option ARGV-element as if it were the argument of an option |
|||
with character code 1. Using `-' as the first character of the |
|||
list of option characters selects this mode of operation. |
|||
|
|||
The special argument `--' forces an end of option-scanning regardless |
|||
of the value of `ordering'. In the case of RETURN_IN_ORDER, only |
|||
`--' can cause `getopt' to return -1 with `optind' != ARGC. */ |
|||
|
|||
enum |
|||
{ |
|||
REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER |
|||
} __ordering; |
|||
|
|||
/* If the POSIXLY_CORRECT environment variable is set |
|||
or getopt was called. */ |
|||
int __posixly_correct; |
|||
|
|||
|
|||
/* Handle permutation of arguments. */ |
|||
|
|||
/* Describe the part of ARGV that contains non-options that have |
|||
been skipped. `first_nonopt' is the index in ARGV of the first |
|||
of them; `last_nonopt' is the index after the last of them. */ |
|||
|
|||
int __first_nonopt; |
|||
int __last_nonopt; |
|||
|
|||
#if defined _LIBC && defined USE_NONOPTION_FLAGS |
|||
int __nonoption_flags_max_len; |
|||
int __nonoption_flags_len; |
|||
# endif |
|||
}; |
|||
|
|||
/* The initializer is necessary to set OPTIND and OPTERR to their |
|||
default values and to clear the initialization flag. */ |
|||
#define _GETOPT_DATA_INITIALIZER { 1, 1 } |
|||
|
|||
extern int _getopt_internal_r (int ___argc, char **___argv, |
|||
const char *__shortopts, |
|||
const struct option *__longopts, int *__longind, |
|||
int __long_only, int __posixly_correct, |
|||
struct _getopt_data *__data); |
|||
|
|||
extern int _getopt_long_r (int ___argc, char **___argv, |
|||
const char *__shortopts, |
|||
const struct option *__longopts, int *__longind, |
|||
struct _getopt_data *__data); |
|||
|
|||
extern int _getopt_long_only_r (int ___argc, char **___argv, |
|||
const char *__shortopts, |
|||
const struct option *__longopts, |
|||
int *__longind, |
|||
struct _getopt_data *__data); |
|||
|
|||
#endif /* getopt_int.h */ |
@ -0,0 +1,279 @@ |
|||
##### http://autoconf-archive.cryp.to/acx_pthread.html |
|||
# |
|||
# SYNOPSIS |
|||
# |
|||
# ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) |
|||
# |
|||
# DESCRIPTION |
|||
# |
|||
# This macro figures out how to build C programs using POSIX threads. |
|||
# It sets the PTHREAD_LIBS output variable to the threads library and |
|||
# linker flags, and the PTHREAD_CFLAGS output variable to any special |
|||
# C compiler flags that are needed. (The user can also force certain |
|||
# compiler flags/libs to be tested by setting these environment |
|||
# variables.) |
|||
# |
|||
# Also sets PTHREAD_CC to any special C compiler that is needed for |
|||
# multi-threaded programs (defaults to the value of CC otherwise). |
|||
# (This is necessary on AIX to use the special cc_r compiler alias.) |
|||
# |
|||
# NOTE: You are assumed to not only compile your program with these |
|||
# flags, but also link it with them as well. e.g. you should link |
|||
# with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS |
|||
# $LIBS |
|||
# |
|||
# If you are only building threads programs, you may wish to use |
|||
# these variables in your default LIBS, CFLAGS, and CC: |
|||
# |
|||
# LIBS="$PTHREAD_LIBS $LIBS" |
|||
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
|||
# CC="$PTHREAD_CC" |
|||
# |
|||
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute |
|||
# constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to |
|||
# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). |
|||
# |
|||
# ACTION-IF-FOUND is a list of shell commands to run if a threads |
|||
# library is found, and ACTION-IF-NOT-FOUND is a list of commands to |
|||
# run it if it is not found. If ACTION-IF-FOUND is not specified, the |
|||
# default action will define HAVE_PTHREAD. |
|||
# |
|||
# Please let the authors know if this macro fails on any platform, or |
|||
# if you have any other suggestions or comments. This macro was based |
|||
# on work by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) |
|||
# (with help from M. Frigo), as well as ac_pthread and hb_pthread |
|||
# macros posted by Alejandro Forero Cuervo to the autoconf macro |
|||
# repository. We are also grateful for the helpful feedback of |
|||
# numerous users. |
|||
# |
|||
# LAST MODIFICATION |
|||
# |
|||
# 2007-07-29 |
|||
# |
|||
# COPYLEFT |
|||
# |
|||
# Copyright (c) 2007 Steven G. Johnson <stevenj@alum.mit.edu> |
|||
# |
|||
# 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 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 |
|||
# <http://www.gnu.org/licenses/>. |
|||
# |
|||
# As a special exception, the respective Autoconf Macro's copyright |
|||
# owner gives unlimited permission to copy, distribute and modify the |
|||
# configure scripts that are the output of Autoconf when processing |
|||
# the Macro. You need not follow the terms of the GNU General Public |
|||
# License when using or distributing such scripts, even though |
|||
# portions of the text of the Macro appear in them. The GNU General |
|||
# Public License (GPL) does govern all other use of the material that |
|||
# constitutes the Autoconf Macro. |
|||
# |
|||
# This special exception to the GPL applies to versions of the |
|||
# Autoconf Macro released by the Autoconf Macro Archive. When you |
|||
# make and distribute a modified version of the Autoconf Macro, you |
|||
# may extend this special exception to the GPL to apply to your |
|||
# modified version as well. |
|||
|
|||
AC_DEFUN([ACX_PTHREAD], [ |
|||
AC_REQUIRE([AC_CANONICAL_HOST]) |
|||
AC_LANG_SAVE |
|||
AC_LANG_C |
|||
acx_pthread_ok=no |
|||
|
|||
# We used to check for pthread.h first, but this fails if pthread.h |
|||
# requires special compiler flags (e.g. on True64 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_LIBS$PTHREAD_CFLAGS" != x; then |
|||
save_CFLAGS="$CFLAGS" |
|||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
|||
save_LIBS="$LIBS" |
|||
LIBS="$PTHREAD_LIBS $LIBS" |
|||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) |
|||
AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) |
|||
AC_MSG_RESULT($acx_pthread_ok) |
|||
if test x"$acx_pthread_ok" = xno; then |
|||
PTHREAD_LIBS="" |
|||
PTHREAD_CFLAGS="" |
|||
fi |
|||
LIBS="$save_LIBS" |
|||
CFLAGS="$save_CFLAGS" |
|||
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 starting with a "-" are |
|||
# C compiler flags, and other 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. |
|||
|
|||
acx_pthread_flags="pthreads none -Kthread -kthread lthread -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) |
|||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) |
|||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) |
|||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) |
|||
# -pthreads: Solaris/gcc |
|||
# -mthreads: Mingw32/gcc, Lynx/gcc |
|||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it |
|||
# doesn't hurt to check since this sometimes defines pthreads too; |
|||
# also defines -D_REENTRANT) |
|||
# ... -mt is also the pthreads flag for HP/aCC |
|||
# pthread: Linux, etcetera |
|||
# --thread-safe: KAI C++ |
|||
# pthread-config: use pthread-config program (for GNU Pth library) |
|||
|
|||
case "${host_cpu}-${host_os}" in |
|||
*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. (We need to link with -pthreads/-mt/ |
|||
# -lpthread.) (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 just look for -pthreads and -lpthread first: |
|||
|
|||
acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" |
|||
;; |
|||
esac |
|||
|
|||
if test x"$acx_pthread_ok" = xno; then |
|||
for flag in $acx_pthread_flags; do |
|||
|
|||
case $flag in |
|||
none) |
|||
AC_MSG_CHECKING([whether pthreads work without any flags]) |
|||
;; |
|||
|
|||
-*) |
|||
AC_MSG_CHECKING([whether pthreads work with $flag]) |
|||
PTHREAD_CFLAGS="$flag" |
|||
;; |
|||
|
|||
pthread-config) |
|||
AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) |
|||
if test x"$acx_pthread_config" = xno; then continue; fi |
|||
PTHREAD_CFLAGS="`pthread-config --cflags`" |
|||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" |
|||
;; |
|||
|
|||
*) |
|||
AC_MSG_CHECKING([for the pthreads library -l$flag]) |
|||
PTHREAD_LIBS="-l$flag" |
|||
;; |
|||
esac |
|||
|
|||
save_LIBS="$LIBS" |
|||
save_CFLAGS="$CFLAGS" |
|||
LIBS="$PTHREAD_LIBS $LIBS" |
|||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
|||
|
|||
# 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. |
|||
AC_TRY_LINK([#include <pthread.h>], |
|||
[pthread_t th; pthread_join(th, 0); |
|||
pthread_attr_init(0); pthread_cleanup_push(0, 0); |
|||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], |
|||
[acx_pthread_ok=yes]) |
|||
|
|||
LIBS="$save_LIBS" |
|||
CFLAGS="$save_CFLAGS" |
|||
|
|||
AC_MSG_RESULT($acx_pthread_ok) |
|||
if test "x$acx_pthread_ok" = xyes; then |
|||
break; |
|||
fi |
|||
|
|||
PTHREAD_LIBS="" |
|||
PTHREAD_CFLAGS="" |
|||
done |
|||
fi |
|||
|
|||
# Various other checks: |
|||
if test "x$acx_pthread_ok" = xyes; then |
|||
save_LIBS="$LIBS" |
|||
LIBS="$PTHREAD_LIBS $LIBS" |
|||
save_CFLAGS="$CFLAGS" |
|||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
|||
|
|||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED. |
|||
AC_MSG_CHECKING([for joinable pthread attribute]) |
|||
attr_name=unknown |
|||
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do |
|||
AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;], |
|||
[attr_name=$attr; break]) |
|||
done |
|||
AC_MSG_RESULT($attr_name) |
|||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then |
|||
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, |
|||
[Define to necessary symbol if this constant |
|||
uses a non-standard name on your system.]) |
|||
fi |
|||
|
|||
AC_MSG_CHECKING([if more special flags are required for pthreads]) |
|||
flag=no |
|||
case "${host_cpu}-${host_os}" in |
|||
*-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; |
|||
*solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; |
|||
esac |
|||
AC_MSG_RESULT(${flag}) |
|||
if test "x$flag" != xno; then |
|||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" |
|||
fi |
|||
|
|||
LIBS="$save_LIBS" |
|||
CFLAGS="$save_CFLAGS" |
|||
|
|||
# More AIX lossage: must compile with xlc_r or cc_r |
|||
if test x"$GCC" != xyes; then |
|||
AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) |
|||
else |
|||
PTHREAD_CC=$CC |
|||
fi |
|||
else |
|||
PTHREAD_CC="$CC" |
|||
fi |
|||
|
|||
AC_SUBST(PTHREAD_LIBS) |
|||
AC_SUBST(PTHREAD_CFLAGS) |
|||
AC_SUBST(PTHREAD_CC) |
|||
|
|||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: |
|||
if test x"$acx_pthread_ok" = xyes; then |
|||
ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) |
|||
: |
|||
else |
|||
acx_pthread_ok=no |
|||
$2 |
|||
fi |
|||
AC_LANG_RESTORE |
|||
])dnl ACX_PTHREAD |
@ -0,0 +1,71 @@ |
|||
# getopt.m4 serial 14 (modified version) |
|||
dnl Copyright (C) 2002-2006, 2008 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. |
|||
|
|||
# The getopt module assume you want GNU getopt, with getopt_long etc, |
|||
# rather than vanilla POSIX getopt. This means your code should |
|||
# always include <getopt.h> for the getopt prototypes. |
|||
|
|||
AC_DEFUN([gl_GETOPT_SUBSTITUTE], |
|||
[ |
|||
AC_LIBOBJ([getopt]) |
|||
AC_LIBOBJ([getopt1]) |
|||
gl_GETOPT_SUBSTITUTE_HEADER |
|||
]) |
|||
|
|||
AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], |
|||
[ |
|||
GETOPT_H=getopt.h |
|||
AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], |
|||
[Define to rpl_ if the getopt replacement functions and variables |
|||
should be used.]) |
|||
AC_SUBST([GETOPT_H]) |
|||
]) |
|||
|
|||
AC_DEFUN([gl_GETOPT_CHECK_HEADERS], |
|||
[ |
|||
if test -z "$GETOPT_H"; then |
|||
AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h]) |
|||
fi |
|||
|
|||
if test -z "$GETOPT_H"; then |
|||
AC_CHECK_FUNCS([getopt_long], [], [GETOPT_H=getopt.h]) |
|||
fi |
|||
|
|||
dnl BSD getopt_long uses a way to reset option processing, that is different |
|||
dnl from GNU and Solaris (which copied the GNU behavior). We support both |
|||
dnl GNU and BSD style resetting of getopt_long(), so there's no need to use |
|||
dnl GNU getopt_long() on BSD due to different resetting style. |
|||
dnl |
|||
dnl With getopt_long(), some BSD versions have a bug in handling optional |
|||
dnl arguments. This bug appears only if the environment variable |
|||
dnl POSIXLY_CORRECT has been set, so it shouldn't be too bad in most |
|||
dnl cases; probably most don't have that variable set. But if we actually |
|||
dnl hit this bug, it is a real problem due to our heavy use of optional |
|||
dnl arguments. |
|||
dnl |
|||
dnl According to CVS logs, the bug was introduced in OpenBSD in 2003-09-22 |
|||
dnl and copied to FreeBSD in 2004-02-24. It was fixed in both in 2006-09-22, |
|||
dnl so the affected versions shouldn't be popular anymore anyway. NetBSD |
|||
dnl never had this bug. TODO: What about Darwin and others? |
|||
if test -z "$GETOPT_H"; then |
|||
AC_CHECK_DECL([optreset], |
|||
[AC_DEFINE([HAVE_OPTRESET], 1, |
|||
[Define to 1 if getopt.h declares extern int optreset.])], |
|||
[], [#include <getopt.h>]) |
|||
fi |
|||
|
|||
dnl Solaris 10 getopt doesn't handle `+' as a leading character in an |
|||
dnl option string (as of 2005-05-05). We don't use that feature, so this |
|||
dnl is not a problem for us. Thus, the respective test was removed here. |
|||
]) |
|||
|
|||
AC_DEFUN([gl_GETOPT_IFELSE], |
|||
[ |
|||
AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) |
|||
AS_IF([test -n "$GETOPT_H"], [$1], [$2]) |
|||
]) |
|||
|
|||
AC_DEFUN([gl_GETOPT], [gl_GETOPT_IFELSE([gl_GETOPT_SUBSTITUTE])]) |
@ -0,0 +1,419 @@ |
|||
# gettext.m4 serial 59 (gettext-0.16.1) |
|||
dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. |
|||
dnl This file is free software; the Free Software Foundation |
|||
dnl gives unlimited permission to copy and/or distribute it, |
|||
dnl with or without modifications, as long as this notice is preserved. |
|||
dnl |
|||
dnl This file can can be used in projects which are not available under |
|||
dnl the GNU General Public License or the GNU Library General Public |
|||
dnl License but which still want to provide support for the GNU gettext |
|||
dnl functionality. |
|||
dnl Please note that the actual code of the GNU gettext library is covered |
|||
dnl by the GNU Library General Public License, and the rest of the GNU |
|||
dnl gettext package package is covered by the GNU General Public License. |
|||
dnl They are *not* in the public domain. |
|||
|
|||
dnl Authors: |
|||
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. |
|||
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006. |
|||
|
|||
dnl Macro to add for using GNU gettext. |
|||
|
|||
dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). |
|||
dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The |
|||
dnl default (if it is not specified or empty) is 'no-libtool'. |
|||
dnl INTLSYMBOL should be 'external' for packages with no intl directory, |
|||
dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. |
|||
dnl If INTLSYMBOL is 'use-libtool', then a libtool library |
|||
dnl $(top_builddir)/intl/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). If INTLSYMBOL is 'no-libtool', a static library |
|||
dnl $(top_builddir)/intl/libintl.a will be created. |
|||
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. |
|||
ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , |
|||
[errprint([ERROR: invalid first argument to AM_GNU_GETTEXT |
|||
])])])])]) |
|||
ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , |
|||
[errprint([ERROR: invalid second argument to AM_GNU_GETTEXT |
|||
])])])]) |
|||
define([gt_included_intl], |
|||
ifelse([$1], [external], |
|||
ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), |
|||
[yes])) |
|||
define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) |
|||
gt_NEEDS_INIT |
|||
AM_GNU_GETTEXT_NEED([$2]) |
|||
|
|||
AC_REQUIRE([AM_PO_SUBDIRS])dnl |
|||
ifelse(gt_included_intl, yes, [ |
|||
AC_REQUIRE([AM_INTL_SUBDIR])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.in invokes AM_ICONV after AM_GNU_GETTEXT |
|||
dnl the configure script would need to contain the same shell code |
|||
dnl again, outside any 'if'. There are two solutions: |
|||
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 only in autoconf >= 2.52 and not |
|||
dnl documented, we avoid it. |
|||
ifelse(gt_included_intl, yes, , [ |
|||
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) |
|||
]) |
|||
|
|||
dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. |
|||
gt_INTL_MACOSX |
|||
|
|||
dnl Set USE_NLS. |
|||
AC_REQUIRE([AM_NLS]) |
|||
|
|||
ifelse(gt_included_intl, yes, [ |
|||
BUILD_INCLUDED_LIBINTL=no |
|||
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 |
|||
ifelse(gt_included_intl, 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_TRY_LINK([#include <libintl.h> |
|||
$gt_revision_test_code |
|||
extern int _nl_msg_cat_cntr; |
|||
extern int *_nl_domain_bindings;], |
|||
[bindtextdomain ("", ""); |
|||
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], |
|||
[eval "$gt_func_gnugettext_libc=yes"], |
|||
[eval "$gt_func_gnugettext_libc=no"])]) |
|||
|
|||
if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then |
|||
dnl Sometimes libintl requires libiconv, so first search for libiconv. |
|||
ifelse(gt_included_intl, yes, , [ |
|||
AM_ICONV_LINK |
|||
]) |
|||
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_TRY_LINK([#include <libintl.h> |
|||
$gt_revision_test_code |
|||
extern int _nl_msg_cat_cntr; |
|||
extern |
|||
#ifdef __cplusplus |
|||
"C" |
|||
#endif |
|||
const char *_nl_expand_alias (const char *);], |
|||
[bindtextdomain ("", ""); |
|||
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], |
|||
[eval "$gt_func_gnugettext_libintl=yes"], |
|||
[eval "$gt_func_gnugettext_libintl=no"]) |
|||
dnl Now see whether libintl exists and depends on libiconv. |
|||
if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then |
|||
LIBS="$LIBS $LIBICONV" |
|||
AC_TRY_LINK([#include <libintl.h> |
|||
$gt_revision_test_code |
|||
extern int _nl_msg_cat_cntr; |
|||
extern |
|||
#ifdef __cplusplus |
|||
"C" |
|||
#endif |
|||
const char *_nl_expand_alias (const char *);], |
|||
[bindtextdomain ("", ""); |
|||
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], |
|||
[LIBINTL="$LIBINTL $LIBICONV" |
|||
LTLIBINTL="$LTLIBINTL $LTLIBICONV" |
|||
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; }; then |
|||
gt_use_preinstalled_gnugettext=yes |
|||
else |
|||
dnl Reset the values set by searching for libintl. |
|||
LIBINTL= |
|||
LTLIBINTL= |
|||
INCINTL= |
|||
fi |
|||
|
|||
ifelse(gt_included_intl, 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. |
|||
BUILD_INCLUDED_LIBINTL=yes |
|||
USE_INCLUDED_LIBINTL=yes |
|||
LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" |
|||
LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" |
|||
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` |
|||
fi |
|||
|
|||
CATOBJEXT= |
|||
if test "$gt_use_preinstalled_gnugettext" = "yes" \ |
|||
|| test "$nls_cv_use_gnu_gettext" = "yes"; then |
|||
dnl Mark actions to use GNU gettext tools. |
|||
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 |
|||
|
|||
ifelse(gt_included_intl, yes, [ |
|||
dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL |
|||
dnl to 'yes' because some of the testsuite requires it. |
|||
if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then |
|||
BUILD_INCLUDED_LIBINTL=yes |
|||
fi |
|||
|
|||
dnl Make all variables we use known to autoconf. |
|||
AC_SUBST(BUILD_INCLUDED_LIBINTL) |
|||
AC_SUBST(USE_INCLUDED_LIBINTL) |
|||
AC_SUBST(CATOBJEXT) |
|||
|
|||
dnl For backward compatibility. Some configure.ins may be using this. |
|||
nls_cv_header_intl= |
|||
nls_cv_header_libgt= |
|||
|
|||
dnl For backward compatibility. Some Makefiles may be using this. |
|||
DATADIRNAME=share |
|||
AC_SUBST(DATADIRNAME) |
|||
|
|||
dnl For backward compatibility. Some Makefiles may be using this. |
|||
INSTOBJEXT=.mo |
|||
AC_SUBST(INSTOBJEXT) |
|||
|
|||
dnl For backward compatibility. Some Makefiles may be using this. |
|||
GENCAT=gencat |
|||
AC_SUBST(GENCAT) |
|||
|
|||
dnl For backward compatibility. Some Makefiles may be using this. |
|||
INTLOBJS= |
|||
if test "$USE_INCLUDED_LIBINTL" = yes; then |
|||
INTLOBJS="\$(GETTOBJS)" |
|||
fi |
|||
AC_SUBST(INTLOBJS) |
|||
|
|||
dnl Enable libtool support if the surrounding package wishes it. |
|||
INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix |
|||
AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) |
|||
]) |
|||
|
|||
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 Checks for special options needed on MacOS X. |
|||
dnl Defines INTL_MACOSX_LIBS. |
|||
AC_DEFUN([gt_INTL_MACOSX], |
|||
[ |
|||
dnl Check for API introduced in MacOS X 10.2. |
|||
AC_CACHE_CHECK([for CFPreferencesCopyAppValue], |
|||
gt_cv_func_CFPreferencesCopyAppValue, |
|||
[gt_save_LIBS="$LIBS" |
|||
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" |
|||
AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>], |
|||
[CFPreferencesCopyAppValue(NULL, NULL)], |
|||
[gt_cv_func_CFPreferencesCopyAppValue=yes], |
|||
[gt_cv_func_CFPreferencesCopyAppValue=no]) |
|||
LIBS="$gt_save_LIBS"]) |
|||
if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then |
|||
AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, |
|||
[Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) |
|||
fi |
|||
dnl Check for API introduced in MacOS X 10.3. |
|||
AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, |
|||
[gt_save_LIBS="$LIBS" |
|||
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" |
|||
AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();], |
|||
[gt_cv_func_CFLocaleCopyCurrent=yes], |
|||
[gt_cv_func_CFLocaleCopyCurrent=no]) |
|||
LIBS="$gt_save_LIBS"]) |
|||
if test $gt_cv_func_CFLocaleCopyCurrent = yes; then |
|||
AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, |
|||
[Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) |
|||
fi |
|||
INTL_MACOSX_LIBS= |
|||
if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then |
|||
INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" |
|||
fi |
|||
AC_SUBST([INTL_MACOSX_LIBS]) |
|||
]) |
|||
|
|||
|
|||
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], []) |
@ -0,0 +1,101 @@ |
|||
# iconv.m4 serial AM4 (gettext-0.11.3) |
|||
dnl Copyright (C) 2000-2002 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_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). |
|||
|
|||
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_TRY_LINK will then fail, the second AC_TRY_LINK 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_TRY_LINK([#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_TRY_LINK([#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_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) |
|||
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) |
|||
]) |
|||
|
|||
AC_DEFUN([AM_ICONV], |
|||
[ |
|||
AM_ICONV_LINK |
|||
if test "$am_cv_func_iconv" = yes; then |
|||
AC_MSG_CHECKING([for iconv declaration]) |
|||
AC_CACHE_VAL(am_cv_proto_iconv, [ |
|||
AC_TRY_COMPILE([ |
|||
#include <stdlib.h> |
|||
#include <iconv.h> |
|||
extern |
|||
#ifdef __cplusplus |
|||
"C" |
|||
#endif |
|||
#if defined(__STDC__) || defined(__cplusplus) |
|||
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); |
|||
#else |
|||
size_t iconv(); |
|||
#endif |
|||
], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") |
|||
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) |
|||
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` |
|||
AC_MSG_RESULT([$]{ac_t:- |
|||
}[$]am_cv_proto_iconv) |
|||
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, |
|||
[Define as const if the declaration of iconv() needs const.]) |
|||
fi |
|||
]) |
@ -0,0 +1,57 @@ |
|||
dnl ########################################################################### |
|||
dnl |
|||
dnl lc_CPUCORES - Check how to find out the number of online CPU cores |
|||
dnl |
|||
dnl Check how to find out the number of available CPU cores in the system. |
|||
dnl sysconf(_SC_NPROCESSORS_ONLN) works on most systems, except that BSDs |
|||
dnl use sysctl(). |
|||
dnl |
|||
dnl ########################################################################### |
|||
dnl |
|||
dnl Author: Lasse Collin |
|||
dnl |
|||
dnl This file has been put into the public domain. |
|||
dnl You can do whatever you want with this file. |
|||
dnl |
|||
dnl ########################################################################### |
|||
AC_DEFUN([lc_CPUCORES], [ |
|||
AC_MSG_CHECKING([how to detect the number of available CPU cores]) |
|||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ |
|||
#include <unistd.h> |
|||
int |
|||
main(void) |
|||
{ |
|||
long i; |
|||
i = sysconf(_SC_NPROCESSORS_ONLN); |
|||
return 0; |
|||
} |
|||
]])], [ |
|||
AC_DEFINE([HAVE_CPUCORES_SYSCONF], [1], |
|||
[Define to 1 if the number of available CPU cores can be |
|||
detected with sysconf(_SC_NPROCESSORS_ONLN).]) |
|||
AC_MSG_RESULT([sysconf]) |
|||
], [ |
|||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ |
|||
#include <sys/types.h> |
|||
#ifdef HAVE_SYS_PARAM_H |
|||
# include <sys/param.h> |
|||
#endif |
|||
#include <sys/sysctl.h> |
|||
int |
|||
main(void) |
|||
{ |
|||
int name[2] = { CTL_HW, HW_NCPU }; |
|||
int cpus; |
|||
size_t cpus_size = sizeof(cpus); |
|||
sysctl(name, 2, &cpus, &cpus_size, NULL, NULL); |
|||
return 0; |
|||
} |
|||
]])], [ |
|||
AC_DEFINE([HAVE_CPUCORES_SYSCTL], [1], |
|||
[Define to 1 if the number of available CPU cores can be |
|||
detected with sysctl().]) |
|||
AC_MSG_RESULT([sysctl]) |
|||
], [ |
|||
AC_MSG_RESULT([unknown]) |
|||
])]) |
|||
])dnl lc_CPUCORES |
@ -0,0 +1,84 @@ |
|||
dnl ########################################################################### |
|||
dnl |
|||
dnl lc_PHYSMEM - Check how to find out the amount of physical memory |
|||
dnl |
|||
dnl - sysconf() gives all the needed info on GNU+Linux and Solaris. |
|||
dnl - BSDs use sysctl(). |
|||
dnl - sysinfo() works on Linux/dietlibc and probably on other Linux systems |
|||
dnl whose libc may lack sysconf(). |
|||
dnl |
|||
dnl ########################################################################### |
|||
dnl |
|||
dnl Author: Lasse Collin |
|||
dnl |
|||
dnl This file has been put into the public domain. |
|||
dnl You can do whatever you want with this file. |
|||
dnl |
|||
dnl ########################################################################### |
|||
AC_DEFUN([lc_PHYSMEM], [ |
|||
AC_MSG_CHECKING([how to detect the amount of physical memory]) |
|||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ |
|||
#include <unistd.h> |
|||
int |
|||
main(void) |
|||
{ |
|||
long i; |
|||
i = sysconf(_SC_PAGESIZE); |
|||
i = sysconf(_SC_PHYS_PAGES); |
|||
return 0; |
|||
} |
|||
]])], [ |
|||
AC_DEFINE([HAVE_PHYSMEM_SYSCONF], [1], |
|||
[Define to 1 if the amount of physical memory can be detected |
|||
with sysconf(_SC_PAGESIZE) and sysconf(_SC_PHYS_PAGES).]) |
|||
AC_MSG_RESULT([sysconf]) |
|||
], [ |
|||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ |
|||
#include <sys/types.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, NULL); |
|||
return 0; |
|||
} |
|||
]])], [ |
|||
AC_DEFINE([HAVE_PHYSMEM_SYSCTL], [1], |
|||
[Define to 1 if the amount of physical memory can be detected |
|||
with sysctl().]) |
|||
AC_MSG_RESULT([sysctl]) |
|||
], [ |
|||
dnl sysinfo() is Linux-specific. Some non-Linux systems have |
|||
dnl incompatible sysinfo() so we must check $host_os. |
|||
case $host_os in |
|||
linux*) |
|||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ |
|||
#include <sys/sysinfo.h> |
|||
int |
|||
main(void) |
|||
{ |
|||
struct sysinfo si; |
|||
sysinfo(&si); |
|||
return 0; |
|||
} |
|||
]])], [ |
|||
AC_DEFINE([HAVE_PHYSMEM_SYSINFO], [1], |
|||
[Define to 1 if the amount of physical memory |
|||
can be detected with Linux sysinfo().]) |
|||
AC_MSG_RESULT([sysinfo]) |
|||
], [ |
|||
AC_MSG_RESULT([unknown]) |
|||
]) |
|||
;; |
|||
*) |
|||
AC_MSG_RESULT([unknown]) |
|||
;; |
|||
esac |
|||
])]) |
|||
])dnl lc_PHYSMEM |
@ -0,0 +1,110 @@ |
|||
# lib-ld.m4 serial 3 (gettext-0.13) |
|||
dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. |
|||
dnl This file is free software; the Free Software Foundation |
|||
dnl gives unlimited permission to copy and/or distribute it, |
|||
dnl with or without modifications, as long as this notice is preserved. |
|||
|
|||
dnl Subroutines of libtool.m4, |
|||
dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision |
|||
dnl with libtool.m4. |
|||
|
|||
dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. |
|||
AC_DEFUN([AC_LIB_PROG_LD_GNU], |
|||
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, |
|||
[# I'd rather use --version here, but apparently some GNU ld's only accept -v. |
|||
case `$LD -v 2>&1 </dev/null` in |
|||
*GNU* | *'with BFD'*) |
|||
acl_cv_prog_gnu_ld=yes ;; |
|||
*) |
|||
acl_cv_prog_gnu_ld=no ;; |
|||
esac]) |
|||
with_gnu_ld=$acl_cv_prog_gnu_ld |
|||
]) |
|||
|
|||
dnl From libtool-1.4. Sets the variable LD. |
|||
AC_DEFUN([AC_LIB_PROG_LD], |
|||
[AC_ARG_WITH(gnu-ld, |
|||
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], |
|||
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) |
|||
AC_REQUIRE([AC_PROG_CC])dnl |
|||
AC_REQUIRE([AC_CANONICAL_HOST])dnl |
|||
# Prepare PATH_SEPARATOR. |
|||
# The user is always right. |
|||
if test "${PATH_SEPARATOR+set}" != set; then |
|||
echo "#! /bin/sh" >conf$$.sh |
|||
echo "exit 0" >>conf$$.sh |
|||
chmod +x conf$$.sh |
|||
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then |
|||
PATH_SEPARATOR=';' |
|||
else |
|||
PATH_SEPARATOR=: |
|||
fi |
|||
rm -f conf$$.sh |
|||
fi |
|||
ac_prog=ld |
|||
if test "$GCC" = yes; then |
|||
# Check if gcc -print-prog-name=ld gives a path. |
|||
AC_MSG_CHECKING([for ld used by GCC]) |
|||
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. |
|||
[[\\/]* | [A-Za-z]:[\\/]*)] |
|||
[re_direlt='/[^/][^/]*/\.\./'] |
|||
# Canonicalize the path of ld |
|||
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` |
|||
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do |
|||
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` |
|||
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 "$with_gnu_ld" = yes; then |
|||
AC_MSG_CHECKING([for GNU ld]) |
|||
else |
|||
AC_MSG_CHECKING([for non-GNU ld]) |
|||
fi |
|||
AC_CACHE_VAL(acl_cv_path_LD, |
|||
[if test -z "$LD"; then |
|||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" |
|||
for ac_dir in $PATH; do |
|||
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 GNU ld's 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="$ac_save_ifs" |
|||
else |
|||
acl_cv_path_LD="$LD" # Let the user override the test with a path. |
|||
fi]) |
|||
LD="$acl_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]) |
|||
AC_LIB_PROG_LD_GNU |
|||
]) |
@ -0,0 +1,644 @@ |
|||
# lib-link.m4 serial 9 (gettext-0.16) |
|||
dnl Copyright (C) 2001-2006 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.50) |
|||
|
|||
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. |
|||
AC_DEFUN([AC_LIB_LINKFLAGS], |
|||
[ |
|||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) |
|||
AC_REQUIRE([AC_LIB_RPATH]) |
|||
define([Name],[translit([$1],[./-], [___])]) |
|||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], |
|||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) |
|||
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" |
|||
]) |
|||
LIB[]NAME="$ac_cv_lib[]Name[]_libs" |
|||
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" |
|||
INC[]NAME="$ac_cv_lib[]Name[]_cppflags" |
|||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) |
|||
AC_SUBST([LIB]NAME) |
|||
AC_SUBST([LTLIB]NAME) |
|||
dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the |
|||
dnl results of this search when this library appears as a dependency. |
|||
HAVE_LIB[]NAME=yes |
|||
undefine([Name]) |
|||
undefine([NAME]) |
|||
]) |
|||
|
|||
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) |
|||
dnl searches for libname and the libraries corresponding to explicit and |
|||
dnl implicit dependencies, together with the specified include files and |
|||
dnl the ability to compile and link the specified testcode. If found, it |
|||
dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and |
|||
dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and |
|||
dnl #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. |
|||
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], |
|||
[ |
|||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) |
|||
AC_REQUIRE([AC_LIB_RPATH]) |
|||
define([Name],[translit([$1],[./-], [___])]) |
|||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], |
|||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) |
|||
|
|||
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" |
|||
LIBS="$LIBS $LIB[]NAME" |
|||
AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) |
|||
LIBS="$ac_save_LIBS" |
|||
]) |
|||
if test "$ac_cv_lib[]Name" = yes; then |
|||
HAVE_LIB[]NAME=yes |
|||
AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) |
|||
AC_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= |
|||
fi |
|||
AC_SUBST([HAVE_LIB]NAME) |
|||
AC_SUBST([LIB]NAME) |
|||
AC_SUBST([LTLIB]NAME) |
|||
undefine([Name]) |
|||
undefine([NAME]) |
|||
]) |
|||
|
|||
dnl Determine the platform dependent parameters needed to use rpath: |
|||
dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, |
|||
dnl hardcode_direct, hardcode_minus_L. |
|||
AC_DEFUN([AC_LIB_RPATH], |
|||
[ |
|||
dnl Tell automake >= 1.10 to complain if config.rpath is missing. |
|||
m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) |
|||
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS |
|||
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld |
|||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host |
|||
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir |
|||
AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ |
|||
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" |
|||
libext="$acl_cv_libext" |
|||
shlibext="$acl_cv_shlibext" |
|||
hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" |
|||
hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" |
|||
hardcode_direct="$acl_cv_hardcode_direct" |
|||
hardcode_minus_L="$acl_cv_hardcode_minus_L" |
|||
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_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. |
|||
AC_DEFUN([AC_LIB_LINKFLAGS_BODY], |
|||
[ |
|||
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) |
|||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], |
|||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) |
|||
dnl By default, look in $includedir and $libdir. |
|||
use_additional=yes |
|||
AC_LIB_WITH_FINAL_PREFIX([ |
|||
eval additional_includedir=\"$includedir\" |
|||
eval additional_libdir=\"$libdir\" |
|||
]) |
|||
AC_LIB_ARG_WITH([lib$1-prefix], |
|||
[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib |
|||
--without-lib$1-prefix don't search for lib$1 in includedir and libdir], |
|||
[ |
|||
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 |
|||
]) |
|||
dnl Search the library and its dependencies in $additional_libdir and |
|||
dnl $LDFLAGS. Using breadth-first-seach. |
|||
LIB[]NAME= |
|||
LTLIB[]NAME= |
|||
INC[]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= |
|||
if test $use_additional = yes; then |
|||
if test -n "$shlibext" \ |
|||
&& { test -f "$additional_libdir/lib$name.$shlibext" \ |
|||
|| { test "$shlibext" = dll \ |
|||
&& test -f "$additional_libdir/lib$name.dll.a"; }; }; then |
|||
found_dir="$additional_libdir" |
|||
if test -f "$additional_libdir/lib$name.$shlibext"; then |
|||
found_so="$additional_libdir/lib$name.$shlibext" |
|||
else |
|||
found_so="$additional_libdir/lib$name.dll.a" |
|||
fi |
|||
if test -f "$additional_libdir/lib$name.la"; then |
|||
found_la="$additional_libdir/lib$name.la" |
|||
fi |
|||
else |
|||
if test -f "$additional_libdir/lib$name.$libext"; then |
|||
found_dir="$additional_libdir" |
|||
found_a="$additional_libdir/lib$name.$libext" |
|||
if test -f "$additional_libdir/lib$name.la"; then |
|||
found_la="$additional_libdir/lib$name.la" |
|||
fi |
|||
fi |
|||
fi |
|||
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//'` |
|||
if test -n "$shlibext" \ |
|||
&& { test -f "$dir/lib$name.$shlibext" \ |
|||
|| { test "$shlibext" = dll \ |
|||
&& test -f "$dir/lib$name.dll.a"; }; }; then |
|||
found_dir="$dir" |
|||
if test -f "$dir/lib$name.$shlibext"; then |
|||
found_so="$dir/lib$name.$shlibext" |
|||
else |
|||
found_so="$dir/lib$name.dll.a" |
|||
fi |
|||
if test -f "$dir/lib$name.la"; then |
|||
found_la="$dir/lib$name.la" |
|||
fi |
|||
else |
|||
if test -f "$dir/lib$name.$libext"; then |
|||
found_dir="$dir" |
|||
found_a="$dir/lib$name.$libext" |
|||
if test -f "$dir/lib$name.la"; then |
|||
found_la="$dir/lib$name.la" |
|||
fi |
|||
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"; 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 "$hardcode_direct" = yes; then |
|||
dnl Using DIR/libNAME.so during linking hardcodes DIR into the |
|||
dnl resulting binary. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" |
|||
else |
|||
if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then |
|||
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 "$hardcode_minus_L" != no; then |
|||
dnl FIXME: Not sure whether we should use |
|||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" |
|||
dnl here. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" |
|||
else |
|||
dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH |
|||
dnl 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/"'*$,,'` |
|||
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*) |
|||
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` |
|||
dnl Potentially add $additional_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$additional_libdir" != "X/usr/$acl_libdirstem"; then |
|||
haveit= |
|||
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; 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$additional_libdir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
if test -d "$additional_libdir"; then |
|||
dnl Really add $additional_libdir to $LIBNAME. |
|||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_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$additional_libdir"; then |
|||
haveit=yes |
|||
break |
|||
fi |
|||
done |
|||
if test -z "$haveit"; then |
|||
if test -d "$additional_libdir"; then |
|||
dnl Really add $additional_libdir to $LTLIBNAME. |
|||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_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. |
|||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` |
|||
;; |
|||
*.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 "$hardcode_libdir_separator"; then |
|||
dnl Weird platform: only the last -rpath option counts, the user must |
|||
dnl pass all path elements in one option. We can arrange that for a |
|||
dnl single library, but not when more than one $LIBNAMEs are used. |
|||
alldirs= |
|||
for found_dir in $rpathdirs; do |
|||
alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" |
|||
done |
|||
dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. |
|||
acl_save_libdir="$libdir" |
|||
libdir="$alldirs" |
|||
eval flag=\"$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=\"$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 |
|||
]) |
|||
|
|||
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 "$hardcode_libdir_flag_spec" && test "$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"; 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"; 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 "$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:+$hardcode_libdir_separator}$dir" |
|||
done |
|||
acl_save_libdir="$libdir" |
|||
libdir="$alldirs" |
|||
eval flag=\"$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=\"$hardcode_libdir_flag_spec\" |
|||
libdir="$acl_save_libdir" |
|||
$1="${$1}${$1:+ }$flag" |
|||
done |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
AC_SUBST([$1]) |
|||
]) |
@ -0,0 +1,185 @@ |
|||
# lib-prefix.m4 serial 5 (gettext-0.15) |
|||
dnl Copyright (C) 2001-2005 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_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and |
|||
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't |
|||
dnl require excessive bracketing. |
|||
ifdef([AC_HELP_STRING], |
|||
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], |
|||
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) |
|||
|
|||
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_LIB_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 a variable acl_libdirstem, containing |
|||
dnl the basename of the libdir, either "lib" or "lib64". |
|||
AC_DEFUN([AC_LIB_PREPARE_MULTILIB], |
|||
[ |
|||
dnl There is no formal standard regarding lib and lib64. The current |
|||
dnl practice is that on a system supporting 32-bit and 64-bit instruction |
|||
dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit |
|||
dnl libraries go under $prefix/lib. We determine the compiler's default |
|||
dnl mode by looking at the compiler's library search path. If at least |
|||
dnl of its elements ends in /lib64 or points to a directory whose absolute |
|||
dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the |
|||
dnl default, namely "lib". |
|||
acl_libdirstem=lib |
|||
searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` |
|||
if test -n "$searchpath"; then |
|||
acl_save_IFS="${IFS= }"; IFS=":" |
|||
for searchdir in $searchpath; do |
|||
if test -d "$searchdir"; then |
|||
case "$searchdir" in |
|||
*/lib64/ | */lib64 ) acl_libdirstem=lib64 ;; |
|||
*) searchdir=`cd "$searchdir" && pwd` |
|||
case "$searchdir" in |
|||
*/lib64 ) acl_libdirstem=lib64 ;; |
|||
esac ;; |
|||
esac |
|||
fi |
|||
done |
|||
IFS="$acl_save_IFS" |
|||
fi |
|||
]) |
7357
third_party/xz-4.999.9beta/m4/libtool.m4
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,368 @@ |
|||
# Helper functions for option handling. -*- Autoconf -*- |
|||
# |
|||
# Copyright (C) 2004, 2005, 2007, 2008 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 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_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], [0], [Assembler program])dnl |
|||
|
|||
test -z "$DLLTOOL" && DLLTOOL=dlltool |
|||
_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl |
|||
|
|||
test -z "$OBJDUMP" && OBJDUMP=objdump |
|||
_LT_DECL([], [OBJDUMP], [0], [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_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], |
|||
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])], |
|||
[pic_mode="$withval"], |
|||
[pic_mode=default]) |
|||
|
|||
test -z "$pic_mode" && 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])]) |
@ -0,0 +1,123 @@ |
|||
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- |
|||
# |
|||
# Copyright (C) 2004, 2005, 2007, 2008 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 |
|||
]) |
@ -0,0 +1,23 @@ |
|||
# ltversion.m4 -- version numbers -*- Autoconf -*- |
|||
# |
|||
# Copyright (C) 2004 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. |
|||
|
|||
# Generated from ltversion.in. |
|||
|
|||
# serial 3012 ltversion.m4 |
|||
# This file is part of GNU Libtool |
|||
|
|||
m4_define([LT_PACKAGE_VERSION], [2.2.6]) |
|||
m4_define([LT_PACKAGE_REVISION], [1.3012]) |
|||
|
|||
AC_DEFUN([LTVERSION_VERSION], |
|||
[macro_version='2.2.6' |
|||
macro_revision='1.3012' |
|||
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) |
|||
_LT_DECL(, macro_revision, 0) |
|||
]) |
@ -0,0 +1,92 @@ |
|||
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- |
|||
# |
|||
# Copyright (C) 2004, 2005, 2007 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 4 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_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) |
|||
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])]) |
@ -0,0 +1,31 @@ |
|||
# nls.m4 serial 3 (gettext-0.15) |
|||
dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. |
|||
dnl This file is free software; the Free Software Foundation |
|||
dnl gives unlimited permission to copy and/or distribute it, |
|||
dnl with or without modifications, as long as this notice is preserved. |
|||
dnl |
|||
dnl This file can can be used in projects which are not available under |
|||
dnl the GNU General Public License or the GNU Library General Public |
|||
dnl License but which still want to provide support for the GNU gettext |
|||
dnl functionality. |
|||
dnl Please note that the actual code of the GNU gettext library is covered |
|||
dnl by the GNU Library General Public License, and the rest of the GNU |
|||
dnl gettext package package is covered by the GNU General Public License. |
|||
dnl They are *not* in the public domain. |
|||
|
|||
dnl 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) |
|||
]) |
@ -0,0 +1,428 @@ |
|||
# po.m4 serial 13 (gettext-0.15) |
|||
dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. |
|||
dnl This file is free software; the Free Software Foundation |
|||
dnl gives unlimited permission to copy and/or distribute it, |
|||
dnl with or without modifications, as long as this notice is preserved. |
|||
dnl |
|||
dnl This file can can be used in projects which are not available under |
|||
dnl the GNU General Public License or the GNU Library General Public |
|||
dnl License but which still want to provide support for the GNU gettext |
|||
dnl functionality. |
|||
dnl Please note that the actual code of the GNU gettext library is covered |
|||
dnl by the GNU Library General Public License, and the rest of the GNU |
|||
dnl gettext package package is covered by the GNU General Public License. |
|||
dnl They are *not* in the public domain. |
|||
|
|||
dnl Authors: |
|||
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. |
|||
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. |
|||
|
|||
AC_PREREQ(2.50) |
|||
|
|||
dnl Checks for all prerequisites of the po subdirectory. |
|||
AC_DEFUN([AM_PO_SUBDIRS], |
|||
[ |
|||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl |
|||
AC_REQUIRE([AC_PROG_INSTALL])dnl |
|||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake |
|||
AC_REQUIRE([AM_NLS])dnl |
|||
|
|||
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 `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in |
|||
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; |
|||
*) MSGFMT_015=$MSGFMT ;; |
|||
esac |
|||
changequote([,])dnl |
|||
AC_SUBST([MSGFMT_015]) |
|||
changequote(,)dnl |
|||
case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in |
|||
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; |
|||
*) GMSGFMT_015=$GMSGFMT ;; |
|||
esac |
|||
changequote([,])dnl |
|||
AC_SUBST([GMSGFMT_015]) |
|||
|
|||
dnl Search for GNU xgettext 0.12 or newer in the PATH. |
|||
dnl The first test excludes Solaris xgettext and early GNU xgettext versions. |
|||
dnl The second test excludes FreeBSD xgettext. |
|||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, |
|||
[$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]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 Installation directories. |
|||
dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we |
|||
dnl have to define it here, so that it can be used in po/Makefile. |
|||
test -n "$localedir" || localedir='${datadir}/locale' |
|||
AC_SUBST([localedir]) |
|||
|
|||
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" |
|||
cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/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"` |
|||
# Hide the ALL_LINGUAS assigment from automake < 1.5. |
|||
eval 'ALL_LINGUAS''=$ALL_LINGUAS_' |
|||
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" |
|||
else |
|||
# The set of available languages was given in configure.in. |
|||
# Hide the ALL_LINGUAS assigment from automake < 1.5. |
|||
eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' |
|||
fi |
|||
# Compute POFILES |
|||
# 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"*) 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. But hide it |
|||
# from automake < 1.5. |
|||
eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' |
|||
# Capture the value of LINGUAS because we need it to compute CATALOGS. |
|||
LINGUAS="${LINGUAS-%UNSET%}" |
|||
]) |
|||
]) |
|||
|
|||
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. |
|||
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. |
|||
/^[ ]*VARIABLE[ ]*=/{ |
|||
# Seen the first line of the variable definition. |
|||
s/^[ ]*VARIABLE[ ]*=// |
|||
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 |
|||
# Hide the ALL_LINGUAS assigment from automake < 1.5. |
|||
eval 'ALL_LINGUAS''=$ALL_LINGUAS_' |
|||
# 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), $(top_srcdir)/$(DOMAIN)_$(lang).properties) |
|||
# Compute CLASSFILES |
|||
# as $(foreach lang, $(ALL_LINGUAS), $(top_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 \$(top_srcdir)/\$(DOMAIN)_$lang.properties" |
|||
CLASSFILES="$CLASSFILES \$(top_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"*) 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" |
|||
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 |
|||
@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ |
|||
\$(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 |
|||
@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ |
|||
\$(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" |
|||
]) |
@ -0,0 +1,63 @@ |
|||
# Find a POSIX-conforming shell. |
|||
|
|||
# Copyright (C) 2007-2008 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. |
|||
|
|||
# Written by Paul Eggert. |
|||
|
|||
# If a POSIX-conforming shell can be found, set POSIX_SHELL and |
|||
# PREFERABLY_POSIX_SHELL to it. If not, set POSIX_SHELL to the |
|||
# empty string and PREFERABLY_POSIX_SHELL to '/bin/sh'. |
|||
|
|||
AC_DEFUN([gl_POSIX_SHELL], |
|||
[ |
|||
AC_CACHE_CHECK([for a shell that conforms to POSIX], [gl_cv_posix_shell], |
|||
[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]) |
|||
|
|||
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 |
|||
AC_SUBST([POSIX_SHELL]) |
|||
AC_SUBST([PREFERABLY_POSIX_SHELL]) |
|||
]) |
@ -0,0 +1,92 @@ |
|||
# progtest.m4 serial 4 (gettext-0.14.2) |
|||
dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc. |
|||
dnl This file is free software; the Free Software Foundation |
|||
dnl gives unlimited permission to copy and/or distribute it, |
|||
dnl with or without modifications, as long as this notice is preserved. |
|||
dnl |
|||
dnl This file can can be used in projects which are not available under |
|||
dnl the GNU General Public License or the GNU Library General Public |
|||
dnl License but which still want to provide support for the GNU gettext |
|||
dnl functionality. |
|||
dnl Please note that the actual code of the GNU gettext library is covered |
|||
dnl by the GNU Library General Public License, and the rest of the GNU |
|||
dnl gettext package package is covered by the GNU General Public License. |
|||
dnl They are *not* in the public domain. |
|||
|
|||
dnl Authors: |
|||
dnl Ulrich Drepper <drepper@cygnus.com>, 1996. |
|||
|
|||
AC_PREREQ(2.50) |
|||
|
|||
# Search path for a program which passes the given test. |
|||
|
|||
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, |
|||
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 |
|||
echo "#! /bin/sh" >conf$$.sh |
|||
echo "exit 0" >>conf$$.sh |
|||
chmod +x conf$$.sh |
|||
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then |
|||
PATH_SEPARATOR=';' |
|||
else |
|||
PATH_SEPARATOR=: |
|||
fi |
|||
rm -f conf$$.sh |
|||
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 ifelse([$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. |
|||
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" |
|||
])dnl |
|||
;; |
|||
esac])dnl |
|||
$1="$ac_cv_path_$1" |
|||
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then |
|||
AC_MSG_RESULT([$]$1) |
|||
else |
|||
AC_MSG_RESULT(no) |
|||
fi |
|||
AC_SUBST($1)dnl |
|||
]) |
@ -0,0 +1,52 @@ |
|||
# visibility.m4 serial 1 (gettext-0.15) |
|||
dnl Copyright (C) 2005 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 Tests whether the compiler supports the command-line option |
|||
dnl -fvisibility=hidden and the function and variable attributes |
|||
dnl __attribute__((__visibility__("hidden"))) and |
|||
dnl __attribute__((__visibility__("default"))). |
|||
dnl Does *not* test for __visibility__("protected") - which has tricky |
|||
dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on |
|||
dnl MacOS X. |
|||
dnl Does *not* test for __visibility__("internal") - which has processor |
|||
dnl dependent semantics. |
|||
dnl Does *not* test for #pragma GCC visibility push(hidden) - which is |
|||
dnl "really only recommended for legacy code". |
|||
dnl Set the variable CFLAG_VISIBILITY. |
|||
dnl Defines and sets the variable HAVE_VISIBILITY. |
|||
|
|||
AC_DEFUN([gl_VISIBILITY], |
|||
[ |
|||
AC_REQUIRE([AC_PROG_CC]) |
|||
CFLAG_VISIBILITY= |
|||
HAVE_VISIBILITY=0 |
|||
if test -n "$GCC"; then |
|||
AC_MSG_CHECKING([for simple visibility declarations]) |
|||
AC_CACHE_VAL(gl_cv_cc_visibility, [ |
|||
gl_save_CFLAGS="$CFLAGS" |
|||
CFLAGS="$CFLAGS -fvisibility=hidden" |
|||
AC_TRY_COMPILE( |
|||
[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);], |
|||
[], |
|||
gl_cv_cc_visibility=yes, |
|||
gl_cv_cc_visibility=no) |
|||
CFLAGS="$gl_save_CFLAGS"]) |
|||
AC_MSG_RESULT([$gl_cv_cc_visibility]) |
|||
if test $gl_cv_cc_visibility = yes; then |
|||
CFLAG_VISIBILITY="-fvisibility=hidden" |
|||
HAVE_VISIBILITY=1 |
|||
fi |
|||
fi |
|||
AC_SUBST([CFLAG_VISIBILITY]) |
|||
AC_SUBST([HAVE_VISIBILITY]) |
|||
AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], |
|||
[Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) |
|||
]) |
@ -0,0 +1,403 @@ |
|||
# Makefile for PO directory in any package using GNU gettext.
|
|||
# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
|||
#
|
|||
# This file can be copied and used freely without restrictions. It can
|
|||
# be used in projects which are not available under the GNU General Public
|
|||
# License but which still want to provide support for the GNU gettext
|
|||
# functionality.
|
|||
# Please note that the actual code of GNU gettext is covered by the GNU
|
|||
# General Public License and is *not* in the public domain.
|
|||
#
|
|||
# Origin: gettext-0.16
|
|||
|
|||
PACKAGE = @PACKAGE@ |
|||
VERSION = @VERSION@ |
|||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
|||
|
|||
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@ |
|||
|
|||
GMSGFMT_ = @GMSGFMT@ |
|||
GMSGFMT_no = @GMSGFMT@ |
|||
GMSGFMT_yes = @GMSGFMT_015@ |
|||
GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) |
|||
MSGFMT_ = @MSGFMT@ |
|||
MSGFMT_no = @MSGFMT@ |
|||
MSGFMT_yes = @MSGFMT_015@ |
|||
MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) |
|||
XGETTEXT_ = @XGETTEXT@ |
|||
XGETTEXT_no = @XGETTEXT@ |
|||
XGETTEXT_yes = @XGETTEXT_015@ |
|||
XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) |
|||
MSGMERGE = msgmerge |
|||
MSGMERGE_UPDATE = @MSGMERGE@ --update |
|||
MSGINIT = msginit |
|||
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@ |
|||
|
|||
# Makevars gets inserted here. (Don't remove this line!)
|
|||
|
|||
.SUFFIXES: |
|||
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update |
|||
|
|||
.po.mo: |
|||
@echo "$(MSGFMT) -c -o $@ $<"; \
|
|||
$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ |
|||
|
|||
.po.gmo: |
|||
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
|||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|||
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
|
|||
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo |
|||
|
|||
.sin.sed: |
|||
sed -e '/^#/d' $< > t-$@ |
|||
mv t-$@ $@ |
|||
|
|||
|
|||
all: all-@USE_NLS@ |
|||
|
|||
all-yes: stamp-po |
|||
all-no: |
|||
|
|||
# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
|
|||
# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
|
|||
# we don't want to bother translators with empty POT files). We assume that
|
|||
# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
|
|||
# In this case, stamp-po is a nop (i.e. a phony target).
|
|||
|
|||
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
|
|||
# been loosely updated. Its purpose is that when a developer or translator
|
|||
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
|
|||
# "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.
|
|||
stamp-po: $(srcdir)/$(DOMAIN).pot |
|||
test ! -f $(srcdir)/$(DOMAIN).pot || \
|
|||
test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) |
|||
@test ! -f $(srcdir)/$(DOMAIN).pot || { \
|
|||
echo "touch stamp-po" && \
|
|||
echo timestamp > stamp-poT && \
|
|||
mv stamp-poT stamp-po; \
|
|||
} |
|||
|
|||
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
|
|||
# otherwise packages like GCC can not be built if only parts of the source
|
|||
# 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.
|
|||
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed |
|||
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; \
|
|||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
|||
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
|
|||
--files-from=$(srcdir)/POTFILES.in \
|
|||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
|||
--msgid-bugs-address="$$msgid_bugs_address" |
|||
test ! -f $(DOMAIN).po || { \
|
|||
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): $(srcdir)/$(DOMAIN).pot |
|||
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
|
|||
if test -f "$(srcdir)/$${lang}.po"; then \
|
|||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|||
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
|
|||
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
|
|||
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 |
|||
$(mkdir_p) $(DESTDIR)$(datadir) |
|||
@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: |
|||
$(mkdir_p) $(DESTDIR)$(datadir) |
|||
@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: |
|||
|
|||
mostlyclean: |
|||
rm -f remove-potcdate.sed |
|||
rm -f 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 *.mo |
|||
|
|||
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 stamp-po $(GMOFILES) |
|||
|
|||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) |
|||
dist distdir: |
|||
$(MAKE) update-po |
|||
@$(MAKE) dist2 |
|||
# This is a separate target because 'update-po' must be executed before.
|
|||
dist2: stamp-po $(DISTFILES) |
|||
dists="$(DISTFILES)"; \
|
|||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|||
dists="$$dists Makevars.template"; \
|
|||
fi; \
|
|||
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
|||
dists="$$dists $(DOMAIN).pot stamp-po"; \
|
|||
fi; \
|
|||
if test -f $(srcdir)/ChangeLog; then \
|
|||
dists="$$dists ChangeLog"; \
|
|||
fi; \
|
|||
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"; then PATH=`pwd`/../src:$$PATH; fi; \
|
|||
tmpdir=`pwd`; \
|
|||
echo "$$lang:"; \
|
|||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|||
echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
|
|||
cd $(srcdir); \
|
|||
if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$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 "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) |
|||
@: |
|||
|
|||
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: |
@ -0,0 +1,46 @@ |
|||
# Makefile variables for PO directory in any package using GNU gettext. |
|||
|
|||
# Usually the message domain is the same as the package name. |
|||
DOMAIN = $(PACKAGE) |
|||
|
|||
# These two variables depend on the location of this directory. |
|||
subdir = po |
|||
top_builddir = .. |
|||
|
|||
# These options get passed to xgettext. |
|||
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ |
|||
|
|||
# This is the copyright holder that gets inserted into the header of the |
|||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding |
|||
# package. (Note that the msgstr strings, extracted from the package's |
|||
# sources, belong to the copyright holder of the package.) Translators are |
|||
# expected to transfer the copyright for their translations to this person |
|||
# or entity, or to disclaim their copyright. The empty string stands for |
|||
# the public domain; in this case the translators are expected to disclaim |
|||
# their copyright. |
|||
COPYRIGHT_HOLDER = |
|||
|
|||
# This is the email address or URL to which the translators shall report |
|||
# bugs in the untranslated strings: |
|||
# - Strings which are not entire sentences, see the maintainer guidelines |
|||
# in the GNU gettext documentation, section 'Preparing Strings'. |
|||
# - Strings which use unclear terms or require additional context to be |
|||
# understood. |
|||
# - Strings which make invalid assumptions about notation of date, time or |
|||
# money. |
|||
# - Pluralisation problems. |
|||
# - Incorrect English spelling. |
|||
# - Incorrect formatting. |
|||
# It can be your email address, or a mailing list address where translators |
|||
# can write to without being subscribed, or the URL of a web page through |
|||
# which the translators can contact you. |
|||
MSGID_BUGS_ADDRESS = |
|||
|
|||
# This is the list of locale categories, beyond LC_MESSAGES, for which the |
|||
# message catalogs shall be used. It is usually empty. |
|||
EXTRA_LOCALE_CATEGORIES = |
|||
|
|||
# Although you may need slightly wider terminal than 80 chars, it is |
|||
# much nicer to edit the output of --help when this is set. |
|||
XGETTEXT_OPTIONS += --no-wrap |
|||
MSGMERGE += --no-wrap |
@ -0,0 +1,10 @@ |
|||
# List of source files which contain translatable strings. |
|||
src/xz/args.c |
|||
src/xz/coder.c |
|||
src/xz/file_io.c |
|||
src/xz/hardware.c |
|||
src/xz/main.c |
|||
src/xz/message.c |
|||
src/xz/options.c |
|||
src/xz/suffix.c |
|||
src/xz/util.c |
@ -0,0 +1,47 @@ |
|||
# Special Makefile rules for English message catalogs with quotation marks. |
|||
|
|||
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"; 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) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ |
|||
if 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 |
@ -0,0 +1,10 @@ |
|||
s/"\([^"]*\)"/“\1”/g |
|||
s/`\([^`']*\)'/‘\1’/g |
|||
s/ '\([^`']*\)' / ‘\1’ /g |
|||
s/ '\([^`']*\)'$/ ‘\1’/g |
|||
s/^'\([^`']*\)' /‘\1’ /g |
|||
s/“”/""/g |
|||
s/“/“[1m/g |
|||
s/”/[0m”/g |
|||
s/‘/‘[1m/g |
|||
s/’/[0m’/g |
@ -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 |
|||
# http://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. |
|||
# |
@ -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 |
|||
# http://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. |
|||
# |
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue