diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2011-01-07 15:22:43 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2011-01-07 15:22:43 +0000 |
commit | 7c2986ff4a631b3ad967d64df9502c03463d41f7 (patch) | |
tree | 8937630e3c6fbb2d799ef8ff0c2bb8d0526b8f5b /Build/source/libs/zziplib/zziplib-0.13.60 | |
parent | 1c2a7c6d12cd8d1cb6ca50cd0a71d2a1605fc4d4 (diff) |
zziplib 0.13.59
git-svn-id: svn://tug.org/texlive/trunk@20965 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/zziplib/zziplib-0.13.60')
236 files changed, 69268 insertions, 0 deletions
diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/COPYING.LIB b/Build/source/libs/zziplib/zziplib-0.13.60/COPYING.LIB new file mode 100644 index 00000000000..eb685a5ec98 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/COPYING.LIB @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, 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 library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + 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 Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, 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 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 a program 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. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, 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 companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + 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, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +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 compile 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) 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. + + c) 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. + + d) 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 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. + + 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 to +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 Library 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 + + Appendix: 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 Library General Public + License as published by the Free Software Foundation; either + version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 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! diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/ChangeLog b/Build/source/libs/zziplib/zziplib-0.13.60/ChangeLog new file mode 100644 index 00000000000..37d4be2cd21 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/ChangeLog @@ -0,0 +1,1560 @@ +2010-12-29 guidod <guidod@gmx.de> + * Makefile.am: allow nonstaic build + * wrap fd.open like in the Fedora patch + +2010-12-28 guidod <guidod@gmx.de> + * zziplib.spec - simplify the spec based on distro specs. + +2010-12-27 guidod <guidod@gmx.de> + * adding fetch.h/fetch.c to msvc8/zziplib.vcproj to allow + tests with Visual Studio C++ Express 2005 + +2010-12-27 guidod <guidod@gmx.de> + * fix stat.c to check ZZIP_CASELESS instead of the deprecated + ZZIP_CASEINSENSITIVE. The latter is still recognized for + compatibility reasons and implicitly mapped to ZZIP_CASELESS. + * fixes the zziplib-Patches-3078188 which reported the bug. + +2010-12-27 guidod <guidod@gmx.de> + * apply patches by Peter Breitenlohner for better compatibility + with AIX host system. Also the Sun Studio compiler insists on + static inline functions or else assumes extern inline. + * also fixes zziplib-Patches-3011551 on the AIX problem. + +2010-12-27 guidod <guidod@gmx.de> + * add hints that the ext_io plugin handlers should be static. + +2010-05-09 guidod <guidod@gmx.de> + + * zzip/__fnmatch.h: add include <string.h> to make mingw32 happy. + Patches item #2995373 by Gregory Smith + +2010-05-08 guidod <guidod@gmx.de> + + * SDL/Makefile.am: fix generation of sdl-uninstalled.pc that was + not recognized during compilation. + +2010-04-05 guidod <guidod@gmx.de> + + * Makefile.am: fix "osc rm" and fix "test-sdl" if SDL was not found. + * configure.ac: SDL example builds on pkgconfig/sdl.pc which + + was introduced with SDL 1.2.11 - CentOs5 ships 1.2.10 which + does only have "sdl-config" and it made for a mismatch in + in the build configuration: sdl-devel yes, pkgconfig sdl no. + * zzip/zip.c (__zzip_parse_root_directory): move the check for + zzip_disk_entry_check_magic to be after the the check that + the seek-value is more than a header's size before the end. + (based on a segfault report by Tulipánt Gergely when the + new modulo_entries code is enabled (which is off by default)) + +2010-03-30 guidod <guidod@gmx.de> + + * zzip/Makefile.am: fixing symlinks for lib* - use only for Linux + Thanks to Ryan Schmidt (macports): + ... likes to install some symlinks that don't make sense on Mac OS X: + $ ls -l /opt/local/lib/*zzip*so* + lrwxr-xr-x /opt/local/lib/libzzip*.so.10 -> libzzip*.so.13 + lrwxr-xr-x /opt/local/lib/libzzip*.so.11 -> libzzip*.so.13 + lrwxr-xr-x /opt/local/lib/libzzip*.so.12 -> libzzip*.so.13 + Yes, the filenames literally contain an asterisk. + + * prepare 0.13.60 + +2010-03-29 guidod <guidod@gmx.de> + + * Makefile.am: change osc to new home:guidod:zziplib-13 + * configure.ac: update to autoconf 2.61 which does some things differently + * m4/ax_pax_tar.m4: bug report http://trac.macports.org/ticket/24227 + showed a problem on MacOsX where some "pax" tools where advertising + an "-O" option in their "--help" page but it did not work. Therefore + rewriting the macro to actually test some "-w -O" to create a tarfile. + +2010-03-26 guidod <guidod@gmx.de> + + * zzip/dir.c: and zzip/file.c - adding comments to the compat32 + functions such that they appear near their off_t variants. + Also added the ifdef-EOVERFLOW check that is needed on Win32. + +2010-03-25 guidod <guidod@gmx.de> + + * Makefile.mk: add "-I m4" and re-autoconf with newest autotools. + * zzip/zzip32.h: introducing compat32 functions that take "long" + arguments where the others use "off_t". Basically, there are + two calls per each off_t-function on all systems where + previously that had been only done for those 64on32 systems. + This scheme maximized binary compatibility - if an application + can not be compiled with _LARGEFILE_SOURCE then they can use + the compat32 variants to be always sure to do the right thing. + +2010-02-15 guidod <guidod@gmx.de> + + * zzip/Makefile.am: newest "install" does not like to install fetch.h + three times ("...not overwite... it just installed") + * Makefile.am: allow to build locally with "osc" (opensuse buildservice) + +2010-02-14 guidod <guidod@gmx.de> + + * zzip/Makefile.am: use install-*-hook instead of install-*-local + * docs/Makefile.am: PYTHONDONTWRITEBYTECODE=1 to ensure running + python with a read-only source code repository (dynamic workspaces) + NOTE: python -B was introduced with Python 2.6 (so use environment) + * zzip/plugin.c: missing "void" + again thanks to Peter Breitenlohner (tex-live tug org) + * test/Makefile.am: build-zips outside of source tree + * m4/ax_prefix_config_h.m4: reduce error to warning as suggested + * m4/ax_check_aligned_access_required.m4: merging with derived + macro zziplib-aligned-access.m4 by Peter Breitenlohner + + +2009-09-24 guidod <guidod@gmx.de> + * zziplib.spec: prepare 0.13.59 + * configure.ac: add --with-defines to allow compile-definitions + for easy,harden,allow_modulo_entries (also for documentation) + * zzip/zip.c: add ZZIP_EASY to disable the ZZIP_CORRECT_ROOTSEEK + feature + * zzip/zip.c (__zzip_parse_root_directory): add parenthesis to fix + ZZIP_ALLOW_MODULO_ENTRIES (as reported by Tulipánt Gergely) + * zzip/fetch.h: add MSVC defines for x86/x64 that allows direct access + +2009-08-23 guidod <guidod@gmx.de> + + * Makefile.mk: remove some old stuff related to the compilefarm + * zziplib.spec: prepare 0.13.58 + * add ports/symbian-S60/zziplib-symbian.zip (thanks to Rangel Reale) + * switch from CVS to SVN (!!!!) and update some docs/*.htm files + * zzip/mmapped.c (zzip_disk_mmap): compile error on win32-mingw [1771707] + +2009-08-16 guidod <guidod@gmx.de> + + * configure.ac: reorder ax_gcc_flags as the extra options were + disabled (do not know why) and add -Wstrict-aliasing to the set. + Then fix issues in source files (mostly signed-comparision warnings) + * zzip/file.c (zzip_file_open): ZZIP_CASELESS will include a + mapping of "\" into "/" to get away with windows-orientied + programs. The backslash however is only active for those + windows' binaries. Fixes an issue with non-msvc win32-builds. + +2009-08-04 guidod <guidod@gmx.de> + + * m4/ac_sys_largefile_sensitive.m4: update, fixes ticket:2825391 + * zzip/mmapped.h: zzip/memdisk.h: replace buflen argument + from "int" to "size_t" type for init from some mem area. + +2009-08-03 guidod <guidod@gmx.de> + + * zziplib.spec: prepare 0.13.57 + * bins/zziptest.c: redefine to win32-Sleep() when seen WINDOWS_H + which allows it to compile also with a gcc/mingw/msvcrt target + * bins/Makefile.am: ZZIP_LDFLAGS are not needed for *.exe targets + in fact they make for problems in crosscompiling without libtool + * zzip/fseeko.c: typo "fseeko" -> "fseek" made for a compile error + on systems that do not have fseeko like windows msvcrt + (reported by Josh Heidenreich) + +2009-07-03 guidod <guidod@gmx.de> + + * zzip/mmapped.c: insert zzip_disk_buffer and + * zzip/memdisk.c: zzip_mem_disk_buffer where both functions + will actually wrap an external buffer (e.g. mmapped from + another resource such as shared memory). + * zzip/mmapped.c and zzip/mmapped.h: uncovered a bug for the + MATCH_NOCASE handling and WRAPPED_BUFFER handling that is + now handled by explicit ->flags values. The actual flag + values are now exported to the header instead of just using + a simple "1". + * ideas for zzip_disk_buffer / zzip_mem_disk_buffer sprang from + a proposal by JP Dai [Goldleaf] who offerd very similar code. + +2009-06-27 guidod <guidod@gmx.de> + + * zziplib.spec: 0.13.56 - and make build.opensuse.org happy by + removing the %if/%endif sections. (it seems one buildserver + script understands it while the other don't - and effectivly + all variants fail if it is left in. Hopefully no other platforms + have problems with the additional buildrequires that are put here) + * zzip/mmapped.c (zzip_disk_new): malloc(sizof()) was errornously + using a pointer instead of ZZIP_DISK. Not part of libzzip but + of the extra library libzzipmmapped that is in-memory-only. + (problem reported and solution shown by JP Dai [Goldleaf]) + * configure.ac: disable search for python2.2 (gentoo bug 275247+174189) + +2009-06-22 guidod <guidod@gmx.de> + * zziplib.spec: 0.13.55 and integrate patches for build.opensuse.org + * zzip/zip.c (__zzip_parse_root_directory): rework parse_directory + to allow for ZZIP_ALLOW_MODULO_ENTRIES version as required for + some cases where more than 65535 entries are packed into a + non-ZIP64 archive. The modulo_entries variant is disabled by + default but the know for the problem space was put into code to + check for two more error conditions and report them in debug mode. + (problem space was described carefully by Tulipánt Gergely and + the provided patch was a good foundation for the ifdef code) + * configure.ac: use $can_build_shared from linker-config to allow + build on platforms that do not support a shared library concept + or where it is disabled (the commandline switch overrides it?) + (should fix the SF bug ID 2796485 reported by Giovanni Bechis) + * zzip/file.c: errornous usage of currentfp before setting it to + the new fp value in zzip_seek(). In the good case it would seek + on the wrong file and in the bad case it goes off on sigbus/NPE. + The problem occurs only if two+ zips are accessed simultanously. + (problem reported and patch kindly provided by Evgeniy Muhin) + * docs/Makefile.am: fixup for newer xmlto may be to generate + a subdirectory "man3" inside of our output directory "man3" + and gard against usage of man3/man3 for the tarball unpacking. + (problem reported by Liu Qi [debian package maintainer]) + * zzip/__hints.h: add else-part for ZZIP_GNUC_PACKED + (makes for problems with MSVC as reported by Denny Kunker) + +2009-05-24 guidod <guidod@gmx.de> + * zzip/fetch.c - remove SET/GET fetch definitions that already + exist in zzip/fetch.h where they have been corrected lately. + * docs/Makefile.am - change from install-sf via shell.sf.net to + upload-sourceforge via web.sf.net - and alias to "www" shorthand + * docs/referentials.htm - fix typo. + * 0.13.54 + +2009-05-23 guidod <guidod@gmx.de> + * SDL/Makefile.am - remove dependency on zzip-config (and sdl-config) + which do not exist any since quite a time - instead use pkg-config + > Thanks to Michael Sterret for bringing it up + * SDL/SDL_rwops_zzcat.c: the SDL_rwops example was fixed, as the + nmemb/size of the sdl-read call were swapped over. The testsdl + self check (based on zzcatsdl) works OK. + * SDL/Makefile.am - the targe installation paths for the example + was fixed to include/SDL_rwops_zzip - additionally there is now + an SDL_rwops_zzip.pc pkgconfig script that will refer to the new + location (it had been previously installed in include/SDL, ouch). + * Note that the old zzip-sdl pkgconfig-files are gone now. Given that the + example was not quite working, it is improbable that anyone had + been using them in real code, so there's nothing breaking here. + * create a new package SDL_rwops-devel in zziplib.spec that will catch + the example code, SDL_rwops_zzip includes and SDL_rwops_zzip pkgconfig + * append "make check" and "make test-sdl" to zziplib.spec for minimal + pre-installation check. + * Makefile.am: fix zzip-postinstall + * zziplib.spec: specifiy %version for the Provides:-clauses + * configure.ac: do not let autoconfigured LDFLAGS/LIBS bleed into zziplib.pc + * zip.c: ensure that the zzip64_trailer entries is being used and that the + parse_root_directory function honours the full 64bit in the "entries" counter + (rejecting the patch from Tulipánt Gergely which would allow to get away with + non-standard zip archives that do use a normal zzip_trailer with a 16bit entries + counter that happens to store only the modulo value of the real entries in the + archive - zippers should fail beyond 65535 entries or switch to the ZIP64 format). + * docs/referentials.htm - include reference to http://www.ogre3d.org/ + * zzip/fseeko.c: check some more return values from fseeko/fread calls. + * 0.13.53 + +2009-05-22 guidod <guidod@gmx.de> + * docs/Makefile.am: break a dual target into two lines as + suggested by ticket:2405440 + * m4/ax_cflags_no_writable_strings.m4 update with sed-call + suggested by ticket:2155649 + * m4/ax_check_aligned_access_required.m4 update for the cross_compiling + case with libpcap-list of host_cpu targets thare require aligned access + suggested by ticket:2479788 + * introduce ax_pax_tar.m4 to use *.tar format for manpages.tar (instead of .ar) + * 0.13.52 + +2009-05-21 guidod <guidod@gmx.de> + + * docs/Makefile.am: make install-docs install-man3 rules so that + a failing "ar x" (on OpenBSD/vax) will not kill the whole + configure / make / make install cycle. However it simply + means that there will be no manpages on such platforms. + May be OpenBSD/vax has a "gar" (gnu ar) installed somewhere? + * closes Patches item #2716806, was opened at 2009-03-27 13:01 + * 0.13.51 + +2009-05-21 guidod <guidod@gmx.de> + * zzip/fetch.h: ensure that either direct-bswap or direc-deref is only used + on platforms that do not require aligned memory access. The + latest report from Sylvain Beucler has shown an error a MIPS + platform (named http://www.freedink.org/ running on PSP). + * zzip/fetch.h: replace _zzip_attribute(const) with defines from zzip/__hints.h + * zzip/__hints.h: introduced ZZIP_GNUC_PACKED for __attribute__((packed)) + * zzip/format.h: replace _zzip_attribute(packed) with defines from zzip/__hints.h + * zzip/conf.h: remove _zzip_attribute - not needed anymore. + +2008-12-27 guidod <guidod@pc3> + * ax_create_pkgconfig_info needs a definition for datarootdir (introduced + in latest autoconf/automake making for an error in ogre3d configuration + as reported by Ignaz Forster) + * release 0.13.50 + +2008-12-24 guidod <guidod@pc3> + * add the dir-zzip-* to the cvs repo (as used on some webs) + * move "make rpm" to *.am (instead of *.mk) + * amd64 should be in libdir=$prefix/lib64 (in the spec file) + +2008-11-24 guidod <guidod@pc3> + * BuildRequires: python (for %package doc) + + +2008-03-22 guidod <guidod@pc3> + + * zzip/fetch.h: honor ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED for the Linux bswap + optimization. See also 443880@bugs.debian "SIGBUS on Sparc". + +2008-03-03 guidod <guidod@pc3> + + * TODO: update to recent problems. Need to check my mail stack next time. + +2008-03-02 guidod <guidod@pc3> + + * zzip/info.c: reverted. + * also: note that the Makefiles have been update to the newest autotools. + The project itself has been imported to an Eclipse based CDT project. + +2007-03-19 + * enforce indent by automatic indentic-check + +2007-03-17 + * http://www.securitylab.ru/forum/read.php?FID=21&TID=40858&MID=326187 + zziplib vulnerability due to usage of strcpy + * add indent-check for enforcing some source code style. + +2007-02-01 + * remake manpages.ar / htmpages.ar - redistribute zziplib-manpages.ar + instead while the rebuild mechanics become a lot simpler + * unless --maintainer-mode, make mans / install-mans part of the default + +2007-01-31 + * applying patches from Mike Frysinger + * consider making the manpage install target part of the default + `make install` rather than a sep install-man3 target ? (from Mike) + * Michael Sterret reports, that the SDL/* example requires zzip-config + instead of the pkgconfig stuff - actually, the whole part should be + give a makeover as newer SDL does install its own sdl.pc which makes + the current local generation of zzip-sdl-config.pc a real mess. + +2006-09-27 + * adding docs/zip-php.htm integrating Chris Branch's mail into the docs + * appending docs/changes.htm rule from ./ChangeLog + +2006-09-26 + * adding docs/notes.htm - to register some old dicussions for later + reference. Let's see how that fills up. + +2006-09-21 + * last doc/*.py updates + * last doc/mksite.* updates + * last doc/body.htm updates - including new zzipmmapped.html docu + * "make install-sf" will copy the doctree directly to sourceforge + +2006-09-18 + * docs/makedocs.py docs/zzipdoc/*.py creates new docs/zziplib-man3.tar.gz + plus zziplib.html zzipmmapped.html zzipfseeko.html + * that will be the only to be used in the future but it is not complete + +2006-08-18 + * updating msvc8 project files + * adding zlib.dll to cvs + * zzip/memdisk.c:183 overrides for off64_t will not work with off32_t !!! + * headers for mktime should return time_t - do we have the header ??? + +2006-08-17 + * A report by Tuilipant Gergely had shown an "unaligned access" + error on an alpha machine. So, I have added macro to test for + the condition of aligned access but the alpha platoform seems + to be okay. Further reports are required. + * Mark README.SDL to be explicitly outdated (it's 16. Dec. 2002) + +2008-08-14 + * Yvan Phelizot reports a problem in zzip/mmapped.c + * Malcom MacLeod had spurious problems inside a C++ project, + so let's update all heraders with explicit 'extern "C"' linkage. + +2006-08-08 + * rephrase build system, automated tests, some doc parts + +2006-04-28 + * bsd/mac needs sys/types.h for size_t + +2005-12-11 + * there have been reports about multithreading problems + * one source of problems: access to the dir->cache members. + fixed by using an explicit semaphore variable, otherwise + just allocate/deallocate the buffer / filehandle + * second source of problems: the zip file is opened _and_ read + with only one filehandle for multiple threads that + share the same "dir" handle. Look for "->currentfp". + * that is not fixed away - while access to the cache variables + can continue in the case of a "locked" state that is not + possible for open/reads. In the "locked" case the thread + must be blocked but that is a system-specific call. + * there are two ways to fix it - (a) push down the sysfile to + each zzip_file by "dup(2)"licating the sysfile handle. + However zzip looses a feature that was helping a lot on + system with a low number of sysfile hands (e.g. dos and + some embedded operating systems that I did work with). + and (b) provide an indirect ->lock() call that can be + filled by the caller application upon zzip invokation, + perhaps add it to the io-plugin structure. Well (c) is + it possible to support both styles? Dynamically? + +2005-12-10 + * testing on sourceforge compilefarm - including "make check" + * there was an error on bsd'ish systems (implicit 64on32) + which was caused by archaic CORRECT_ROOTSEEK code + being still present. Remove it? + +2005-12-09 + * testing with Microsoft Visual Studio 2005 (msvc8) Express Edition + * fixing some compilation problems related to zip64 support in win32 + +2005-12-08 + * cut acinclude.m4 into seperated aclocal macros in m4/ subdirectory + +2005-10-14 + * testing on sourceforge compilefarm, cleaning away any compiler warnings + i386-debian2.2 i386-freebsd4.8 + amd64-fedora3 alpha-debian3.0 + sparc-solaris8 powerpc-macos10.2 + * note, the build system has some quirks but not yet renovated to the + newest autoconf/automake stuff anyway - TBD before final release + +2005-10-13 + * MSVC7 knows the following __declspec attributes: + align(#), allocate("seg"), deprecated, dllexport, dllimport, + naked{for asm}, noinline, noreturn, nothrow, novtable, + property{MngC++}, selectany{common}, thread{tls}, uuid("name") + * introduce zzip__new__ for a restrict'ed return item + * introduce zzip_byte_t to help silence down compiler warnings + about signedness mismatch in assigning data buffer variables. + Especially the zlib data_in happens to be of unsigned char type. + * note that zzip/format.h does now use zzip_byte_t for layout definition + +2005-02-17 + * adding that _GNU_SOURCE on __linux__ to get the strndup prototype + * cleaning a few warning messages on different platforms as well + as a bug for 64bit platforms + * updating docs/mksite.sh and adding docs/mksite.pl and going to + let VERSION be pasted directly instead of a makefile snippet + * adding docs/memdisk.htm documentation to the series which is + currently quite shallow. + * note: no tests for actual zip64 support are made, neither for a + large central directory (more than 64K files) nor for large + files (more than 2GB). This is all theoretic but I am quite + confident that it will work. + +2005-02-16 + * change zzip/zip disk_trailer implementation + * we do not anymore pass a copy of the file block around + * we do use a local helper structure now with off_t fields + * the parse_root_directory is now using off_t for all computatations + * make check succeeds - beware, this is a new implementation + * RANT: glibc bastards make for additinal warning messages, the fseeko + prototype is not exported by default, but as soon as we add some + define to make it available, some other prototypes are disabled, + including one of the most widespread: strndup(). The documentation + even says we have to say GNU to get prototype - if you have ever heard + of unix to diverge into something not quite but be alike, here it is, + what compiles on most platforms gives a warning on linux even that it + works fine afterwards because the libc does export all we need and + autoconf does find it - it is just not prototyped and that's all. + +2005-02-15 + * adding zzip/memdisk.* as cache variant for libzzipfseeko + * add macro support for zip64 extensions + * extend trailer routines with zip64 detection (and return 0) + * add memdisk bins + +2005-01-04 + * remember TODO multithreading tests and hardening the code. + http://www.idefense.com/application/poi/display?id=153&type=vulnerabilities + +2004-12-27 + * updating to latest autoconf/automake/libtool stuff in Suse92 + * required a rewrite of ax_enable_builddir.m4 in ac-archive + * adding two macros to silence down bogus depracation warnings + from the latest gcc 3.3.5 + +2004-11-27 + * harveyandsu:yahoo:com reported an api mismatch for SDL rwops + usage and the implementation in the SDL_rwops_zzip example. + * + +2004-05-11 + * documenting zzip-cryptoid handling + * update mksite.sh + +2004-05-09 + * documenting zzipmmapped and zzipfseeko parser libraries + +2004-05-08 + * remove bogus zzip_file_open_ext_io from zzip.h + * change to use mksite.sh for documentation builds + +2004-03-08 + * add link in docs/history.htm to the new appnote.txt whitepaper + on zip file format specification. + +2004-02-19 + * a test run on solaris did show that fetch.* needs to be linked + to the new lib*.la stuff - to convert endianess-dependent + values from zip to main memory + * there seems to be an automake problem with hpux10 that I can not + yet define on what grounds it is - to get away with it I am + not defining automake 1.7 as the version to be used, plus + autoconf 2.57 - these are pretty new. + +2004-01-24 + * zzip/fseeko.c and bins/zzip.c had some issued with non-C99 compilers + which do not like variable declarations in the middle of a block + +2004-01-16 + * zzip_rewind again - the deflateReset does not reset the + input buffer variables (oops) so we have to do it + explicitly. Here we adopt to set crestlen to full + csize and the current z-buffer fillstate avail_in + to null to trigger a new read() on next zzip_read. + * the zlib headers do not tell whether next_in/avail_in + is used in deflateReset as is done in deflateInit. + A question to zlib@gzip.org brought no answer (as + is always the case) and after some thinking I did + decide to reset avail_in *after* the zReset call. + * based on this decision, I have made up a patch and I was + sending it over to zlib@gzip.org. Same consequence + again, the message is bluntly ignored (while there is + traffic on zlib devel mailinglist). There seems to be + a major problem about it, either a technical problem + (mail-adress disfunctional) or a social problem (no + one cares or perhaps some minor racism). + +2003-12-29 + * added libzzipfseeko.la with another simplified interface + * rename the other one to libzzipmmapped.la + * fix bugs for decompression on the latter as well + it seems the one has to use inflateInit2 (..., -MAX_WBITS) + * added bins/unzzipshow for an example binary + * added "--help" and "--version" to all bins examples + +2003-12-24 + * added libzzipmmap.la with a simplified interface to zip archives + * added bins unzzipdir and unzzipcat to show usage of libzzipmmap.la + * introduce zzip/types.h to allow easier inclusion to zzip/mmapped.* + +2003-12-22 + * add AC_C_BIGENDIAN and + * move out ZZIP_GET to zzip/fetch.h where we also specify access + wrappers to items in the zzip/format.h structures, portably. + * add byteswap.h ac_check and put a new file autoconf.h to carry + compiletime overrides for the autoconf definitions. + * start changing over to use zzip/fetch.h definitions everywhere + thereby replacing original ZZIP_GET16/32 usages completely. + This is localized to zzip/zip.c + * rename struct zzip_root_dirent to struct zzip_disk_entry but + retain a compatibility declaration. + * introduce zzip_version_t and zzip_dostime_t along with an optional + ZZIP_NEED_PACKED def that helps with weird compiler struct packing + * struct zzip_file_trailer did not use the char[x] variant, it does now + * place even more zzip/fetch.h declarations + * place even more defs into zzip/format.h + * noting CVS area on webpages + +2003-12-21 + * Nigel Stewart hints on some MSVC 6 issues, thanks. + +2003-12-20 + * implant *Reset instead of Deinit/Init in zzip_rewind - the latter + is supposed to make for a memory leak (see problem report). + +2003-12-10 + * add zzip_rewind fix by glenn = Glenn Maynard (www.stepmania.com) + * fix dirsep_casecmp buglet noted by glenn + * glenn did ask for zzip_fstat, and here it is. + * but glenn's file_dup is not as easy and skipped here. + * otherwise, glenn noted that zziplib is not fully ready for multithreading, + the reason seems to be mostly in the reshared 32k buffer where the + access is not synchronized completely :-( ... effectivly, in MT + all ZZIP_FILE*s need to have a dedicated ZZIP_DIR*buffer. + * update make-doc.py with newest version + +2003-08-18 + * changing license to dual MPL / LGPL + * bumping version code 12.83 = 13.23 which are actually the very + same inside the code + * remove a few compatibility headers at install time. + * add install-exec-hook to add ln -s aliases for sharedlibs + they are being tried again in .spec but that does not + matter as long as it is "|| true" + * adapt all source to carry the MPL alternative license + instead of the old cruft. + * remove staticlinking.txt - it should be covered by copying.htm now + * remove "compats" disthook as well as the complete subdirectory + i.e. rm -r "zziplib/" at top directory (actually, I store it + in a distant place for now.) + * remove _htmpages.ar and _manpages.are from dist tarball + * add toplevel COPYING.LIB + * adapt README and TODO + * remove ac_output(zziplib and bins/zzip-config) + * remove bins/zzip-config.in + * adapt m4 macro and call zzip-config to be archaic + * remove maintainer-mode for "test.zip" + * turn zzip_plugin_io_t into a union reference, the old struct is + still of the same name but a member in there called "fd" + the typedef is no a "union _zzip_plugin_io" instead. + * the member "use_mmap" is renamed to "sys" - we add a #define + in plugin.h to let some software compile with all versions + * in zzip/zip.c, try now with making maplen and pagesize of type + zzip_ssize_t - as it was newly introduce it might help and + perhaps be a little conservative in execution. Before that, + we did use size_t and it was provoking warnings like + comparing/computing signed+unsigned pairs of values. + * add "type" and "write" members to zzip_plugin_io, keep it + backward compatible as much as possible. + * add _zzip_write to zzip/conf.h + * remove ZZIP_WRAPWRAP code in plugin.c + * remove --with-wrapwrap + * introduce a #define _zzip_plugin_io_handlers and + typedefs zzip_plugin_io_handlers and zzip_plugin_io_handlers_t + * oops toplevel PHONY does not work, an automake restriction + * oops, "cat body.htm" should be "cat $(srcdir)/body.htm" + * adding manpages.ar again, just to be sure + +2003-08-14 + * remove _not_implemend macro definitions for shallow-write api + from header zzip.h + * introduce symbol _ZZIP_WRITE_SOURCE that all files should + carry that want to have the declarations of the + shallow-write api + * use that symbol for zzip/write.c and bins/zzip.c + * adding docs/64on32.htm + +2003-08-14 + * for the shallow-write api to compile on win32, we need to + test for direct.h which only exists on win'sh system + or so we assume + * add bins/unzzip + * add bins/zzip + * ooops, zzip_strerror_of should check dir != 0 + +2003-08-13 + * complete zip-write API - no actual implementation so far + * tested shallow-write implementation on solaris+linux+win32 + * and now, call it zzip-12 always + +2003-08-12 + * `make docs` does not always work, so we add `make docu` now + * update make-doc.py + * fix call for make-doc.py + * fix zzip_get16 bad refer that gets detected by make-doc.py + + +2003-08-07 + * implement zzip/write to a degree that it forwards calls to real + files and directories in the system. No zip archives here, + but the accession API has been setup so that applications + can start to pick it up even for versions of zziplib that + have been compiled without zip archive support. + +2003-08-07 + * add doc lines in zzip/zzip.h + * add write-defines including flag-marker ZZIP_NO_CREAT + * add file write.c with empty definitions for write-support + * add the make-doc.py script in its last version - and make its output + the default master files for both html and docbook + * remove all other doc-maker scripts but make-doc.pl and make-doc.py + plus the make-dbk.pl of course + * twist configure.ac to set PYTHON instead of PHP + +2003-08-03 + * make compatibility-headers to issue a warning upon include + +2003-07-31 + * fix a segfault with corrupted central directory - just some checks + for field boundaries + * add a hack to support the fixup-rootdir thing with some simple(r) code + that abuses a few fields in the trailer-structure + * cvs checkout savannah.gnu.org:config into ../savannah.config and, + * add a rule `make configsub` in Makefile.mk to update the two files + uses/config.sub and uses/config.guess to the latest versions. + +2003-07-30 + * creating a 0.12.82 out of the source for 0.10.82 and make up a rpm + spec which does alias the .so files for these generations + +2003-07-29 + * the include of _LARGEFILE_SOURCE to do ZZIP_LARGEFILE_RENAME is + actually a bad idea - the respective symbol does not provoke + 64bit off_t on newer platforms. Only _LARGE_FILES seems to + be correct here for older aix platform to get them define + off_t = 64bit where others are using _FILE_OFFSET_BITS=64 now. + * after changes to README, remember to package updated test.zip !! + otherwise `make check` will fail. + * modify _msvc.sed to include "define ssize_t int" + * use ZZIP_EXPORTS instead of ZZIP_DLL for DLL export, that's the + automatic way of MSVC 6 saying that "zzip" is a DLL project. + * create new msvc6/zzip.dsp and delete msvc6/zziplib_DLL.dsp + * all examples shall import from zzip.dll by linking with zzip.lib + whereas that other zziplib.lib is just the static library + * do a looong and detailed information in README.MSVC6 + * create a rule to pack the *.dll,*.exe,*lib files into a zip + +2003-07-28 + * doc bug in zzip-zip reported by j.scrott.frank + * remind me: unzip from memory seems to be more of a task lately... + * forgot to modify RELASEINFO in rpm for zzip64 variant + * also do not just use -D_LARGEFILE_SOURCE, it does not have the + desired effect on all systems. Instead invent a new name + -D_ZZIP_LARGEFILE to make it happen magically. + * invent a rule to create zziplib64.pc from zziplib.pc for the + renamed libzzip.so -> libzzip64.so + * invent a rule to create zziplib64.la from zziplib.la for the + renamed libzzip.so -> libzzip64.so + * do also rename default libzzip.so to libzzip32.so and then create + a symlink to it under the old name libzzip.so + * create zziplib32.pc and zziplib32.la files accordingly. Following + an application may choose explicitly between 32 or 64bit off_t + version. This allows us to claim now that the default libzzip.so + library may be either of them and not anymore strict 32bit off_t + * aaahm, note that all of these account for rules in the linux rpm spec! + other system do not get this packaging support from vanilla tarfile + * well, better make it lib01 instead of lib0.10 for the rpm name + * already roll out visualc7.zip and msvc6 files in subdirectories, + do not ship them as .zip files + * already adapt msvc6 .dsp files but not yet tested + * rename main "rpm" target into "rpm2" to get rid of the warning message + * use (cd zzip64 && make install) instead of (... make install-ltLIBRARIES) + since otherwise we do not get any .pc file installed (oops) + * while modifying *.la into *64.la, take care to fixup reference to the + "old archive" *.a as well making it *64.a - same for *32.la file. + * some file.c reports there was not previous declaration of some of + its functions, but _only_ in 64bit compile step. + Reason: looks like a gcc 3.2.2 bug, no fix here. + * convert a few "ln -s" into "ln -s -f" in "make install" parts + * update README to point out staticlink model + in a separated LICENSE section. + +2003-07-28 + * add three extra gcc options: -Wpointer-arith, -Wsign-compare, and + -Wmissing-declarations which will help about portability to + platforms where that is enabled by default in -Wall + * sign-compare fix in, zzobfuscated (zzip_size_t -> zzip_ssize_t), + * make 5 functions in zzipwrap/wrap.c global=>to=>static + * add pre-delcare headers for 2 functions in zzip/zip.c + __zzip_find_disk_trailer(), __zzip_parse_root_directory() + * rewording of "ends/tail" in find-disk-trailer which does also find + a little bug (ends-1 or not) in there, It should not have shown any + practical problem so far, also corrected by anotgher little bug + in there (ends-tail > sizeof or ends-tail >= sizeof) + * adding a parts of a patch from Martin Schitter to harden zziplib + for corrupted zip files. + * remove a few duplicates in Makefile.mk, still need to keep "rpm" + * add declaration for zzip_dir_alloc_ext_io into zzip/lib.h + +2003-07-27 + * redefine size_t maplen -> off_t maplen and for each of the calls to + mmap()/munmap()/read()/getpagesize() we cast to size_t - this might + get us rid of a few warnings about signed/unsigned comparisons. + * introduce AC_TYPE_SIZE_T and use the prefixed variant _zzip_size_t + within plugin.h for io->read() calls. That makes for a little + bit of portability - it seems some platforms (dot-net f.e.) + do not `typedef unsigned int size_t;`, perhaps because int is 16bit + and a 32bit or even 64bit entitity is needed. + * now we do not need to AC_COMPILE_CHECK_SIZEOF(size_t) anymore, perhaps + even stand io-wrap is not needed anymore. Let's see. + * both changes need update of zzip/conf.h for _zzip_size_t plus + - plugin.h for io->read(,,size_t) + - zzip.h for zzip_file_read (,,size_t) + - zzip.h for zzip_read(,,size_t) + - zzip.h for zzip_fread(,size_t,size_t,) + - zzip.h for zzip_seek(,off_t,) + - zzip.h for zzip_tell(,off_t,) + - file.h int => size_t for zzip_file's restlen crestlen usize csize + * the io->seeks(,off_t,) has not been respected so far sometimes. + and like lseek(2), we define the returntype of zzip_seek as off_t + * introduce zzip_ssize_t as well, and modify + - zzip.h for zzip_read and zzip_fread and zzip_file_read + - plugin.h for io->read() return type + * dot-net bug in aligned4() - sizeof(long) < sizeof(void*) !! + better use off_t in the hope that it does fix it + * tested on ia32-linux, alpha64-linux, sparc32-solaris + * ooops, we need to update io-plugin examples and documentation as well, + since we define a custom _read() routine righ there. + +2003-07-26 + * updating to AX_SPEC_DEFAULTS macro + * zzshowme does not work with no libzzip installed in the system + * add automake option dist-bzip2 + * use tar.bz2 for rpm build + * add dist-bzip for the latter + * use zziplib-lib0.10 package which provides zziplib and libzzip0 + * forgot to add *.la files into the rpm devel package + * AC_SET_RELEASEINFO_VERSIONINFO => AX_SET_VERSION_INFO + * adjust all RELEASEINFO -> RELEASE_INFO accordingly + * and choose 0.10.82.pre1 as a vesion number for testing + which is possible now as the new macro does it right. + * forgot override of default_includes in test/*.am + * somehow ax_prefix gets the wrong input, i.e. _config.h instead of config.h + so we make that one explicit now + +2003-05-13 + * the off64_t mode renaming for 64on32 was done incorrectly and + it lead to problems on solaris8 - fix it. + * fixup `make check` to work on subdir build + +2003-05-11 + * adapt README file to clarify LICENSE details as suggested by + a discussion with ACE/TAO developers that want to use the + library for some compressed xml archives. + * fix a few zzip_char_t bugs that got visible in MSVC mode as + reported by Olge Ryabukha + * kill sfnet strand of the rpm build, the docs are installed + into the share/groups part and the omf file points to that + place. The index.html file is the one at sourceforge while + the other one is the entry point of the local documentation. + +2003-04-21 + * quite a few updates are need to --enable-builddir by default + * watch out: subdir build is the default now! + +2003-04-20 + * pick up AX_ENABLE_BUILDDIR + * throw out ac_subst CONFIG_ARGS + * use AX_SPEC_PACKAGE_VERSION + +2003-04-20 + * memory leak in zzip/file.c - adding free(dir->realname) zzip/zip.c + in function zzip_dir_close called via zzip_file_close + (bug reported by Olge Ryabukha, thanks!) + * "/" is hardcoded for finding subpaths but on windows that could be + a backslash as well. That should be handled better, we add some + alternative implementations for dirsep_strrchr and dirsep_casecmp + but the default is OFF!! even on WINDOWS !! + * thereby seen another problem: we did deliberatly use strcasecmp but + this symbol is not available on all unix systems - the manual + says its a BSD4.3 addition. Some other systems call it strcmpi + or stricmp instead, or they do not have it at all. Here we add + a configure rule to check for that symbol, and when we do not + have it then we _enable_ dirsep_casecmp automatically. + +2003-01-16 + * change extension of intermediate docbookfiles to ".xml" + * throw out attempts to compile docs with php + +2003-01-15 + * lots of doc updates in between. (forgot to document them). + * a zzip-config update, and installing an aclocal macro now. + +2003-01-06 + * defattr(root,root) !! - why that had been forgotten? hmmm... + * allowing for --disable-debug to clean cflags from -g entries + but it has not effect on callframe generation... actually. + +2003-01-05 + * we need to stop the manpages.ar bloat - now! + +2003-01-05 + * add largefile tests in configure.ac + * add largefile detection in zzip/conf.h + * add renamings for zzip_telldir/seekdir in zzip/zzip.h + * add extra exports in zzip/dir.c to have both 32bit and 64bit names exported + i.e. zzip_telldir _and_ zzip_telldir64 + * add renamings in zzip/plugin.h to ensure that 64bit-off_t-compiled zziplib + is not given io-callbacks being from another program that is actually + compiled as 32bit-off_t and where therefore arguments do not match. + * detected a dubious export of "aligned4()" - rename this export now. + * also rename everything having "_io" in the name - just to guard ourselves + from the case where two -lzzip are in the libpath and one is + compiled 64bit-off_t while the other is not. + * rename the younger function s/zzip_open_shared/zzip_open_shared_io/ + * make up functions for zzip_open_ext_io and zzip_opendir_ext_io for the + case of 32/64bit dual systems where lib is compiled in largefile mode. + Let the call succeed unless an "io" structure was given - return + the EOVERFLOW errno as specified in the large.file WG documents. + * make all parallel defines for 32/64 bit dual off_t dependent on + defined EOVERFLOW and defined PIC - i.e. only for dynamic linkage. + * adding LARGEFILE_CFLAGS into zziplib.pc and bins/zzip-config.in + * NOTE: the default for --with-largefile is still OFF !! + * NOTE: our zzip_readdir is not depenent on off_t size + * adding -64 into the --release info for the sharedlibrary build + it should have been a --variant but such does not exist so far + in libtool, sorry. + * extract AC_SYS_LARGEFILE_SENSITIVE and put it into an extra ac-macro + * clean zzip/file.h from compatibility-install as zzip-file.h + the structure in there contains zzip_off_t items and they + should be internal always anyway - so disallow access for + old programs now just to be sure. + * adding zzip64 compilation into zziplib.spec - an rpm package will now + install both 32bit off_t and 64bit off_t variants of the sharedlib + * note: we do not copy 64bit zzcat into the rpm, perhaps we should? + +2002-12-31 + * add make check-sfx + * add zzipself.c and zzipsetstub.c for the sfx test + * zzip_file_open takes o_modes flags, clarify in zzip.h + +2002-12-27 + * adding scrollkeeper omf file generation in docs/ + * adding omf file installation in docs/make-install-doc + * replace %post-doc message in zziplib.spec with scrollkeeper-update call. + * need *.pc *.omf in CLEANFILES now + * mingw32 crossgcc tests for win32 dirent emulation - did need some fixing + +2002-12-23 + * adding generation/installation of pkgconfig files + * making SDL a build-requirement for rpm packaging + +2002-12-22 + * add compatibility subdirectory "zziplib" + * zzipback.sed to create zziplib/* files from current release files + * include into distribution tarball + * IMPORTANT: flashback - 12.24 is now called 10.74 - + the old source line will cease to exist, only the compatibility + directory will survive a while - that should put some pressure + on developers to update to the new source tree. And it saves me + some work to keep two trees in sync. + +2002-12-20 + * fix some problems of make-doc.pl with the current project + * make a standard inlude info referring to zziplib.h as well + * unpack htmpages.ar on SFNET and register it on the frontpage + * dont forget to modify includes of internal headers + * ... + * fixed an annoying bug in make-doc.pl + * include htmpages.ar into the tarball + +2002-12-19 Guido Drhaeim <guidod@gmx.de> + * completed new directory structure - the library is called 0.12.22 as + to match 0.10.72, it's the same C source in its content + * install-headers modified - the new structure is now compatible both + as a shared libary (binary compatible) and for the include headers + too - source compatible not only for function names but also for + the #include lines + * 0.12.23 fixes a bug in make doc: the xmlto html was never done. + * and we implant make-doc.pl which was founded on the base of the local + zzip-doc.pl but has since gone a lot further. It's currently just + a third variant but it is now used as the primary master default. + +2002-12-18 Guido Draheim <guidod@gmx.de> + * man page update for zzip_open_shared (it turns out to be a good name). + * let frontpage point to http://www.gzip.org/zlib for primary zlib site. + +2002-12-17 Guido Draheim <guidod@gmx.de> + * introduce zzip_open_file that may have an extra argument of a factory + file to share the zzip internal directory if that is possible. + * introduce zzip_freopen to take an extra argument. The supplied handle + is freed unless of course one puts ZZIP_FACTORY into o_modes so + that it becomes a wrapper around zzip_open_file + * the zzip_open_file, in that case, is the old zzip_open_ext_io call + but extended with checking the factory stream for a matching + basename. + * while being there: introduce ZZIP_ALLOWREAL o_mode that will make it + that a real file is open/read/close with the standard posixish + routines. This is most useful when having an obfuscated zip + file around but during development one wants to sometimes check + with a real file - so the call mode is something in the middle + of ZZIP_ALLOWREAL - ZZIP_PREFERZIP|ZZIP_ALLOWREAL - ZZIP_ONLYZIP + where the middle is for "yet another file not yet included", + hmm, perhaps a cheat file? ;-)=) + * cleaning rwops example: fix the mode check, it's not needful to start + with "r" to be a readfile mode, it may be somewhere in between. + * introduced __zzip_dir_parse as a cut off from zzip_dir_fdopen_ext_io, + but it did turn out to be not necessary, so it is made static in + the end. Still, it works as documenting the control flow better. + +2002-12-17 Guido Draheim <guidod@gmx.de> + * win32 mmap removing extra braces + * win32 dirent implementation added - new file __dirent.h + and modified zzip-dir.c + * a couple of arg[n] -> argv[argn] cleanups. + * a missing argc > 1 check added. + * all changes due tests / bug reports by Thomas-dot-Eder-at-nmi-AT + +2002-12-16 Guido Draheim <guidod@gmx.de> + * the infozip `zip` tool puts out messages per default on some machines + fix by adding >/dev/null in some places of Makefile.am + * the hpux10.20 platform has sys/mman.h but no MAP_FAILED + the `man mmap` says it returnes "-1" as done on all other unix + compatible platforms, so we add a default define ((void*)(-1)) + * update TODO file with some hints on test runs. + * add --with-zlib configure call to make it easier to specify a path + * make zlib error messages to point to this configure option. + * beautify error output on all other options as well. + * create `make brute` to make a bruteforce test + * solaris8 make has a problem with $< ... change sometimes into $? + * freebsd/darwin have 64bit off_t by default - and that reveals a problem + in the zzip_telldir/zzip_seekdir code. Let's change the code to make + it return/receive a byte-offset of "dir->hdr" to "dir->hdr0". + This makes printing of those values also more intelligible (if ever). + * ia64-linux reveals a problem in "default_io" since size_t is 64bit. + We modify --with-wrapwrap to autodetect this case. This is okay + since zip-files can not get bigger than 32bit offsets anyway. + +2002-12-16 Guido Draheim <guidod@gmx.de> + * merging corrected README.SDL and __hints.h + courtesy of Thomas-dot-Eder-at-nmi-AT + * update CFLAGS ac-macros to the new generation as shipped with + latest ac-archive-0.5.39 (did upload just yesterday...) + +2002-12-14 Guido Draheim <guidod@gmx.de> + * many hours of debugging - I don't remember which flaw came in through + the latest changes or which others were there before *sigh* + * e.g. the error-code mappings were refined on linux errno codes + * fix "caseless" bugs reported by Thomas-dot-Eder-at-nmi-AT + * fix MSVC related flaw when taking a casted value as an lvalue + * replace AC_CREATE_PREFIX_CONFIG_H with new style AX_PREFIX_CONFIG_H + * invent zzip-msvc.sed to turn config.h.in into zzip-msvc.in and + finalize a fresh zzip-msvc.h via AX_PREFIX_CONFIG_H + +2002-12-13 Guido Draheim <guidod@gmx.de> + * shown by Mike Nordell tamlin-at-algonet-SE we can support win32 mmap + * modify configure.ac : if have:winbase.h then auto -enable-mmap + * refactor mmap'ing - it goes into __mmap.h and uses the io->use_mmap value + and that include file contains both posix and win32 mmap variants + * rewrite pagesize/mapoff calculations - this should be faster in itself + and also easier to maintain in the future for being more obvious. + * rewrite read/write defines and wrapwrap's. The zzip-conf.h does now + contain defines for _zzip_read/_zzip_lseek - and it should us get + rid of the nasty win32 problems with redefining _read/read + * refactor DBG defines - put them into __debug.h - oops, xbuf() was + an exported symbol, better be not. Use only newer NOTE/WARN macros! + * implant __hints.h include - that's taken from another project but it + is so damn useful ;-) + +2002-12-12 Guido Draheim <guidod@gmx.de> + * modifizied zzip-zip.c to include a sanity check on getpagesize () + for mmap () functionality and ZZIP_BUFSIZ (the default is good). + * modify configure.ac : const char strings + * modify configure.ac : strict prototypes + * modify configure.ac : all warnings + * ... and so it reveals something missed along ;-) + +2002-08-27 Guido Draheim <guidod@gmx.de> + * modified zzip-stdint.h along the example patch for FreeBSD done + by wjpalentstijn at sourceforge in projet uwadv. + +2002-07-24 Guido Draheim <guidod@gmx.de> + * did teach myself php over converting zzip-doc.pl into zzip-doc.php + * added php-test and another way to create the docbook file, with php + +2002-07-20 Guido Draheim <guidod@gmx.de> + * lots of fixes around docbook/manpage - and generate a zziplib.3 + overview page. Fixes also lots of comments in the sources. + * modified fopen-mode interpration nicely. + * added zzip-api for full overview of the zzip's API + +2002-07-19 Guido Draheim <guidod@gmx.de> + * greatly enhanced docbook/manpage generation - including to attach + author and license info from the respective source file header + +2002-07-18 Guido Draheim <guidod@gmx.de> + * extended the perlscript to generate zziplib.docbook + * use xmlto to generated manpages.ar + * install-man3 target and push into rpm-devel package + +2002-07-17 Guido Draheim <guidod@gmx.de> + * no new code, just doc updates. The perl-script is now capable to + combine _ext_io functions with their non-ext/io cousin, and the + sources have been modified to honour this new mode. + * the perl-script is now ready to spit out other data like docbook + files that we can generate man-pages from later. + +2002-07-16 Guido Draheim <guidod@gmx.de> + * extern-C in SDL_rwops_zzip.h ... and ifdef'able DECLSPEC for staticlinking + * zzip_fopen allows to greatly simplify SDL_rwops_zzip.c + * zzxordir.c zzxorcat.c zzxorcopy.c invented + * lots of new documentation added + zzip-extio.html zzip-xor.html zzip-refs.html + * new checks that test the zzxor examples + * and found an zzxor bug in the course + +2002-07-15 Guido Draheim <guidod@gmx.de> + * Michael-dot-Fink-at-asamnet-dot-de did some code review while + going after a specialty he wanted to do with the libs, and therefore.. + * PREFERZIP did never test real file - stupid bug, inverted logic.... + * add ZIPONLY zzipmode - we have plenty of options availabe... on 32bit + platforms however, since I want to keep with the access-bits in + the lower parts. + +2002-07-12 Guido Draheim <guidod@gmx.de> + * watcom-c-10.5 project file added + * used my old watcom compiler to debug the win32 problems, and it turned + out to be a mismatch in proccall for zlib - while the default in + zlib.h inferred WINAPI, it turned out that zlib114dll.zip had in + fact been compiled with __syscall procframe callmethod. Duh!!! + * some things had to be rearranged in header files - most classically it + seems that this compiler does not support __inline in C mode. + +2002-07-11 Guido Draheim <guidod@gmx.de> + * convert all API const types into those with _zzip_const and use new + types like zzip_char_t and zzip_strings_t throughout the sources. + * add ZZIP_RDONLY and friends. Do not use fcntl bits anymore, and limit + use routines to convert them into O_DEFs later one in the next + version of this lib - here we just declare them to be their O_DEFs + but code should start to pick up ZZIP_DEFs in the meantime. + * add zzip_fopen and friends as another type of magic wrappers. + * modify open_ext_io to use receive separate arguments for the two + zzip extraflags - use these from now on, the others are just + for limited backward compatibility. + * modify all _close functions to return "int". + +2002-07-10 Guido Draheim <guidod@gmx.de> + * Marlin Prowell mbp-at-cadalog-inc-dot-com did hit a problem on FreeBSD + showing off a config problem - the configure.ac macro for off_t is + written to be _undefined_ if off_t existed in the system. Instead we + chose to defined zzip_off_t into a "long" as it is needed on win32, + and since FreeBSD on LFP32 uses OFF64 it did fall flat on calls to + lseek - without io-wrap the gcc did cast them correctly, so it worked. + * the fix: use off_t if zzip_off_t undefined. Add a define zzip_off_t into + long in conf-msvc.h. Add a configure-option to have wrappers for the + default lowlevel calls as suggested by Marlin but I choose to have + them off by default - a bsd ports package may start using it. + * there have not been reported problems in the last three months where only + developers knew about the new version. Guess it's time to push this + tarball and announce it on freshmeat. + +2002-04-30 Guido Draheim <guidod@gmx.de> + * fix typo in zzip-zip.c: __USE_MMAP -> _USE_MMAP + * if zlib.h not found, make it a fatal exit + +2002-04-25 Guido Draheim <guidod@gmx.de> + * adding a few more `make check` rules for bigger zip files + * add even negative tests + * add some spaces in error-messaging in zzdir.c and let return + an exitcode when some argument files could not be read + +2002-04-24 Guido Draheim <guidod@gmx.de> + * apply patch from Mike Nordell + changes all "const char * *" into the intended "const char * const *" + changes some typecasts + corrects comment and adds some + and two fixes + * put the updated MSVC6 files into the project, again Mike Nordell + * me, add new zzwrap.dsp to DIST in Makefile.am, following Mike's addition + * me, modify some typecasts to use off_t/size_t where apropriate + * modified COPYING.ZZIP to be a bit more general than just for ZZIPLIB + as noted by Tomi Olilla + * zzipwrap demo_callback, how can we do void* and char* at the same time... + +2002-04-23 Guido Draheim <guidod@gmx.de> + * changed ssize_t into int in zzipwrap-mem for portability reasons + * fix zzip_dir_fdopen_ext for access to uninitialized io-vtable + (thanks to Lutz Sammer johns98-at-web-dot-de for testing) + +2002-04-22 Guido Draheim <guidod@gmx.de> + * add MSVC6 project files contributed by Mike Nordell tamlin-at-algonet-dot-SE + * add plugin_io-patch from Mike Nordell + and dump the iowrap-patch from Andreas Shiffler from earlier release + * append the Mike Nordell's zzobfuscated.c to Makefile.am + * add a new file COPYING for new less-strictly license + after Tomi Ollila has transferred full copyright to me + * remove Tomi Ollila from all copyright entries in the sources + but honour his name where apropriate + * modify LGPL hints in sources and point to COPYING.ZZIP as well + and change copyright year info + * create COPYING.ZZIP with some general LGPL exceptions. + * use newer AC_CREATE_CONFIG_H macro and start using acinclude.m4 + to allow retooling of the project. + * and use zzip_off_t instead of ZZIP_off_t (but keep backward compatibility) + * apply patch for the problem detected and corrected by + Steve Dillon steved-at-phone-IVR-dot-com + * try with an updated ac_create_prefix_config_h due to a bug report by + John W. O'Brien john-at-jugglers-dot.com + where his shell-and-echo combination did interpret \\1 twice. + * add use_mmap flag to plugin_io_t, so the feature can be used + along USE_MMAP configured setups + * change USE_MMAP #ifdefs to use if()s and to rely on the + compiler to do code removal for unreachable code + * remove tell() part of plugin_io and rename seek()-indirection + to seeks()-indirection using a tells()-macro in zzip-file + * also rename s/seek/seeks/ in zzip-zip and kill the (*function)(x) + for the indirection functions into just function(x)-calls + * fix zzobfuscated example code - there's no read() without unistd.h + in unix, and global zzip_install_io had been removed lately. + * add zzipwrap-io.c and zzipwrap.c from Andreas Schiffler's patch + on the new ground of Mike Nordell's plugin_io + * modify zzipwrap sources to work with plugin-io + * add io pointer to dir-structure, and use it as the default for file-structs + * __zzip_open_zip is called __zzip_try_open now and takes two arguments + * typedef struct zzip_plugin_io * zzip_plugin_io_t; + * zzip_opendir_ext_io .. for magic convenience + * create new zzipwrap.la in Makefile.am + * move plugin_io struct from zziplib.h to zzip-io.h + along with its helper functions + * change all filesize into zzip_off_t + * s/zzip_find_disk_trailer/__zzip_find_disk_trailer/ (additional io arg) + * s/zzip_parse_root_directory/__zzip_parse_root_directory/ (ditto) + +2001-10-11 Guido Draheim <guidod@gmx.de> + * added zzipwrap feature contributed by Andreas Schiffler + +2001-09-18 Guido Draheim <guidod@gmx.de> + * fix bug for `zzip-config --cflags` + which did print /xx/include instead of -I/xx/include + (thanks to Roger Ostrander <denor(at)yahoo.com>) + * change the for-loop in zzip-config - the "for i ; do" is not portable + because I had problems on solaris-sh. Use "$@" which expands + to a list (!!) of argv entries for this for-loop even for + arguments that contain spaces. fascinating. + * use AC_HELP_STRING ... the `configure --help` screen got a bit + misformatted lately. + * add a `make check` rule. + +2001-08-19 Guido Draheim <guidod@gmx.de> + * add that /programs magic to the $prefix check in configure.ac + * add that /usr/share magic to the $prefix check in configure.ac + * fix zzip-sdl-rwops.html layout (and copying.zlib link). + * fix some flaws in sdl-rwops example source (just by code review). + * add unistd.h include to zziptest.c to silence off the warning about sleep + * add non-dll compile to extern in zzip-conf.h - does that fix anything? + +2001-08-18 Guido Draheim <guidod@gmx.de> + * SDL_rwops_zzip.c/SDL_rwops_zzip.h SDL-example file. + * change all filename args to be const + * add ZZIP_const to zzip-conf.h, but do not use it for now. + It seems that all current lib-users have a modern compiler... + +2001-08-16 Guido Draheim <guidod@gmx.de> + * export zzip_dir_free / zzip_dir_alloc + * bring in fileext field to check for multiple fileextensions. + * make zzip_open check for multiple (default) fileextensions. + * add ifdef USE_ZZIPLIKES to implement feature proposed by + Julien Cayzac <deepmind(at)jessica.brainlex.com> + * make zzip_open check along the dirpath for a zip-file + a feature proposed by Lutz Sammer <Johns98(at)web.de> + +2001-08-15 Guido Draheim <guidod@gmx.de> + * add "stroustrup" style to all c files to ensure that casual + developers do not trash the layout unintentionally. + * modify examples a bit with more newlines / comments. + * re-license examples to ZLIB license + * include COPYING.ZLIB into doc_FILES + +2001-08-10 Guido Draheim <guidod@gmx.de> + * change frontpage of webpages - including a few crosslinks to + other projects + +2001-08-07 Guido Draheim <guidod@gmx.de> + * split version X.Y.Z into -relese X -version-info Y:Z + * adding --disable-thread-safe, and add -thread-safe linkage by default + * modify releaseinfo for with-debug + * install-zip target to make a windows package + * change serial to _vendor - rpm has never been used for other than linux + +2001-08-06 Guido Draheim <guidod@gmx.de> + * reorganize docs, update docs to new style + * split version X.Y.Z into -release X.Y -version-info Z + +2001-08-05 Guido Draheim <guidod@gmx.de> + * add zzip-msvc.h, a header file that will be included when + a windows compiler is detected in zzip-conf.h, e.g. + _MSC_VER or __BORLANDC__ + * mv index.html zzip-index.html and add makerule that patches + the VERSION in before installing it as index.html + * add a makerule to build sourceforge htdocs and add it + to the rpm build. + * add generic patches for libtool into configure.ac + +2001-07-18 Guido Draheim <guidod@gmx.de> + * check up bugs in automake 1.4beef, now using a rule to + override AUTO* in non-maintainer-mode. we also set + libtool to silent in non-maintainer-mode + * docs are installed to $datadir/doc/$package as default + * rpms can now be built. + * create --with-docdir and let it be filled in rpm-configure + so that docs will end up where rpmopt says it should. + * ChangeLog goes into %doc of rpms. + * uhmm, forgot to install the test*.c files into the docdir + * the bin rpms had not been built + * compress into base and devel package + * errnolist should be static + +2001-07-17 Guido Draheim <guidod@gmx.de> + * nuke Makerule system, use plain autotools style including + configure && make install to rebuild + * update Makefile.am (which is new now) + * use next-generation autotools as a basis, update configure.ac + to newer style, update configscreen at the end of file + * check perl in configure and let it default to "echo" + * check HAVE_ defines coming from config.h - it is not anymore + included by zzip-config.h, so each config-def usage + must now use the prefix'd version + * provide a zziplib.spec file + +2001-01-05 Guido Draheim <guidod@gmx.de> + * apply zzip_seek-patch from Ted [sourceforge.net/users/tam4] + * -> 0.10.12 + +2001-01-02 Guido Draheim <guidod@gmx.de> + * gone through a couple of trial and error versions until + I finally arrived at a mingw32msvc zzip.dll - basically + I had to update the included libtool files to 1.3.5 + and the zzip.dll source-files have a ZZIP_DLL define + before the first include that points to zzip-conf.h - + and there is the magic about dllexport and dllimport. + Hopefully the same can run under MSVC without further + changes to the sources. + * try to package a zip-file that contains the relevant files + from the mingw32msvc install, so that windows user + get a clean dll without the need to compile it. + * -> 0.10.11 + +2001-01-01 Guido Draheim <guidod@gmx.de> + * received a patch for MSVC compatibility from Ted A. (@lehigh.edu) + which made me to look after the project again. There + were two support requrest during summer that asked for + MSVC support, especially a prebuilt dll and headers. + * added AC_PREFIX_CONFIG_H that I made originally for + another project. It enables me to push the configure + detections into a global include/-dir. Ted's patch + used an `IFDEF MSVC DEFINE HAVE_SYS_TYPES_H` which + is a symptom of using config.h&HAVE_CONFIG_H and + zzip-file.h&IFDEF HAVE_xx. Change all header-IFDEF-HAVE + to use IFDEF-ZZIP_HAVE, and install zzip-config.h + along with the other headers, change the original + include"config.h" in zzip-stdint.h and make it rely + on zzip-conf.h - where zzip-conf.h includes zzip-config.h + and lists the detected features to be used, along with most + important extra defs for MSVC compatibility. (!!!) + * added AC_COMPILE_CHECK_SIZEOF (cross-compile clean!) + to always use the correct STDINT defines. Delete + use of glib.h if present, it's not needed anymore. + * use ZZIP_off_t instead of off_t + * prepare for a MSVC' ZZIP.DLL with _zzip_export defines.. + -DZZIP_DLL -> declspec(dllexport) + -DHAVE_LIBZZIP -> declspec(dllimport) + * make sure, __attribute__ is okay with non-gcc compilers + and attache packed-attribute to *all* zipformat-structs. The + whole of zzipformat.h is also enclosed in pack-pragmas. + * -> 0.10.7 + * create zzip-config.in and install it. + * mingw32msvc has shown that we need -lz on the command-line + to resolve a few symbols + * go automake + * install zzip-config along + * mingw32msvc does not build with cross-make.sh as seen on + http://libsdl.org/Xmingw32 - it needs the cross-tool/lib + just as well. There we have LDLIBADD in Makefile.mk now. + Now everything works for making win32 target with cross-tools. + * The rest of the make-struture should ensure to be able to + create an MSVC nmake Makefile - the Makerule.am is clean and + can be directly included... hopefully. + * -> 0.10.8 + + +2000-06-03 Guido Draheim <guidod@gmx.de> + * Tomi did a final test round for solaris, oh well, + configure needs some fixes... + * checking for myself at the university's solaris2.6 with + gcc-2.95.2, hmm... there's an sys/int_types.h that + seems to define some of C9X int-types, put it into + the configure.in and know about it in zzip-stdint.h + (btw, glibc seems to have include/inttypes.h that + includes stdint.h). + * tomi did report a problem with gcc 2.7.2... probably + sth. about -rpath + * release 0.10.6 and going to announce it... + +2000-05-31 Guido Draheim <guidod@gmx.de> + * created the main doc html files, index.html, zzip-zip.html + and zzip-file.html. the README and README.API is deleted, + and the TODO is a bit updated. + * This version is meant to be announced very soon now. + * release 0.10.5 and contact Tomi for his final nod. + +2000-05-31 Guido Draheim <guidod@gmx.de> + * ifdef HAVE_SYS_STAT_H where stat is used. Removed + the stats from zzip-file.h - it will now just try + to open the file or zip-file and assume that + open(2) will fail if the file is not there. I do + hereby assume that the returned fd is seekable.. + * two new functions, zzip_dir_real and zzip_file_real + to check if the ZZIP_XX structures are wrapping a + real file or directory. Otherwise it is a zip-archive + or a zip-contained file respectivly. + * zzip_compr_str does now know about stat-types and + will return names for S_ISTYPE bits. + * remove zzip_fd. It was identical to zzip_dirfd + whose name is consistent with dirent.h + * zzip_stat -> zzip_dir_stat since it does not neither + return a stat structure nor does it use stat(2) + * Checking the doc-comments + +2000-05-30 Guido Draheim <guidod@gmx.de> + * zzip_fp -> zzip_file and _fp_ functions to _file_ + * zzip-stdint.h to ensure iso c9x typedefs + * ZZIP_GET16/32 macros in zzip.h header. + * minor updates in cosmetics and documentation + * have full replacements for dirent.h functions, + the zip-specific functions are now called + zip_dir_open (and more alike). The zzdir can + now show a list of files in a real directory, + or magically the files contained in a zip-arch. + * release 0.10.4 + +2000-05-29 Guido Draheim <guidod@gmx.de> + * zzipmain -> zziptest and some cleanups + in the Makefile. zziptest is now just + another test program, so it gets compiled + in full similarity with zzcat and zzdir. + * removed zziptest from install-bin + * the long forgotten simplicistic dependency + rule is now in here too. + * cosmetics to pointer declar' stars in + zziplib.h + * ZZIP_FP -> ZZIP_FILE and + zzip-fp.h -> zzip-file.h + * removed the use of zzip.h where suggested + by Tomi. (use public zziplib.h instead) + * removed errno.h from zziplib.h + * printing configuration at end of configure. + * add install-includeHEADERS rule, so that + zziplib.h does now get installed. + + +2000-05-27 Guido Draheim <guidod@gmx.de> + * zzipformat.h carries information about the + zip-file structure. The typedefs are now + used to access members of the zip-archive + (instead of using the offsets directly). + * notice that the members are declared + bytewise due to compiler semantics that is + making a structure packed&aligned to the + greatest common size (which would be 4). + setting as attribute(packed) is not very + portable. + * reworked the files, esp. zzip-zip.c and + zzip-ar.c + * _USE_MMAP in autoconf, including option + and CFLAGS setting. instead of open/read + to a scan buffer the zip-file is mmapped + and scanned directly. + * _LOWSTK in autoconf, including option and + a CFLAGS setting. Still need a scan buffer + and this flag tells us not to carve the + scan buffer from the auto-stack and use + instead some malloc for the scan buffer. + * DEBUG in autoconf, including option and + a CFLAGS setting. The macros should now + be able to be found everyone and only. + * revamped EDH find routine, dumped old-style. + * revamped read-EDH to use mmap and to use + copy/read only for the parts we need. The + read-EDH buffer is not limited to 32K + anymore and can have any length. No realloc + need anymore. + * opendir does not allocate the cache.buf32k + anymore - it does have no need for it. the + buffer is still cached for subsequent Open + calls. May want to setvbuf later. + * a few renamings to be more bits/dirent.h-like, + so many things are now called d_name and + d_reclen instead of name or next as before. + * renamed the package to "zziplib" as being + suggested by Tomi. + * release 0.10.3 + +2000-05-26 Guido Draheim <guidod@gmx.de> + * -release at link-line for the lib + * zzcat.c as a test program, which uncovered + a few flaws. + * a flaw w/_fd_opendir when being given a + non-inited err-return-variable and no + error did occur. + * the error to errno table was incomplete, + and the ZZIP_INFLATE error is superfluous. + * zzdir.c as a test program, needs still to + be given the full zip-arch name. + * changed member names of zzip_dirent to + match similar names in dirent and stat, + (ie. d_name and st_size) and added furthermore + a z_size that returns the compressed size. + * little updates to names and comments. + * release 0.10.2 + +2000-05-22 Guido Draheim <guidod@gmx.de> + * merge with zip08x-0.9.6 - actually just + a bugfix for zzip_fp_open IGNOREPATH - + I even applied it in a different way than + Tomi did. + * bugfixes for zzip_open, it did not always + set errno(2) to the value of zzip_errno. + * The zzip_read is now seperate from + zzip_fp_read, so that setting errno(2) is + only done in zzip_read, not in the zzip-touching + function. + * zzip-doc.pl to generate libzzip.html + * release 0.10.1 + +2000-05-21 Guido Draheim <guidod@gmx.de> + * drop-in replacements ready for daily use, + just use zzip_open with a normal path to + a fs file. If that file is not found in + a normal fs directory, then the path is + splitted into a basepath and a filename, + a ".zip" is appended to the basepath to + form a zip-arch name, and the filename + is then searched inside the zip-arch if + that one exists. Very nice for distribution + of a subdirectory full of scripts and that + is what it is meant for - the PFE will be + able to use this one for Forth-files. + * have a VERSION file containing "0.10.0" and + add some rules to Mk-rules + * start with in-source docs that will be used + for documenting the lib calls. A jdoc like + doc extractor should be able to grok these, + I'll see to release docs with the next + release, but this time... + * make it release 0.10.0 and upload it to + pfe.sourceforge.net/pub where it will lurk + around until I contacted Tomi. He seems to + be currently working on zip08x + +2000-05-17 Guido Draheim <guidod@gmx.de> + * decided to have it actually called zzip_ and so + all of the stuff is going to get renamed again. + +2000-05-16 Guido Draheim <guidod@gmx.de> + * obtained Tomi's code and made changes so that the + resulting library is more portable, esp. the glib + usage is being abolished. The name of the library + (and package) has been renamed to libunzip and + all types, consts and funcs to now carry the unzip_ + prefix. + * autoconf !!!! + * drop-in functions that can be made to easily replace + dirent and filefd functions. + + +Mon Apr 5 11:23:46 2000 Tomi Ollila (too@iki.fi) + + * Release 0.9.5 + + * Made some tiny modifications after Matthew's code. + +Sun Apr 4 8:30:00 2000 Matthew D. Campbell (matt@campbellhome.dhs.org) + + * Cleaned up compile warnings in SuSE Linux + + * Cleaned up code for cross-compilation with Xmingw32 + + * Modified zipx.h to support linking to C++ apps + +Wed Jul 28 11:23:46 1999 Tomi Ollila (too@iki.fi) + + * Release 0.9.4 + + * Fixed support for simultaneous open files with each + open `ZipFile'. + +Thu Jul 22 11:57:46 1999 Tomi Ollila (too@iki.fi) + + * Release 0.9.3 + + * Added premilinary README.API. + +Sat Jul 10 11:49:58 1999 Tomi Ollila (too@iki.fi) + + * Release 0.9.2 + + * Fixed code to read start-of-file offset from local header + instead relying directory info is sufficient (were TOO naive + about that, the first user reported this library won't work + with his archives). + +Sun Jun 13 20:40:11 1999 Tomi Ollila (too@iki.fi) + + * Initial release (0.9.1). diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.am b/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.am new file mode 100644 index 00000000000..47ccc75896d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.am @@ -0,0 +1,177 @@ +AUTOMAKE_OPTIONS = 1.4 foreign dist-bzip2 +ACLOCAL_AMFLAGS = -I m4 +WANT_AUTOMAKE = 1.7 +WANT_AUTOCONF = 2.57 + +DIST_SUBDIRS = zzip zzipwrap bins test docs SDL +SUBDIRS = zzip zzipwrap bins test docs @SDL@ + +rpm: dist-bzip2 $(PACKAGE).spec + rpmbuild -ta $(PACKAGE)-$(VERSION).tar.bz2 + test -d ../pub && cp $(PACKAGE)-$(VERSION).tar.bz2 ../pub/ + +OSC_ROOT = /my/own/osc +OSC_SRCDIR = $(OSC_ROOT) +OSC_PROJECT = home:guidod:zziplib-13 +OSC_PACKAGE = $(PACKAGE) +OSC_SPECFILE = $(top_srcdir)/$(PACKAGE).spec +OSC_TARBALL = $(PACKAGE)-$(VERSION).tar.bz2 +OSC_BUILDDIR = $(OSC_ROOT) +OSC_PACKAGECACHEDIR = $(OSC_BUILDDIR)/packagecache +OSC_BUILDROOT = $(OSC_BUILDDIR)/buildroot +OSC_REPOSITORY = openSUSE_11.2 +OSC_ARCH = x86_64 +osc-copy: + test -s $(OSC_TARBALL) + test -s $(OSC_SPECFILE) + test -d $(OSC_SRCDIR) + test -d $(OSC_SRCDIR)/$(OSC_PROJECT) \ + || ( cd $(OSC_SRCDIR) && osc co $(OSC_PROJECT) ) + cd $(OSC_SRCDIR)/$(OSC_PROJECT) && osc up + cp $(OSC_TARBALL) $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE) + cp $(OSC_SPECFILE) $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE) + +DOIT = : +osc-ci osc-commit upload-osc: osc-copy + tarball=`basename $(OSC_TARBALL)` \ + ; ls $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.tar.* \ + | { while read f; do tarname=`basename $$f` \ + ; if test "$$tarname" != "$$tarball" \ + ; then echo osc rm -f $$f ; osc rm -f $$f \ + ; else echo osc add $$f ; osc add $$f \ + ; fi ; done } + osc status $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/ + $(DOIT) osc commit -m "update $(OSC_TARBALL)" $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE) + +osc-build: osc-copy + cd $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/ \ + BUILD_DESCR=`basename $(OSC_SPECFILE)` ;\ + ls -l $$SPEC ; \ + OSC_PACKAGECACHEDIR=$(OSC_PACKAGECACHEDIR) \ + OSC_BUILD_ROOT=$(OSC_BUILDROOT) \ + osc build --release=0 --local-package --clean \ + $(OSC_REPOSITORY) $(OSC_ARCH) $$BUILD_DESCR +osc-clean: + - test -f $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.spec \ + && rm $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/* +osc-distclean: + - test -f $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.spec \ + && rm -rf $(OSC_SRCDIR)/* + + +indent-check: + (cd zzip && $(MAKE) `basename $@`) + +doc docs docu clean-doc clean-docs clean-docu zzip.html zzip.xml zzip.pdf \ +man mans manpages htmpages unpack clean-unpack changes.htm pdfs \ +omf install-omf install-doc install-docs install-man3 install-mans \ +upload-sourceforge www: + (cd docs && $(MAKE) `basename $@`) + +sdl testsdl test-sdl install-sdl : + if test -z "$(SDL)"; then echo "skip $@ (no SDL)"; else \ + (cd SDL && $(MAKE) `basename $@`) ; fi + +check-test0 check-test1 check-zzdir check-zzcat \ +check-zzxor check-zzxordir check-zzxorcat \ +check-sfx check-readme : \ + (cd test && $(MAKE) `basename $@`) + +MSVC8 = msvc8/README.TXT msvc8/zip.exe msvc8/test1.zip msvc8/test.zip \ +msvc8/zzdir.vcproj msvc8/zzipself.vcproj msvc8/zzip.vcproj \ +msvc8/zziplib.sln msvc8/zzipsetstub.sln msvc8/zzobfuscated.sln \ +msvc8/zziplib.vcproj msvc8/zzipsetstub.vcproj msvc8/zzobfuscated.vcproj \ +msvc8/zzcat.sln msvc8/zzipself.bat msvc8/zzip.sln \ +msvc8/zzcat.vcproj msvc8/zzipself.sln msvc8/zziptest.sln \ +msvc8/zzdir.sln msvc8/zzipself.txt msvc8/zziptest.vcproj \ + msvc8/zzipfseeko.vcproj msvc8/zzipmmapped.vcproj + +MSVC7 = msvc7/pkzip.exe msvc7/test1.zip msvc7/test.zip \ +msvc7/zzdir.vcproj msvc7/zzipself.vcproj msvc7/zzip.vcproj \ +msvc7/zziplib.sln msvc7/zzipsetstub.sln msvc7/zzobfuscated.sln \ +msvc7/zziplib.vcproj msvc7/zzipsetstub.vcproj msvc7/zzobfuscated.vcproj \ +msvc7/zzcat.sln msvc7/zzipself.bat msvc7/zzip.sln \ +msvc7/zzcat.vcproj msvc7/zzipself.sln msvc7/zziptest.sln \ +msvc7/zzdir.sln msvc7/zzipself.txt msvc7/zziptest.vcproj + +MSVC6 = \ +msvc6/zzcat.dsp msvc6/zziplib.dsp msvc6/zzipwrap.dsp \ +msvc6/zzdir.dsp msvc6/zziplib.dsw msvc6/zzobfuscated.dsp \ +msvc6/zziptest.dsp msvc6/zzip.dsp + +EXTRA_DIST = zziplib.spec zzipback.sed Makefile.mk \ + $(MSVC8) $(MSVC7) $(MSVC6) $(am__aclocal_m4_deps) + +PHONY = auto boottrap rpm doc docs man manpages htmpages sdl testsdl \ + comp compats msvc6 msvc7 +# ------------------------------------------------------------------------ + +test-comp: + test ! -d testing || rm -r testing + mkdir testing + (cd testing && tar xzvf ../$(PACKAGE)-$(VERSION).tar.gz) + (cd "testing/$(PACKAGE)-$(VERSION)/zziplib" && sh configure) + $(MAKE) -C "testing/$(PACKAGE)-$(VERSION)/zziplib" + $(MAKE) -C "testing/$(PACKAGE)-$(VERSION)/zziplib" check + +clean-comp: + test ! -d testing || rm -r testing + +msvc : + mkdir bin + mkdir lib + mkdir include + mkdir include/zzip + cp $(srcdir)/msvc6/Release/*.exe bin/ + cp $(srcdir)/msvc6/Release/*.dll bin/ + cp $(srcdir)/msvc6/Release/*.lib lib/ + cp $(srcdir)/zzip/*.h include/zzip/ + zip -9r $(srcdir)/$(PACKAGE)-$(VERSION)-msvc6-bin.zip bin/ + zip -9r $(srcdir)/$(PACKAGE)-$(VERSION)-msvc6-lib.zip lib/ include/ + rm -r bin lib include + +# ------------------------------------------------------------------ zzip64 +_FILE_OFFSET64 = -D_ZZIP_LARGEFILE -D_FILE_OFFSET_BITS=64 +_RELEASEINFO64 = "RELEASE_INFO=-release 0-64" + +zzip64-setup: zzip64-setup.tmp +zzip64-setup.tmp : zzip/Makefile zzip/_config.h zzip/.deps/* zzip/zziplib.pc + - mkdir zzip64 + cp -a zzip/Makefile zzip/_config.h zzip/.deps/ zzip/zziplib.pc zzip64/ + date > zzip64.dir +zzip64-build: zzip64-build.tmp +zzip64-build.tmp : zzip64-setup.tmp $(top_srcdir)/zzip/* + cd zzip64 && $(MAKE) "AM_CFLAGS=$(_FILE_OFFSET64)" $(_RELEASEINFO64) +zzip64-install: zzip64-install.tmp +zzip64-install.tmp : zzip64-build.tmp + cd zzip64 && $(MAKE) install $(_RELEASEINFO64) + cd $(DESTDIR)$(libdir) && mv libzzip.so libzzip64.so + - cd $(DESTDIR)$(libdir) && mv libzzip.a libzzip64.a + cd $(DESTDIR)$(libdir) && \ + sed -e 's/zzip.so/zzip64.so/' -e 's/zzip.a/zzip64.a/' \ + libzzip.la > libzzip64.la + cd $(DESTDIR)$(libdir)/pkgconfig && \ + sed -e 's/largefile=/largefile= %_FILE_OFFSET64/' \ + -e 's/-lzzip/-lzzip64/' -e 's/zziplib/zziplib64/' \ + zziplib.pc > zziplib64.pc +zzip32-postinstall: + cd $(DESTDIR)$(libdir) && mv libzzip.so libzzip32.so + - cd $(DESTDIR)$(libdir) && mv libzzip.a libzzip32.a + cd $(DESTDIR)$(libdir) && ln -s libzzip32.so libzzip.so + - cd $(DESTDIR)$(libdir) && ln -s libzzip32.a libzzip.a + cd $(DESTDIR)$(libdir) && \ + sed -e 's/zzip.so/zzip32.so/' -e 's/zzip.a/zzip32.a/' \ + libzzip.la > libzzip32.la + cd $(DESTDIR)$(libdir)/pkgconfig && \ + sed -e 's/-lzzip/-lzzip32/' -e 's/zziplib/zziplib32/' \ + zziplib.pc > zziplib32.pc +zzip-postinstall: + : "the 12.8x and 11.8x and 10.8x packages are all the same actually" + cd $(DESTDIR)$(libdir) || exit 1 \ + ; for i in libzzip*.so.1? ; do : \ + ; v10=`echo $$i | sed -e "s/.so.../.so.10/"` \ + ; v11=`echo $$i | sed -e "s/.so.../.so.11/"` \ + ; v12=`echo $$i | sed -e "s/.so.../.so.12/"` \ + ; test ! -e "$$v10" && test -e "$$v12" && test "$$v10" != "$$v12" && ln -s "$$v12" "$$v10" \ + ; test ! -e "$$v12" && test -e "$$v10" && test "$$v12" != "$$v10" && ln -s "$$v10" "$$v12" \ + ; test "$$v10" != "$$v11" && ln -s "$$v10" "$$v11" || true; done diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.in b/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.in new file mode 100644 index 00000000000..a08cc4796b4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.in @@ -0,0 +1,950 @@ +# Makefile.in generated by automake 1.11.1 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@ +target_triplet = @target@ +subdir = . +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure COPYING.LIB ChangeLog TODO \ + uses/config.guess uses/config.sub uses/depcomp uses/install-sh \ + uses/ltmain.sh uses/missing uses/mkinstalldirs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \ + $(top_srcdir)/m4/ac_set_default_paths_system.m4 \ + $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \ + $(top_srcdir)/m4/acx_restrict.m4 \ + $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ + $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \ + $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \ + $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ + $(top_srcdir)/m4/ax_configure_args.m4 \ + $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ + $(top_srcdir)/m4/ax_enable_builddir_uname.m4 \ + $(top_srcdir)/m4/ax_expand_prefix.m4 \ + $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \ + $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \ + $(top_srcdir)/m4/ax_pax_tar.m4 \ + $(top_srcdir)/m4/ax_prefix_config_h.m4 \ + $(top_srcdir)/m4/ax_set_version_info.m4 \ + $(top_srcdir)/m4/ax_spec_file.m4 \ + $(top_srcdir)/m4/ax_spec_package_version.m4 \ + $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \ + $(top_srcdir)/m4/ax_warning_default_pkgconfig.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/patch_libtool_on_darwin_zsh_overquoting.m4 \ + $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \ + $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +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 +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 $(distdir).tar.bz2 +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CONFIG_FILES = @CONFIG_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTAR = @GNUTAR@ +GREP = @GREP@ +GTAR = @GTAR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKZIP = @MKZIP@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PAX = @PAX@ +PAX_TAR_CREATE = @PAX_TAR_CREATE@ +PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELEASE_INFO = @RELEASE_INFO@ +RESOLVES = @RESOLVES@ +SDL = @SDL@ +SDL_GENERATE = @SDL_GENERATE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +THREAD_SAFE = @THREAD_SAFE@ +VERSION = @VERSION@ +VERSION_INFO = @VERSION_INFO@ +XMLTO = @XMLTO@ +ZIPTESTS = @ZIPTESTS@ +ZLIB_INCL = @ZLIB_INCL@ +ZLIB_LDIR = @ZLIB_LDIR@ +ZLIB_VERSION = @ZLIB_VERSION@ +ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@ +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@ +aclocaldir = @aclocaldir@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_enable_builddir_sed = @ax_enable_builddir_sed@ +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@ +pkgconfig_libdir = @pkgconfig_libdir@ +pkgconfig_libfile = @pkgconfig_libfile@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.4 foreign dist-bzip2 +ACLOCAL_AMFLAGS = -I m4 +WANT_AUTOMAKE = 1.7 +WANT_AUTOCONF = 2.57 +DIST_SUBDIRS = zzip zzipwrap bins test docs SDL +SUBDIRS = zzip zzipwrap bins test docs @SDL@ +OSC_ROOT = /my/own/osc +OSC_SRCDIR = $(OSC_ROOT) +OSC_PROJECT = home:guidod:zziplib-13 +OSC_PACKAGE = $(PACKAGE) +OSC_SPECFILE = $(top_srcdir)/$(PACKAGE).spec +OSC_TARBALL = $(PACKAGE)-$(VERSION).tar.bz2 +OSC_BUILDDIR = $(OSC_ROOT) +OSC_PACKAGECACHEDIR = $(OSC_BUILDDIR)/packagecache +OSC_BUILDROOT = $(OSC_BUILDDIR)/buildroot +OSC_REPOSITORY = openSUSE_11.2 +OSC_ARCH = x86_64 +DOIT = : +MSVC8 = msvc8/README.TXT msvc8/zip.exe msvc8/test1.zip msvc8/test.zip \ +msvc8/zzdir.vcproj msvc8/zzipself.vcproj msvc8/zzip.vcproj \ +msvc8/zziplib.sln msvc8/zzipsetstub.sln msvc8/zzobfuscated.sln \ +msvc8/zziplib.vcproj msvc8/zzipsetstub.vcproj msvc8/zzobfuscated.vcproj \ +msvc8/zzcat.sln msvc8/zzipself.bat msvc8/zzip.sln \ +msvc8/zzcat.vcproj msvc8/zzipself.sln msvc8/zziptest.sln \ +msvc8/zzdir.sln msvc8/zzipself.txt msvc8/zziptest.vcproj \ + msvc8/zzipfseeko.vcproj msvc8/zzipmmapped.vcproj + +MSVC7 = msvc7/pkzip.exe msvc7/test1.zip msvc7/test.zip \ +msvc7/zzdir.vcproj msvc7/zzipself.vcproj msvc7/zzip.vcproj \ +msvc7/zziplib.sln msvc7/zzipsetstub.sln msvc7/zzobfuscated.sln \ +msvc7/zziplib.vcproj msvc7/zzipsetstub.vcproj msvc7/zzobfuscated.vcproj \ +msvc7/zzcat.sln msvc7/zzipself.bat msvc7/zzip.sln \ +msvc7/zzcat.vcproj msvc7/zzipself.sln msvc7/zziptest.sln \ +msvc7/zzdir.sln msvc7/zzipself.txt msvc7/zziptest.vcproj + +MSVC6 = \ +msvc6/zzcat.dsp msvc6/zziplib.dsp msvc6/zzipwrap.dsp \ +msvc6/zzdir.dsp msvc6/zziplib.dsw msvc6/zzobfuscated.dsp \ +msvc6/zziptest.dsp msvc6/zzip.dsp + +EXTRA_DIST = zziplib.spec zzipback.sed Makefile.mk \ + $(MSVC8) $(MSVC7) $(MSVC6) $(am__aclocal_m4_deps) + +PHONY = auto boottrap rpm doc docs man manpages htmpages sdl testsdl \ + comp compats msvc6 msvc7 + + +# ------------------------------------------------------------------ zzip64 +_FILE_OFFSET64 = -D_ZZIP_LARGEFILE -D_FILE_OFFSET_BITS=64 +_RELEASEINFO64 = "RELEASE_INFO=-release 0-64" +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# 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): + @fail= 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): + @fail= 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 + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +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 + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(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) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(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) gzip -dc $(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 config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(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-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: + +.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-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-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 + + +rpm: dist-bzip2 $(PACKAGE).spec + rpmbuild -ta $(PACKAGE)-$(VERSION).tar.bz2 + test -d ../pub && cp $(PACKAGE)-$(VERSION).tar.bz2 ../pub/ +osc-copy: + test -s $(OSC_TARBALL) + test -s $(OSC_SPECFILE) + test -d $(OSC_SRCDIR) + test -d $(OSC_SRCDIR)/$(OSC_PROJECT) \ + || ( cd $(OSC_SRCDIR) && osc co $(OSC_PROJECT) ) + cd $(OSC_SRCDIR)/$(OSC_PROJECT) && osc up + cp $(OSC_TARBALL) $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE) + cp $(OSC_SPECFILE) $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE) +osc-ci osc-commit upload-osc: osc-copy + tarball=`basename $(OSC_TARBALL)` \ + ; ls $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.tar.* \ + | { while read f; do tarname=`basename $$f` \ + ; if test "$$tarname" != "$$tarball" \ + ; then echo osc rm -f $$f ; osc rm -f $$f \ + ; else echo osc add $$f ; osc add $$f \ + ; fi ; done } + osc status $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/ + $(DOIT) osc commit -m "update $(OSC_TARBALL)" $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE) + +osc-build: osc-copy + cd $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/ \ + BUILD_DESCR=`basename $(OSC_SPECFILE)` ;\ + ls -l $$SPEC ; \ + OSC_PACKAGECACHEDIR=$(OSC_PACKAGECACHEDIR) \ + OSC_BUILD_ROOT=$(OSC_BUILDROOT) \ + osc build --release=0 --local-package --clean \ + $(OSC_REPOSITORY) $(OSC_ARCH) $$BUILD_DESCR +osc-clean: + - test -f $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.spec \ + && rm $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/* +osc-distclean: + - test -f $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.spec \ + && rm -rf $(OSC_SRCDIR)/* + +indent-check: + (cd zzip && $(MAKE) `basename $@`) + +doc docs docu clean-doc clean-docs clean-docu zzip.html zzip.xml zzip.pdf \ +man mans manpages htmpages unpack clean-unpack changes.htm pdfs \ +omf install-omf install-doc install-docs install-man3 install-mans \ +upload-sourceforge www: + (cd docs && $(MAKE) `basename $@`) + +sdl testsdl test-sdl install-sdl : + if test -z "$(SDL)"; then echo "skip $@ (no SDL)"; else \ + (cd SDL && $(MAKE) `basename $@`) ; fi + +check-test0 check-test1 check-zzdir check-zzcat \ +check-zzxor check-zzxordir check-zzxorcat \ +check-sfx check-readme : \ + (cd test && $(MAKE) `basename $@`) +# ------------------------------------------------------------------------ + +test-comp: + test ! -d testing || rm -r testing + mkdir testing + (cd testing && tar xzvf ../$(PACKAGE)-$(VERSION).tar.gz) + (cd "testing/$(PACKAGE)-$(VERSION)/zziplib" && sh configure) + $(MAKE) -C "testing/$(PACKAGE)-$(VERSION)/zziplib" + $(MAKE) -C "testing/$(PACKAGE)-$(VERSION)/zziplib" check + +clean-comp: + test ! -d testing || rm -r testing + +msvc : + mkdir bin + mkdir lib + mkdir include + mkdir include/zzip + cp $(srcdir)/msvc6/Release/*.exe bin/ + cp $(srcdir)/msvc6/Release/*.dll bin/ + cp $(srcdir)/msvc6/Release/*.lib lib/ + cp $(srcdir)/zzip/*.h include/zzip/ + zip -9r $(srcdir)/$(PACKAGE)-$(VERSION)-msvc6-bin.zip bin/ + zip -9r $(srcdir)/$(PACKAGE)-$(VERSION)-msvc6-lib.zip lib/ include/ + rm -r bin lib include + +zzip64-setup: zzip64-setup.tmp +zzip64-setup.tmp : zzip/Makefile zzip/_config.h zzip/.deps/* zzip/zziplib.pc + - mkdir zzip64 + cp -a zzip/Makefile zzip/_config.h zzip/.deps/ zzip/zziplib.pc zzip64/ + date > zzip64.dir +zzip64-build: zzip64-build.tmp +zzip64-build.tmp : zzip64-setup.tmp $(top_srcdir)/zzip/* + cd zzip64 && $(MAKE) "AM_CFLAGS=$(_FILE_OFFSET64)" $(_RELEASEINFO64) +zzip64-install: zzip64-install.tmp +zzip64-install.tmp : zzip64-build.tmp + cd zzip64 && $(MAKE) install $(_RELEASEINFO64) + cd $(DESTDIR)$(libdir) && mv libzzip.so libzzip64.so + - cd $(DESTDIR)$(libdir) && mv libzzip.a libzzip64.a + cd $(DESTDIR)$(libdir) && \ + sed -e 's/zzip.so/zzip64.so/' -e 's/zzip.a/zzip64.a/' \ + libzzip.la > libzzip64.la + cd $(DESTDIR)$(libdir)/pkgconfig && \ + sed -e 's/largefile=/largefile= %_FILE_OFFSET64/' \ + -e 's/-lzzip/-lzzip64/' -e 's/zziplib/zziplib64/' \ + zziplib.pc > zziplib64.pc +zzip32-postinstall: + cd $(DESTDIR)$(libdir) && mv libzzip.so libzzip32.so + - cd $(DESTDIR)$(libdir) && mv libzzip.a libzzip32.a + cd $(DESTDIR)$(libdir) && ln -s libzzip32.so libzzip.so + - cd $(DESTDIR)$(libdir) && ln -s libzzip32.a libzzip.a + cd $(DESTDIR)$(libdir) && \ + sed -e 's/zzip.so/zzip32.so/' -e 's/zzip.a/zzip32.a/' \ + libzzip.la > libzzip32.la + cd $(DESTDIR)$(libdir)/pkgconfig && \ + sed -e 's/-lzzip/-lzzip32/' -e 's/zziplib/zziplib32/' \ + zziplib.pc > zziplib32.pc +zzip-postinstall: + : "the 12.8x and 11.8x and 10.8x packages are all the same actually" + cd $(DESTDIR)$(libdir) || exit 1 \ + ; for i in libzzip*.so.1? ; do : \ + ; v10=`echo $$i | sed -e "s/.so.../.so.10/"` \ + ; v11=`echo $$i | sed -e "s/.so.../.so.11/"` \ + ; v12=`echo $$i | sed -e "s/.so.../.so.12/"` \ + ; test ! -e "$$v10" && test -e "$$v12" && test "$$v10" != "$$v12" && ln -s "$$v12" "$$v10" \ + ; test ! -e "$$v12" && test -e "$$v10" && test "$$v12" != "$$v10" && ln -s "$$v10" "$$v12" \ + ; test "$$v10" != "$$v11" && ln -s "$$v10" "$$v11" || true; done + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.mk b/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.mk new file mode 100644 index 00000000000..2fad269481a --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/Makefile.mk @@ -0,0 +1,34 @@ +PUB=pub/ + +auto: + aclocal -I m4 && autoconf -I m4 && autoheader && automake + +boottrap: + rm -rf .deps .libs + rm -f config.guess config.sub stamp-h.in + rm -f install-sh ltconfig ltmain.sh depcomp mkinstalldirs + rm -f config.h config.h.in config.log config.cache configure + rm -f aclocal.m4 Makefile Makefile.in + aclocal + autoconf + autoheader + automake -a -c + +rpm2: dist-bzip $(PACKAGE).spec + rpmbuild -ta pub/$(PACKAGE)-$(VERSION).tar.bz2 + +dist-bzip : dist-bzip2 + $(MAKE) dist-bzip2-done +dist-bzip2-done dist-done : + test -d $(PUB) || mkdir $(PUB) + @ echo cp $(BUILD)/$(PACKAGE)-$(VERSION).tar.bz2 $(PUB). \ + ; cp $(BUILD)/$(PACKAGE)-$(VERSION).tar.bz2 $(PUB). +snapshot: + $(MAKE) dist-bzip2 VERSION=`date +%Y.%m%d` +distclean-done: + - rm -r *.d + +configsub : + cp ../savannah.config/config.guess uses/config.guess + cp ../savannah.config/config.sub uses/config.sub + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/README b/Build/source/libs/zziplib/zziplib-0.13.60/README new file mode 100644 index 00000000000..5668eda043a --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/README @@ -0,0 +1,47 @@ +PROJECT + The zziplib provides read access to zipped files in a zip-archive, + using compression based solely on free algorithms provided by zlib. + It also provides a functionality to overlay the archive filesystem + with the filesystem of the operating system environment. + +AUTHOR + The project was originally written by Tomi Ollila, later largely + rewritten by Guido Draheim, and extended with contributions in + the years to follow. Guido Draheim <guidod@gmx.de> holds the full + copyright to the zziplib sources. + +COPYING + The zziplib may be used freely under the restrictions of the + GNU Lesser General Public License version 2 or later. Alternativly + the Mozilla Public license can be chosen. The sources are under + a dual license, as long as the MPL hint is not removed, the modified + files will be again under a dual license for the final recipient. + +LICENSING + If you can not use a dynalinked library according to LGPL rules, + then look at docs/copying.htm for a few hints. Generally the LGPL + has a way for staticlinking as well as the MPL has a way. Anyway, + special (paid) licenses can be negotiated with the copyright holder. + +HOMEPAGE + The zziplib project is hosted at SourceForge, the complete + documentation can be found at http://zziplib.sf.net - the + SourceForge servers are also used to distribute the sources + of the zziplib project. Releases are announced via the + freshmeat services on http://freshmeat.net/projects/zziplib + +INSTALLATION + The zziplib sources are built with gnu autotools and they should + be easy to install on unixish systems via the usual sequence of + `configure && make && make check && make install`. Many distributors + ship prebuilt packages e.g. in rpm format. Additionally there are + MSVC project files shipped along for usage with the Microsoft + VisualC series of compilers. There should be no problem either + when crosscompiling the zziplib for a third host platform. + +MAINTAINANCE + The zziplib library is intentionally a lightweight interface to + zip files. The author take patches but please consider to put + complex extensions into separate modules rather than implanting them + right into the core of the library engine. All Patches and Bug Reports + should be sent to Guido Draheim <guidod@gmx.de>. diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/SDL/Makefile.am b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/Makefile.am new file mode 100644 index 00000000000..99dd540180f --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/Makefile.am @@ -0,0 +1,57 @@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2 + +zzipsdldir = ${includedir}/SDL_rwops_zzip +zzipsdl_DATA = SDL_rwops_zzip.c SDL_rwops_zzip.h + +EXTRA_DIST = $(sdl_DATA) +check_PROGRAMS = zzcatsdl + +zzcatsdl_SOURCES = SDL_rwops_zzcat.c SDL_rwops_zzip.c +ZZIP_CFLAGS= `export PKG_CONFIG_PATH=../zzip; pkg-config zziplib --cflags` +ZZIP_LIBS= `export PKG_CONFIG_PATH=../zzip; pkg-config zziplib --libs` +SDL_CFLAGS= `export PKG_CONFIG_PATH=.; pkg-config sdl --cflags` +SDL_LIBS= `export PKG_CONFIG_PATH=.; pkg-config sdl --libs` +CFLAGS= -I$(srcdir) $(ZZIP_CFLAGS) $(SDL_CFLAGS) +LIBS= $(ZZIP_LIBS) $(SDL_LIBS) + +default: test-sdl +*.$(OBJEXT): ../zzip/zziplib.pc +../zzip/zziplib.pc : ../zzip/Makefile + cd ../zzip && $(MAKE) zziplib.pc + +test.zip : @top_srcdir@/test/test.zip + $(LN_S) $? $@ +testsdl test-sdl : test.zip zzcatsdl$(EXEEXT) + ./zzcatsdl$(EXEEXT) test/README > test.out + diff -q @top_srcdir@/README test.out && rm test.out + +all: @SDL_GENERATE@ +sdl : all +install-sdl : install-data # and not the binary + +CLEANFILES = *.pc *.omf +# ---------------------------------------------------------------------- +# we do not install a library, so this about equivalent to some SDL.pc +pkgconfigdir=$(libdir)/pkgconfig +pkgconfig_HEADERS= SDL_rwops_zzip.pc +ERRNULL= 2>/dev/null + +SDL_rwops_zzip.pc : Makefile + @ echo 'prefix=$(prefix)' >$@ + @ echo 'zzipsdldir=$(zzipsdldir)' >>$@ + @ echo " " >>$@ + @ echo "Name: SDL_rwops_zzip" >>$@ + @ echo "Version: $(VERSION)" >>$@ + @ echo "Description: SDL_rwops for ZZipLib" >>$@ + echo 'Requires: sdl, zziplib' >>$@ + echo 'Cflags: -I$${zzipsdldir}' >>$@ + +sdl-pc : sdl-uninstalled.pc +sdl-uninstalled.pc : Makefile + @ echo "prefix=`sdl-config --prefix`" >$@ + @ echo "Name: sdl" >>$@ + @ echo "Version: `sdl-config --version`" >>$@ + @ echo "Description: sdl - Simple DirectMedia Layer" >>$@ + echo "Libs: `sdl-config --libs`" >> $@ + echo "Cflags: `sdl-config --cflags`" >>$@ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/SDL/Makefile.in b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/Makefile.in new file mode 100644 index 00000000000..8239e31db4f --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/Makefile.in @@ -0,0 +1,652 @@ +# Makefile.in generated by automake 1.11.1 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@ +target_triplet = @target@ +check_PROGRAMS = zzcatsdl$(EXEEXT) +subdir = SDL +DIST_COMMON = $(pkgconfig_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \ + $(top_srcdir)/m4/ac_set_default_paths_system.m4 \ + $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \ + $(top_srcdir)/m4/acx_restrict.m4 \ + $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ + $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \ + $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \ + $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ + $(top_srcdir)/m4/ax_configure_args.m4 \ + $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ + $(top_srcdir)/m4/ax_enable_builddir_uname.m4 \ + $(top_srcdir)/m4/ax_expand_prefix.m4 \ + $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \ + $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \ + $(top_srcdir)/m4/ax_pax_tar.m4 \ + $(top_srcdir)/m4/ax_prefix_config_h.m4 \ + $(top_srcdir)/m4/ax_set_version_info.m4 \ + $(top_srcdir)/m4/ax_spec_file.m4 \ + $(top_srcdir)/m4/ax_spec_package_version.m4 \ + $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \ + $(top_srcdir)/m4/ax_warning_default_pkgconfig.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/patch_libtool_on_darwin_zsh_overquoting.m4 \ + $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \ + $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am_zzcatsdl_OBJECTS = SDL_rwops_zzcat.$(OBJEXT) \ + SDL_rwops_zzip.$(OBJEXT) +zzcatsdl_OBJECTS = $(am_zzcatsdl_OBJECTS) +zzcatsdl_LDADD = $(LDADD) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/uses/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 = $(zzcatsdl_SOURCES) +DIST_SOURCES = $(zzcatsdl_SOURCES) +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)$(zzipsdldir)" \ + "$(DESTDIR)$(pkgconfigdir)" +DATA = $(zzipsdl_DATA) +HEADERS = $(pkgconfig_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = -I$(srcdir) $(ZZIP_CFLAGS) $(SDL_CFLAGS) +CONFIG_FILES = @CONFIG_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTAR = @GNUTAR@ +GREP = @GREP@ +GTAR = @GTAR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = $(ZZIP_LIBS) $(SDL_LIBS) +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKZIP = @MKZIP@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PAX = @PAX@ +PAX_TAR_CREATE = @PAX_TAR_CREATE@ +PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELEASE_INFO = @RELEASE_INFO@ +RESOLVES = @RESOLVES@ +SDL = @SDL@ +SDL_GENERATE = @SDL_GENERATE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +THREAD_SAFE = @THREAD_SAFE@ +VERSION = @VERSION@ +VERSION_INFO = @VERSION_INFO@ +XMLTO = @XMLTO@ +ZIPTESTS = @ZIPTESTS@ +ZLIB_INCL = @ZLIB_INCL@ +ZLIB_LDIR = @ZLIB_LDIR@ +ZLIB_VERSION = @ZLIB_VERSION@ +ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@ +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@ +aclocaldir = @aclocaldir@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_enable_builddir_sed = @ax_enable_builddir_sed@ +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@ +pkgconfig_libdir = @pkgconfig_libdir@ +pkgconfig_libfile = @pkgconfig_libfile@ +# ---------------------------------------------------------------------- +# we do not install a library, so this about equivalent to some SDL.pc +pkgconfigdir = $(libdir)/pkgconfig +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2 +zzipsdldir = ${includedir}/SDL_rwops_zzip +zzipsdl_DATA = SDL_rwops_zzip.c SDL_rwops_zzip.h +EXTRA_DIST = $(sdl_DATA) +zzcatsdl_SOURCES = SDL_rwops_zzcat.c SDL_rwops_zzip.c +ZZIP_CFLAGS = `export PKG_CONFIG_PATH=../zzip; pkg-config zziplib --cflags` +ZZIP_LIBS = `export PKG_CONFIG_PATH=../zzip; pkg-config zziplib --libs` +SDL_CFLAGS = `export PKG_CONFIG_PATH=.; pkg-config sdl --cflags` +SDL_LIBS = `export PKG_CONFIG_PATH=.; pkg-config sdl --libs` +CLEANFILES = *.pc *.omf +pkgconfig_HEADERS = SDL_rwops_zzip.pc +ERRNULL = 2>/dev/null +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 SDL/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign SDL/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +zzcatsdl$(EXEEXT): $(zzcatsdl_OBJECTS) $(zzcatsdl_DEPENDENCIES) + @rm -f zzcatsdl$(EXEEXT) + $(LINK) $(zzcatsdl_OBJECTS) $(zzcatsdl_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SDL_rwops_zzcat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SDL_rwops_zzip.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 +install-zzipsdlDATA: $(zzipsdl_DATA) + @$(NORMAL_INSTALL) + test -z "$(zzipsdldir)" || $(MKDIR_P) "$(DESTDIR)$(zzipsdldir)" + @list='$(zzipsdl_DATA)'; test -n "$(zzipsdldir)" || 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)$(zzipsdldir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(zzipsdldir)" || exit $$?; \ + done + +uninstall-zzipsdlDATA: + @$(NORMAL_UNINSTALL) + @list='$(zzipsdl_DATA)'; test -n "$(zzipsdldir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(zzipsdldir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(zzipsdldir)" && rm -f $$files +install-pkgconfigHEADERS: $(pkgconfig_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || 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_HEADER) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files + +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 + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) +check: check-am +all-am: Makefile $(DATA) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(zzipsdldir)" "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(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: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + 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-pkgconfigHEADERS install-zzipsdlDATA + +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: uninstall-pkgconfigHEADERS uninstall-zzipsdlDATA + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool 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-pkgconfigHEADERS install-ps install-ps-am \ + install-strip install-zzipsdlDATA 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 uninstall-pkgconfigHEADERS uninstall-zzipsdlDATA + + +default: test-sdl +*.$(OBJEXT): ../zzip/zziplib.pc +../zzip/zziplib.pc : ../zzip/Makefile + cd ../zzip && $(MAKE) zziplib.pc + +test.zip : @top_srcdir@/test/test.zip + $(LN_S) $? $@ +testsdl test-sdl : test.zip zzcatsdl$(EXEEXT) + ./zzcatsdl$(EXEEXT) test/README > test.out + diff -q @top_srcdir@/README test.out && rm test.out + +all: @SDL_GENERATE@ +sdl : all +install-sdl : install-data # and not the binary + +SDL_rwops_zzip.pc : Makefile + @ echo 'prefix=$(prefix)' >$@ + @ echo 'zzipsdldir=$(zzipsdldir)' >>$@ + @ echo " " >>$@ + @ echo "Name: SDL_rwops_zzip" >>$@ + @ echo "Version: $(VERSION)" >>$@ + @ echo "Description: SDL_rwops for ZZipLib" >>$@ + echo 'Requires: sdl, zziplib' >>$@ + echo 'Cflags: -I$${zzipsdldir}' >>$@ + +sdl-pc : sdl-uninstalled.pc +sdl-uninstalled.pc : Makefile + @ echo "prefix=`sdl-config --prefix`" >$@ + @ echo "Name: sdl" >>$@ + @ echo "Version: `sdl-config --version`" >>$@ + @ echo "Description: sdl - Simple DirectMedia Layer" >>$@ + echo "Libs: `sdl-config --libs`" >> $@ + echo "Cflags: `sdl-config --cflags`" >>$@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzcat.c b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzcat.c new file mode 100644 index 00000000000..d8706b1da29 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzcat.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2001 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB License + * + * (this example uses errno which might not be multithreaded everywhere) + */ + +#include <SDL_rwops_zzip.h> +#include <stdlib.h> /* exit */ + +/* mostly a copy from zzcat.c */ + +int main (int argc, char** argv) +{ + static const char usage[] = + " zzcat <file>... \n" + " - prints the file to stdout. the file can be a normal file\n" + " or an inflated part of a zip-archive \n" + ; + + int argn; + if (argc <= 1) + { + printf (usage); + exit (0); + } + + for (argn=1; argn < argc; argn++) + { + SDL_RWops* rwops; + + rwops = SDL_RWFromZZIP (argv[argn], "rb"); + if (! rwops) + { + perror (argv[argn]); + continue; + }else{ + char buf[17]; + int n; + + /* read chunks of 16 bytes into buf and print them to stdout */ + while (0 < (n = SDL_RWread(rwops, buf, 1, 16))) + { + buf[n] = '\0'; +# ifdef STDOUT_FILENO + write (STDOUT_FILENO, buf, n); +# else + fwrite (buf, 1, n, stdout); +# endif + } + + if (n == -1) + perror (argv[argn]); + + SDL_RWclose (rwops); + } + } + + return 0; +} + + + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.c b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.c new file mode 100644 index 00000000000..b273a811470 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2001 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB License + * + * (this example uses errno which might not be multithreaded everywhere) + */ + +#include <SDL_rwops_zzip.h> +#include <zzip/zzip.h> +#include <string.h> /* strchr */ + +/* MSVC can not take a casted variable as an lvalue ! */ +#define SDL_RWOPS_ZZIP_DATA(_context) \ + ((_context)->hidden.unknown.data1) +#define SDL_RWOPS_ZZIP_FILE(_context) (ZZIP_FILE*) \ + ((_context)->hidden.unknown.data1) + +static int _zzip_seek(SDL_RWops *context, int offset, int whence) +{ + return zzip_seek(SDL_RWOPS_ZZIP_FILE(context), offset, whence); +} + +static int _zzip_read(SDL_RWops *context, void *ptr, int size, int maxnum) +{ + return zzip_read(SDL_RWOPS_ZZIP_FILE(context), ptr, size*maxnum) / size; +} + +static int _zzip_write(SDL_RWops *context, const void *ptr, int size, int num) +{ + return 0; /* ignored */ +} + +static int _zzip_close(SDL_RWops *context) +{ + if (! context) return 0; /* may be SDL_RWclose is called by atexit */ + + zzip_close (SDL_RWOPS_ZZIP_FILE(context)); + SDL_FreeRW (context); + return 0; +} + +SDL_RWops *SDL_RWFromZZIP(const char* file, const char* mode) +{ + register SDL_RWops* rwops; + register ZZIP_FILE* zzip_file; + + if (! strchr (mode, 'r')) + return SDL_RWFromFile(file, mode); + + zzip_file = zzip_fopen (file, mode); + if (! zzip_file) return 0; + + rwops = SDL_AllocRW (); + if (! rwops) { errno=ENOMEM; zzip_close (zzip_file); return 0; } + + SDL_RWOPS_ZZIP_DATA(rwops) = zzip_file; + rwops->read = _zzip_read; + rwops->write = _zzip_write; + rwops->seek = _zzip_seek; + rwops->close = _zzip_close; + return rwops; +} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.h b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.h new file mode 100644 index 00000000000..1a2d188de83 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2001 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB License + * + * You should be able to drop it in the place of a SDL_RWFromFile. Then + * go to X/share/myapp and do `cd graphics && zip -9r ../graphics.zip .` + * and rename the graphics/ subfolder - and still all your files + * are found: a filepath like X/shared/graphics/game/greetings.bmp + * will open X/shared/graphics.zip and return the zipped file + * game/greetings.bmp in the zip-archive (for reading that is). + * + */ + +#ifndef _SDL_RWops_ZZIP_h +#define _SDL_RWops_ZZIP_h + +#include <SDL_rwops.h> + +#ifndef ZZIP_NO_DECLSPEC +#define ZZIP_DECLSPEC +#else /* use DECLSPEC from SDL/begin_code.h */ +#define ZZIP_DECLSPEC DECLSPEC +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +extern ZZIP_DECLSPEC +SDL_RWops *SDL_RWFromZZIP(const char* file, const char* mode); + +#ifdef __cplusplus +} /* extern C */ +#endif + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.pc b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.pc new file mode 100644 index 00000000000..433b19ee77e --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/SDL/SDL_rwops_zzip.pc @@ -0,0 +1,8 @@ +prefix=/usr/local +zzipsdldir=/usr/local/include/SDL_rwops_zzip + +Name: SDL_rwops_zzip +Version: 0.13.60 +Description: SDL_rwops for ZZipLib +Requires: sdl, zziplib +Cflags: -I${zzipsdldir} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/TODO b/Build/source/libs/zziplib/zziplib-0.13.60/TODO new file mode 100644 index 00000000000..bda20cdc46d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/TODO @@ -0,0 +1,111 @@ +SHORTTERM +- handle international filenames more gracefully (unicode API?) +- most is multithreaded ... but zzip_dir_open (Thorsten Schöning) +- rboerdijk@ does also report errors on overlapping reads, another + one pointed to the usage of seek_set that may cause the problems +- ubuntu packager added man.1 for the zz*-binaries, could be upstream. + + + + +WISHLIST + +- Check the CRC value at the end of read... and add more error codes. + +- Do more test. Currently use only with tested "friendly" archives. + This is also related to usages of zziplib in virus detection + code which should better have a hardened library code. That does + also include inflate interface code to need the most testing. + +- the buffer reusage code was not strictly multithreading. It should + be fixed by now but it would be better to have an automatic test + routine to check reentrancy/multithreaded functionality. + +- Sligthly More documentation. With the generation of man pages and + multiple pages for the website, it does already look acceptable. + It should still get better of course - kinda newbie friendly *g* + +- Boris Schäling likes to open a zzip archive in memory. + +KNOWN PROBLEMS + +The win32 compilers need each a different config.h derivate that +matches both the headers shipped with the compiler and installed +with updates of the SDK. There is no autoconfigure on win32 as +that - unless you install some unix tools along. + +The sparc-sun-solaris2.* will utter warnings for "char subscript" +which is caused by isdigit() from ctype.h - this will NOT FIX as +it is only in the example source code and we want to keep those +lean and mean to make them easy to adopt by developers. + +The hppa1.1-hp-hpux10.20 did show spurious problems of making +shared libraries - this may well fix with an update of the +libtool package, the libtool 1.4 is dated 2001/04/24 + +There are reports of misaligned access to some zip fields that +I would guess to be on little-endian non-x86 platforms. The current +bytewise access of multibyte fields is targetted towards the +bigendian unix machines. The fix would need to go to fetch.h but +so far no response came about as that one could test a solution. + +There are spurious reports of users on win32 platforms that tell +of some problems with a specific zip file they have but it was +not possible so far to recreate an environment abroad to show +the problem too. One can not say if that is due some general +instability out of DLL hell, or if there is a bug hiding somewhere. +Please send all those zip files to the maintainer, perhaps it +can help to find the real cause (I doubt it is in zziplib, but..) + +Since lately the xml docbook tools have hardened the checks on the +input xml that is used for manpage generation. Interestingly the +resulting manpages are still okay but one should try to fixaway the +warnings as may be later the result would lead to garbage output +due more changes in the tools. Needs to change the xml generator +used in zzip (a python script). + +TESTED PLATFORMS +sparc-sun-solaris2.6/gcc2.95.3 +sparc-sun-solaris2.8/gcc2.95.3 +hppa1.1-hp-hpux10.20 +i686-mandrake-linux-9.0/gcc3.2 +i686-mandrake-linux-9.1/gcc3.2.2 +i686-debian-linux-2.2/gcc2.95.2 +i386-unknown-freebsd4.7/gcc2.95.4 (formerly with wrapwrap) +powerpc-apple-darwin5.5 (formerly with wrapwrap) +alphaev67-unknown-linux-gnu/gcc2.95.4 (that's a 64bit platform) +i386-ms-win32/msvc6 +i386-ms-win32/msvc7 +i386-ms-win32/mingw+msys +... and probably a lot of others not known to the maintainer. + +Additionally, note that Sourceforge has discontinued their compilefarm +server laboratory. That makes it unlikely that proper support for +crossplatform functionality can be provided. Expect a compile problem +here or there - the code however should be prepared to get around any +problems easily. Send patches! (especially Linux distributions makers +are usually not sending their patches to upstream maintainers). + +Note: the latest cross platform tests are done indirectly by using +the build.opensuse.org rpm packaging where one can run "make check" +just before doing the "make install" of the compiled library. + + +SUSE BUILDSERVER INFO + +I: A function overflows or underflows an array access. This could be a real error, +but occasionaly this condition is also misdetected due to loop unrolling or strange pointer +handling. So this is warning only, please review. +W: zziplib arraysubscript ../../zzip/memdisk.c:114 + +I: File is compiled without RPM_OPT_FLAGS +W: zziplib no-rpm-opt-flags <cmdline>:../../SDL/SDL_rwops_zzcat.c, ../../SDL/SDL_rwops_zzip.c + +I: Program is likely to break with new gcc. Try -fno-strict-aliasing. +W: zziplib strict-aliasing-punning ../../zzip/file.c:275 +W: zziplib strict-aliasing-punning ../../zzip/fseeko.c:99, 126, 147, 158, 182, 281, 288, 301, 360, 539, 543, 546, 563 +W: zziplib strict-aliasing-punning ../../zzip/memdisk.c:181, 182, 183, 185, 186, 187, 188, 189, 192, 193, 194, 195, 247, 455, 456 +W: zziplib strict-aliasing-punning ../../zzip/mmapped.c:277, 289, 311, 314, 339, 340, 393, 397, 410, 438, 440, 443, 444, 549, 551, 552, 558, 559, 561 +W: zziplib strict-aliasing-punning ../../zzip/zip.c:318, 320, 321, 322, 339, 341, 342, 343, 484, 485, 486, 497, 498, 499, 500, 501 +E: zziplib 64bit-portability-issue ../../zzip/memdisk.c:112 +System halted. diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/Makefile.am b/Build/source/libs/zziplib/zziplib-0.13.60/bins/Makefile.am new file mode 100644 index 00000000000..a65b939f0ca --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/Makefile.am @@ -0,0 +1,42 @@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2 +DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir) +DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4 + +bin_PROGRAMS = zzcat zzdir zzxorcat zzxordir zzxorcopy \ + unzzip unzzipdir unzzipcat unzzipcat-seeko \ + unzzipdir-mem unzzipcat-mem unzip-mem +noinst_PROGRAMS = zziptest zzobfuscated zzip +aclocaldir = $(datadir)/aclocal +aclocal_DATA = zziplib.m4 +# +VERSION_INFO=@VERSION_INFO@ +RELEASE_INFO=@RELEASE_INFO@ +THREAD_SAFE=@THREAD_SAFE@ +# + +WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt + +EXTRA_DIST = $(aclocal_DATA) +CLEANFILES = $(WCC10_CLEAN) + +unzzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zziptest_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzdir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzxorcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzxordir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzobfuscated_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz + +# these use the simplified mmapped disk version +unzzipdir_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +unzzipcat_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +unzzipdir_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +unzzipcat_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +unzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +# and this uses the simplified fseeko stdio version +unzzipcat_seeko_LDADD = ../zzip/libzzipfseeko.la @RESOLVES@ -lz + +../zzip/libzzip.la : @top_srcdir@/zzip/*.c + (cd ../zzip && $(MAKE) `basename $@`) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/Makefile.in b/Build/source/libs/zziplib/zziplib-0.13.60/bins/Makefile.in new file mode 100644 index 00000000000..8c17c16ea41 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/Makefile.in @@ -0,0 +1,759 @@ +# Makefile.in generated by automake 1.11.1 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@ +target_triplet = @target@ +bin_PROGRAMS = zzcat$(EXEEXT) zzdir$(EXEEXT) zzxorcat$(EXEEXT) \ + zzxordir$(EXEEXT) zzxorcopy$(EXEEXT) unzzip$(EXEEXT) \ + unzzipdir$(EXEEXT) unzzipcat$(EXEEXT) unzzipcat-seeko$(EXEEXT) \ + unzzipdir-mem$(EXEEXT) unzzipcat-mem$(EXEEXT) \ + unzip-mem$(EXEEXT) +noinst_PROGRAMS = zziptest$(EXEEXT) zzobfuscated$(EXEEXT) \ + zzip$(EXEEXT) +subdir = bins +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \ + $(top_srcdir)/m4/ac_set_default_paths_system.m4 \ + $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \ + $(top_srcdir)/m4/acx_restrict.m4 \ + $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ + $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \ + $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \ + $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ + $(top_srcdir)/m4/ax_configure_args.m4 \ + $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ + $(top_srcdir)/m4/ax_enable_builddir_uname.m4 \ + $(top_srcdir)/m4/ax_expand_prefix.m4 \ + $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \ + $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \ + $(top_srcdir)/m4/ax_pax_tar.m4 \ + $(top_srcdir)/m4/ax_prefix_config_h.m4 \ + $(top_srcdir)/m4/ax_set_version_info.m4 \ + $(top_srcdir)/m4/ax_spec_file.m4 \ + $(top_srcdir)/m4/ax_spec_package_version.m4 \ + $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \ + $(top_srcdir)/m4/ax_warning_default_pkgconfig.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/patch_libtool_on_darwin_zsh_overquoting.m4 \ + $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \ + $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(aclocaldir)" +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +unzip_mem_SOURCES = unzip-mem.c +unzip_mem_OBJECTS = unzip-mem.$(OBJEXT) +unzip_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la +unzzip_SOURCES = unzzip.c +unzzip_OBJECTS = unzzip.$(OBJEXT) +unzzip_DEPENDENCIES = ../zzip/libzzip.la +unzzipcat_SOURCES = unzzipcat.c +unzzipcat_OBJECTS = unzzipcat.$(OBJEXT) +unzzipcat_DEPENDENCIES = ../zzip/libzzipmmapped.la +unzzipcat_mem_SOURCES = unzzipcat-mem.c +unzzipcat_mem_OBJECTS = unzzipcat-mem.$(OBJEXT) +unzzipcat_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la +unzzipcat_seeko_SOURCES = unzzipcat-seeko.c +unzzipcat_seeko_OBJECTS = unzzipcat-seeko.$(OBJEXT) +unzzipcat_seeko_DEPENDENCIES = ../zzip/libzzipfseeko.la +unzzipdir_SOURCES = unzzipdir.c +unzzipdir_OBJECTS = unzzipdir.$(OBJEXT) +unzzipdir_DEPENDENCIES = ../zzip/libzzipmmapped.la +unzzipdir_mem_SOURCES = unzzipdir-mem.c +unzzipdir_mem_OBJECTS = unzzipdir-mem.$(OBJEXT) +unzzipdir_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la +zzcat_SOURCES = zzcat.c +zzcat_OBJECTS = zzcat.$(OBJEXT) +zzcat_DEPENDENCIES = ../zzip/libzzip.la +zzdir_SOURCES = zzdir.c +zzdir_OBJECTS = zzdir.$(OBJEXT) +zzdir_DEPENDENCIES = ../zzip/libzzip.la +zzip_SOURCES = zzip.c +zzip_OBJECTS = zzip.$(OBJEXT) +zzip_DEPENDENCIES = ../zzip/libzzip.la +zziptest_SOURCES = zziptest.c +zziptest_OBJECTS = zziptest.$(OBJEXT) +zziptest_DEPENDENCIES = ../zzip/libzzip.la +zzobfuscated_SOURCES = zzobfuscated.c +zzobfuscated_OBJECTS = zzobfuscated.$(OBJEXT) +zzobfuscated_DEPENDENCIES = ../zzip/libzzip.la +zzxorcat_SOURCES = zzxorcat.c +zzxorcat_OBJECTS = zzxorcat.$(OBJEXT) +zzxorcat_DEPENDENCIES = ../zzip/libzzip.la +zzxorcopy_SOURCES = zzxorcopy.c +zzxorcopy_OBJECTS = zzxorcopy.$(OBJEXT) +zzxorcopy_LDADD = $(LDADD) +zzxordir_SOURCES = zzxordir.c +zzxordir_OBJECTS = zzxordir.$(OBJEXT) +zzxordir_DEPENDENCIES = ../zzip/libzzip.la +depcomp = $(SHELL) $(top_srcdir)/uses/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 = unzip-mem.c unzzip.c unzzipcat.c unzzipcat-mem.c \ + unzzipcat-seeko.c unzzipdir.c unzzipdir-mem.c zzcat.c zzdir.c \ + zzip.c zziptest.c zzobfuscated.c zzxorcat.c zzxorcopy.c \ + zzxordir.c +DIST_SOURCES = unzip-mem.c unzzip.c unzzipcat.c unzzipcat-mem.c \ + unzzipcat-seeko.c unzzipdir.c unzzipdir-mem.c zzcat.c zzdir.c \ + zzip.c zziptest.c zzobfuscated.c zzxorcat.c zzxorcopy.c \ + zzxordir.c +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' +DATA = $(aclocal_DATA) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CONFIG_FILES = @CONFIG_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4 +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTAR = @GNUTAR@ +GREP = @GREP@ +GTAR = @GTAR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKZIP = @MKZIP@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PAX = @PAX@ +PAX_TAR_CREATE = @PAX_TAR_CREATE@ +PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELEASE_INFO = @RELEASE_INFO@ +RESOLVES = @RESOLVES@ +SDL = @SDL@ +SDL_GENERATE = @SDL_GENERATE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +THREAD_SAFE = @THREAD_SAFE@ +VERSION = @VERSION@ +# +VERSION_INFO = @VERSION_INFO@ +XMLTO = @XMLTO@ +ZIPTESTS = @ZIPTESTS@ +ZLIB_INCL = @ZLIB_INCL@ +ZLIB_LDIR = @ZLIB_LDIR@ +ZLIB_VERSION = @ZLIB_VERSION@ +ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@ +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@ +aclocaldir = $(datadir)/aclocal +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_enable_builddir_sed = @ax_enable_builddir_sed@ +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@ +pkgconfig_libdir = @pkgconfig_libdir@ +pkgconfig_libfile = @pkgconfig_libfile@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2 +DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir) +aclocal_DATA = zziplib.m4 +# +WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt +EXTRA_DIST = $(aclocal_DATA) +CLEANFILES = $(WCC10_CLEAN) +unzzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zziptest_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzdir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzxorcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzxordir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +zzobfuscated_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz + +# these use the simplified mmapped disk version +unzzipdir_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +unzzipcat_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +unzzipdir_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +unzzipcat_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +unzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz +# and this uses the simplified fseeko stdio version +unzzipcat_seeko_LDADD = ../zzip/libzzipfseeko.la @RESOLVES@ -lz +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 bins/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign bins/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +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 +unzip-mem$(EXEEXT): $(unzip_mem_OBJECTS) $(unzip_mem_DEPENDENCIES) + @rm -f unzip-mem$(EXEEXT) + $(LINK) $(unzip_mem_OBJECTS) $(unzip_mem_LDADD) $(LIBS) +unzzip$(EXEEXT): $(unzzip_OBJECTS) $(unzzip_DEPENDENCIES) + @rm -f unzzip$(EXEEXT) + $(LINK) $(unzzip_OBJECTS) $(unzzip_LDADD) $(LIBS) +unzzipcat$(EXEEXT): $(unzzipcat_OBJECTS) $(unzzipcat_DEPENDENCIES) + @rm -f unzzipcat$(EXEEXT) + $(LINK) $(unzzipcat_OBJECTS) $(unzzipcat_LDADD) $(LIBS) +unzzipcat-mem$(EXEEXT): $(unzzipcat_mem_OBJECTS) $(unzzipcat_mem_DEPENDENCIES) + @rm -f unzzipcat-mem$(EXEEXT) + $(LINK) $(unzzipcat_mem_OBJECTS) $(unzzipcat_mem_LDADD) $(LIBS) +unzzipcat-seeko$(EXEEXT): $(unzzipcat_seeko_OBJECTS) $(unzzipcat_seeko_DEPENDENCIES) + @rm -f unzzipcat-seeko$(EXEEXT) + $(LINK) $(unzzipcat_seeko_OBJECTS) $(unzzipcat_seeko_LDADD) $(LIBS) +unzzipdir$(EXEEXT): $(unzzipdir_OBJECTS) $(unzzipdir_DEPENDENCIES) + @rm -f unzzipdir$(EXEEXT) + $(LINK) $(unzzipdir_OBJECTS) $(unzzipdir_LDADD) $(LIBS) +unzzipdir-mem$(EXEEXT): $(unzzipdir_mem_OBJECTS) $(unzzipdir_mem_DEPENDENCIES) + @rm -f unzzipdir-mem$(EXEEXT) + $(LINK) $(unzzipdir_mem_OBJECTS) $(unzzipdir_mem_LDADD) $(LIBS) +zzcat$(EXEEXT): $(zzcat_OBJECTS) $(zzcat_DEPENDENCIES) + @rm -f zzcat$(EXEEXT) + $(LINK) $(zzcat_OBJECTS) $(zzcat_LDADD) $(LIBS) +zzdir$(EXEEXT): $(zzdir_OBJECTS) $(zzdir_DEPENDENCIES) + @rm -f zzdir$(EXEEXT) + $(LINK) $(zzdir_OBJECTS) $(zzdir_LDADD) $(LIBS) +zzip$(EXEEXT): $(zzip_OBJECTS) $(zzip_DEPENDENCIES) + @rm -f zzip$(EXEEXT) + $(LINK) $(zzip_OBJECTS) $(zzip_LDADD) $(LIBS) +zziptest$(EXEEXT): $(zziptest_OBJECTS) $(zziptest_DEPENDENCIES) + @rm -f zziptest$(EXEEXT) + $(LINK) $(zziptest_OBJECTS) $(zziptest_LDADD) $(LIBS) +zzobfuscated$(EXEEXT): $(zzobfuscated_OBJECTS) $(zzobfuscated_DEPENDENCIES) + @rm -f zzobfuscated$(EXEEXT) + $(LINK) $(zzobfuscated_OBJECTS) $(zzobfuscated_LDADD) $(LIBS) +zzxorcat$(EXEEXT): $(zzxorcat_OBJECTS) $(zzxorcat_DEPENDENCIES) + @rm -f zzxorcat$(EXEEXT) + $(LINK) $(zzxorcat_OBJECTS) $(zzxorcat_LDADD) $(LIBS) +zzxorcopy$(EXEEXT): $(zzxorcopy_OBJECTS) $(zzxorcopy_DEPENDENCIES) + @rm -f zzxorcopy$(EXEEXT) + $(LINK) $(zzxorcopy_OBJECTS) $(zzxorcopy_LDADD) $(LIBS) +zzxordir$(EXEEXT): $(zzxordir_OBJECTS) $(zzxordir_DEPENDENCIES) + @rm -f zzxordir$(EXEEXT) + $(LINK) $(zzxordir_OBJECTS) $(zzxordir_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzip-mem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipcat-mem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipcat-seeko.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipcat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipdir-mem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipdir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzcat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzdir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zziptest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzobfuscated.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzxorcat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzxorcopy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzxordir.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 +install-aclocalDATA: $(aclocal_DATA) + @$(NORMAL_INSTALL) + test -z "$(aclocaldir)" || $(MKDIR_P) "$(DESTDIR)$(aclocaldir)" + @list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || 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)$(aclocaldir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(aclocaldir)" || exit $$?; \ + done + +uninstall-aclocalDATA: + @$(NORMAL_UNINSTALL) + @list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(aclocaldir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(aclocaldir)" && rm -f $$files + +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) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(aclocaldir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(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: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS 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-aclocalDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-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: uninstall-aclocalDATA uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + 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-aclocalDATA install-am \ + install-binPROGRAMS 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-aclocalDATA \ + uninstall-am uninstall-binPROGRAMS + + +../zzip/libzzip.la : @top_srcdir@/zzip/*.c + (cd ../zzip && $(MAKE) `basename $@`) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzip-mem.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzip-mem.c new file mode 100644 index 00000000000..3f7d7f0631e --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzip-mem.c @@ -0,0 +1,420 @@ +/* + * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * This file is used as an example to clarify zzipmmap api usage. + */ + +#include <zlib.h> /* crc32 */ + +#include <zzip/memdisk.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#endif +#ifdef ZZIP_HAVE_IO_H +#include <io.h> +#endif + +#include <time.h> + +#ifdef ZZIP_HAVE_FNMATCH_H +#include <fnmatch.h> +#else +#define fnmatch(x,y,z) strcmp(x,y) +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#define ___ { +#define ____ } + +#define EXIT_SUCCESS 0 +#define EXIT_WARNINGS 1 +#define EXIT_ERRORS 2 +#define EXIT_EFORMAT 3 +#define EXIT_ENOMEM 4 +#define EXIT_ENOTTY 5 +#define EXIT_EINFLATE 6 +#define EXIT_ENOARCH 9 +#define EXIT_EOPTION 10 +#define EXIT_ENOFILE 11 +#define EXIT_EDISKFULL 50 +#define EXIT_EPREMATURE 51 +#define EXIT_USERABORT 80 +#define EXIT_BADCOMPRESSION 81 +#define EXIT_BADPASSWORD 82 + +static int status = EXIT_SUCCESS; +static int option_list = 0; /* "-l" */ +static int option_pipe = 0; /* "-p" */ +static int option_verbose = 0; /* "-v" */ +static int option_testcrc = 0; /* "-t" */ +static int option_binary = 0; /* "-b" */ +static int option_nocase = 0; /* "-C" */ +static int option_junkpaths = 0; /* "-j" */ +static int option_dosfiles = 0; /* "-L" */ +static int option_keepold = 0; /* "-n" */ +static int option_overwrite = 0; /* "-o" */ +static int option_quiet = 0; /* "-q" */ +static int option_permbits = 0; /* "-X" */ + +static const char usage[] = +{ + "unzzip-mem <zip> [names].. \n" + " - unzzip a zip archive.\n" + "options:\n" + " -l list archive files (name, usize, mtime, comments)\n" /* +totals */ + " -p extract archive files to pipe, i.e. stdout (binary mode)\n" + " -t test archive files (check the crc values)\n" + " -v verbose list of archive files\n" + " -b accept and ignore (force binary extract)\n" + " -C match filenames case-insensitively\n" + " -j junk paths (do not recreate directory structure)\n" + " -L convert dos filenames to lowercase upon extract\n" + " -n never overwrite existing files\n" + " -o always overwrite existing files\n" + " -q quite operation\n" + " -X restore user/owner attributes of files\n" +}; + +static void zzip_mem_entry_pipe(ZZIP_MEM_DISK* disk, + ZZIP_MEM_ENTRY* entry, FILE* out) +{ + ZZIP_DISK_FILE* file = zzip_mem_entry_fopen (disk, entry); + if (file) + { + char buffer[1024]; int len; + while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file))) + fwrite (buffer, len, 1, out); + + zzip_mem_disk_fclose (file); + } +} + +static void zzip_mem_entry_make(ZZIP_MEM_DISK* disk, + ZZIP_MEM_ENTRY* entry) +{ + FILE* file = fopen (entry->zz_name, "w"); + if (file) { zzip_mem_entry_pipe (disk, entry, file); fclose (file); } + perror (entry->zz_name); + if (status < EXIT_WARNINGS) status = EXIT_WARNINGS; +} + +/* ------------------------- test ------------------------------------ */ + +static char* archive = 0; +static int test_errors = 0; + +static void zzip_mem_entry_test(ZZIP_MEM_DISK* disk, + ZZIP_MEM_ENTRY* entry) +{ + ZZIP_DISK_FILE* file = zzip_mem_entry_fopen (disk, entry); + printf (" testing: %s ", entry->zz_name); + if (strlen (entry->zz_name) < 24) { + printf ("%.*s", 24 - (int) strlen (entry->zz_name), + " "); + } + if (file) + { + unsigned long crc = crc32 (0L, NULL, 0); + unsigned char buffer[1024]; int len; + while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file))) { + crc = crc32 (crc, buffer, len); + } + + zzip_mem_disk_fclose (file); + if (crc == (unsigned long) entry->zz_crc32) { + printf ("OK\n"); + } else { + printf ("BAD %lx (should be %lx)\n", crc, entry->zz_crc32); + test_errors ++; + } + } else { + printf ("ERROR (no such file)\n"); + test_errors ++; + } +} + +static void zzip_mem_entry_test_start(void) +{ + test_errors = 0; + printf ("Archive: %s\n", archive); +} + +static void zzip_mem_entry_test_done(void) +{ + if (test_errors == 0) { + printf ("No errors detected in compressed data of %s\n", archive); + } else { + printf ("%i errors detected in compressed data of %s\n", + test_errors, archive); + } +} + +/* ------------------------- list ------------------------------------ */ + +static char _zzip_time_[30]; +static char* _zzip_ctime (const time_t* timeval) +{ + struct tm* date = localtime (timeval); + sprintf (_zzip_time_, "%02i-%02i-%02i %02i:%02i", + date->tm_mon, date->tm_mday, date->tm_year%100, + date->tm_hour, date->tm_min); + return _zzip_time_; +} + +static const char* comprlevel[] = { + "stored", "shrunk", "redu:1", "redu:2", "redu:3", "redu:4", + "impl:N", "toknze", "defl:N", "defl:B", "impl:B" }; + +zzip_off_t sum_usize = 0; +zzip_off_t sum_csize = 0; +zzip_off_t sum_files = 0; +#define L (long) + +static void zzip_mem_entry_direntry_start (void) +{ + sum_usize = 0; + sum_csize = 0; + sum_files = 0; + if (option_verbose) goto verbose; + printf(" Length Date & Time Name\n"); + printf(" -------- ---- ---- ----\n"); + return; + verbose: + printf(" Length Method Size Ratio Date Time CRC-32 Name\n"); + printf("-------- ------ ------- ----- ---- ---- ------ ----\n"); +} + +static void zzip_mem_entry_direntry_done (void) +{ + char exp = ' '; + if (sum_usize / 1024 > 1024*1024*1024) { exp = 'G'; + sum_usize /= 1024*1024*1024; sum_usize /= 1024*1024*1024; } + if (sum_usize > 1024*1024*1024) { exp = 'M'; + sum_usize /= 1024*1024; sum_csize /= 1024*1024; } + if (sum_usize > 1024*1024) { exp = 'K'; + sum_usize /= 1024; sum_csize /= 1024; } + if (option_verbose) goto verbose; + printf(" -------- ----\n"); + printf(" %8li%c %8li %s\n", L sum_usize, exp, L sum_files, + sum_files == 1 ? "file" : "files"); + return; + verbose: + printf("-------- ------ ------- ----- ----\n"); + printf("%8li%c %8li%c %3li%% %8li %s\n", + L sum_usize, exp, L sum_csize, exp, + L (100 - (sum_csize*100/sum_usize)), L sum_files, + sum_files == 1 ? "file" : "files"); +} + +static void zzip_mem_entry_direntry(ZZIP_MEM_ENTRY* entry) +{ + char* name = zzip_mem_entry_to_name (entry); + zzip_off_t usize = zzip_mem_entry_usize (entry); + zzip_off_t csize = zzip_mem_entry_csize (entry); + int compr = zzip_mem_entry_data_comprlevel (entry); + time_t mtime = entry->zz_mktime; + long crc32 = entry->zz_crc32; + const char* comment = zzip_mem_entry_to_comment (entry); + char exp = ' '; + + sum_usize += usize; + sum_csize += csize; + sum_files += 1; + + if (usize / 1024 > 1024*1024*1024) { exp = 'G'; + usize /= 1024*1024*1024; usize /= 1024*1024*1024; } + if (usize > 1024*1024*1024) { exp = 'M'; + usize /= 1024*1024; csize /= 1024*1024; } + if (usize > 1024*1024) { exp = 'K'; + usize /= 1024; csize /= 1024; } + + if (! comment) comment = ""; + if (*name == '\n') name++; + + if (option_verbose) { + printf("%8li%c %s %8li%c%3li%% %s %8lx %s %s\n", + L usize, exp, comprlevel[compr], L csize, exp, + L (100 - (csize*100/usize)), + _zzip_ctime(&mtime), crc32, name, comment); + } else { + printf(" %8li%c %s %s %s\n", + L usize, exp, _zzip_ctime(&mtime), name, comment); + } +} + +static void zzip_mem_entry_listfiles(ZZIP_MEM_DISK* disk, char* filespec) +{ + zzip_mem_entry_direntry_start (); + ___ ZZIP_MEM_ENTRY* entry = 0; + while ((entry = zzip_mem_disk_findmatch(disk, filespec, entry, 0, 0))) + zzip_mem_entry_direntry (entry); ____; + zzip_mem_entry_direntry_done (); +} + +static void zzip_mem_entry_listall(ZZIP_MEM_DISK* disk) +{ + zzip_mem_entry_direntry_start (); + ___ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk); + for (; entry ; entry = zzip_mem_disk_findnext(disk, entry)) + zzip_mem_entry_direntry (entry); ____; + zzip_mem_entry_direntry_done (); +} + +static void zzip_mem_entry_testfiles(ZZIP_MEM_DISK* disk, char* filespec) +{ + zzip_mem_entry_test_start (); + ___ ZZIP_MEM_ENTRY* entry = 0; + while ((entry = zzip_mem_disk_findmatch(disk, filespec, entry, 0, 0))) + zzip_mem_entry_test (disk, entry); ____; + zzip_mem_entry_test_done (); +} + +static void zzip_mem_entry_testall(ZZIP_MEM_DISK* disk) +{ + zzip_mem_entry_test_start (); + ___ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk); + for (; entry ; entry = zzip_mem_disk_findnext(disk, entry)) + zzip_mem_entry_test (disk, entry); ____; + zzip_mem_entry_test_done (); +} + +static void zzip_mem_entry_pipefiles(ZZIP_MEM_DISK* disk, char* filespec) +{ + ZZIP_MEM_ENTRY* entry = 0; + while ((entry = zzip_mem_disk_findmatch(disk, filespec, entry, 0, 0))) + zzip_mem_entry_pipe (disk, entry, stdout); +} + +static void zzip_mem_entry_pipeall(ZZIP_MEM_DISK* disk) +{ + ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk); + for (; entry ; entry = zzip_mem_disk_findnext(disk, entry)) + zzip_mem_entry_pipe (disk, entry, stdout); +} + +static void zzip_mem_entry_makefiles(ZZIP_MEM_DISK* disk, char* filespec) +{ + ZZIP_MEM_ENTRY* entry = 0; + while ((entry = zzip_mem_disk_findmatch(disk, filespec, entry, 0, 0))) + zzip_mem_entry_make (disk, entry); +} + +static void zzip_mem_entry_makeall(ZZIP_MEM_DISK* disk) +{ + ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk); + for (; entry ; entry = zzip_mem_disk_findnext(disk, entry)) + zzip_mem_entry_make (disk, entry); +} + +int +main (int argc, char ** argv) +{ + int argn; int archname = 0; int filespec = 0; + ZZIP_MEM_DISK* disk; + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + for (argn=1; argn < argc; argn++) { + if ((argv[argn])[0] == '-') { + int x = 1; + while ((argv[argn])[x]) { + switch (argv[argn][x]) { + case 'l': option_list++; break; + case 'p': option_pipe++; break; + case 't': option_testcrc++; break; + case 'v': option_verbose++; break; + case 'b': option_binary++; break; + case 'C': option_nocase++; break; + case 'j': option_junkpaths++; break; + case 'L': option_dosfiles++; break; + case 'n': option_keepold++; break; + case 'o': option_overwrite++; break; + case 'q': option_quiet++; break; + case 'X': option_permbits++; break; + } + x++; + } + (argv[argn])[0] = 0; + } else { + if (! archname) { archname = argn; continue; } + if (! filespec) { filespec = argn; continue; } + } + } + + if (! archname) { + printf (usage); + return 0; + } else archive = argv[archname]; + + disk = zzip_mem_disk_open (argv[archname]); + if (! disk) { + perror(argv[archname]); + return -1; + } + + if (option_list || option_verbose) { + if (! filespec) { + zzip_mem_entry_listall (disk); + } else { + for (argn=filespec; argn < argc; argn++) { + if (argv[argn][0]) { + zzip_mem_entry_listfiles (disk, argv[argn]); + } + } + } + } else if (option_pipe) { + if (! filespec) { + zzip_mem_entry_pipeall (disk); + } else { + for (argn=filespec; argn < argc; argn++) { + if (argv[argn][0]) { + zzip_mem_entry_pipefiles (disk, argv[argn]); + } + } + } + } else if (option_testcrc) { + if (! filespec) { + zzip_mem_entry_testall (disk); + } else { + for (argn=filespec; argn < argc; argn++) { + if (argv[argn][0]) { + zzip_mem_entry_testfiles (disk, argv[argn]); + } + } + } + } else { + if (! filespec) { + zzip_mem_entry_makeall (disk); + } else { + for (argn=filespec; argn < argc; argn++) { + if (argv[argn][0]) { + zzip_mem_entry_makefiles (disk, argv[argn]); + } + } + } + } + + return status; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzip.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzip.c new file mode 100644 index 00000000000..ae8b3b97969 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzip.c @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * This file is used as an example to clarify zzip api usage. + */ + +#include <zzip/zzip.h> +#include <stdio.h> +#include <string.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#endif +#ifdef ZZIP_HAVE_IO_H +#include <io.h> +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "unzzip <dir>.. \n" + " - unzzip the files contained in a zip archive.\n" +}; + +int +main (int argc, char ** argv) +{ + int argn; + int exitcode = 0; + zzip_error_t error; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + for (argn=1; argn < argc; argn++) + { + ZZIP_DIR * dir; + ZZIP_DIRENT d; + + dir = zzip_dir_open(argv[argn], &error); + if (! dir) + { + fprintf (stderr, "did not open %s: \n", argv[argn]); + fprintf (stderr, "%s: %s\n", argv[argn], zzip_strerror(error)); + exitcode++; + continue; + } + + if (argc > 2) printf ("%s: \n", argv[argn]); + + /* read each dir entry and show one line of info per file */ + while (zzip_dir_read (dir, &d)) + { + int output; + ZZIP_FILE* input = zzip_file_open (dir, d.d_name, O_RDONLY); + if (! input) + { + fprintf (stderr, "|did not open %s: \n", d.d_name); + fprintf (stderr, "|%s: %s\n", d.d_name, zzip_strerror_of(dir)); + continue; + } + + output = creat (d.d_name, 0664); + if (output == -1) + { + fprintf (stderr, "|output file %s: \n", d.d_name); + perror(d.d_name); + zzip_file_close (input); + continue; + } + + printf("%s\n", d.d_name); + + { + char buf[17]; zzip_ssize_t n; + /* read chunks of 16 bytes into buf */ + while (0 < (n = zzip_read (input, buf, 16))) + { + write (output, buf, n); + } + + if (n == -1) + perror (d.d_name); + } + close (output); + zzip_file_close (input); + } + + zzip_dir_close(dir); + } + + return exitcode; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat-mem.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat-mem.c new file mode 100644 index 00000000000..7474854187e --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat-mem.c @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * This file is used as an example to clarify zzipmmap api usage. + */ + +#include <zzip/memdisk.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#endif +#ifdef ZZIP_HAVE_IO_H +#include <io.h> +#endif + +#ifdef ZZIP_HAVE_FNMATCH_H +#include <fnmatch.h> +#else +#define fnmatch(x,y,z) strcmp(x,y) +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "unzzipdir-mem <zip> [names].. \n" + " - unzzip data content of files contained in a zip archive.\n" +}; + +static void zzip_mem_entry_fprint(ZZIP_MEM_DISK* disk, + ZZIP_MEM_ENTRY* entry, FILE* out) +{ + ZZIP_DISK_FILE* file = zzip_mem_entry_fopen (disk, entry); + if (file) + { + char buffer[1024]; int len; + while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file))) + fwrite (buffer, len, 1, out); + + zzip_mem_disk_fclose (file); + } +} + +static void zzip_mem_disk_cat_file(ZZIP_MEM_DISK* disk, char* name, FILE* out) +{ + ZZIP_DISK_FILE* file = zzip_mem_disk_fopen (disk, name); + if (file) + { + char buffer[1024]; int len; + while ((len = zzip_mem_disk_fread (buffer, 1, 1024, file))) + { + fwrite (buffer, 1, len, out); + } + + zzip_mem_disk_fclose (file); + } +} + +int +main (int argc, char ** argv) +{ + int argn; + ZZIP_MEM_DISK* disk; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + disk = zzip_mem_disk_open (argv[1]); + if (! disk) { + perror(argv[1]); + return -1; + } + + if (argc == 2) + { /* print directory list */ + ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk); + for (; entry ; entry = zzip_mem_disk_findnext(disk, entry)) + { + char* name = zzip_mem_entry_to_name (entry); + printf ("%s\n", name); + } + return 0; + } + + if (argc == 3) + { /* list from one spec */ + ZZIP_MEM_ENTRY* entry = 0; + while ((entry = zzip_mem_disk_findmatch(disk, argv[2], entry, 0, 0))) + { + zzip_mem_entry_fprint (disk, entry, stdout); + } + + return 0; + } + + for (argn=1; argn < argc; argn++) + { /* list only the matching entries - each in order of commandline */ + ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk); + for (; entry ; entry = zzip_mem_disk_findnext(disk, entry)) + { + char* name = zzip_mem_entry_to_name (entry); + if (! fnmatch (argv[argn], name, + FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD)) + zzip_mem_disk_cat_file (disk, name, stdout); + } + } + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat-seeko.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat-seeko.c new file mode 100644 index 00000000000..f16f0b96566 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat-seeko.c @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * This file is used as an example to clarify zzipfseeko api usage. + */ + +#include <zzip/fseeko.h> +#include <stdlib.h> +#include <string.h> + +#ifdef ZZIP_HAVE_FNMATCH_H +#include <fnmatch.h> +#else +#define fnmatch(x,y,z) strcmp(x,y) +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "unzzipcat-seeko <zip> [names].. \n" + " - unzzip data content of files contained in a zip archive.\n" +}; + +static void zzip_entry_fprint(ZZIP_ENTRY* entry, FILE* out) +{ + ZZIP_ENTRY_FILE* file = zzip_entry_fopen (entry, 0); + if (file) + { + char buffer[1024]; int len; + while ((len = zzip_entry_fread (buffer, 1024, 1, file))) + fwrite (buffer, len, 1, out); + + zzip_entry_fclose (file); + } +} + +static void zzip_cat_file(FILE* disk, char* name, FILE* out) +{ + ZZIP_ENTRY_FILE* file = zzip_entry_ffile (disk, name); + if (file) + { + char buffer[1024]; int len; + while ((len = zzip_entry_fread (buffer, 1024, 1, file))) + fwrite (buffer, len, 1, out); + + zzip_entry_fclose (file); + } +} + +int +main (int argc, char ** argv) +{ + int argn; + FILE* disk; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + disk = fopen (argv[1], "r"); + if (! disk) { + perror(argv[1]); + return -1; + } + + if (argc == 2) + { /* print directory list */ + ZZIP_ENTRY* entry = zzip_entry_findfirst(disk); + if (! entry) puts("no first entry!\n"); + for (; entry ; entry = zzip_entry_findnext(entry)) + { + char* name = zzip_entry_strdup_name (entry); + printf ("%s\n", name); + free (name); + } + return 0; + } + + if (argc == 3) + { /* list from one spec */ + ZZIP_ENTRY* entry = 0; + while ((entry = zzip_entry_findmatch(disk, argv[2], entry, 0, 0))) + zzip_entry_fprint (entry, stdout); + + return 0; + } + + for (argn=1; argn < argc; argn++) + { /* list only the matching entries - each in order of commandline */ + ZZIP_ENTRY* entry = zzip_entry_findfirst(disk); + for (; entry ; entry = zzip_entry_findnext(entry)) + { + char* name = zzip_entry_strdup_name (entry); + if (! fnmatch (argv[argn], name, + FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD)) + zzip_cat_file (disk, name, stdout); + free (name); + } + } + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat.c new file mode 100644 index 00000000000..4282cb36be9 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipcat.c @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * This file is used as an example to clarify zzipmmap api usage. + */ + +#include <zzip/mmapped.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#endif +#ifdef ZZIP_HAVE_IO_H +#include <io.h> +#endif + +#ifdef ZZIP_HAVE_FNMATCH_H +#include <fnmatch.h> +#else +#define fnmatch(x,y,z) strcmp(x,y) +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "unzzipdir <zip> [names].. \n" + " - unzzip data content of files contained in a zip archive.\n" +}; + +static void zzip_disk_entry_fprint(ZZIP_DISK* disk, + ZZIP_DISK_ENTRY* entry, FILE* out) +{ + ZZIP_DISK_FILE* file = zzip_disk_entry_fopen (disk, entry); + if (file) + { + char buffer[1024]; int len; + while ((len = zzip_disk_fread (buffer, 1024, 1, file))) + fwrite (buffer, len, 1, out); + + zzip_disk_fclose (file); + } +} + +static void zzip_disk_cat_file(ZZIP_DISK* disk, char* name, FILE* out) +{ + ZZIP_DISK_FILE* file = zzip_disk_fopen (disk, name); + if (file) + { + char buffer[1024]; int len; + while ((len = zzip_disk_fread (buffer, 1, 1024, file))) + { + fwrite (buffer, 1, len, out); + } + + zzip_disk_fclose (file); + } +} + +int +main (int argc, char ** argv) +{ + int argn; + ZZIP_DISK* disk; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + disk = zzip_disk_open (argv[1]); + if (! disk) { + perror(argv[1]); + return -1; + } + + if (argc == 2) + { /* print directory list */ + ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst(disk); + for (; entry ; entry = zzip_disk_findnext(disk, entry)) + { + char* name = zzip_disk_entry_strdup_name (disk, entry); + printf ("%s\n", name); + free (name); + } + return 0; + } + + if (argc == 3) + { /* list from one spec */ + ZZIP_DISK_ENTRY* entry = 0; + while ((entry = zzip_disk_findmatch(disk, argv[2], entry, 0, 0))) + zzip_disk_entry_fprint (disk, entry, stdout); + + return 0; + } + + for (argn=1; argn < argc; argn++) + { /* list only the matching entries - each in order of commandline */ + ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst(disk); + for (; entry ; entry = zzip_disk_findnext(disk, entry)) + { + char* name = zzip_disk_entry_strdup_name (disk, entry); + if (! fnmatch (argv[argn], name, + FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD)) + zzip_disk_cat_file (disk, name, stdout); + free (name); + } + } + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipdir-mem.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipdir-mem.c new file mode 100644 index 00000000000..dc020772309 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipdir-mem.c @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * This file is used as an example to clarify zzipmmap api usage. + */ + +#include <zzip/memdisk.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#endif +#ifdef ZZIP_HAVE_IO_H +#include <io.h> +#endif + +#ifdef ZZIP_HAVE_FNMATCH_H +#include <fnmatch.h> +#else +#define fnmatch(x,y,z) strcmp(x,y) +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "unzzipdir <zip> [names].. \n" + " - unzzip a listing of files contained in a zip archive.\n" +}; + +int +main (int argc, char ** argv) +{ + int argn; + ZZIP_MEM_DISK* disk; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + disk = zzip_mem_disk_open (argv[1]); + if (! disk) { + perror(argv[1]); + return -1; + } + + if (argc == 2) + { /* list all */ + ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk); + for (; entry ; entry = zzip_mem_disk_findnext(disk, entry)) + { + char* name = zzip_mem_entry_to_name (entry); + printf ("%s\n", name); + } + return 0; + } + + if (argc == 3) + { /* list from one spec */ + ZZIP_MEM_ENTRY* entry = 0; + while ((entry = zzip_mem_disk_findmatch(disk, argv[2], entry, 0, 0))) + { + char* name = zzip_mem_entry_to_name (entry); + printf ("%s\n", name); + } + return 0; + } + + { /* list only the matching entries - in order of zip directory */ + ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk); + for (; entry ; entry = zzip_mem_disk_findnext(disk, entry)) + { + char* name = zzip_mem_entry_to_name (entry); + for (argn=1; argn < argc; argn++) + { + if (! fnmatch (argv[argn], name, + FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD)) + printf ("%s\n", name); + } + } + return 0; + } +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipdir.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipdir.c new file mode 100644 index 00000000000..3c570c5548f --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/unzzipdir.c @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * This file is used as an example to clarify zzipmmap api usage. + */ + +#include <zzip/mmapped.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#endif +#ifdef ZZIP_HAVE_IO_H +#include <io.h> +#endif + +#ifdef ZZIP_HAVE_FNMATCH_H +#include <fnmatch.h> +#else +#define fnmatch(x,y,z) strcmp(x,y) +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "unzzipdir <zip> [names].. \n" + " - unzzip a listing of files contained in a zip archive.\n" +}; + +int +main (int argc, char ** argv) +{ + int argn; + ZZIP_DISK* disk; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + disk = zzip_disk_open (argv[1]); + if (! disk) { + perror(argv[1]); + return -1; + } + + if (argc == 2) + { /* list all */ + ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst(disk); + for (; entry ; entry = zzip_disk_findnext(disk, entry)) + { + char* name = zzip_disk_entry_strdup_name (disk, entry); + printf ("%s\n", name); + free (name); + } + return 0; + } + + if (argc == 3) + { /* list from one spec */ + ZZIP_DISK_ENTRY* entry = 0; + while ((entry = zzip_disk_findmatch(disk, argv[2], entry, 0, 0))) + { + char* name = zzip_disk_entry_strdup_name (disk, entry); + printf ("%s\n", name); + free (name); + } + return 0; + } + + { /* list only the matching entries - in order of zip directory */ + ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst(disk); + for (; entry ; entry = zzip_disk_findnext(disk, entry)) + { + char* name = zzip_disk_entry_strdup_name (disk, entry); + for (argn=1; argn < argc; argn++) + { + if (! fnmatch (argv[argn], name, + FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD)) + printf ("%s\n", name); + } + free (name); + } + return 0; + } +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzcat.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzcat.c new file mode 100644 index 00000000000..27225820784 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzcat.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB License + */ + +#include <zzip/zzip.h> +#include <stdio.h> +#include <string.h> + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + " zzcat <file>... \n" + " - prints the file to stdout, so you may want to redirect the output; \n" + " the file can be a normal file or an inflated part of a zip-archive, \n" + " to get 'README' from dist.zip you may write \n" + " zzcat dist/README \n" +}; + +int +main (int argc, char ** argv) +{ + int argn; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + for (argn=1; argn < argc; argn++) + { + ZZIP_FILE* fp = zzip_open (argv[argn], O_RDONLY|O_BINARY); + + if (! fp) + { + perror (argv[argn]); + continue; + }else{ + char buf[17]; + int n; + + /* read chunks of 16 bytes into buf and print them to stdout */ + while (0 < (n = zzip_read(fp, buf, 16))) + { + buf[n] = '\0'; +# ifdef STDOUT_FILENO + write (STDOUT_FILENO, buf, n); +# else + fwrite (buf, 1, n, stdout); +# endif + } + + if (n == -1) + perror (argv[argn]); + } + } + + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzdir.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzdir.c new file mode 100644 index 00000000000..5345f0852da --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzdir.c @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + */ + +#include <zzip/zzip.h> +#include <stdio.h> +#include <string.h> + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "zzdir <dir>.. \n" + " - prints a content table to stdout, but the dir can also be a zip-arch." + "\n" + " To show the contents of a zip-archive named 'test.zip', you may write \n" + " zzdir test \n" +}; + +int +main (int argc, char ** argv) +{ + int argn; + int exitcode = 0; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + for (argn=1; argn < argc; argn++) + { + ZZIP_DIR * dir; + ZZIP_DIRENT * d; + + dir = zzip_opendir(argv[argn]); + if (! dir) + { + fprintf (stderr, "did not open %s: ", argv[argn]); + perror(argv[argn]); + exitcode++; + continue; + } + + if (argc > 2) printf ("%s: \n", argv[argn]); + + /* read each dir entry and show one line of info per file */ + while ((d = zzip_readdir (dir))) + { + /* orignalsize / compression-type / compression-ratio / filename */ + if (d->st_size > 999999) + { + printf ("%5dK %-9s %2d%% %s \n", + d->st_size>>10, + zzip_compr_str(d->d_compr), + 100 - (d->d_csize|1)/((d->st_size/100)|1), + d->d_name); + }else{ + printf ("%6d %-9s %2d%% %s \n", + d->st_size, + zzip_compr_str(d->d_compr), + 100 - (d->d_csize|1)*100/(d->st_size|1), + d->d_name); + } + } + + zzip_closedir(dir); + } + + return exitcode; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzip.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzip.c new file mode 100644 index 00000000000..a1e990c3907 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzip.c @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * This file is used as an example to clarify zzip api usage. + * (the write-api is work in progress, beware) + */ + +#define _ZZIP_WRITE_SOURCE + +#include <zzip/write.h> +#include <stdio.h> +#include <string.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#endif +#ifdef ZZIP_HAVE_IO_H +#include <io.h> +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "zzip <dir> files... \n" + " - zzip the files into a zip area." +}; + +int +main (int argc, char ** argv) +{ + int argn; + int exitcode = 0; + ZZIP_DIR * dir; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + dir = zzip_dir_creat(argv[1], 0755); + if (! dir) + { + fprintf (stderr, "did not creat %s: \n", argv[1]); + perror(argv[1]); + if (1) + return 1; + else + fprintf (stderr, "(ignored)\n"); + } + + for (argn=2; argn < argc; argn++) + { + int input = open (argv[argn], O_RDONLY); + if (input == -1) + { + perror (argv[argn]); + continue; + } + else + { + char buf[17]; zzip_ssize_t n; + ZZIP_FILE* output = zzip_file_creat (dir, argv[argn], 0755); + if (! output) + { + fprintf (stderr, "|did not open %s: \n", argv[argn]); + fprintf (stderr, "|%s: %s\n", argv[argn], + zzip_strerror_of(dir)); + continue; + } + + while ((n = read (input, buf, 16))) + { + zzip_write (output, buf, n); + } + zzip_close (output); + } + close (input); + } + zzip_closedir(dir); + + return exitcode; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zziplib.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zziplib.m4 new file mode 100644 index 00000000000..4029ca546e3 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zziplib.m4 @@ -0,0 +1,105 @@ +dnl this macro has been copied from /usr/share/aclocal/pkg.m4 +dnl modified to check only for zziplib. You are advised to use +dnl pgkconfig macro directly instead. It is only installed to +dnl the convenience of software makers who do not want to have +dnl yet another package dependency when building zziplib-based +dnl projects. In general, you can include in your configure.ac +dnl some line like +dnl PKG_CHECK_ZZIPLIB([ZZIP],[0.10.75]) +dnl in order to get the two autoconf/automake subst variables +dnl named ZZIP_CFLAGS and ZZIP_LIBS respectivly. + +dnl PKG_CHECK_ZZIPLIB(ZZIP, minversion, action-if, action-not) +dnl defines ZZIP_LIBS, ZZIP_CFLAGS, see pkg-config man page +dnl also defines ZZIP_PKG_ERRORS on error +AC_DEFUN([PKG_CHECK_ZZIPLIB], [# checking for zziplib cflags/libs $2 + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG([PKG_CONFIG],[pkg-config],[no]) + fi + + if test "$PKG_CONFIG" = "no" ; then + dnl we stick in an extra section that takes advantage of `zzip-config` + dnl script that might be there and carry cflags/libs info as well. + AC_PATH_PROG([ZZIP_CONFIG], [zzip-config], [no]) + if test "$ZZIP_CONFIG" = "no" ; then + echo "*** Neither config spec could be found - there was no archaic" + echo "*** zzip-config script around and no pkg-config script in the" + echo "*** PATH. Make sure that either one is in your path, or set" + echo "*** set the PKG_CONFIG environment variable to the full" + echo "*** path to pkg-config. See http://zziplib.sf.net - or see" + echo "*** http://www.freedesktop.org/software/pkgconfig for more." + else + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$ZZIP_CONFIG --libs 2>/dev/null` + AC_MSG_RESULT($[]$1_LIBS) + + if test ".$[]$1_LIBS" != "." ; then + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$ZZIP_CONFIG --cflags 2>/dev/null` + AC_MSG_RESULT($[]$1_CFLAGS) + succeeded="yes" + else + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$ZZIP_CONFIG --cflags 2>&1` + AC_MSG_RESULT([(detecting errors...)]) + AC_MSG_WARN([... there is a problem with zzip-config]) + AC_MSG_WARN([... $[]$1_CFLAGS]) + AC_MSG_WARN([... inference of library requirements from prefix]) + succeeded=`echo $ZZIP_CONFIG | sed -e 's,/[^/]*,,'` # dirname + $1_CFLAGS="" + $1_LIBS="" + if test "/$succeeded" != "//usr" ; then + test -d "$succeeded/include" && $1_CFLAGS="-I$succeeded/include " + test -d "$succeeded/lib" && $1_LIBS="-L$succeeded/lib " + fi + $1_LIBS="$[]$1_LIBS -lzzip -lz" + succeeded="yes" + AC_MSG_CHECKING($1_CFLAGS... guessed) + AC_MSG_RESULT($[]$1_CFLAGS) + AC_MSG_CHECKING($1_LIBS... guessed) + AC_MSG_RESULT($[]$1_LIBS) + fi + fi + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for zziplib[]ifelse([$2],,,[ >= $2])) + + if $PKG_CONFIG --exists "zziplib[]ifelse([$2],,,[ >= $2])" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "zziplib[]ifelse([$2],,,[ >= $2])"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "zziplib[]ifelse([$2],,,[ >= $2])"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG dnl + --errors-to-stdout --print-errors "zziplib[]ifelse([$2],,,[ >= $2])"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + succeeded="zziplib[]ifelse([$2],,,[ >= $2])" + ifelse([$4], ,[AC_MSG_ERROR([Library requirements ($succeeded) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.])], [$4]) + fi +]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zziptest.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zziptest.c new file mode 100644 index 00000000000..2fde5d27bcf --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zziptest.c @@ -0,0 +1,153 @@ +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * Tomi Ollila <Tomi.Ollila@iki.fi> + * + * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#include <stdio.h> +#include <string.h> + +#include <zzip/lib.h> + +#if defined ZZIP_HAVE_WINDOWS_H +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#define sleep Sleep +#endif + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> /* sleep */ +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#if __GNUC__+0 >= 3 && __GNUC_MINOR__+0 >= 3 +# ifdef DEBUG +# warning suppress a warning where the compiler should have optimized instead. +# endif +#define I_(_T,_L,_R) do { _T _l = (_T) _L; \ + _l _R; _L = (typeof(_L)) _l; } while(0) +#else +#define I_(_T,_L,_R) _L _R +#endif + +int main(int argc, char ** argv) +{ + ZZIP_DIR * dir; + const char * name = "test.zip"; + zzip_error_t rv; + int i; + + if (argc > 1 && argv[1] != NULL) + { + if (! strcmp (argv[1], "--help")) { + printf ("zziptest [testfile]\n - selftest defaults to 'test.zip'"); + return 0; + }else if (! strcmp (argv[1], "--version")) { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + }else{ + name = argv[1]; + argv++; argc--; + } + } + + printf("Opening zip file `%s'... ", name); + { int fd = open (name, O_RDONLY|O_BINARY); + if (fd == -1) { perror ("could not open input file"); return 0; } + if (! (dir = zzip_dir_fdopen(fd, &rv))) + { + printf("error %d.\n", rv); + return 0; + } + } printf("OK.\n"); + +#if 1 + printf("{check...\n"); + { struct zzip_dir_hdr * hdr = dir->hdr0; + + if (hdr == NULL) + { printf ("could not find first header in dir_hdr"); } + else + { + while (1) + { + printf("\ncompression method: %d", hdr->d_compr); + if (hdr->d_compr == 0) printf(" (stored)"); + else if (hdr->d_compr == 8) printf(" (deflated)"); + else printf(" (unknown)"); + printf("\ncrc32: %x\n", hdr->d_crc32); + printf("compressed size: %d\n", hdr->d_csize); + printf("uncompressed size: %d\n", hdr->d_usize); + printf("offset of file in archive: %d\n", hdr->d_off); + printf("filename: %s\n\n", hdr->d_name); + + if (hdr->d_reclen == 0) break; + I_(char *, hdr, += hdr->d_reclen); + sleep(1); + } + } + } printf ("\n}\n"); +#endif +#if 1 + { printf("{contents...\n"); + for (i = 0; i < 2; i++) + { + ZZIP_DIRENT* d; + + while((d=zzip_readdir(dir))) + { + printf(" name \"%s\", compr %d, size %d, ratio %2d\n", + d->d_name, d->d_compr, d->st_size, + 100 - (d->d_csize|1)*100/(d->st_size|1)); + } + printf(" %d. time ---------------\n", i + 1); + zzip_rewinddir(dir); + } + printf("}...OK\n"); + } +#endif + + { ZZIP_FILE * fp; + char buf[17]; + const char * name = argv[1]? argv[1]: "README"; + + + printf("Opening file `%s' in zip archive... ", name); + fp = zzip_file_open(dir, (char *)name, ZZIP_CASEINSENSITIVE); + + if (! fp) + { printf("error %d: %s\n", zzip_error(dir), zzip_strerror_of(dir)); } + else + { + printf("OK.\n"); + printf("Contents of the file:\n"); + + while (0 < (i = zzip_file_read(fp, buf, 16))) + { + buf[i] = '\0'; + /*printf("\n*** read %d ***\n", i); fflush(stdout); */ + printf("%s", buf); + /*write(1, buf, i);*/ /* Windows does not have write !!! */ + } + if (i < 0) printf("error %d\n", zzip_error(dir)); + } + } + + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzobfuscated.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzobfuscated.c new file mode 100644 index 00000000000..352afc29a13 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzobfuscated.c @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2002 Mike Nordell + * portions Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB License + * + * A small example that displays how the plugin I/O functions can be used + * to read "encrypted" zip archives. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <zzip/zzip.h> +#include <zzip/plugin.h> + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#if defined ZZIP_HAVE_UNISTD_H +#include <unistd.h> /* read */ +#elif defined ZZIP_HAVE_IO_H +#include <io.h> /* win32 */ +#else +#endif + +#ifdef _MSC_VER +#define _MSC_VER_NULL NULL +#else +#define _MSC_VER_NULL +#endif + +/* + * Only override our the read handler. Let the system take care + * the rest. + */ + +static zzip_ssize_t our_read(int fd, void* buf, zzip_size_t len) +{ + const zzip_ssize_t bytes = read(fd, buf, len); + zzip_ssize_t i; + char* pch = (char*)buf; + for (i=0; i<bytes; ++i) { + pch[i] ^= 0x55; + } + return bytes; +} + +static zzip_plugin_io_handlers our_handlers = { _MSC_VER_NULL }; +static const char* const our_fileext [] = { ".dat", ".sav", 0 }; + + +static const char usage[] = +{ + " zzobfuscated <file> [in-zip filename]\n" + " - Demonstrates the use of installable file I/O handlers.\n" + " Copies <file> to \"obfuscated[.dat]\" while \"encrypting\" it by xor'ing\n" + " every byte with 0x55, installs file I/O handlers, and then uses the\n" + " zzip_open_ext_io function to read and print the file to stdout.\n" + " The file can be a normal file or an inflated part of a zip-archive,\n" + " to get 'README' from test.zip you may write \n" + " zzobfuscated test.zip README \n" +}; + +int +main (int argc, char* argv[]) +{ + if (argc <= 1 || argc > 3 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + if (strlen(argv[1]) > 128) { + fprintf(stderr, "Please provide a filename shorter than 128 chars.\n"); + exit(1); + } + + /* obfuscate the file */ + { + int ch; + FILE* fin; + FILE* fout; + fin = fopen(argv[1], "rb"); + if (!fin) { + fprintf(stderr, "Can't open input file \"%s\"\n", argv[1]); + exit(1); + } + fout = fopen((argc == 2) ? "obfuscated" : "obfuscated.dat", "wb"); + if (!fout) { + fprintf(stderr, "Can't open output file \"obfuscated\"\n"); + exit(1); + } + while ((ch = fgetc(fin)) != EOF) { + ch ^= 0x55; + fputc(ch, fout); + } + fclose(fout); + fclose(fin); + } + + /* install our I/O hander */ + zzip_init_io(&our_handlers, 0); + our_handlers.fd.read = &our_read; + + { +# define argn 2 + ZZIP_FILE* fp; + char name[256]; + if (argc == 3) { + sprintf(name, "obfuscated/%s", argv[argn]); + } else { + sprintf(name, "obfuscated"); + } + fp = zzip_open_ext_io (name, O_RDONLY|O_BINARY, ZZIP_PREFERZIP, + our_fileext, &our_handlers); + + if (! fp) + { + perror (name); + exit(1); + }else{ + char buf[17]; + int n; + + /* read chunks of 16 bytes into buf and print them to stdout */ + while (0 < (n = zzip_read(fp, buf, 16))) + { + buf[n] = '\0'; +# ifdef STDOUT_FILENO + write (STDOUT_FILENO, buf, n); +# else + fwrite (buf, 1, n, stdout); +# endif + } + + if (n == -1) + perror (argv[argn]); + } + } + + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxorcat.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxorcat.c new file mode 100644 index 00000000000..97fcd51fd32 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxorcat.c @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB License + * + * show zip-reading with xor-obfuscation. + * Note that the difference to the standard zzcat.c is quite small. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include <zzip/zzip.h> +#include <zzip/plugin.h> + +#if defined ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#elif defined ZZIP_HAVE_IO_H +#include <io.h> +#else +#error need posix io for this example +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + " zzxorcat [-#] <file>... \n" + " - prints the file to stdout, so you may want to redirect the output; \n" + " the file is part of an inflated zip-archive obfuscated with xor value,\n" + " given by the numeric option (default is 0x55). \n" + " to get 'README' from dist.dat you may write \n" + " zzcat dist/README \n" +}; + +static int xor_value; + +static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l) +{ + zzip_ssize_t r = read(f, p, l); + zzip_ssize_t x; char* q; for (x=0, q=p; x < r; x++) q[x] ^= xor_value; + return r; +} + +static zzip_plugin_io_handlers xor_handlers; +static zzip_strings_t xor_fileext[] = { ".dat", "", 0 }; + +int +main (int argc, char ** argv) +{ + int argn; + xor_value = 0x55; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + zzip_init_io (&xor_handlers, 0); xor_handlers.fd.read = &xor_read; + + for (argn=1; argn < argc; argn++) + { + ZZIP_FILE* fp; + + if (argv[argn][0] == '-') + { + if (isdigit(argv[argn][1])) xor_value = atoi (argv[argn]+1); + continue; + } + + fp = zzip_open_ext_io (argv[argn], O_RDONLY|O_BINARY, + ZZIP_CASELESS|ZZIP_ONLYZIP, + xor_fileext, &xor_handlers); + if (! fp) + { + perror (argv[argn]); + continue; + }else{ + char buf[17]; + zzip_ssize_t n; + + /* read chunks of 16 bytes into buf and print them to stdout */ + while (0 < (n = zzip_read(fp, buf, 16))) + { + buf[n] = '\0'; +# ifdef STDOUT_FILENO + write (STDOUT_FILENO, buf, n); +# else + fwrite (buf, 1, n, stdout); +# endif + } + + if (n == -1) + perror (argv[n]); + } + } + + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxorcopy.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxorcopy.c new file mode 100644 index 00000000000..1c06e534126 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxorcopy.c @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB License + * + * show a simple program to add xor-obfuscation. + * look at the resulting file with zzxordir an zzxorcat + * Remember that xor'ing data twice will result in the original data. + * This file has no dependency with zziplib - it's freestanding. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> + +#include <zzip/_config.h> /* for ZZIP_VERSION */ + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#if __STDC_VERSION__+0 < 199901 +#define _ssize_t int +#define _size_t unsigned +#else +#define _ssize_t ssize_t +#define _size_t size_t +#endif + +static const char usage[] = +{ + " zzxopy [-#] <input-file> <output-file> \n" + " copies data from input-file to output-file adding simple \n" + " obfuscation by xor-ing each byte with the numeric value given. \n" + " the default xor-value is 0x55. Remember that copying data twice \n" + " with the same xor-value will result in the original file data. \n" +}; + +static int xor_value; + +static _ssize_t xor_read (FILE* f, void* p, _size_t l) +{ + _ssize_t r = fread(p, 1, l, f); + _ssize_t x; char* q; for (x=0, q=p; x < r; x++) q[x] ^= xor_value; + return r; +} + +int +main (int argc, char ** argv) +{ + int argn; + xor_value = 0x55; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + for (argn=1; argn < argc; argn++) + { + FILE* iF = 0; + FILE* oF = 0; + + if (argv[argn][0] == '-') + { + if (isdigit(argv[argn][1])) xor_value = atoi (argv[argn]+1); + continue; + } + + if (argn + 1 >= argc) + { + printf (usage); + exit (1); + } + + iF = fopen (argv[argn], "rb"); + if (! iF) { perror (argv[argn]); exit (2); } + argn++; + oF = fopen (argv[argn], "wb"); + if (! oF) { perror (argv[argn]); fclose(iF); exit (3); } + + { + char buf[17]; + _ssize_t n; + + /* read chunks of 16 bytes into buf and print them to stdout */ + while (0 < (n = xor_read(iF, buf, 16))) + { + buf[n] = '\0'; + n = fwrite (buf, 1, n, oF); + if (n < 0) break; + } + + if (n < 0 && ferror (iF)) + perror (argv[argn]); + } + } + + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxordir.c b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxordir.c new file mode 100644 index 00000000000..c1e1f141446 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/bins/zzxordir.c @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * show zip-reading with xor-obfuscation. + * Note that the difference to the standard zzdir.c is quite small. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> + +#include <zzip/zzip.h> +#include <zzip/plugin.h> + +#if defined ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#elif defined ZZIP_HAVE_IO_H +#include <io.h> +#else +#error need posix io for this example +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "zzdir <dir>.. \n" + " - prints a content table to stdout, but the dir can also be a zip-arch." + "\n" + " the file is part of an inflated zip-archive obfuscated with xor value,\n" + " given by the numeric option (default is 0x55). \n" + "\n" + " To show the contents of a zip-archive named 'test.zip', you may write \n" + " zzdir test \n" +}; + +static int xor_value; + +static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l) +{ + zzip_ssize_t r = read(f, p, l); + zzip_ssize_t x; char* q; for (x=0, q=p; x < r; x++) q[x] ^= xor_value; + return r; +} + +static zzip_plugin_io_handlers xor_handlers = { }; +static zzip_strings_t xor_fileext[] = { ".dat", "", 0 }; + +int +main (int argc, char ** argv) +{ + int argn; + int exitcode = 0; + xor_value = 0x55; + + if (argc <= 1 || ! strcmp (argv[1], "--help")) + { + printf (usage); + return 0; + } + if (! strcmp (argv[1], "--version")) + { + printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); + return 0; + } + + zzip_init_io (&xor_handlers, 0); xor_handlers.fd.read = &xor_read; + + for (argn=1; argn < argc; argn++) + { + ZZIP_DIR * dir; + ZZIP_DIRENT * d; + + if (argv[argn][0] == '-') + { + if (isdigit(argv[argn][1])) xor_value = atoi (argv[argn]+1); + continue; + } + + dir = zzip_opendir_ext_io(argv[argn], + ZZIP_ONLYZIP, xor_fileext, &xor_handlers); + if (! dir) + { + fprintf (stderr, "did not open %s: ", argv[argn]); + perror(argv[argn]); + exitcode++; + continue; + } + + if (argc > 2) printf ("%s: \n", argv[argn]); + + /* read each dir entry and show one line of info per file */ + while ((d = zzip_readdir (dir))) + { + /* orignalsize / compression-type / compression-ratio / filename */ + if (d->st_size > 999999) + { + printf ("%5dK %-9s %2d%% %s \n", + d->st_size>>10, + zzip_compr_str(d->d_compr), + 100 - (d->d_csize|1)/((d->st_size/100)|1), + d->d_name); + }else{ + printf ("%6d %-9s %2d%% %s \n", + d->st_size, + zzip_compr_str(d->d_compr), + 100 - (d->d_csize|1)*100/(d->st_size|1), + d->d_name); + } + } + + zzip_closedir(dir); + } + + return exitcode; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/config.h.in b/Build/source/libs/zziplib/zziplib-0.13.60/config.h.in new file mode 100644 index 00000000000..1b66813f2d8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/config.h.in @@ -0,0 +1,181 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Define if pointers to integers require aligned access */ +#undef HAVE_ALIGNED_ACCESS_REQUIRED + +/* Define to 1 if you have the <byteswap.h> header file. */ +#undef HAVE_BYTESWAP_H + +/* Define to 1 if you have the <direct.h> header file. */ +#undef HAVE_DIRECT_H + +/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. + */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the <fnmatch.h> header file. */ +#undef HAVE_FNMATCH_H + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the <io.h> header file. */ +#undef HAVE_IO_H + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ +#undef HAVE_NDIR_H + +/* Define to 1 if you have the <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 `strcasecmp' function. */ +#undef HAVE_STRCASECMP + +/* 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 you have the `strndup' function. */ +#undef HAVE_STRNDUP + +/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. + */ +#undef HAVE_SYS_DIR_H + +/* Define to 1 if you have the <sys/int_types.h> header file. */ +#undef HAVE_SYS_INT_TYPES_H + +/* Define to 1 if you have the <sys/mman.h> header file. */ +#undef HAVE_SYS_MMAN_H + +/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. + */ +#undef HAVE_SYS_NDIR_H + +/* Define to 1 if you have the <sys/param.h> header file. */ +#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/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the <winbase.h> header file. */ +#undef HAVE_WINBASE_H + +/* Define to 1 if you have the <windows.h> header file. */ +#undef HAVE_WINDOWS_H + +/* Define to 1 if you have the <winnt.h> header file. */ +#undef HAVE_WINNT_H + +/* Define to 1 if you have the <zlib.h> header file. */ +#undef HAVE_ZLIB_H + +/* whether the system defaults to 32bit off_t but can do 64bit when requested + */ +#undef LARGEFILE_SENSITIVE + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* The number of bytes in type int */ +#undef SIZEOF_INT + +/* The number of bytes in type long */ +#undef SIZEOF_LONG + +/* The number of bytes in type short */ +#undef SIZEOF_SHORT + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* 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 `long long' if <sys/types.h> does not define. */ +#undef __int64 + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to `_zzip_off_t' if <sys/types.h> does not define. */ +#undef off64_t + +/* Define to `long int' if <sys/types.h> does not define. */ +#undef off_t + +/* Define to equivalent of C99 restrict keyword, or to nothing if this is not + supported. Do not define if restrict is supported directly. */ +#undef restrict + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +#undef size_t + +/* Define to `int' if <sys/types.h> does not define. */ +#undef ssize_t diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/configure b/Build/source/libs/zziplib/zziplib-0.13.60/configure new file mode 100755 index 00000000000..55f51dee81c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/configure @@ -0,0 +1,17696 @@ +#! /bin/sh +# From configure.ac Revision: 1.15 . +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.65. +# +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +# +# Guido Draheim <guido@gmx.de> for ZZipLib.SF.net +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error ERROR [LINENO LOG_FD] +# --------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with status $?, using 1 if that was 0. +as_fn_error () +{ + as_status=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + fi + $as_echo "$as_me: error: $1" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +$* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +test -n "$DJDIR" || exec 7<&0 </dev/null +exec 6>&1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= +PACKAGE_URL= + +ac_unique_file="zziplib.spec" +# Factoring default headers for most tests. +ac_includes_default="\ +#include <stdio.h> +#ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif +#ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#ifdef STDC_HEADERS +# include <stdlib.h> +# include <stddef.h> +#else +# ifdef HAVE_STDLIB_H +# include <stdlib.h> +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#endif +#ifdef HAVE_STRINGS_H +# include <strings.h> +#endif +#ifdef HAVE_INTTYPES_H +# include <inttypes.h> +#endif +#ifdef HAVE_STDINT_H +# include <stdint.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +CONFIG_FILES +aclocaldir +pkgconfigdir +PKG_CONFIG +RESOLVES +ZZIPLIB_LDFLAGS +ZIPTESTS +SDL_GENERATE +SDL +ZLIB_VERSION +LARGEFILE_CFLAGS +XMLTO +MKZIP +PYTHON +PERL +PAX_TAR_EXTRACT +PAX_TAR_CREATE +TAR +GTAR +GNUTAR +PAX +pkgconfig_libfile +pkgconfig_libdir +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +VERSION_INFO +RELEASE_INFO +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +lt_ECHO +RANLIB +AR +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +LIBTOOL +OBJDUMP +DLLTOOL +AS +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +ZLIB_LDIR +ZLIB_INCL +THREAD_SAFE +ax_enable_builddir_sed +target_os +target_vendor +target_cpu +target +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_builddir +enable_thread_safe +with_zlib +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +enable_libtool_lock +enable_maintainer_mode +enable_largefile +with_largefile +with_docdir +with_debug +with_lowstk +enable_mmap +enable_sdl +with_defines +enable_frame_pointer +enable_enable_default_pkgconfigdir +enable_enable_default_aclocaldir +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information." + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-builddir disable automatic build in subdir of sources + + --disable-thread-safe disable thread-safe libtool option + + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --disable-largefile omit support for large files + --disable-mmap disable mmap usage + + --enable-sdl enable SDL usage (if present) + + --enable-frame-pointer enable callframe generation for debugging + --enable-default-pkgconfigdir(=PATH) override the libdir/pkgconfig default + --enable-default-aclocaldir(=PATH) override the datadir/aclocal default + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-zlib zlib prefix (e.g. '$HOME/software') + + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-largefile compile as off64_t instead of 32bit off_t + + --with-docdir docdir prefix (prefix/share/doc) + + --with-debug debug messages in library + + --with-lowstk limited thread stack + + --with-defines easy,harden,allow_modulo_entries + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a + nonstandard directory <lib dir> + LIBS libraries to pass to the linker, e.g. -l<library> + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if + you have headers in a nonstandard directory <include dir> + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to the package provider. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.65 + +Copyright (C) 2009 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. + +Guido Draheim <guido@gmx.de> for ZZipLib.SF.net +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case <limits.h> declares $2. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_func + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_type +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.65. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + ac_site_file1=$CONFIG_SITE +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + +ac_aux_dir= +for ac_dir in uses "$srcdir"/uses; do + for ac_t in install-sh install.sh shtool; do + if test -f "$ac_dir/$ac_t"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/$ac_t -c" + break 2 + fi + done +done +if test -z "$ac_aux_dir"; then + as_fn_error "cannot find install-sh, install.sh, or shtool in uses \"$srcdir\"/uses" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# ======================================================================= +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if test "${ac_cv_target+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + + # [$]@ is unsable in 2.60+ but earlier autoconf had no ac_configure_args + if test "${ac_configure_args+set}" != "set" ; then + ac_configure_args= + for ac_arg in ${1+"$@"}; do + ac_configure_args="$ac_configure_args '$ac_arg'" + done + fi + + +ax_enable_builddir="." +# Check whether --enable-builddir was given. +if test "${enable_builddir+set}" = set; then : + enableval=$enable_builddir; ax_enable_builddir="$enableval" +else + ax_enable_builddir="yes" +fi + +if test ".$ac_srcdir_defaulted" != ".no" ; then +if test ".$srcdir" = ".." ; then + if test -f config.status ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: toplevel srcdir already configured... skipping subdir build" >&5 +$as_echo "$as_me: toplevel srcdir already configured... skipping subdir build" >&6;} + else + test ".$ax_enable_builddir" = "." && ax_enable_builddir="." + test ".$ax_enable_builddir" = ".no" && ax_enable_builddir="." + test ".$BUILD" = "." && BUILD=`uname -msr | tr " /" "__"`.d + test ".$ax_enable_builddir" = ".yes" && ax_enable_builddir="$BUILD" + if test ".$ax_enable_builddir" != ".." ; then # we know where to go and + as_dir=$ax_enable_builddir; as_fn_mkdir_p + echo __.$ax_enable_builddir.__ > $ax_enable_builddir/conftest.tmp + cd $ax_enable_builddir + if grep __.$ax_enable_builddir.__ conftest.tmp >/dev/null 2>/dev/null ; then + rm conftest.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: result: continue configure in default builddir \"./$ax_enable_builddir\"" >&5 +$as_echo "continue configure in default builddir \"./$ax_enable_builddir\"" >&6; } + else + as_fn_error "could not change to default builddir \"./$ax_enable_builddir\"" "$LINENO" 5 + fi + srcdir=`echo "$ax_enable_builddir" | + sed -e 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g;s,[/]$,,;'` + # going to restart from subdirectory location + test -f $srcdir/config.log && mv $srcdir/config.log . + test -f $srcdir/confdefs.h && mv $srcdir/confdefs.h . + test -f $srcdir/conftest.log && mv $srcdir/conftest.log . + test -f $srcdir/$cache_file && mv $srcdir/$cache_file . + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ....exec $SHELL \"$srcdir/$0\" \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" $ac_configure_args" >&5 +$as_echo "....exec $SHELL \"$srcdir/$0\" \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" $ac_configure_args" >&6; } + case "$0" in # restart + /\\*) eval $SHELL "'$0'" "'--srcdir=$srcdir'" "'--enable-builddir=$ax_enable_builddir'" $ac_configure_args ;; + *) eval $SHELL "'$srcdir/$0'" "'--srcdir=$srcdir'" "'--enable-builddir=$ax_enable_builddir'" $ac_configure_args ;; + esac ; exit $? + fi + fi +fi fi +# Extract the first word of "gsed sed", so it can be a program name with args. +set dummy gsed sed; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ax_enable_builddir_sed+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $ax_enable_builddir_sed in + [\\/]* | ?:[\\/]*) + ac_cv_path_ax_enable_builddir_sed="$ax_enable_builddir_sed" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ax_enable_builddir_sed="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_ax_enable_builddir_sed" && ac_cv_path_ax_enable_builddir_sed="sed" + ;; +esac +fi +ax_enable_builddir_sed=$ac_cv_path_ax_enable_builddir_sed +if test -n "$ax_enable_builddir_sed"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_enable_builddir_sed" >&5 +$as_echo "$ax_enable_builddir_sed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +ac_config_commands="$ac_config_commands buildir" + + # -------------------------------------------- +case "$prefix:$ac_default_prefix" in + NONE:/usr/local) + result="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking default prefix path" >&5 +$as_echo_n "checking default prefix path... " >&6; } + case "${target_os}" in + *cygwin* | *mingw* | *uwin* | *djgpp | *emx* ) + if test "${host_os}" = "${target_os}" ; then + ac_default_prefix="/programs" + result="(win/dos target)" + else + case "$PATH" in + *:/usr/local/cross-tools/$target_alias/bin:*) + ac_default_prefix="/usr/local/cross-tools/$target_alias" ;; + *:/usr/local/$target_alias/bin:*) + ac_default_prefix="/usr/local/$target_alias" ;; + *:/usr/local/$target_cpu-$target_os/bin:*) + ac_default_prefix="/usr/local/$target_cpu-$target_os" ;; + *) + ac_default_prefix="/programs" ;; + esac + result="(win/dos cross-compiler)" + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_default_prefix $result" >&5 +$as_echo "$ac_default_prefix $result" >&6; } + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking default prefix system" >&5 +$as_echo_n "checking default prefix system... " >&6; } +result="$prefix" ; test "$result" = "NONE" && result="$ac_default_prefix" +case ${result} in + /programs | /programs/*) result="is win-/programs" + # on win/dos, .exe .dll and .cfg live in the same directory + libdir=`echo $libdir |sed -e 's:^..exec_prefix./lib$:${bindir}:'` + sbindir=`echo $sbindir |sed -e 's:^..exec_prefix./sbin$:${libdir}:'` + sysconfdir=`echo $sysconfdir |sed -e 's:^..prefix./etc$:${sbindir}:'` + libexecdir=`echo $libexecdir |sed -e 's:/libexec$:/system:'` + # help-files shall be set with --infodir, docprefix is datadir + docprefix="${datadir}" + mandir=`echo $mandir \ + |sed -e 's:^..prefix./man$:${datadir}/info:'` + includedir=`echo $includedir \ + |sed -e 's:^..prefix./include$:${datadir}/include:'` + # other state files (but /etc) are moved to datadir + sharedstatedir=`echo $sharedstatedir \ + |sed -e 's:^..prefix./com$:${datadir}/default:'` + localstatedir=`echo $localstatedir \ + |sed -e 's:^..prefix./var$:${datadir}/current:'` + ;; + /usr) result="is /usr-shipped" + # doc files are left at prefix + docprefix="${prefix}" + # state files go under /top + sysconfdir=`echo $sysconfdir |sed -e 's:^..prefix./etc$:/etc:'` + sharedstatedir=`echo $sharedstatedir \ + |sed -e 's:^..prefix./com$:/etc/default:'` + # $prefix/var is going to end up in /var/lib + localstatedir=`echo $localstatedir \ + |sed -e 's:^..prefix./var$:/var/lib:'` + ;; + /opt | /opt/*) result="is /opt-package" + # state files go under /top/prefix + sysconfdir=`echo $sysconfdir \ + |sed -e 's:^..prefix./etc$:/etc${prefix}:'` + sharedstatedir=`echo $sharedstatedir \ + |sed -e 's:^..prefix./com$:/etc/default${prefix}:'` + # $prefix/var is going to to be /var$prefix... once again + localstatedir=`echo $localstatedir \ + |sed -e 's:^..prefix./var$:/var${prefix}:'` + # doc files are left at prefix + docprefix="${prefix}" + ;; + *) result="is /local-package" + # doc files are moved from prefix down to datadir + docprefix="${datadir}" + mandir=`echo $mandir \ + |sed -e 's:^..prefix./man$:${datadir}/man:'` + infodir=`echo $infodir \ + |sed -e 's:^..prefix./infodir$:${datadir}/info:'` + # never use $prefix/com - that is no good idea + sharedstatedir=`echo $sharedstatedir \ + |sed -e 's:^..prefix./com$:${sysconfdir}/default:'` + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 +$as_echo "$result" >&6; } +# -------------------------------------------------------- + +# ----------------------------------------------------------------------- +# Check whether --enable-thread-safe was given. +if test "${enable_thread_safe+set}" = set; then : + enableval=$enable_thread_safe; +else + enable_thread_safe="yes" +fi + +THREAD_SAFE="" +test "$enable_thread_safe" = "yes" && THREAD_SAFE="-thread-safe" +test "$enable_thread_safe" = "$host_os" && THREAD_SAFE="-thread-safe" + +if test -n "$THREAD_SAFE" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...using thread-safe linkage" >&5 +$as_echo "...using thread-safe linkage" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled thread-safe linkage" >&5 +$as_echo "disabled thread-safe linkage" >&6; } +fi +# ---------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking zlib install prefix" >&5 +$as_echo_n "checking zlib install prefix... " >&6; } + +# Check whether --with-zlib was given. +if test "${with_zlib+set}" = set; then : + withval=$with_zlib; +else + with_zlib="no" +fi + +if test "${with_zlib}" = yes ; then # choose --prefix paths + if test "${prefix}" = NONE ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops, but only itself..." >&5 +$as_echo "oops, but only itself..." >&6; } + as_fn_error "--with-zlib requires a path argument or a --prefix path set" "$LINENO" 5 + fi + with_zlib="$prefix" +fi + +case ".$with_zlib" in + .no|.no,*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } + with_zlib="no, not configured" ;; + ./usr) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops, ignored (may try --with-zlib=/usr/.)" >&5 +$as_echo "oops, ignored (may try --with-zlib=/usr/.)" >&6; } + with_zlib="no, /usr ignored" ;; + *) if test ! -d "$with_zlib/include" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops, given but..." >&5 +$as_echo "oops, given but..." >&6; } + as_fn_error "\"$with_zlib/include\" is not a directory" "$LINENO" 5 + fi + if test ! -d "$with_zlib/lib" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops, given but..." >&5 +$as_echo "oops, given but..." >&6; } + as_fn_error "\"$with_zlib/lib\" is not a directory" "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_zlib" >&5 +$as_echo "$with_zlib" >&6; } + ZLIB_INCL="-I$with_zlib/include" + ZLIB_LDIR="-L$with_zlib/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CPPFLAGS $ZLIB_INCL" >&5 +$as_echo "..adding CPPFLAGS $ZLIB_INCL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding LDFLAGS $ZLIB_LDIR" >&5 +$as_echo "..adding LDFLAGS $ZLIB_LDIR" >&6; } + CPPFLAGS="$CPPFLAGS $ZLIB_INCL" + LDFLAGS="$LDFLAGS $ZLIB_LDIR" + ;; +esac + + +# ----------------------------------------------------------------------- + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking rpm spec file" >&5 +$as_echo_n "checking rpm spec file... " >&6; } + if test "." != "." ; then + ax_spec_file_="" + ax_spec_file=`basename ` + else + case ".$ac_unique_file" in + *.spec) ax_spec_file="$ac_unique_file" + ax_spec_file_="$ac_unique_file" ;; + *) ax_spec_file="TODO" + if test ".$PACKAGE" != "." + then ax_spec_file_="$PACKAGE.spec" + else ax_spec_file_="README" + fi + cat >&5 <<EOF + no ax_spec_file argument has been given, using defaults of + (1) $ax_spec_file_ + (2) $ax_spec_file +EOF + ;; + esac + fi + # find specfile + for i in . $srcdir $srcdir/.. .. ; do + if test -f "$i/$ax_spec_file_" ; then + ax_spec_dir="$i" + ax_spec_file="$ax_spec_dir/$ax_spec_file_" + break + fi + if test -f "$i/$ax_spec_file" ; then + ax_spec_dir="$i" + ax_spec_file="$ax_spec_dir/$ax_spec_file" + break + fi + done + case "$ax_spec_file" in + ./*) if test "$ax_spec_file" = "./$ax_spec_file_" ; then + ax_spec_file="$ax_spec_file_" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_spec_file" >&5 +$as_echo "$ax_spec_file" >&6; } ;; + */*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_spec_file" >&5 +$as_echo "$ax_spec_file" >&6; } ;; + *) as_fn_error "no rpm spec file found" "$LINENO" 5 ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec package" >&5 +$as_echo_n "checking for spec package... " >&6; } + if test ".$PACKAGE_NAME" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + + if test ".$PACKAGE_NAME" = "." ; then + PACKAGE_NAME=`grep -i '^[ ]*name[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'` + if test ".$PACKAGE_NAME" = "." ; then + for PACKAGE_NAME in name PACKAGE_NAME package_name ; do + PACKAGE_NAME=`echo "$PACKAGE_NAME" | sed -e 's/^%//g'` + PACKAGE_NAME=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` + test ".PACKAGE_NAME" != "." && break + done + fi + case ".$PACKAGE_NAME" in + .%{*) + PACKAGE_NAME=`echo "$PACKAGE_NAME" | sed -e 's/%{//' -e 's/}$//'` + PACKAGE_NAME=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + .%*) + PACKAGE_NAME=`echo "$PACKAGE_NAME" | sed -e 's/%//'` + PACKAGE_NAME=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + esac + + fi # test ".$[]PACKAGE_NAME" = "." + + PACKAGE_NAME=`echo $PACKAGE_NAME | sed -e 's/ /-/g'` + fi fi + test ".$PACKAGE_NAME" = "." && k="(fallback)" + test ".$PACKAGE_NAME" = "." && PACKAGE_NAME=`basename $ax_spec_file .spec` + test ".$PACKAGE_NAME" = ".README" && PACKAGE_NAME="TODO" + test ".$PACKAGE_NAME" = ".TODO" && PACKAGE_NAME="foo" + + test "PACKAGE_NAME" = "PACKAGE_NAME" && test ".$PACKAGE" = "." && PACKAGE="$PACKAGE_NAME" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_NAME $k" >&5 +$as_echo "$PACKAGE_NAME $k" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec version" >&5 +$as_echo_n "checking for spec version... " >&6; } + if test ".$PACKAGE_VERSION" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + + if test ".$PACKAGE_VERSION" = "." ; then + PACKAGE_VERSION=`grep -i '^[ ]*version[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'` + if test ".$PACKAGE_VERSION" = "." ; then + for PACKAGE_VERSION in version PACKAGE_VERSION package_version ; do + PACKAGE_VERSION=`echo "$PACKAGE_VERSION" | sed -e 's/^%//g'` + PACKAGE_VERSION=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` + test ".PACKAGE_VERSION" != "." && break + done + fi + case ".$PACKAGE_VERSION" in + .%{*) + PACKAGE_VERSION=`echo "$PACKAGE_VERSION" | sed -e 's/%{//' -e 's/}$//'` + PACKAGE_VERSION=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + .%*) + PACKAGE_VERSION=`echo "$PACKAGE_VERSION" | sed -e 's/%//'` + PACKAGE_VERSION=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + esac + + fi # test ".$[]PACKAGE_VERSION" = "." + + PACKAGE_VERSION=`echo $PACKAGE_VERSION | sed -e 's/ /-/g'` + fi fi + test ".$PACKAGE_VERSION" = "." && k="(fallback)" + test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION=`date +0.%y.%W%w` + + test "PACKAGE_VERSION" = "PACKAGE_VERSION" && test ".$VERSION" = "." && VERSION="$PACKAGE_VERSION" + case "$PACKAGE_VERSION" in # note we set traditional VERSION before cleaning things up + *.*.) PACKAGE_VERSION="$PACKAGE_VERSION"`date +%W%w` ;; + *.*.*) ;; + *.) PACKAGE_VERSION="$PACKAGE_VERSION"`date +%y.%W%w` ;; + *.*) PACKAGE_VERSION="$PACKAGE_VERSION.0" ;; + *) PACKAGE_VERSION=`$as_echo "$PACKAGE_VERSION" | $as_tr_sh` ; PACKAGE_VERSION="$PACKAGE_VERSION.`date +%y.%W%w`" ;; + esac + PACKAGE_VERSION=`echo $PACKAGE_VERSION | sed -e "s/[.]0\\(0-9\\)/.\\1/g"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_VERSION $k" >&5 +$as_echo "$PACKAGE_VERSION $k" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec license type" >&5 +$as_echo_n "checking for spec license type... " >&6; } + if test ".$PACKAGE_LICENSE" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + + if test ".$PACKAGE_LICENSE" = "." ; then + PACKAGE_LICENSE=`grep -i '^[ ]*license[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'` + if test ".$PACKAGE_LICENSE" = "." ; then + for PACKAGE_LICENSE in license PACKAGE_LICENSE package_license ; do + PACKAGE_LICENSE=`echo "$PACKAGE_LICENSE" | sed -e 's/^%//g'` + PACKAGE_LICENSE=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` + test ".PACKAGE_LICENSE" != "." && break + done + fi + case ".$PACKAGE_LICENSE" in + .%{*) + PACKAGE_LICENSE=`echo "$PACKAGE_LICENSE" | sed -e 's/%{//' -e 's/}$//'` + PACKAGE_LICENSE=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + .%*) + PACKAGE_LICENSE=`echo "$PACKAGE_LICENSE" | sed -e 's/%//'` + PACKAGE_LICENSE=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + esac + + fi # test ".$[]PACKAGE_LICENSE" = "." + + PACKAGE_LICENSE=`echo $PACKAGE_LICENSE | sed -e 's/ *License//g'` + fi fi + test ".$PACKAGE_LICENSE" = "." && k="(fallback)" + if test ".$PACKAGE_LICENSE" = "." ; then + for ac_file in "$srcdir/COPYING" "$srcdir/COPYING" "$srcdir/LICENSE" ; do + test -f "$ac_file" || continue + if grep "GNU LESSER GENERAL PUBLIC LICENSE" "$ac_file" >/dev/null + then PACKAGE_LICENSE="GNU LGPL" ; break + elif grep "GNU GENERAL PUBLIC LICENSE" "$ac_file" >/dev/null + then PACKAGE_LICENSE="GNU GPL" ; break + elif grep "MOZILLA PUBLIC LICENSE" "$ac_file" >/dev/null + then PACKAGE_LICENSE="MPL" ; break + elif grep "Mozilla Public License" "$ac_file" >/dev/null + then PACKAGE_LICENSE="MPL" ; break + elif grep -i "artistic license" "$ac_file" >/dev/null + then PACKAGE_LICENSE="Artistic" ; break + elif grep -i "artistic control" "$ac_file" >/dev/null + then PACKAGE_LICENSE="Artistic" ; break + elif grep -i "semblance of artistic" "$ac_file" >/dev/null + then PACKAGE_LICENSE="Artistic" ; break + elif grep -i "above copyright notice" "$ac_file" >/dev/null + then PACKAGE_LICENSE="BSD" ; break + fi + done + if test ".$PACKAGE_LICENSE" = "." ; then + if test "$srcdir/COPYING.LIB" ; then PACKAGE_LICENSE="GNU LGPL" + elif test ".$ltmain" != "." ; then PACKAGE_LICENSE="GNU LGPL" + else PACKAGE_LICENSE="GNU GPL" + fi + fi + fi + + test "$PACKAGE_LICENSE" = "GPL" && PACKAGE_LICENSE="GNU GPL" + test "$PACKAGE_LICENSE" = "LGPL" && PACKAGE_LICENSE="GNU LGPL" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_LICENSE $k" >&5 +$as_echo "$PACKAGE_LICENSE $k" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec summary" >&5 +$as_echo_n "checking for spec summary... " >&6; } + if test ".$PACKAGE_SUMMARY" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + + if test ".$PACKAGE_SUMMARY" = "." ; then + PACKAGE_SUMMARY=`grep -i '^[ ]*summary[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'` + if test ".$PACKAGE_SUMMARY" = "." ; then + for PACKAGE_SUMMARY in summary PACKAGE_SUMMARY package_summary ; do + PACKAGE_SUMMARY=`echo "$PACKAGE_SUMMARY" | sed -e 's/^%//g'` + PACKAGE_SUMMARY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` + test ".PACKAGE_SUMMARY" != "." && break + done + fi + case ".$PACKAGE_SUMMARY" in + .%{*) + PACKAGE_SUMMARY=`echo "$PACKAGE_SUMMARY" | sed -e 's/%{//' -e 's/}$//'` + PACKAGE_SUMMARY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + .%*) + PACKAGE_SUMMARY=`echo "$PACKAGE_SUMMARY" | sed -e 's/%//'` + PACKAGE_SUMMARY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + esac + + fi # test ".$[]PACKAGE_SUMMARY" = "." + + fi fi + test ".$PACKAGE_SUMMARY" = "." && k="(fallback)" + if test ".$PACKAGE_SUMMARY" = "." ; then PACKAGE_SUMMARY="$PACKAGE" + test ".$PACKAGE_SUMMARY" = "." && PACKAGE_SUMMARY="foo" + test ".$ltmain" != "." && PACKAGE_SUMMARY="$PACKAGE_SUMMARY library" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_SUMMARY $k" >&5 +$as_echo "$PACKAGE_SUMMARY $k" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec category" >&5 +$as_echo_n "checking for spec category... " >&6; } + if test ".$PACKAGE_CATEGORY" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + + if test ".$PACKAGE_CATEGORY" = "." ; then + PACKAGE_CATEGORY=`grep -i '^[ ]*group[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'` + if test ".$PACKAGE_CATEGORY" = "." ; then + for PACKAGE_CATEGORY in group PACKAGE_CATEGORY package_category ; do + PACKAGE_CATEGORY=`echo "$PACKAGE_CATEGORY" | sed -e 's/^%//g'` + PACKAGE_CATEGORY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` + test ".PACKAGE_CATEGORY" != "." && break + done + fi + case ".$PACKAGE_CATEGORY" in + .%{*) + PACKAGE_CATEGORY=`echo "$PACKAGE_CATEGORY" | sed -e 's/%{//' -e 's/}$//'` + PACKAGE_CATEGORY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + .%*) + PACKAGE_CATEGORY=`echo "$PACKAGE_CATEGORY" | sed -e 's/%//'` + PACKAGE_CATEGORY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + esac + + fi # test ".$[]PACKAGE_CATEGORY" = "." + + PACKAGE_CATEGORY=`echo $PACKAGE_CATEGORY | sed -e 's/ /-/g'` + fi fi + test ".$PACKAGE_CATEGORY" = "." && k="(fallback)" + if test ".$PACKAGE_CATEGORY" = "." ; then if test ".$ltmain" != "." + then PACKAGE_CATEGORY="Development/Library" + else PACKAGE_CATEGORY="Development/Other" + fi fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_CATEGORY $k" >&5 +$as_echo "$PACKAGE_CATEGORY $k" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec icon" >&5 +$as_echo_n "checking for spec icon... " >&6; } + if test ".$PACKAGE_ICON" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + + if test ".$PACKAGE_ICON" = "." ; then + PACKAGE_ICON=`grep -i '^[ ]*icon[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'` + if test ".$PACKAGE_ICON" = "." ; then + for PACKAGE_ICON in icon PACKAGE_ICON package_icon ; do + PACKAGE_ICON=`echo "$PACKAGE_ICON" | sed -e 's/^%//g'` + PACKAGE_ICON=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` + test ".PACKAGE_ICON" != "." && break + done + fi + case ".$PACKAGE_ICON" in + .%{*) + PACKAGE_ICON=`echo "$PACKAGE_ICON" | sed -e 's/%{//' -e 's/}$//'` + PACKAGE_ICON=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + .%*) + PACKAGE_ICON=`echo "$PACKAGE_ICON" | sed -e 's/%//'` + PACKAGE_ICON=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;; + esac + + fi # test ".$[]PACKAGE_ICON" = "." + + fi fi + test ".$PACKAGE_ICON" = "." && k="(fallback)" + if test ".$PACKAGE_ICON" = "." ; then PACKAGE_ICON="$PACKAGE-icon.png" ; fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_ICON $k" >&5 +$as_echo "$PACKAGE_ICON $k" >&6; } + + +am__api_version='1.11' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE=$PACKAGE + VERSION=$VERSION + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "no acceptable C compiler found in \$PATH +See \`config.log' for more details." "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ as_fn_set_status 77 +as_fn_error "C compiler cannot create executables +See \`config.log' for more details." "$LINENO" 5; }; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdio.h> +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if test "${ac_cv_objext+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot compute suffix of object files: cannot compile +See \`config.log' for more details." "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdarg.h> +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +$as_echo "$AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +$as_echo "$ac_ct_AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DLLTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.2.6' +macro_revision='1.3012' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if test "${ac_cv_path_SED+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if test "${ac_cv_path_FGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$lt_cv_path_LD" +if test -n "$LD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test "${lt_cv_path_NM+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$ac_tool_prefix"; then + for ac_prog in "dumpbin -symbols" "link -dump -symbols" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in "dumpbin -symbols" "link -dump -symbols" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if test "${lt_cv_nm_interface+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:5500: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:5503: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:5506: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + + + + + + + + + + + + + + + + + + + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 6709 "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_NMEDIT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_LIPO+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL64+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if test "${lt_cv_apple_cc_single_mod+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <string.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ctype.h> +#include <stdlib.h> +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + +# Set options + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if test "${lt_cv_objdir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + + + + + + + + + + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8237: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:8241: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +$as_echo "$lt_prog_compiler_pic" >&6; } + + + + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8576: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:8580: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8681: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:8685: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8736: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:8740: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ 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 + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' + archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$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 + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + 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_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo(void) {} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = x""yes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 11103 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 11199 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking out linker version info $PACKAGE_VERSION " >&5 +$as_echo_n "checking out linker version info $PACKAGE_VERSION ... " >&6; } + MINOR_VERSION=`echo $PACKAGE_VERSION` + MAJOR_VERSION=`echo "$MINOR_VERSION" | sed -e 's/[.].*//'` + MINOR_VERSION=`echo "$MINOR_VERSION" | sed -e "s/^$MAJOR_VERSION//" -e 's/^.//'` + MICRO_VERSION="$MINOR_VERSION" + MINOR_VERSION=`echo "$MICRO_VERSION" | sed -e 's/[.].*//'` + MICRO_VERSION=`echo "$MICRO_VERSION" | sed -e "s/^$MINOR_VERSION//" -e 's/^.//'` + PATCH_VERSION="$MICRO_VERSION" + MICRO_VERSION=`echo "$PATCH_VERSION" | sed -e 's/[^0-9].*//'` + PATCH_VERSION=`echo "$PATCH_VERSION" | sed -e "s/^$MICRO_VERSION//" -e 's/[-.]//'` + if test "_$MICRO_VERSION" = "_" ; then MICRO_VERSION="0" ; fi + if test "_$MINOR_VERSION" = "_" ; then MINOR_VERSION="$MAJOR_VERSION" ; MAJOR_VERSION="0" ; fi + MINOR_VERSION=`echo "$MINOR_VERSION" | sed -e 's/[^0-9].*//'` + RELEASE_INFO="-release $MAJOR_VERSION" + VERSION_INFO="-version-info $MINOR_VERSION:$MICRO_VERSION" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: /$MAJOR_VERSION/$MINOR_VERSION:$MICRO_VERSION (-$MAJOR_VERSION.so.$MINOR_VERSION.0.$MICRO_VERSION)" >&5 +$as_echo "/$MAJOR_VERSION/$MINOR_VERSION:$MICRO_VERSION (-$MAJOR_VERSION.so.$MINOR_VERSION.0.$MICRO_VERSION)" >&6; } + + + + +# ----------------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: creating zzip/_msvc.in via zzip/_msvc.sed of config.h.in" >&5 +$as_echo "creating zzip/_msvc.in via zzip/_msvc.sed of config.h.in" >&6; } +test -d zzip || mkdir zzip +sed -f $srcdir/zzip/_msvc.sed $srcdir/config.h.in >zzip/_msvc.in +ac_config_headers="$ac_config_headers config.h" + + ac_config_commands="$ac_config_commands zzip/_config.h" + + ac_config_commands="$ac_config_commands zzip/_msvc.h" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + + +# we need the expanded forms... +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig libname" >&5 +$as_echo_n "checking our pkgconfig libname... " >&6; } +test ".$ax_create_pkgconfig_libname" != "." || \ +ax_create_pkgconfig_libname="`basename zzip/zziplib.pc .pc`" +test ".$ax_create_pkgconfig_libname" != "." || \ +ax_create_pkgconfig_libname="$PACKAGE" +ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"` +ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libname" >&5 +$as_echo "$ax_create_pkgconfig_libname" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig version" >&5 +$as_echo_n "checking our pkgconfig version... " >&6; } +test ".$ax_create_pkgconfig_version" != "." || \ +ax_create_pkgconfig_version="${PACKAGE_VERSION}" +test ".$ax_create_pkgconfig_version" != "." || \ +ax_create_pkgconfig_version="$VERSION" +ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"` +ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_version" >&5 +$as_echo "$ax_create_pkgconfig_version" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libdir" >&5 +$as_echo_n "checking our pkgconfig_libdir... " >&6; } +test ".$pkgconfig_libdir" = "." && \ +pkgconfig_libdir='${libdir}/pkgconfig' +ax_create_pkgconfig_libdir=`eval echo "$pkgconfig_libdir"` +ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"` +ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libdir" >&5 +$as_echo "$pkgconfig_libdir" >&6; } +test "$pkgconfig_libdir" != "$ax_create_pkgconfig_libdir" && ( +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&5 +$as_echo "expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&6; }) + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libfile" >&5 +$as_echo_n "checking our pkgconfig_libfile... " >&6; } +test ".$pkgconfig_libfile" != "." || \ +pkgconfig_libfile="`basename zzip/zziplib.pc`" +ax_create_pkgconfig_libfile=`eval echo "$pkgconfig_libfile"` +ax_create_pkgconfig_libfile=`eval echo "$ax_create_pkgconfig_libfile"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libfile" >&5 +$as_echo "$pkgconfig_libfile" >&6; } +test "$pkgconfig_libfile" != "$ax_create_pkgconfig_libfile" && ( +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&5 +$as_echo "expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&6; }) + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our package / suffix" >&5 +$as_echo_n "checking our package / suffix... " >&6; } +ax_create_pkgconfig_suffix="$program_suffix" +test ".$ax_create_pkgconfig_suffix" != .NONE || ax_create_pkgconfig_suffix="" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&5 +$as_echo "${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig description" >&5 +$as_echo_n "checking our pkgconfig description... " >&6; } +ax_create_pkgconfig_description="$PACKAGE_SUMMARY" +test ".$ax_create_pkgconfig_description" != "." || \ +ax_create_pkgconfig_description="$ax_create_pkgconfig_libname Library" +ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"` +ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_description" >&5 +$as_echo "$ax_create_pkgconfig_description" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig requires" >&5 +$as_echo_n "checking our pkgconfig requires... " >&6; } +ax_create_pkgconfig_requires="zzip-zlib-config" +ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"` +ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_requires" >&5 +$as_echo "$ax_create_pkgconfig_requires" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ext libs" >&5 +$as_echo_n "checking our pkgconfig ext libs... " >&6; } +ax_create_pkgconfig_pkglibs="$PACKAGE_LIBS" +test ".$ax_create_pkgconfig_pkglibs" != "." || ax_create_pkgconfig_pkglibs="-l$ax_create_pkgconfig_libname" +ax_create_pkgconfig_libs="-lzzip" +ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"` +ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libs" >&5 +$as_echo "$ax_create_pkgconfig_libs" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig cppflags" >&5 +$as_echo_n "checking our pkgconfig cppflags... " >&6; } +ax_create_pkgconfig_cppflags="$CPPFLAGS $PACKAGE_CFLAGS" +ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"` +ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_cppflags" >&5 +$as_echo "$ax_create_pkgconfig_cppflags" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ldflags" >&5 +$as_echo_n "checking our pkgconfig ldflags... " >&6; } +ax_create_pkgconfig_ldflags="$LDFLAGS $PACKAGE_LDFLAGS" +ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"` +ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_ldflags" >&5 +$as_echo "$ax_create_pkgconfig_ldflags" >&6; } + +test ".$ax_create_pkgconfig_generate" != "." || \ +ax_create_pkgconfig_generate="zzip/zziplib.pc" +ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"` +ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"` +test "$pkgconfig_libfile" != "$ax_create_pkgconfig_generate" && ( +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: generate the pkgconfig later... $ax_create_pkgconfig_generate" >&5 +$as_echo "generate the pkgconfig later... $ax_create_pkgconfig_generate" >&6; }) + +if test ".$ax_create_pkgconfig_src_libdir" = "." ; then +ax_create_pkgconfig_src_libdir=`pwd` +ax_create_pkgconfig_src_libdir=`$as_dirname -- "$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" || +$as_expr X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)[^/]' \| \ + X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)$' \| \ + X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` +test ! -d $ax_create_pkgconfig_src_libdir/src || \ +ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/src" +case ".$objdir" in +*libs) ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/$objdir" ;; esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&5 +$as_echo "noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&6; } +fi + +if test ".$ax_create_pkgconfig_src_headers" = "." ; then +ax_create_pkgconfig_src_headers=`pwd` +v="$ac_top_srcdir" ; +test ".$v" != "." || v="$ax_spec_dir" +test ".$v" != "." || v="$srcdir" +case "$v" in /*) ax_create_pkgconfig_src_headers="" ;; esac +ax_create_pkgconfig_src_headers=`$as_dirname -- "$ax_create_pkgconfig_src_headers/$v/x" || +$as_expr X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)[^/]' \| \ + X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)$' \| \ + X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ax_create_pkgconfig_src_headers/$v/x" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` +test ! -d $ax_create_pkgconfig_src_headers/include || \ +ax_create_pkgconfig_src_headers="$ax_create_pkgconfig_src_headers/include" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&5 +$as_echo "noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&6; } +fi + + +ac_config_commands="$ac_config_commands $ax_create_pkgconfig_generate" + +# ----------------------------------------------------------------------- + + +if test -z "$ac_cv_pax_tar_tool"; then + # Extract the first word of "pax", so it can be a program name with args. +set dummy pax; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PAX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PAX in + [\\/]* | ?:[\\/]*) + ac_cv_path_PAX="$PAX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PAX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PAX" && ac_cv_path_PAX=":" + ;; +esac +fi +PAX=$ac_cv_path_PAX +if test -n "$PAX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAX" >&5 +$as_echo "$PAX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$ac_cv_path_PAX" != ":"; then + ac_cv_pax_tar_tool="pax" + else #3 + # Extract the first word of "gnutar", so it can be a program name with args. +set dummy gnutar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GNUTAR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GNUTAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_GNUTAR="$GNUTAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GNUTAR="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GNUTAR" && ac_cv_path_GNUTAR=":" + ;; +esac +fi +GNUTAR=$ac_cv_path_GNUTAR +if test -n "$GNUTAR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNUTAR" >&5 +$as_echo "$GNUTAR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$ac_cv_path_GNUTAR" != ":"; then + ac_cv_pax_tar_tool="gnutar" + else #1 + # Extract the first word of "gtar", so it can be a program name with args. +set dummy gtar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GTAR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GTAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTAR="$GTAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTAR="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GTAR" && ac_cv_path_GTAR=":" + ;; +esac +fi +GTAR=$ac_cv_path_GTAR +if test -n "$GTAR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTAR" >&5 +$as_echo "$GTAR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$ac_cv_path_GTAR" != ":"; then + ac_cv_pax_tar_tool="gtar" + else #2 + # Extract the first word of "tar", so it can be a program name with args. +set dummy tar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_TAR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $TAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_TAR="$TAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_TAR" && ac_cv_path_TAR=":" + ;; +esac +fi +TAR=$ac_cv_path_TAR +if test -n "$TAR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5 +$as_echo "$TAR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$ac_cv_path_TAR" != ":"; then + ac_cv_pax_tar_tool="tar" + fi + fi fi fi #3 #2 #1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for portable tar tool" >&5 +$as_echo_n "checking for portable tar tool... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pax_tar_tool" >&5 +$as_echo "$ac_cv_pax_tar_tool" >&6; } +fi + + + if test "$ac_cv_pax_tar_tool$ax_pax_single_archive" = "pax"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pax single archive option" >&5 +$as_echo_n "checking for pax single archive option... " >&6; } + echo foo > conftest.txt ; rm -f conftest.tar + { { $as_echo "$as_me:${as_lineno-$LINENO}: \"\$ac_cv_path_PAX\" -w -O -f conftest.tar conftest.txt"; } >&5 + ("$ac_cv_path_PAX" -w -O -f conftest.tar conftest.txt) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test -s conftest.tar; then + ax_pax_single_archive="-O" ; ac_hint="(probably a BSD pax)" + else + ax_pax_single_archive=" " ; ac_hint="(the -O option did not work)" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pax_single_archive $ac_hint" >&5 +$as_echo "$ax_pax_single_archive $ac_hint" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for command to create portable tar archives" >&5 +$as_echo_n "checking for command to create portable tar archives... " >&6; } + if test "$ac_cv_pax_tar_tool" = "gnutar"; then + ax_pax_tar_create="'$ac_cv_path_GNUTAR' cf" + elif test "$ac_cv_pax_tar_tool" = "gtar"; then + ax_pax_tar_create="'$ac_cv_path_GTAR' cf" + elif test "$ac_cv_pax_tar_tool" = "pax"; then + ax_pax_tar_create="'$ac_cv_path_PAX' -w $ax_pax_single_archive -f" + elif test "$ac_cv_pax_tar_tool" = "tar"; then + ax_pax_tar_create="'$ac_cv_path_TAR' cf" + else + ax_pax_tar_create=": 'unknown pax tar tool $ac_cv_pax_tar_tool'" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pax_tar_create" >&5 +$as_echo "$ax_pax_tar_create" >&6; } + +PAX_TAR_CREATE="$ax_pax_tar_create" + + + + + +if test -z "$ac_cv_pax_tar_tool"; then + # Extract the first word of "pax", so it can be a program name with args. +set dummy pax; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PAX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PAX in + [\\/]* | ?:[\\/]*) + ac_cv_path_PAX="$PAX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PAX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PAX" && ac_cv_path_PAX=":" + ;; +esac +fi +PAX=$ac_cv_path_PAX +if test -n "$PAX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAX" >&5 +$as_echo "$PAX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$ac_cv_path_PAX" != ":"; then + ac_cv_pax_tar_tool="pax" + else #3 + # Extract the first word of "gnutar", so it can be a program name with args. +set dummy gnutar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GNUTAR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GNUTAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_GNUTAR="$GNUTAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GNUTAR="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GNUTAR" && ac_cv_path_GNUTAR=":" + ;; +esac +fi +GNUTAR=$ac_cv_path_GNUTAR +if test -n "$GNUTAR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNUTAR" >&5 +$as_echo "$GNUTAR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$ac_cv_path_GNUTAR" != ":"; then + ac_cv_pax_tar_tool="gnutar" + else #1 + # Extract the first word of "gtar", so it can be a program name with args. +set dummy gtar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GTAR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GTAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTAR="$GTAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTAR="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GTAR" && ac_cv_path_GTAR=":" + ;; +esac +fi +GTAR=$ac_cv_path_GTAR +if test -n "$GTAR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTAR" >&5 +$as_echo "$GTAR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$ac_cv_path_GTAR" != ":"; then + ac_cv_pax_tar_tool="gtar" + else #2 + # Extract the first word of "tar", so it can be a program name with args. +set dummy tar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_TAR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $TAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_TAR="$TAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_TAR" && ac_cv_path_TAR=":" + ;; +esac +fi +TAR=$ac_cv_path_TAR +if test -n "$TAR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5 +$as_echo "$TAR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$ac_cv_path_TAR" != ":"; then + ac_cv_pax_tar_tool="tar" + fi + fi fi fi #3 #2 #1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for portable tar tool" >&5 +$as_echo_n "checking for portable tar tool... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pax_tar_tool" >&5 +$as_echo "$ac_cv_pax_tar_tool" >&6; } +fi + + + if test "$ac_cv_pax_tar_tool$ax_pax_single_archive" = "pax"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pax single archive option" >&5 +$as_echo_n "checking for pax single archive option... " >&6; } + echo foo > conftest.txt ; rm -f conftest.tar + { { $as_echo "$as_me:${as_lineno-$LINENO}: \"\$ac_cv_path_PAX\" -w -O -f conftest.tar conftest.txt"; } >&5 + ("$ac_cv_path_PAX" -w -O -f conftest.tar conftest.txt) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test -s conftest.tar; then + ax_pax_single_archive="-O" ; ac_hint="(probably a BSD pax)" + else + ax_pax_single_archive=" " ; ac_hint="(the -O option did not work)" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pax_single_archive $ac_hint" >&5 +$as_echo "$ax_pax_single_archive $ac_hint" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for command to extract portable tar archives" >&5 +$as_echo_n "checking for command to extract portable tar archives... " >&6; } + if test "$ac_cv_pax_tar_tool" = "gnutar"; then + ax_pax_tar_extract="'$ac_cv_path_GNUTAR' xf" + elif test "$ac_cv_pax_tar_tool" = "gtar"; then + ax_pax_tar_extract="'$ac_cv_path_GTAR' xf" + elif test "$ac_cv_pax_tar_tool" = "pax"; then + ax_pax_tar_extract="'$ac_cv_path_PAX' -r $ax_pax_single_archive -f" + elif test "$ac_cv_pax_tar_tool" = "tar"; then + ax_pax_tar_extract="'$ac_cv_path_TAR' xf" + else + ax_pax_tar_extract=": 'unknown pax tar tool $ac_cv_pax_tar_tool'" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pax_tar_extract" >&5 +$as_echo "$ax_pax_tar_extract" >&6; } + +PAX_TAR_EXTRACT="$ax_pax_tar_extract" + + + +for ac_prog in perl5 perl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PERL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_PERL="$PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PERL=$ac_cv_path_PERL +if test -n "$PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 +$as_echo "$PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PERL" && break +done +test -n "$PERL" || PERL="echo no perl found for" + +for ac_prog in python +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PYTHON+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +$as_echo "$PYTHON" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PYTHON" && break +done +test -n "$PYTHON" || PYTHON="echo no python found for" + +for ac_prog in zip pkzip +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MKZIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $MKZIP in + [\\/]* | ?:[\\/]*) + ac_cv_path_MKZIP="$MKZIP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MKZIP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MKZIP=$ac_cv_path_MKZIP +if test -n "$MKZIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKZIP" >&5 +$as_echo "$MKZIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$MKZIP" && break +done +test -n "$MKZIP" || MKZIP=":" + +for ac_prog in xmlto +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XMLTO+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $XMLTO in + [\\/]* | ?:[\\/]*) + ac_cv_path_XMLTO="$XMLTO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_XMLTO="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XMLTO=$ac_cv_path_XMLTO +if test -n "$XMLTO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLTO" >&5 +$as_echo "$XMLTO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$XMLTO" && break +done +test -n "$XMLTO" || XMLTO=":" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if test "${ac_cv_c_inline+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if test "${ac_cv_c_const+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes +else + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +$as_echo "#define const /**/" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C restrict keyword" >&5 +$as_echo_n "checking for C restrict keyword... " >&6; } +if test "${acx_cv_c_restrict+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + acx_cv_c_restrict=unsupported + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + # Try the official restrict keyword, then gcc's __restrict__, then + # SGI's __restrict. __restrict has slightly different semantics than + # restrict (it's a bit stronger, in that __restrict pointers can't + # overlap even with non __restrict pointers), but I think it should be + # okay under the circumstances where restrict is normally used. + for acx_kw in restrict __restrict__ __restrict; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +float * $acx_kw x; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_c_restrict=$acx_kw; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_c_restrict" >&5 +$as_echo "$acx_cv_c_restrict" >&6; } + if test "$acx_cv_c_restrict" != "restrict"; then + acx_kw="$acx_cv_c_restrict" + if test "$acx_kw" = unsupported; then acx_kw=""; fi + +cat >>confdefs.h <<_ACEOF +#define restrict $acx_kw +_ACEOF + + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <string.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ctype.h> +#include <stdlib.h> +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_ac_Header=yes" +else + eval "$as_ac_Header=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$as_ac_Header + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if test "${ac_cv_search_opendir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_opendir+set}" = set; then : + break +fi +done +if test "${ac_cv_search_opendir+set}" = set; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if test "${ac_cv_search_opendir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_opendir+set}" = set; then : + break +fi +done +if test "${ac_cv_search_opendir+set}" = set; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +fi + +for ac_header in stdint.h unistd.h windows.h winnt.h winbase.h sys/int_types.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in sys/types.h sys/mman.h sys/stat.h sys/param.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + for ac_header in io.h direct.h zlib.h byteswap.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in fnmatch.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default" +if test "x$ac_cv_header_fnmatch_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FNMATCH_H 1 +_ACEOF + +fi + +done + +for ac_func in strcasecmp strndup +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +eval as_val=\$$as_ac_var + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" +if test "x$ac_cv_type_off_t" = x""yes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define off_t long int +_ACEOF + +fi + +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = x""yes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + +ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" +if test "x$ac_cv_type_ssize_t" = x""yes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t int +_ACEOF + +fi + +ac_fn_c_check_type "$LINENO" "off64_t" "ac_cv_type_off64_t" "$ac_includes_default" +if test "x$ac_cv_type_off64_t" = x""yes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define off64_t _zzip_off_t +_ACEOF + +fi + +ac_fn_c_check_type "$LINENO" "__int64" "ac_cv_type___int64" "$ac_includes_default" +if test "x$ac_cv_type___int64" = x""yes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define __int64 long long +_ACEOF + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 +$as_echo_n "checking size of short... " >&6; } +if test "${ac_cv_sizeof_short+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include "confdefs.h" +#include <sys/types.h> + + +int +main () +{ +switch (0) case 0: case (sizeof (short) == $ac_size):; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sizeof_short=$ac_size +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test x$ac_cv_sizeof_short != x ; then break; fi +done + +fi + +if test x$ac_cv_sizeof_short = x ; then + as_fn_error "cannot determine a size for short" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +$as_echo "$ac_cv_sizeof_short" >&6; } + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short +_ACEOF + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 +$as_echo_n "checking size of int... " >&6; } +if test "${ac_cv_sizeof_int+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include "confdefs.h" +#include <sys/types.h> + + +int +main () +{ +switch (0) case 0: case (sizeof (int) == $ac_size):; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sizeof_int=$ac_size +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test x$ac_cv_sizeof_int != x ; then break; fi +done + +fi + +if test x$ac_cv_sizeof_int = x ; then + as_fn_error "cannot determine a size for int" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +$as_echo "$ac_cv_sizeof_int" >&6; } + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +$as_echo_n "checking size of long... " >&6; } +if test "${ac_cv_sizeof_long+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include "confdefs.h" +#include <sys/types.h> + + +int +main () +{ +switch (0) case 0: case (sizeof (long) == $ac_size):; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sizeof_long=$ac_size +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test x$ac_cv_sizeof_long != x ; then break; fi +done + +fi + +if test x$ac_cv_sizeof_long = x ; then + as_fn_error "cannot determine a size for long" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if pointers to integers require aligned access" >&5 +$as_echo_n "checking if pointers to integers require aligned access... " >&6; } +if test "${ax_cv_have_aligned_access_required+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = "yes"; then + case "$host_cpu" in alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1) + ax_cv_have_aligned_access_required="yes" + ;; esac +else + if test "$cross_compiling" = yes; then : + ax_cv_have_aligned_access_required=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <stdio.h> +#include <stdlib.h> + +int main() +{ + char* string = malloc(40); + int i; + for (i=0; i < 40; i++) string[[i]] = i; + { + void* s = string; + int* p = s+1; + int* q = s+2; + + if (*p == *q) { return 1; } + } + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ax_cv_have_aligned_access_required=yes +else + ax_cv_have_aligned_access_required=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_aligned_access_required" >&5 +$as_echo "$ax_cv_have_aligned_access_required" >&6; } +fi +if test "$ax_cv_have_aligned_access_required" = yes ; then + +$as_echo "#define HAVE_ALIGNED_ACCESS_REQUIRED 1" >>confdefs.h + +fi + +# the default is _disabled_!! anyway, result is prefixed in zzip/_config.h!! +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if test "${ac_cv_sys_largefile_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if test "${ac_cv_sys_file_offset_bits+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include <sys/types.h> + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if test "${ac_cv_sys_large_files+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include <sys/types.h> + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -rf conftest* + fi +fi + +# we know about some internals of ac_sys_largefile here... +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system differentiates 64bit off_t by defines" >&5 +$as_echo_n "checking whether system differentiates 64bit off_t by defines... " >&6; } +ac_cv_sys_largefile_sensitive="no" +if test ".${ac_cv_sys_file_offset_bits-no}${ac_cv_sys_large_files-no}" != ".nono" +then ac_cv_sys_largefile_sensitive="yes" + +$as_echo "#define LARGEFILE_SENSITIVE 1" >>confdefs.h + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_sensitive" >&5 +$as_echo "$ac_cv_sys_largefile_sensitive" >&6; } + +test ".$LARGEFILE_CFLAGS" = "." && LARGEFILE_CFLAGS="" + +# Check whether --with-largefile was given. +if test "${with_largefile+set}" = set; then : + withval=$with_largefile; +else + with_largefile="no" +fi + +if test ".$ac_cv_sys_largefile_sensitive" = ".no" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: compiles library with the only off_t seen" >&5 +$as_echo "compiles library with the only off_t seen" >&6; } +elif test ".$with_largefile" != ".no" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: compiles library as 64bit off_t variant - and renaming some function names" >&5 +$as_echo "compiles library as 64bit off_t variant - and renaming some function names" >&6; } + LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGEFILE_SOURCE" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CFLAGS $LARGEFILE_CFLAGS" >&5 +$as_echo "..adding CFLAGS $LARGEFILE_CFLAGS" >&6; } + CFLAGS="$CFLAGS $LARGEFILE_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding 64 into RELEASE_INFO for the libraries" >&5 +$as_echo "..adding 64 into RELEASE_INFO for the libraries" >&6; } + RELEASE_INFO="$RELEASE_INFO-64" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: compiles library as 32bit off_t variant - largefile is not the default here" >&5 +$as_echo "compiles library as 32bit off_t variant - largefile is not the default here" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib being found" >&5 +$as_echo_n "checking for zlib being found... " >&6; } +if test "_$ac_cv_header_zlib_h" != "_yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...oops: zlib.h not found - try adding some CPPFLAGS to configure call" >&5 +$as_echo "...oops: zlib.h not found - try adding some CPPFLAGS to configure call" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: and when linkage fails you might also need to set some LDFLAGS" >&5 +$as_echo "...note: and when linkage fails you might also need to set some LDFLAGS" >&6; } + case "$prefix" in + NONE|/usr) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: both can be set by specifying the install prefix of the zlib library" >&5 +$as_echo "...note: both can be set by specifying the install prefix of the zlib library" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: via --with-zlib=path ... it will test for -Ipath/include -Lpath/lib" >&5 +$as_echo "...note: via --with-zlib=path ... it will test for -Ipath/include -Lpath/lib" >&6; } + ;; + *) if test -d $prefix/include ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: -I$prefix/include is not added to CPPFLAGS automatically and" >&5 +$as_echo "...note: -I$prefix/include is not added to CPPFLAGS automatically and" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: neither is -L$prefix/lib for LDFLAGS .. both will be if you specify" >&5 +$as_echo "...note: neither is -L$prefix/lib for LDFLAGS .. both will be if you specify" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: --with-zlib to configure call" >&5 +$as_echo "...note: --with-zlib to configure call" >&6; } + fi + ;; + esac + as_fn_error "zlib.h not found: \"zlib\" is required to build \"$PACKAGE\"" "$LINENO" 5 + exit 1 +fi +cat >conftest.c <<EOF +#include <zlib.h> +const char* zlib_VeRsIoN = ZLIB_VERSION "dEtEcT"; +EOF +ZLIB_VERSION=`(eval "$ac_cpp conftest.c") 2>/dev/null \ +| grep zlib_VeRsIoN | sed -e 's,.*= *.,,' -e 's,. *.dEtEcT.*,,'` +rm conftest.c + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - $ZLIB_VERSION" >&5 +$as_echo "yes - $ZLIB_VERSION" >&6; } +# ---------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking docdir default" >&5 +$as_echo_n "checking docdir default... " >&6; } + +# Check whether --with-docdir was given. +if test "${with_docdir+set}" = set; then : + withval=$with_docdir; +else + with_docdir="no" +fi + +case "${with_docdir}" in + prefix/*) docdir=` echo "$withval" | sed 's/^prefix/${prefix}'` ;; + datadir/*) docdir=` echo "$withval" | sed 's/^datadir/${datadir}'` ;; + yes) docdir='${prefix}/doc' ;; + no) docdir='${datadir}/doc' ;; + /*|\\*|a-zA-Z:*) docdir="$with_docdir" ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops" >&5 +$as_echo "oops" >&6; } + as_fn_error "bad value ${withval} for --with-docdir" "$LINENO" 5 + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $docdir" >&5 +$as_echo "$docdir" >&6; } +# ---------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether using debugging messages in libraries" >&5 +$as_echo_n "checking whether using debugging messages in libraries... " >&6; } + +# Check whether --with-debug was given. +if test "${with_debug+set}" = set; then : + withval=$with_debug; case "${withval}" in + yes|no) with_debug="$withval" ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops" >&5 +$as_echo "oops" >&6; } + as_fn_error "bad value ${withval} for --with-debug" "$LINENO" 5 ;; + esac +else + with_debug="no" +fi + +test "$with_debug" != "yes" && with_debug="no" # yes or no +test "$with_debug" = "yes" && export CFLAGS="$CFLAGS -DDEBUG" +result="$with_debug" ; test "$result" = "yes" && result="yes, added -DDEBUG" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 +$as_echo "$result" >&6; } +if test "$with_debug" = "yes" ; then if test -n "$RELEASE_INFO" ; then + RELEASE_INFO="$RELEASE_INFO-dbg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: modified release" >&5 +$as_echo "modified release" >&6; } +fi fi +# ---------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether thread stack is too small for bufsiz buffers" >&5 +$as_echo_n "checking whether thread stack is too small for bufsiz buffers... " >&6; } + # many embedded platforms, superthreaded systems and kernel usage + # will severely limit the stackspace for its threads. Use _LOWSTK + # compile-define on those platforms. + +# Check whether --with-lowstk was given. +if test "${with_lowstk+set}" = set; then : + withval=$with_lowstk; case "${withval}" in + yes|no|auto) with_lowstk="$withval" ;; + *) as_fn_error "bad value ${withval} for --with-lowstk" "$LINENO" 5 ;; + esac +else + with_lowstk="auto" +fi + +if test "$with_lowstk" = "auto"; then + case $target in + *-palmos-*) $with_lowstk="yes" ;; + esac +fi +test "$with_lowstk" != "yes" && with_lowstk="no" # yes or no +test "$with_lowstk" = "yes" && CFLAGS="$CFLAGS -D_LOWSTK" +result="$with_lowstk" ; test "$result" = "yes" && result="yes, added -D_LOWSTK" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_lowstk" >&5 +$as_echo "$with_lowstk" >&6; } +# --------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether can use mmap for file scanning" >&5 +$as_echo_n "checking whether can use mmap for file scanning... " >&6; } + # system with mmap are probably better performing an searching + # and parsing - atleast memory consumption is far better +# Check whether --enable-mmap was given. +if test "${enable_mmap+set}" = set; then : + enableval=$enable_mmap; case "${enableval}" in + yes|no|auto) enable_mmap="${enableval}" ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops" >&5 +$as_echo "oops" >&6; } + as_fn_error "bad value ${enableval} for --disable-mmap" "$LINENO" 5 ;; + esac +else + enable_mmap="auto" +fi + +if test "$enable_mmap" = "auto" +then + test "$ac_cv_header_winbase_h" && enable_mmap="yes, winbase.h" + test "$ac_cv_header_sys_mman_h" && enable_mmap="yes, sys/mman.h" +fi +case "$enable_mmap" in + yes|yes,*) CFLAGS="$CFLAGS -D_USE_MMAP" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_mmap" >&5 +$as_echo "$enable_mmap" >&6; } ;; + *) enable_mmap="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (just a bit slower)" >&5 +$as_echo "no (just a bit slower)" >&6; } ;; +esac +# --------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether making SDL parts" >&5 +$as_echo_n "checking whether making SDL parts... " >&6; } +SDL="" +SDL_GENERATE="" +# Check whether --enable-sdl was given. +if test "${enable_sdl+set}" = set; then : + enableval=$enable_sdl; +else + enable_sdl="no" +fi + +if test "$enable_sdl" = "no" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabled" >&5 +$as_echo "no, disabled" >&6; } +else + enable_sdl=`pkg-config --modversion sdl 2>/dev/null` + if test -z "$enable_sdl"; then + enable_sdl=`sdl-config --version 2>/dev/null` + SDL_GENERATE="sdl-uninstalled.pc" + enable_sdl="$enable_sdl (sdl-config)" + else + enable_sdl="$enable_sdl (pkgconfig)" + fi + enable_sdl="$enable_sdl." + case ".$enable_sdl" in + .1.*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, using SDL $enable_sdl" >&5 +$as_echo "yes, using SDL $enable_sdl" >&6; } + SDL="SDL" ;; + .2.*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, untested $enable_sdl" >&5 +$as_echo "yes, untested $enable_sdl" >&6; } + SDL="SDL" ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, $enable_sdl" >&5 +$as_echo "no, $enable_sdl" >&6; } ;; + esac + if test -n "$SDL_GENERATE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled SDL generation of... $SDL_GENERATE" >&5 +$as_echo "enabled SDL generation of... $SDL_GENERATE" >&6; } + fi +fi + + +# --------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking running extra tests on make check" >&5 +$as_echo_n "checking running extra tests on make check... " >&6; } +if test "MKZIP" != ":" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ZIPTESTS="" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ZIPTESTS="#" +fi + +# --------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking link options" >&5 +$as_echo_n "checking link options... " >&6; } +ZZIPLIB_LDFLAGS="" +test ".$can_build_shared" != ".no" && ZZIPLIB_LDFLAGS="--export-dynamic" +RESOLVES=" # " +case "$host_os" in mingw*) + ZZIPLIB_LDFLAGS="-no-undefined -export-all-symbols -mconsole" + RESOLVES=' ' +;; esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZZIPLIB_LDFLAGS $RESOLVES" >&5 +$as_echo "$ZZIPLIB_LDFLAGS $RESOLVES" >&6; } + + + +# Check whether --with-defines was given. +if test "${with_defines+set}" = set; then : + withval=$with_defines; +else + with_defines="normal" +fi + + +# +case ",$with_defines," in *,easy,*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CFLAGS -DZZIP_EASY" >&5 +$as_echo "..adding CFLAGS -DZZIP_EASY" >&6; } + CFLAGS="$CFLAGS -DZZIP_EASY" +;; esac +case ",$with_defines," in *,harden,*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CFLAGS -DZZIP_HARDEN" >&5 +$as_echo "..adding CFLAGS -DZZIP_HARDEN" >&6; } + CFLAGS="$CFLAGS -DZZIP_HARDEN" +;; esac +case ",$with_defines," in *,allow_modulo_entries,*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES" >&5 +$as_echo "..adding CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES" >&6; } + CFLAGS="$CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES" +;; esac + +# --------------------------------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking auto silent in maintainer mode" >&5 +$as_echo_n "checking auto silent in maintainer mode... " >&6; } +if test "$USE_MAINTAINER_MODE" = "no" ; then + test ".$TIMEOUT" = "." && TIMEOUT="9" + AUTOHEADER="sleep $TIMEOUT ; true || autoheader || skipped" + AUTOMAKE="sleep $TIMEOUT ; true || automake || skipped" + AUTOCONF="sleep $TIMEOUT ; true || autoconf || skipped" + if test ".$LIBTOOL" != "." ; then + LIBTOOL="$LIBTOOL --silent" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libtool-silent, auto-sleep-9" >&5 +$as_echo "libtool-silent, auto-sleep-9" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: auto-sleep-9" >&5 +$as_echo "auto-sleep-9" >&6; } + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS frame-pointer" >&5 +$as_echo_n "checking CFLAGS frame-pointer... " >&6; } +# Check whether --enable-frame-pointer was given. +if test "${enable_frame_pointer+set}" = set; then : + enableval=$enable_frame_pointer; +fi + +case ".$enable_frame_pointer" in + .|.no|.no,*) test ".$enable_frame_pointer" = "." && enable_frame_pointer="no" + CFLAGS=`echo " $CFLAGS " | sed -e 's/ -g / /'` + if test ".$GCC" = ".yes" ; then + CFLAGS="$CFLAGS -fomit-frame-pointer" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_frame_pointer, -fomit-frame-pointer added" >&5 +$as_echo "$enable_frame_pointer, -fomit-frame-pointer added" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_frame_pointer, -g removed" >&5 +$as_echo "$enable_frame_pointer, -g removed" >&6; } + fi ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_frame_pointer, kept" >&5 +$as_echo "$enable_frame_pointer, kept" >&6; } ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for maximum warnings" >&5 +$as_echo_n "checking CFLAGS for maximum warnings... " >&6; } +if test "${ac_cv_cflags_warn_all+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_warn_all="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic % -Wall" "-xstrconst % -v" "-std1 % -verbose -w0 -warnprotos" "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" "-ansi -ansiE % -fullwarn" "+ESlit % +w1" "-Xc % -pvctl,fullmsg" "-h conform % -h msglevel 2" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_warn_all=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5 +$as_echo "$ac_cv_cflags_warn_all" >&6; } +case ".$ac_cv_cflags_warn_all" in + .ok|.ok,*) ;; + .|.no|.no,*) + ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_warn_all " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_warn_all"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_warn_all) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_warn_all\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_warn_all") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_warn_all" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wpointer-arith" >&5 +$as_echo_n "checking CFLAGS for gcc -Wpointer-arith... " >&6; } +if test "${ac_cv_cflags_gcc_option__Wpointer_arith+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_gcc_option__Wpointer_arith="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic -Werror % -Wpointer-arith" "-pedantic % -Wpointer-arith %% no, obsolete" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_gcc_option__Wpointer_arith=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_gcc_option__Wpointer_arith" >&5 +$as_echo "$ac_cv_cflags_gcc_option__Wpointer_arith" >&6; } +case ".$ac_cv_cflags_gcc_option__Wpointer_arith" in + .ok|.ok,*) ;; + .|.no|.no,*) ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wpointer_arith " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wpointer_arith"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wpointer_arith) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wpointer_arith\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wpointer_arith") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wpointer_arith" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wsign-compare" >&5 +$as_echo_n "checking CFLAGS for gcc -Wsign-compare... " >&6; } +if test "${ac_cv_cflags_gcc_option__Wsign_compare+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_gcc_option__Wsign_compare="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic -Werror % -Wsign-compare" "-pedantic % -Wsign-compare %% no, obsolete" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_gcc_option__Wsign_compare=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_gcc_option__Wsign_compare" >&5 +$as_echo "$ac_cv_cflags_gcc_option__Wsign_compare" >&6; } +case ".$ac_cv_cflags_gcc_option__Wsign_compare" in + .ok|.ok,*) ;; + .|.no|.no,*) ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wsign_compare " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wsign_compare"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wsign_compare) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wsign_compare\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wsign_compare") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wsign_compare" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wmissing-declarations" >&5 +$as_echo_n "checking CFLAGS for gcc -Wmissing-declarations... " >&6; } +if test "${ac_cv_cflags_gcc_option__Wmissing_declarations+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_gcc_option__Wmissing_declarations="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic -Werror % -Wmissing-declarations" "-pedantic % -Wmissing-declarations %% no, obsolete" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_gcc_option__Wmissing_declarations=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_gcc_option__Wmissing_declarations" >&5 +$as_echo "$ac_cv_cflags_gcc_option__Wmissing_declarations" >&6; } +case ".$ac_cv_cflags_gcc_option__Wmissing_declarations" in + .ok|.ok,*) ;; + .|.no|.no,*) ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wmissing_declarations " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wmissing_declarations"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wmissing_declarations) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wmissing_declarations\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wmissing_declarations") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wmissing_declarations" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wdeclaration-after-statement" >&5 +$as_echo_n "checking CFLAGS for gcc -Wdeclaration-after-statement... " >&6; } +if test "${ac_cv_cflags_gcc_option__Wdeclaration_after_statement+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_gcc_option__Wdeclaration_after_statement="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic -Werror % -Wdeclaration-after-statement" "-pedantic % -Wdeclaration-after-statement %% no, obsolete" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_gcc_option__Wdeclaration_after_statement=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_gcc_option__Wdeclaration_after_statement" >&5 +$as_echo "$ac_cv_cflags_gcc_option__Wdeclaration_after_statement" >&6; } +case ".$ac_cv_cflags_gcc_option__Wdeclaration_after_statement" in + .ok|.ok,*) ;; + .|.no|.no,*) ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wdeclaration_after_statement " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wdeclaration_after_statement"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wdeclaration_after_statement) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wdeclaration_after_statement\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wdeclaration_after_statement") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wdeclaration_after_statement" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Werror-implicit-function-declaration" >&5 +$as_echo_n "checking CFLAGS for gcc -Werror-implicit-function-declaration... " >&6; } +if test "${ac_cv_cflags_gcc_option__Werror_implicit_function_declaration+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_gcc_option__Werror_implicit_function_declaration="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic -Werror % -Werror-implicit-function-declaration" "-pedantic % -Werror-implicit-function-declaration %% no, obsolete" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_gcc_option__Werror_implicit_function_declaration=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration" >&5 +$as_echo "$ac_cv_cflags_gcc_option__Werror_implicit_function_declaration" >&6; } +case ".$ac_cv_cflags_gcc_option__Werror_implicit_function_declaration" in + .ok|.ok,*) ;; + .|.no|.no,*) ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Werror_implicit_function_declaration"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Werror_implicit_function_declaration\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wstrict-aliasing" >&5 +$as_echo_n "checking CFLAGS for gcc -Wstrict-aliasing... " >&6; } +if test "${ac_cv_cflags_gcc_option__Wstrict_aliasing+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_gcc_option__Wstrict_aliasing="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic -Werror % -Wstrict-aliasing" "-pedantic % -Wstrict-aliasing %% no, obsolete" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_gcc_option__Wstrict_aliasing=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_gcc_option__Wstrict_aliasing" >&5 +$as_echo "$ac_cv_cflags_gcc_option__Wstrict_aliasing" >&6; } +case ".$ac_cv_cflags_gcc_option__Wstrict_aliasing" in + .ok|.ok,*) ;; + .|.no|.no,*) ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wstrict_aliasing " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wstrict_aliasing"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wstrict_aliasing) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wstrict_aliasing\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wstrict_aliasing") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wstrict_aliasing" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Warray-bounds" >&5 +$as_echo_n "checking CFLAGS for gcc -Warray-bounds... " >&6; } +if test "${ac_cv_cflags_gcc_option__Warray_bounds+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_gcc_option__Warray_bounds="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic -Werror % -Warray-bounds" "-pedantic % -Warray-bounds %% no, obsolete" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_gcc_option__Warray_bounds=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_gcc_option__Warray_bounds" >&5 +$as_echo "$ac_cv_cflags_gcc_option__Warray_bounds" >&6; } +case ".$ac_cv_cflags_gcc_option__Warray_bounds" in + .ok|.ok,*) ;; + .|.no|.no,*) ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Warray_bounds " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Warray_bounds"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_gcc_option__Warray_bounds) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Warray_bounds\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Warray_bounds") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Warray_bounds" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS making strings readonly" >&5 +$as_echo_n "checking CFLAGS making strings readonly... " >&6; } +if test "${ac_cv_cflags_no_writable_strings+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_no_writable_strings="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +# IRIX C compiler: +# -use_readonly_const is the default for IRIX C, +# puts them into .rodata, but they are copied later. +# need to be "-G0 -rdatashared" for strictmode but +# I am not sure what effect that has really. - guidod +for ac_arg in "-pedantic % -fno-writable-strings -Wwrite-strings" "-pedantic % -fconst-strings -Wwrite-strings" "-v -Xc % -xstrconst" "+w1 -Aa % +ESlit" "-w0 -std1 % -readonly_strings" "-fullwarn -use_readonly_const %% ok, its the default" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_no_writable_strings=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case ".$ac_cv_cflags_no_writable_strings" in + .|.no|.no,*) ;; + *) # sanity check - testing strcpy() from string.h + cp config.log config.tmp + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <string.h> +int +main () +{ + + char test[16]; + if (strcpy (test, "test")) return 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 + then ac_cv_cflags_no_writable_strings="no, suppressed, string.h," ; fi +else + ac_cv_cflags_no_writable_strings="no, suppressed, string.h" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + rm config.tmp + ;; +esac + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_no_writable_strings" >&5 +$as_echo "$ac_cv_cflags_no_writable_strings" >&6; } +case ".$ac_cv_cflags_no_writable_strings" in + .ok|.ok,*) ;; + .|.no|.no,*) + ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_no_writable_strings " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_no_writable_strings"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_no_writable_strings) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_no_writable_strings\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_no_writable_strings") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_no_writable_strings" + fi + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for strict prototypes" >&5 +$as_echo_n "checking CFLAGS for strict prototypes... " >&6; } +if test "${ac_cv_cflags_strict_prototypes+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_cflags_strict_prototypes="no, unknown" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic % -fstrict-prototypes -Wstrict-prototypes" "-pedantic % -Wstrict-prototypes" "-pedantic % -Wmissing-prototypes" "-pedantic % -Werror-implicit-function-declaration" "-pedantic % -Wimplicit-function-declaration" # +do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_cflags_strict_prototypes=`echo $ac_arg | sed -e 's,.*% *,,'` ; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case ".$ac_cv_cflags_strict_prototypes" in + .|.no|.no,*) ;; + *) # sanity check with signal() from sys/signal.h + cp config.log config.tmp + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <signal.h> +int +main () +{ + + if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1; + if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 +then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1 +then ac_cv_cflags_strict_prototypes="no, suppressed, signal.h," ; fi ; fi +else + ac_cv_cflags_strict_prototypes="no, suppressed, signal.h" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + rm config.tmp + ;; +esac + CFLAGS="$ac_save_CFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_strict_prototypes" >&5 +$as_echo "$ac_cv_cflags_strict_prototypes" >&6; } +case ".$ac_cv_cflags_strict_prototypes" in + .ok|.ok,*) ;; + .|.no|.no,*) + ;; + *) + if echo " $CFLAGS " | grep " $ac_cv_cflags_strict_prototypes " 2>&1 >/dev/null + then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_strict_prototypes"; } >&5 + (: CFLAGS does contain $ac_cv_cflags_strict_prototypes) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_strict_prototypes\""; } >&5 + (: CFLAGS="$CFLAGS $ac_cv_cflags_strict_prototypes") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + CFLAGS="$CFLAGS $ac_cv_cflags_strict_prototypes" + fi + ;; +esac + +# --------------------------------------------------------------- + # The prefix default can be set in configure.ac (otherwise it is /usr/local) + test "x$prefix" = xNONE && prefix=$ac_default_prefix + # Let make expand exec_prefix. Allows to override the makevar 'prefix' later + test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Check whether --enable-enable-default-pkgconfigdir was given. +if test "${enable_enable_default_pkgconfigdir+set}" = set; then : + enableval=$enable_enable_default_pkgconfigdir; +fi + +test ".$enable_default_pkgconfigdir" = "." && enable_default_pkgconfigdir="no" +case ".$enable_default_pkgconfigdir" in + .no) ax_warning_default_pkgconfig_def='${libdir}/pkgconfig' ;; + .yes) # autodetect + if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4 + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + if test "$PKG_CONFIG" = "no" + then ax_warning_default_pkgconfig_def="/tmp" ; test -d "/usr/lib/pkgconfig" && ax_warning_default_pkgconfig_def="/usr/lib/pkgconfig" + else ax_warning_default_pkgconfig_bin=`$as_dirname -- "$ax_warning_default_pkgconfig_def" || +$as_expr X"$ax_warning_default_pkgconfig_def" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ax_warning_default_pkgconfig_def" : 'X\(//\)[^/]' \| \ + X"$ax_warning_default_pkgconfig_def" : 'X\(//\)$' \| \ + X"$ax_warning_default_pkgconfig_def" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ax_warning_default_pkgconfig_def" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` ; + if test -d "$ax_warning_default_pkgconfig_bin/lib/pkgconfig" ; then + ax_warning_default_pkgconfig_def="$ax_warning_default_pkgconfig_bin/lib/pkgconfig" + else ax_warning_default_pkgconfig_bin=`$as_dirname -- "$ax_warning_default_pkgconfig_def" || +$as_expr X"$ax_warning_default_pkgconfig_def" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ax_warning_default_pkgconfig_def" : 'X\(//\)[^/]' \| \ + X"$ax_warning_default_pkgconfig_def" : 'X\(//\)$' \| \ + X"$ax_warning_default_pkgconfig_def" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ax_warning_default_pkgconfig_def" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + if test -d "$ax_warning_default_pkgconfig_bin/lib/pkgconfig" ; then + ax_warning_default_pkgconfig_def="$ax_warning_default_pkgconfig_bin/lib/pkgconfig" + else + if test -d "/usr/lib/pkgconfig" ; then + ax_warning_default_pkgconfig_def="/usr/lib/pkgconfig" + else + ax_warning_default_pkgconfig_def="/tmp" + fi fi fi + fi ;; + *) ax_warning_default_pkgconfig_def="$enable_default_pkgconfigdir" ;; +esac +ax_warning_default_pkgconfig_loc='$ax_warning_default_pkgconfig_def' + + if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4 + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + if test "$PKG_CONFIG" = "no" + then ax_warning_default_pkgconfig_dir="/" ; test -d "/usr/lib/pkgconfig" && ax_warning_default_pkgconfig_dir="/usr/lib/pkgconfig" + else ax_warning_default_pkgconfig_bin=`$as_dirname -- "$ax_warning_default_pkgconfig_dir" || +$as_expr X"$ax_warning_default_pkgconfig_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ax_warning_default_pkgconfig_dir" : 'X\(//\)[^/]' \| \ + X"$ax_warning_default_pkgconfig_dir" : 'X\(//\)$' \| \ + X"$ax_warning_default_pkgconfig_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ax_warning_default_pkgconfig_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` ; + if test -d "$ax_warning_default_pkgconfig_bin/lib/pkgconfig" ; then + ax_warning_default_pkgconfig_dir="$ax_warning_default_pkgconfig_bin/lib/pkgconfig" + else ax_warning_default_pkgconfig_bin=`$as_dirname -- "$ax_warning_default_pkgconfig_dir" || +$as_expr X"$ax_warning_default_pkgconfig_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ax_warning_default_pkgconfig_dir" : 'X\(//\)[^/]' \| \ + X"$ax_warning_default_pkgconfig_dir" : 'X\(//\)$' \| \ + X"$ax_warning_default_pkgconfig_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ax_warning_default_pkgconfig_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + if test -d "$ax_warning_default_pkgconfig_bin/lib/pkgconfig" ; then + ax_warning_default_pkgconfig_dir="$ax_warning_default_pkgconfig_bin/lib/pkgconfig" + else + if test -d "/usr/lib/pkgconfig" ; then + ax_warning_default_pkgconfig_dir="/usr/lib/pkgconfig" + else + ax_warning_default_pkgconfig_dir="/" + fi fi fi + fi +{ { $as_echo "$as_me:${as_lineno-$LINENO}: : last pkgconfig dir is assumed as \"\$ax_warning_default_pkgconfig_dir\""; } >&5 + (: last pkgconfig dir is assumed as "$ax_warning_default_pkgconfig_dir") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +ax_warning_default_pkgconfig_dir=`eval "echo $ax_warning_default_pkgconfig_dir"` +ax_warning_default_pkgconfig_dir=`eval "echo $ax_warning_default_pkgconfig_dir"` +ax_warning_default_pkgconfig_loc=`eval "echo $ax_warning_default_pkgconfig_loc"` +ax_warning_default_pkgconfig_loc=`eval "echo $ax_warning_default_pkgconfig_loc"` +ax_warning_default_pkgconfig_loc=`eval "echo $ax_warning_default_pkgconfig_loc"` +ax_warning_default_pkgconfig_loc=`eval "echo $ax_warning_default_pkgconfig_loc"` +for ax_warning_default_pkgconfig_dir in `echo "$PKG_CONFIG_PATH:$ax_warning_default_pkgconfig_dir" | sed -e 's,:, ,g'` ; do + { { $as_echo "$as_me:${as_lineno-$LINENO}: : test \".\$ax_warning_default_pkgconfig_loc\" = \".\$ax_warning_default_pkgconfig_dir\""; } >&5 + (: test ".$ax_warning_default_pkgconfig_loc" = ".$ax_warning_default_pkgconfig_dir") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + test ".$ax_warning_default_pkgconfig_loc" = ".$ax_warning_default_pkgconfig_dir" && break +done +if test "$ax_warning_default_pkgconfig_loc" != "$ax_warning_default_pkgconfig_dir" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: pkgconfigdir=$ax_warning_default_pkgconfig_loc (see config.log)" >&5 +$as_echo "$as_me: warning: pkgconfigdir=$ax_warning_default_pkgconfig_loc (see config.log)" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: perhaps: make install pkgconfigdir=$ax_warning_default_pkgconfig_dir" >&5 +$as_echo "$as_me: perhaps: make install pkgconfigdir=$ax_warning_default_pkgconfig_dir" >&6;} + cat >&5 <<EOF + pkgconfigdir: the default pkgconfigdir of $ax_warning_default_pkgconfig_loc + pkgconfigdir: is not listed in the dirlist where pkg-config will look for + pkgconfigdir: package-configs - you can override the install-path using + pkgconfigdir: make install pkgconfigdir=$ax_warning_default_pkgconfig_dir + pkgconfigdir: or set/append the directory to the environment variable + pkgconfigdir: PKG_CONFIG_PATH="$ax_warning_default_pkgconfig_loc" +EOF + fi + +pkgconfigdir="$ax_warning_default_pkgconfig_dir" + + +# Check whether --enable-enable-default-aclocaldir was given. +if test "${enable_enable_default_aclocaldir+set}" = set; then : + enableval=$enable_enable_default_aclocaldir; +fi + +test ".$enable_default_aclocaldir" = "." && enable_default_aclocaldir="no" +case ".$enable_default_aclocaldir" in + .no) ax_warning_default_aclocal_def='${datadir}/aclocal' ;; + .yes) # autodetect + if test ".$ACLOCAL" = "." ; then + # Extract the first word of "aclocal", so it can be a program name with args. +set dummy aclocal; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ACLOCAL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $ACLOCAL in + [\\/]* | ?:[\\/]*) + ac_cv_path_ACLOCAL="$ACLOCAL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ACLOCAL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_ACLOCAL" && ac_cv_path_ACLOCAL=":" + ;; +esac +fi +ACLOCAL=$ac_cv_path_ACLOCAL +if test -n "$ACLOCAL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACLOCAL" >&5 +$as_echo "$ACLOCAL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + ax_warning_default_aclocal_bin="$ACLOCAL" + test ".$ax_warning_default_aclocal_bin" = "." && ax_warning_default_aclocal_bin="aclocal" + ax_warning_default_aclocal_def=`test ".$SHELL" = "." && SHELL="'sh'" ; eval "$ax_warning_default_aclocal_bin --print-ac-dir"` + test ".$ax_warning_default_aclocal_def" = "." && test -d "/usr/share/aclocal" && ax_warning_default_aclocal_def="/usr/share/aclocal" + test ".$ax_warning_default_aclocal_def" = "." && ax_warning_default_aclocal_def="/tmp" ;; + *) ax_warning_default_aclocal_def="$enable_default_aclocaldir" ;; +esac +ax_warning_default_aclocal_loc='$ax_warning_default_aclocal_def' + + if test ".$ACLOCAL" = "." ; then + # Extract the first word of "aclocal", so it can be a program name with args. +set dummy aclocal; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ACLOCAL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $ACLOCAL in + [\\/]* | ?:[\\/]*) + ac_cv_path_ACLOCAL="$ACLOCAL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ACLOCAL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_ACLOCAL" && ac_cv_path_ACLOCAL=":" + ;; +esac +fi +ACLOCAL=$ac_cv_path_ACLOCAL +if test -n "$ACLOCAL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACLOCAL" >&5 +$as_echo "$ACLOCAL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + ax_warning_default_aclocal_bin="$ACLOCAL" + test ".$ax_warning_default_aclocal_bin" = "." && ax_warning_default_aclocal_bin="aclocal" + ax_warning_default_aclocal_dir=`test ".$SHELL" = "." && SHELL="'sh'" ; eval "$ax_warning_default_aclocal_bin --print-ac-dir"` + test ".$ax_warning_default_aclocal_dir" = "." && test -d "/usr/share/aclocal" && ax_warning_default_aclocal_dir="/usr/share/aclocal" + test ".$ax_warning_default_aclocal_dir" = "." && ax_warning_default_aclocal_dir="/tmp" +ax_warning_default_aclocal_dir=`eval "echo $ax_warning_default_aclocal_dir"` # we need to expand +ax_warning_default_aclocal_dir=`eval "echo $ax_warning_default_aclocal_dir"` +ax_warning_default_aclocal_loc=`eval "echo $ax_warning_default_aclocal_loc"` +ax_warning_default_aclocal_loc=`eval "echo $ax_warning_default_aclocal_loc"` +ax_warning_default_aclocal_loc=`eval "echo $ax_warning_default_aclocal_loc"` +ax_warning_default_aclocal_loc=`eval "echo $ax_warning_default_aclocal_loc"` +{ { $as_echo "$as_me:${as_lineno-$LINENO}: : test \"\$ax_warning_default_aclocal_loc\" = \"\$ax_warning_default_aclocal_dir\""; } >&5 + (: test "$ax_warning_default_aclocal_loc" = "$ax_warning_default_aclocal_dir") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +if test "$ax_warning_default_aclocal_loc" != "$ax_warning_default_aclocal_dir" ; then + if test -f "$ax_warning_default_aclocal_dir/dirlist" ; then + for ax_warning_default_aclocal_dir in `cat $ax_warning_default_aclocal_dir/dirlist` $ax_warning_default_aclocal_dir ; do + { { $as_echo "$as_me:${as_lineno-$LINENO}: : test \"\$ax_warning_default_aclocal_loc\" = \"\$ax_warning_default_aclocal_dir\""; } >&5 + (: test "$ax_warning_default_aclocal_loc" = "$ax_warning_default_aclocal_dir") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + test "$ax_warning_default_aclocal_loc" = "$ax_warning_default_aclocal_dir" && break + done + fi + if test "$ax_warning_default_aclocal_loc" != "$ax_warning_default_aclocal_dir" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: aclocaldir=$ax_warning_default_aclocal_loc (see config.log)" >&5 +$as_echo "$as_me: warning: aclocaldir=$ax_warning_default_aclocal_loc (see config.log)" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: perhaps: make install aclocaldir=$ax_warning_default_aclocal_dir" >&5 +$as_echo "$as_me: perhaps: make install aclocaldir=$ax_warning_default_aclocal_dir" >&6;} + cat >&5 <<EOF + aclocaldir: the default aclocaldir of $ax_warning_default_aclocal_loc + aclocaldir: is not listed in the dirlist where aclocal will look + aclocaldir: for macros - you can override the install-path using + aclocaldir: make install aclocaldir=$ax_warning_default_aclocal_dir + aclocaldir: or append the directory to aclocal reconfigures later as + aclocaldir: aclocal -I $ax_warning_default_aclocal_loc + aclocaldir: when an autoconf macro is needed from that directory +EOF + fi +fi + +aclocaldir="$ax_warning_default_aclocal_dir" + + + +ac_config_files="$ac_config_files Makefile zzip/Makefile zzipwrap/Makefile SDL/Makefile docs/Makefile test/Makefile bins/Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + +: ${CONFIG_STATUS=./config.status} +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error ERROR [LINENO LOG_FD] +# --------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with status $?, using 1 if that was 0. +as_fn_error () +{ + as_status=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + fi + $as_echo "$as_me: error: $1" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.65. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to the package provider." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.65, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2009 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +ax_enable_builddir_srcdir="$srcdir" # $srcdir +ax_enable_builddir_host="$HOST" # $HOST / $host +ax_enable_builddir_version="$VERSION" # $VERSION +ax_enable_builddir_package="$PACKAGE" # $PACKAGE +ax_enable_builddir_sed="$ax_enable_builddir_sed" # $SED +ax_enable_builddir="$ax_enable_builddir" # $SUB + +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' +macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' +macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' +enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' +pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' +host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' +host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' +host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' +build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' +build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' +build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' +SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' +Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' +GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' +EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' +FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' +LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' +NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' +LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' +ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' +exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' +lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' +reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' +AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' +STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' +RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' +compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' +GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' +SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' +ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' +need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' +LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' +libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' +fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' +version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' +runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' +libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' +soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' +old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' +striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +AR \ +AR_FLAGS \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +SHELL \ +ECHO \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_wl \ +lt_prog_compiler_pic \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_flag_spec_ld \ +hardcode_libdir_separator \ +fix_srcfile_path \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` + ;; +esac + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + +PACKAGE="$PACKAGE" +PACKAGE="$PACKAGE" + +ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate" +pkgconfig_prefix='$prefix' +pkgconfig_execprefix='$exec_prefix' +pkgconfig_bindir='$bindir' +pkgconfig_libdir='$libdir' +pkgconfig_includedir='$includedir' +pkgconfig_datarootdir='$datarootdir' +pkgconfig_datadir='$datadir' +pkgconfig_sysconfdir='$sysconfdir' +pkgconfig_suffix='$ax_create_pkgconfig_suffix' +pkgconfig_package='$PACKAGE_NAME' +pkgconfig_libname='$ax_create_pkgconfig_libname' +pkgconfig_description='$ax_create_pkgconfig_description' +pkgconfig_version='$ax_create_pkgconfig_version' +pkgconfig_requires='$ax_create_pkgconfig_requires' +pkgconfig_libs='$ax_create_pkgconfig_libs' +pkgconfig_ldflags='$ax_create_pkgconfig_ldflags' +pkgconfig_cppflags='$ax_create_pkgconfig_cppflags' +pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir' +pkgconfig_src_headers='$ax_create_pkgconfig_src_headers' + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "buildir") CONFIG_COMMANDS="$CONFIG_COMMANDS buildir" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "zzip/_config.h") CONFIG_COMMANDS="$CONFIG_COMMANDS zzip/_config.h" ;; + "zzip/_msvc.h") CONFIG_COMMANDS="$CONFIG_COMMANDS zzip/_msvc.h" ;; + "$ax_create_pkgconfig_generate") CONFIG_COMMANDS="$CONFIG_COMMANDS $ax_create_pkgconfig_generate" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "zzip/Makefile") CONFIG_FILES="$CONFIG_FILES zzip/Makefile" ;; + "zzipwrap/Makefile") CONFIG_FILES="$CONFIG_FILES zzipwrap/Makefile" ;; + "SDL/Makefile") CONFIG_FILES="$CONFIG_FILES SDL/Makefile" ;; + "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; + "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; + "bins/Makefile") CONFIG_FILES="$CONFIG_FILES bins/Makefile" ;; + + *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || as_fn_error "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' <confdefs.h | sed ' +s/'"$ac_delim"'/"\\\ +"/g' >>$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "buildir":C) ac_top_srcdir="$ax_enable_builddir_srcdir" + if test ".$ax_enable_builddir" = "." ; then + if test -f "$top_srcdir/Makefile" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: skipping top_srcdir/Makefile - left untouched" >&5 +$as_echo "$as_me: skipping top_srcdir/Makefile - left untouched" >&6;} + else + { $as_echo "$as_me:${as_lineno-$LINENO}: skipping top_srcdir/Makefile - not created" >&5 +$as_echo "$as_me: skipping top_srcdir/Makefile - not created" >&6;} + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: create top_srcdir/Makefile guessed from local Makefile" >&5 +$as_echo "$as_me: create top_srcdir/Makefile guessed from local Makefile" >&6;} + x='`' ; cat >$tmp/conftemp.sed <<_EOF +/^\$/n +x +/^\$/bS +x +/\\\\\$/{H;d;} +{H;s/.*//;x;} +bM +:S +x +/\\\\\$/{h;d;} +{h;s/.*//;x;} +:M +s/\\(\\n\\) /\\1 /g +/^ /d +/^[ ]*[\\#]/d +/^VPATH *=/d +s/^srcdir *=.*/srcdir = ./ +s/^top_srcdir *=.*/top_srcdir = ./ +/[:=]/!d +/^\\./d +s/:.*/:/ +/:\$/s/ / /g +/:\$/s/ / /g +/^.*[=]/!s%\$% ; (cd \$(BUILD) \\&\\& \$(ISNOTSRCDIR) \\&\\& \$(MAKE) "\$\@") || exit ; \$(MAKE) done "RULE=\$\@"% +_EOF + test ".$USE_MAINTAINER_MODE" = ".no" || \ + cp "$tmp/conftemp.sed" "$ac_top_srcdir/makefile.sed~" ## DEBUGGING + echo 'BUILD=`uname -msr | tr " /" "__"`.d' >$ac_top_srcdir/Makefile + echo 'ISNOTSRCDIR=test ! -f configure' >>$ac_top_srcdir/Makefile + $ax_enable_builddir_sed -f $tmp/conftemp.sed Makefile >>$ac_top_srcdir/Makefile + echo 'done: ;@ if grep "$(RULE)-done .*:" Makefile > /dev/null; then echo $(MAKE) $(RULE)-done ; $(MAKE) $(RULE)-done ; else true ; fi' >> $ac_top_srcdir/Makefile + if test -f "$ac_top_srcdir/Makefile.mk" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&5 +$as_echo "$as_me: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&6;} + cat $ac_top_srcdir/Makefile.mk >>$ac_top_srcdir/Makefile + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: make uses BUILD=$ax_enable_builddir (on $ax_enable_builddir_host:)" >&5 +$as_echo "$as_me: make uses BUILD=$ax_enable_builddir (on $ax_enable_builddir_host:)" >&6;} + fi + ;; + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Assembler program. +AS=$AS + +# DLL creation program. +DLLTOOL=$DLLTOOL + +# Object dumper program. +OBJDUMP=$OBJDUMP + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that does not interpret backslashes. +ECHO=$lt_ECHO + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $* )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[^=]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$@"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1+=\$2" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1=\$$1\$2" +} + +_LT_EOF + ;; + esac + + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + "zzip/_config.h":C) ac_prefix_conf_OUT=`echo zzip/_config.h` +ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"` +ac_prefix_conf_PKG=`echo zzip` +ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"` +ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"` +ac_prefix_conf_INP=`echo "config.h" | sed -e 's/ *//'` +if test ".$ac_prefix_conf_INP" = "."; then + for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue + case "$ac_file" in + *.h) ac_prefix_conf_INP=$ac_file ;; + *) + esac + test ".$ac_prefix_conf_INP" != "." && break + done +fi +if test ".$ac_prefix_conf_INP" = "."; then + case "$ac_prefix_conf_OUT" in + */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"` + ;; + *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"` + ;; + *) ac_prefix_conf_INP=config.h + ;; + esac +fi +if test -z "$ac_prefix_conf_PKG" ; then + as_fn_error "no prefix for _PREFIX_PKG_CONFIG_H" "$LINENO" 5 +else + if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then + ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP" + fi fi + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5 +$as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;} + if test -f $ac_prefix_conf_INP ; then + echo "s/^#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix + echo "s/^#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix + echo "s/^#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix + echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix + echo "#endif/" >>conftest.prefix + echo "s/^#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix + echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix + echo "#endif/" >> conftest.prefix + # now executing _script on _DEF input to create _OUT output file + echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h + echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h + echo ' ' >>$tmp/pconfig.h + echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h + + sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h + echo ' ' >>$tmp/pconfig.h + echo '/* once:' $ac_prefix_conf_DEF '*/' >>$tmp/pconfig.h + echo "#endif" >>$tmp/pconfig.h + if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_prefix_conf_OUT is unchanged" >&5 +$as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;} + else + ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" || +$as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \ + X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \ + X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_prefix_conf_OUT" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + rm -f "$ac_prefix_conf_OUT" + mv $tmp/pconfig.h "$ac_prefix_conf_OUT" + fi + cp conftest.prefix _configs.sed + else + as_fn_error "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5 + fi + rm -f conftest.* +fi + ;; + "zzip/_msvc.h":C) ac_prefix_conf_OUT=`echo zzip/_msvc.h` +ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"` +ac_prefix_conf_PKG=`echo zzip` +ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"` +ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"` +ac_prefix_conf_INP=`echo "zzip/_msvc.in" | sed -e 's/ *//'` +if test ".$ac_prefix_conf_INP" = "."; then + for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue + case "$ac_file" in + *.h) ac_prefix_conf_INP=$ac_file ;; + *) + esac + test ".$ac_prefix_conf_INP" != "." && break + done +fi +if test ".$ac_prefix_conf_INP" = "."; then + case "$ac_prefix_conf_OUT" in + */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"` + ;; + *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"` + ;; + *) ac_prefix_conf_INP=config.h + ;; + esac +fi +if test -z "$ac_prefix_conf_PKG" ; then + as_fn_error "no prefix for _PREFIX_PKG_CONFIG_H" "$LINENO" 5 +else + if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then + ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP" + fi fi + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5 +$as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;} + if test -f $ac_prefix_conf_INP ; then + echo "s/^#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix + echo "s/^#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix + echo "s/^#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix + echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix + echo "#endif/" >>conftest.prefix + echo "s/^#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix + echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix + echo "#endif/" >> conftest.prefix + # now executing _script on _DEF input to create _OUT output file + echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h + echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h + echo ' ' >>$tmp/pconfig.h + echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h + + sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h + echo ' ' >>$tmp/pconfig.h + echo '/* once:' $ac_prefix_conf_DEF '*/' >>$tmp/pconfig.h + echo "#endif" >>$tmp/pconfig.h + if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_prefix_conf_OUT is unchanged" >&5 +$as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;} + else + ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" || +$as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \ + X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \ + X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_prefix_conf_OUT" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + rm -f "$ac_prefix_conf_OUT" + mv $tmp/pconfig.h "$ac_prefix_conf_OUT" + fi + cp conftest.prefix _configs.sed + else + as_fn_error "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5 + fi + rm -f conftest.* +fi + ;; + "$ax_create_pkgconfig_generate":C) +pkgconfig_generate="$ax_create_pkgconfig_generate" +if test ! -f "$pkgconfig_generate.in" +then generate="true" +elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null +then generate="true" +else generate="false"; +fi +if $generate ; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_generate.in" >&5 +$as_echo "$as_me: creating $pkgconfig_generate.in" >&6;} +cat > $pkgconfig_generate.in <<AXEOF +# generated by configure / remove this line to disable regeneration +prefix=@prefix@ +exec_prefix=@exec_prefix@ +bindir=@bindir@ +libdir=@libdir@ +datarootdir=@datarootdir@ +datadir=@datadir@ +sysconfdir=@sysconfdir@ +includedir=@includedir@ +package=@PACKAGE@ +suffix=@suffix@ + +Name: @PACKAGE_NAME@ +Description: @PACKAGE_DESCRIPTION@ +Version: @PACKAGE_VERSION@ +Requires: @PACKAGE_REQUIRES@ +Libs: -L\${libdir} @LDFLAGS@ @LIBS@ +Cflags: -I\${includedir} @CPPFLAGS@ +AXEOF +fi # DONE generate $pkgconfig_generate.in +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_generate" >&5 +$as_echo "$as_me: creating $pkgconfig_generate" >&6;} +cat >conftest.sed <<AXEOF +s|@prefix@|${pkgconfig_prefix}| +s|@exec_prefix@|${pkgconfig_execprefix}| +s|@bindir@|${pkgconfig_bindir}| +s|@libdir@|${pkgconfig_libdir}| +s|@datarootdir@|${pkgconfig_datarootdir}| +s|@datadir@|${pkgconfig_datadir}| +s|@sysconfdir@|${pkgconfig_sysconfdir}| +s|@includedir@|${pkgconfig_includedir}| +s|@suffix@|${pkgconfig_suffix}| +s|@PACKAGE@|${pkgconfig_package}| +s|@PACKAGE_NAME@|${pkgconfig_libname}| +s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}| +s|@PACKAGE_VERSION@|${pkgconfig_version}| +s|@PACKAGE_REQUIRES@|${pkgconfig_requires}| +s|@LIBS@|${pkgconfig_libs}| +s|@LDFLAGS@|${pkgconfig_ldflags}| +s|@CPPFLAGS@|${pkgconfig_cppflags}| +AXEOF +sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_generate +if test ! -s $pkgconfig_generate ; then + as_fn_error "$pkgconfig_generate is empty" "$LINENO" 5 +fi ; rm conftest.sed # DONE generate $pkgconfig_generate +pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'` +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5 +$as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;} +cat >conftest.sed <<AXEOF +s|@prefix@|${pkgconfig_prefix}| +s|@exec_prefix@|${pkgconfig_execprefix}| +s|@bindir@|${pkgconfig_bindir}| +s|@libdir@|${pkgconfig_src_libdir}| +s|@datarootdir@|${pkgconfig_datarootdir}| +s|@datadir@|${pkgconfig_datadir}| +s|@sysconfdir@|${pkgconfig_sysconfdir}| +s|@includedir@|${pkgconfig_src_headers}| +s|@suffix@|${pkgconfig_suffix}| +s|@PACKAGE@|${pkgconfig_package}| +s|@PACKAGE_NAME@|${pkgconfig_libname}| +s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}| +s|@PACKAGE_VERSION@|${pkgconfig_version}| +s|@PACKAGE_REQUIRES@|${pkgconfig_requires}| +s|@LIBS@|${pkgconfig_libs}| +s|@LDFLAGS@|${pkgconfig_ldflags}| +s|@CPPFLAGS@|${pkgconfig_cppflags}| +AXEOF +sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled +if test ! -s $pkgconfig_uninstalled ; then + as_fn_error "$pkgconfig_uninstalled is empty" "$LINENO" 5 +fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled + pkgconfig_requires_add=`echo ${pkgconfig_requires}` +if test ".$pkgconfig_requires_add" != "." ; then + pkgconfig_requires_add="pkg-config $pkgconfig_requires_add" + else pkgconfig_requires_add=":" ; fi +pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'` +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5 +$as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;} +cat >conftest.sed <<AXEOF +s|@prefix@|\"${pkgconfig_prefix}\"| +s|@exec_prefix@|\"${pkgconfig_execprefix}\"| +s|@bindir@|\"${pkgconfig_bindir}\"| +s|@libdir@|\"${pkgconfig_src_libdir}\"| +s|@datarootdir@|\"${pkgconfig_datarootdir}\"| +s|@datadir@|\"${pkgconfig_datadir}\"| +s|@sysconfdir@|\"${pkgconfig_sysconfdir}\"| +s|@includedir@|\"${pkgconfig_src_headers}\"| +s|@suffix@|\"${pkgconfig_suffix}\"| +s|@PACKAGE@|\"${pkgconfig_package}\"| +s|@PACKAGE_NAME@|\"${pkgconfig_libname}\"| +s|@PACKAGE_DESCRIPTION@|\"${pkgconfig_description}\"| +s|@PACKAGE_VERSION@|\"${pkgconfig_version}\"| +s|@PACKAGE_REQUIRES@|\"${pkgconfig_requires}\"| +s|@LIBS@|\"${pkgconfig_libs}\"| +s|@LDFLAGS@|\"${pkgconfig_ldflags}\"| +s|@CPPFLAGS@|\"${pkgconfig_cppflags}\"| +s>Name:>for option\\; do case \"\$option\" in --list-all|--name) echo > +s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of > +s>Version: *>\\;\\; --modversion|--version) echo > +s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add> +s>Libs: *>\\;\\; --libs) echo > +s>Cflags: *>\\;\\; --cflags) echo > +/--libs)/a\\ + $pkgconfig_requires_add +/--cflags)/a\\ + $pkgconfig_requires_add\\ +;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\ +;; --uninstalled) exit 0 \\ +;; *) ;; esac done +AXEOF +sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled +if test ! -s $pkgconfig_uninstalled ; then + as_fn_error "$pkgconfig_uninstalled is empty" "$LINENO" 5 +fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit $? +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + +# libtool-1.4 specific, on zsh target the final requoting does one too much +case "$host_os" in + darwin*) + if grep "1.92" libtool >/dev/null ; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: patching libtool on .so-sharedlib creation (zsh overquoting)" >&5 +$as_echo "patching libtool on .so-sharedlib creation (zsh overquoting)" >&6; } + test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool) + sed -e '/archive_cmds=/s:[\\][\\][\\]*":\\":g' libtool >libtool.new + (test -s libtool.new || rm libtool.new) 2>/dev/null + test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !! + test -f libtool || mv libtool.old libtool + fi + ;; +esac + +# patch libtool to fix sys_lib_search_path (e.g. crosscompiling a win32 dll) +if test "_$PATH_SEPARATOR" = "_:" ; then + if grep "^sys_lib_search_path_spec.*:" libtool >/dev/null ; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: patching libtool to fix sys_lib_search_path_spec" >&5 +$as_echo "patching libtool to fix sys_lib_search_path_spec" >&6; } + test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool) + sed -e "/^sys_lib_search_path_spec/s/:/ /g" libtool >libtool.new + (test -s libtool.new || rm libtool.new) 2>/dev/null + test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !! + test -f libtool || mv libtool.old libtool + fi +fi + +# patch libtool to add HOST_CC sometimes needed in crosscompiling a win32 dll +if grep "HOST_CC" libtool >/dev/null; then + if test "$build" != "$host" ; then + if test "_$HOST_CC" = "_" ; then + HOST_CC="false" + for i in `echo $PATH | sed 's,:, ,g'` ; do + test -x $i/cc && HOST_CC=$i/cc + done + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: patching libtool to add HOST_CC=$HOST_CC" >&5 +$as_echo "patching libtool to add HOST_CC=$HOST_CC" >&6; } + test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool) + sed -e "/BEGIN.*LIBTOOL.*CONFIG/a\\ +HOST_CC=$HOST_CC" libtool >libtool.new + (test -s libtool.new || rm libtool.new) 2>/dev/null + test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !! + test -f libtool || mv libtool.old libtool + fi +fi + +# --------------------------------------------------------------- +echo '-----' $PACKAGE $VERSION $prefix +$SHELL libtool --features || true +echo "CPPFLAGS=$CPPFLAGS" +echo "CFLAGS=$CFLAGS" +test "$enable_mmap" != "no" && echo "enable mmap ($enable_mmap)" +test "$enable_mmap" = "no" && echo "disable mmap ($enable_mmap)" +test "$with_lowstk" != "no" && echo "with lowstk ($with_lowstk)" +test "$with_lowstk" = "no" && echo "without lowstk ($with_lowstk)" +test "$with_debug" != "no" && echo "with debug ($with_debug)" +test "$with_debug" = "no" && echo "without debug ($with_debug)" +# test -f ./zziplib.spec && echo warning - do not build in the source dirs +echo '# make && make check && make install' diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/configure.ac b/Build/source/libs/zziplib/zziplib-0.13.60/configure.ac new file mode 100644 index 00000000000..751575336a8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/configure.ac @@ -0,0 +1,358 @@ +AC_INIT([zziplib.spec]) +AC_PREREQ(2.61) +AC_COPYRIGHT([Guido Draheim <guido@gmx.de> for ZZipLib.SF.net]) +AC_REVISION($Revision: 1.15 $) +AC_CONFIG_AUX_DIR([uses]) +AC_CONFIG_MACRO_DIR([m4]) +# ======================================================================= +AC_CANONICAL_SYSTEM +dnl AM_ENABLE_MULTILIB([Makefile],[$host]) +AX_ENABLE_BUILDDIR_UNAME +AC_SET_DEFAULT_PATHS_SYSTEM +# ----------------------------------------------------------------------- +AC_ARG_ENABLE([thread-safe], +AS_HELP_STRING([--disable-thread-safe],[disable thread-safe libtool option]) + ,,[ enable_thread_safe="yes"]) +THREAD_SAFE="" +test "$enable_thread_safe" = "yes" && THREAD_SAFE="-thread-safe" +test "$enable_thread_safe" = "$host_os" && THREAD_SAFE="-thread-safe" +AC_SUBST(THREAD_SAFE) +if test -n "$THREAD_SAFE" ; then + AC_MSG_RESULT(...using thread-safe linkage) +else + AC_MSG_RESULT(disabled thread-safe linkage) +fi +# ---------------------------------------------------------------- +AC_MSG_CHECKING(zlib install prefix) +AC_ARG_WITH(zlib, +AS_HELP_STRING([--with-zlib],[zlib prefix (e.g. '$HOME/software')]) + ,,[with_zlib="no"]) +if test "${with_zlib}" = yes ; then # choose --prefix paths + if test "${prefix}" = NONE ; then + AC_MSG_RESULT([oops, but only itself...]) + AC_MSG_ERROR(--with-zlib requires a path argument or a --prefix path set) + fi + with_zlib="$prefix" +fi + +case ".$with_zlib" in + .no|.no,*) + AC_MSG_RESULT(none) + with_zlib="no, not configured" ;; + ./usr) + AC_MSG_RESULT([oops, ignored (may try --with-zlib=/usr/.)]) + with_zlib="no, /usr ignored" ;; + *) if test ! -d "$with_zlib/include" ; then + AC_MSG_RESULT([oops, given but...]) + AC_MSG_ERROR("$with_zlib/include" is not a directory) + fi + if test ! -d "$with_zlib/lib" ; then + AC_MSG_RESULT([oops, given but...]) + AC_MSG_ERROR("$with_zlib/lib" is not a directory) + fi + AC_MSG_RESULT($with_zlib) + ZLIB_INCL="-I$with_zlib/include" + ZLIB_LDIR="-L$with_zlib/lib" + AC_MSG_RESULT(..adding CPPFLAGS $ZLIB_INCL) + AC_MSG_RESULT(..adding LDFLAGS $ZLIB_LDIR) + CPPFLAGS="$CPPFLAGS $ZLIB_INCL" + LDFLAGS="$LDFLAGS $ZLIB_LDIR" + ;; +esac +AC_SUBST(ZLIB_INCL) +AC_SUBST(ZLIB_LDIR) +# ----------------------------------------------------------------------- +AX_SPEC_DEFAULTS +AM_INIT_AUTOMAKE($PACKAGE,$VERSION) +dnl test ".$CFLAGS" = "." && CFLAGS="" +AC_PROG_CC +dnl test ".$CFLAGS" = "." && test "$GCC" = "yes" && CFLAGS="-O3" +AC_PROG_INSTALL +AC_LIBTOOL_WIN32_DLL +AM_PROG_LIBTOOL +AX_SET_VERSION_INFO + +# ----------------------------------------------------------------------- +AC_MSG_RESULT([creating zzip/_msvc.in via zzip/_msvc.sed of config.h.in]) +test -d zzip || mkdir zzip +sed -f $srcdir/zzip/_msvc.sed $srcdir/config.h.in >zzip/_msvc.in +AC_CONFIG_HEADERS([config.h]) +AX_PREFIX_CONFIG_H([zzip/_config.h],[zzip],[config.h]) +AX_PREFIX_CONFIG_H([zzip/_msvc.h],[zzip],[zzip/_msvc.in]) +AM_MAINTAINER_MODE + +AX_CREATE_PKGCONFIG_INFO(dnl +[zzip/zziplib.pc], [zzip-zlib-config],[-lzzip],,[ ]) +# ----------------------------------------------------------------------- +AX_PAX_TAR_CREATE +AX_PAX_TAR_EXTRACT +AC_PATH_PROGS(PERL, perl5 perl, echo no perl found for) +AC_PATH_PROGS(PYTHON, python, echo no python found for) +AC_PATH_PROGS(MKZIP, zip pkzip, :) +AC_PATH_PROGS(XMLTO, xmlto, :) + +AC_C_INLINE +AC_C_CONST +ACX_C_RESTRICT +AC_STDC_HEADERS +AC_HEADER_DIRENT +AC_CHECK_HEADERS(stdint.h unistd.h windows.h winnt.h winbase.h sys/int_types.h) +AC_CHECK_HEADERS(sys/types.h sys/mman.h sys/stat.h sys/param.h) dnl posix'ish +AC_CHECK_HEADERS(io.h direct.h zlib.h byteswap.h) +AC_CHECK_HEADERS(fnmatch.h) +AC_CHECK_FUNCS( strcasecmp strndup ) + +AC_TYPE_OFF_T +AC_TYPE_SIZE_T +dnl AC_TYPE_SSIZE_T +AC_CHECK_TYPE(ssize_t,int) +AC_CHECK_TYPE(off64_t,_zzip_off_t) +AC_CHECK_TYPE(__int64,long long) +AC_COMPILE_CHECK_SIZEOF(short) +AC_COMPILE_CHECK_SIZEOF(int) +AC_COMPILE_CHECK_SIZEOF(long) +AC_C_BIGENDIAN +AX_CHECK_ALIGNED_ACCESS_REQUIRED +dnl ------------------------------------------------------------- +# the default is _disabled_!! anyway, result is prefixed in zzip/_config.h!! +AC_SYS_LARGEFILE_SENSITIVE +test ".$LARGEFILE_CFLAGS" = "." && LARGEFILE_CFLAGS="" +AC_ARG_WITH(largefile,AC_HELP_STRING( + [--with-largefile],[compile as off64_t instead of 32bit off_t]) + ,,[with_largefile="no"]) +if test ".$ac_cv_sys_largefile_sensitive" = ".no" ; then + AC_MSG_RESULT(compiles library with the only off_t seen) +elif test ".$with_largefile" != ".no" ; then + AC_MSG_RESULT(compiles library as 64bit off_t variant dnl +- and renaming some function names) + LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGEFILE_SOURCE" + AC_MSG_RESULT(..adding CFLAGS $LARGEFILE_CFLAGS) + CFLAGS="$CFLAGS $LARGEFILE_CFLAGS" + AC_MSG_RESULT(..adding 64 into RELEASE_INFO for the libraries) + RELEASE_INFO="$RELEASE_INFO-64" +else + AC_MSG_RESULT(compiles library as 32bit off_t variant dnl +- largefile is not the default here) +fi +AC_SUBST(LARGEFILE_CFLAGS) +dnl ------------------------------------------------------------- +AC_MSG_CHECKING(for zlib being found) +if test "_$ac_cv_header_zlib_h" != "_yes" ; then + AC_MSG_RESULT(dnl +...oops: zlib.h not found - try adding some CPPFLAGS to configure call) + AC_MSG_RESULT(dnl +...note: and when linkage fails you might also need to set some LDFLAGS) + case "$prefix" in + NONE|/usr) + AC_MSG_RESULT(dnl +...note: both can be set by specifying the install prefix of the zlib library) + AC_MSG_RESULT(dnl +...note: via --with-zlib=path ... it will test for -Ipath/include -Lpath/lib) + ;; + *) if test -d $prefix/include ; then + AC_MSG_RESULT(dnl +...note: -I$prefix/include is not added to CPPFLAGS automatically and) + AC_MSG_RESULT(dnl +...note: neither is -L$prefix/lib for LDFLAGS .. both will be if you specify) + AC_MSG_RESULT(dnl +...note: --with-zlib to configure call, or use --with-zlib=installprefix) + fi + ;; + esac + AC_MSG_ERROR(zlib.h not found: "zlib" is required to build "$PACKAGE") + exit 1 +fi +cat >conftest.c <<EOF +#include <zlib.h> +const char* zlib_VeRsIoN = ZLIB_VERSION "dEtEcT"; +EOF +ZLIB_VERSION=`(eval "$ac_cpp conftest.c") 2>/dev/null \ +| grep zlib_VeRsIoN | sed -e 's,.*= *.,,' -e 's,. *.dEtEcT.*,,'` +rm conftest.c +AC_SUBST(ZLIB_VERSION) +AC_MSG_RESULT(yes - $ZLIB_VERSION) +# ---------------------------------------------------------------- +AC_MSG_CHECKING(docdir default) +AC_ARG_WITH(docdir, AC_HELP_STRING( + [--with-docdir],[docdir prefix (prefix/share/doc)]) + ,,[with_docdir="no"]) +case "${with_docdir}" in + prefix/*) docdir=` echo "$withval" | sed 's/^prefix/${prefix}'` ;; + datadir/*) docdir=` echo "$withval" | sed 's/^datadir/${datadir}'` ;; + yes) docdir='${prefix}/doc' ;; + no) docdir='${datadir}/doc' ;; + /*|\\*|[a-zA-Z]:*) docdir="$with_docdir" ;; + *) AC_MSG_RESULT(oops) + AC_MSG_ERROR(bad value ${withval} for --with-docdir) + ;; +esac +AC_SUBST(docdir) +AC_MSG_RESULT($docdir) +# ---------------------------------------------------------------- +AC_MSG_CHECKING(whether using debugging messages in libraries) +AC_ARG_WITH(debug, AC_HELP_STRING( + [--with-debug],[debug messages in library]) + , [case "${withval}" in + yes|no) with_debug="$withval" ;; + *) AC_MSG_RESULT(oops) + AC_MSG_ERROR(bad value ${withval} for --with-debug) ;; + esac], [with_debug="no"]) +test "$with_debug" != "yes" && with_debug="no" # yes or no +test "$with_debug" = "yes" && export CFLAGS="$CFLAGS -DDEBUG" +result="$with_debug" ; test "$result" = "yes" && result="yes, added -DDEBUG" +AC_MSG_RESULT($result) +if test "$with_debug" = "yes" ; then if test -n "$RELEASE_INFO" ; then + RELEASE_INFO="$RELEASE_INFO-dbg" + AC_MSG_RESULT(modified release, $RELEASE_INFO) +fi fi +# ---------------------------------------------------------------- +AC_MSG_CHECKING(whether thread stack is too small for bufsiz buffers) + # many embedded platforms, superthreaded systems and kernel usage + # will severely limit the stackspace for its threads. Use _LOWSTK + # compile-define on those platforms. +AC_ARG_WITH(lowstk, AC_HELP_STRING( + [--with-lowstk], [limited thread stack]) + , [case "${withval}" in + yes|no|auto) with_lowstk="$withval" ;; + *) AC_MSG_ERROR(bad value ${withval} for --with-lowstk) ;; + esac], [with_lowstk="auto"]) +if test "$with_lowstk" = "auto"; then + case $target in + *-palmos-*) $with_lowstk="yes" ;; + esac +fi +test "$with_lowstk" != "yes" && with_lowstk="no" # yes or no +test "$with_lowstk" = "yes" && CFLAGS="$CFLAGS -D_LOWSTK" +result="$with_lowstk" ; test "$result" = "yes" && result="yes, added -D_LOWSTK" +AC_MSG_RESULT($with_lowstk) +# --------------------------------------------------------------- +AC_MSG_CHECKING(whether can use mmap for file scanning) + # system with mmap are probably better performing an searching + # and parsing - atleast memory consumption is far better +AC_ARG_ENABLE(mmap, AC_HELP_STRING( + [--disable-mmap],[disable mmap usage]) + , [case "${enableval}" in + yes|no|auto) enable_mmap="${enableval}" ;; + *) AC_MSG_RESULT(oops) + AC_MSG_ERROR(bad value ${enableval} for --disable-mmap) ;; + esac], [enable_mmap="auto"]) +if test "$enable_mmap" = "auto" +then + test "$ac_cv_header_winbase_h" && enable_mmap="yes, winbase.h" + test "$ac_cv_header_sys_mman_h" && enable_mmap="yes, sys/mman.h" +fi +case "$enable_mmap" in + yes|yes,*) CFLAGS="$CFLAGS -D_USE_MMAP" + AC_MSG_RESULT($enable_mmap, added -D_USE_MMAP) ;; + *) enable_mmap="no" + AC_MSG_RESULT(no (just a bit slower)) ;; +esac +# --------------------------------------------------------------- +AC_MSG_CHECKING(whether making SDL parts) +SDL="" +SDL_GENERATE="" +AC_ARG_ENABLE(sdl, AC_HELP_STRING( + [--enable-sdl],[enable SDL usage (if present)]) + ,,[enable_sdl="no"]) +if test "$enable_sdl" = "no" ; then + AC_MSG_RESULT([no, disabled]) +else + enable_sdl=`pkg-config --modversion sdl 2>/dev/null` + if test -z "$enable_sdl"; then + enable_sdl=`sdl-config --version 2>/dev/null` + SDL_GENERATE="sdl-uninstalled.pc" + enable_sdl="$enable_sdl (sdl-config)" + else + enable_sdl="$enable_sdl (pkgconfig)" + fi + enable_sdl="$enable_sdl." + case ".$enable_sdl" in + .1.*) AC_MSG_RESULT([yes, using SDL $enable_sdl]) + SDL="SDL" ;; + .2.*) AC_MSG_RESULT([yes, untested $enable_sdl]) + SDL="SDL" ;; + *) AC_MSG_RESULT([no, $enable_sdl]) ;; + esac + if test -n "$SDL_GENERATE"; then + AC_MSG_RESULT([enabled SDL generation of... $SDL_GENERATE]) + fi +fi +AC_SUBST([SDL]) +AC_SUBST([SDL_GENERATE]) +# --------------------------------------------------------------- +AC_MSG_CHECKING(running extra tests on make check) +if test "MKZIP" != ":" ; then + AC_MSG_RESULT(yes) + ZIPTESTS="" +else + AC_MSG_RESULT(no) + ZIPTESTS="#" +fi +AC_SUBST(ZIPTESTS) +# --------------------------------------------------------------- +AC_MSG_CHECKING([link options]) +ZZIPLIB_LDFLAGS="" +test ".$can_build_shared" != ".no" && ZZIPLIB_LDFLAGS="--export-dynamic" +RESOLVES=" # " +case "$host_os" in mingw*) + ZZIPLIB_LDFLAGS="-no-undefined -export-all-symbols -mconsole" + RESOLVES=' ' +;; esac +AC_MSG_RESULT([$ZZIPLIB_LDFLAGS $RESOLVES]) +AC_SUBST([ZZIPLIB_LDFLAGS]) +AC_SUBST([RESOLVES]) +AC_ARG_WITH([defines], +AS_HELP_STRING([--with-defines],[easy,harden,allow_modulo_entries]), + ,[with_defines="normal"]) + +# +case ",$with_defines," in *,easy,*) + AC_MSG_RESULT([..adding CFLAGS -DZZIP_EASY]) + CFLAGS="$CFLAGS -DZZIP_EASY" +;; esac +case ",$with_defines," in *,harden,*) + AC_MSG_RESULT([..adding CFLAGS -DZZIP_HARDEN]) + CFLAGS="$CFLAGS -DZZIP_HARDEN" +;; esac +case ",$with_defines," in *,allow_modulo_entries,*) + AC_MSG_RESULT([..adding CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES]) + CFLAGS="$CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES" +;; esac + +# --------------------------------------------------------------- +AX_MAINTAINER_MODE_AUTO_SILENT +AX_NOT_ENABLE_FRAME_POINTER +AX_CFLAGS_WARN_ALL +AX_CFLAGS_GCC_OPTION(-Wpointer-arith) +AX_CFLAGS_GCC_OPTION(-Wsign-compare) +AX_CFLAGS_GCC_OPTION(-Wmissing-declarations) +AX_CFLAGS_GCC_OPTION(-Wdeclaration-after-statement) +AX_CFLAGS_GCC_OPTION(-Werror-implicit-function-declaration) +AX_CFLAGS_GCC_OPTION(-Wstrict-aliasing) +AX_CFLAGS_GCC_OPTION(-Warray-bounds) +AX_CFLAGS_NO_WRITABLE_STRINGS +AX_CFLAGS_STRICT_PROTOTYPES +# --------------------------------------------------------------- +AX_ENABLE_DEFAULT_PKGCONFIGDIR +AX_ENABLE_DEFAULT_ACLOCALDIR +AC_SUBST([CONFIG_FILES]) +AC_OUTPUT([Makefile + zzip/Makefile zzipwrap/Makefile SDL/Makefile + docs/Makefile test/Makefile bins/Makefile]) +dnl ------------------------------------------------------------- +PATCH_LIBTOOL_ON_DARWIN_ZSH_OVERQUOTING +PATCH_LIBTOOL_SYS_LIB_SEARCH_PATH_SPEC +PATCH_LIBTOOL_TO_ADD_HOST_CC +# --------------------------------------------------------------- +echo '-----' $PACKAGE $VERSION $prefix +$SHELL libtool --features || true +echo "CPPFLAGS=$CPPFLAGS" +echo "CFLAGS=$CFLAGS" +test "$enable_mmap" != "no" && echo "enable mmap ($enable_mmap)" +test "$enable_mmap" = "no" && echo "disable mmap ($enable_mmap)" +test "$with_lowstk" != "no" && echo "with lowstk ($with_lowstk)" +test "$with_lowstk" = "no" && echo "without lowstk ($with_lowstk)" +test "$with_debug" != "no" && echo "with debug ($with_debug)" +test "$with_debug" = "no" && echo "without debug ($with_debug)" +# test -f ./zziplib.spec && echo warning - do not build in the source dirs +echo '# make && make check && make install' diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/64on32.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/64on32.htm new file mode 100644 index 00000000000..4da84140d5c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/64on32.htm @@ -0,0 +1,195 @@ +<section> <date> 13. Aug 2003 </date> +<h2> 64on32 largefile information </h2> + +<section><!--border--> +<h3> largefile problems </h3> + +<P> + Through actual problems with handling files larger than 2 Gigabyte, + I had to face the fact that there are serious problems with the + largefile implementation around shared-libraries. This is bound + to the effect that 64on32 platforms allow a preprocessor #define + _FILE_OFFSET_BITS=64 which will shift the integretal type of + off_t from a 32bit to a 64bit entity. +</P> + +<P> + That will in fact lead to problems if an application is compiled + with a different off_t size than the shared-library it will be + linked to. Among the problems are different sizes of the callframe + for those functions that take an argument of off_t type. Note how + the "seek" call uses an off_t in the middle of its arguments which + may be 32bit or 64bit depending on a preprocessor define. And + you know that zziplib wraps up "seek"-like calls as well. +</P> + +<P> + The observations were largely made independent of the zziplib + however, as a zip-file does uses 32bit offsets in its header + fields anyway, and therefore a single zip-archive (or any of + its wrapped files) can not be larger than 2 Gigabyte anyway. + I would to refer you for deeper information to my website + about this problem-space at +</P> +<p><center><big> + <a href="http://ac-archive.sf.net/largefile" remap="url"> + ac-archive.sf.net/largefile </a> +</big></center></p> + +</section><section> +<h3> zziplib related </h3> + +<P> + Still however the problems hold for zziplib usage when + the functions are linked dynamically as a shared-library. + Here we can face the fact that an application (or a higher + level library) uses a different off_t size than the + underlying zziplib shared-library. +</P> + +<P> + If you read the <code>zzip/zzip.h</code> header file then + you will surely see a number of off_t usages around, here + they are wrapped in the form of zzip_off_t to get away with + platforms not predefining off_t in the first place. Those + functions are (at the time of writing): +<blockquote><ul> +<li> <code>zzip_telldir</code> (return type) </li> +<li> <code>zzip_seekdir</code> (second param) </li> +<li> <code>zzip_tell</code> (return type) </li> +<li> <code>zzip_seek</code> (second param of three)</li> +</ul></blockquote> +</P> + +<P> + What might be not as obvious however: you will find + also the off_t type being used in the plugin-handlers + callback functions. That is based on the fact that + the plugin-structures is filled by default with the + posix-functions from the C library. A 64on32 platform + however offers quite usually a mixedmode C library + exporting two symbols for tell/seek calls to match + either 32bit off_t or 64bit off_t +<blockquote><ul> +<li> <code>zzip_plugin_io->seeks</code> (return type and second param) </li> +<li> <code>zzip_plugin_io->filesize</code> (return type) </li> +</ul></blockquote> +</P> + +<P> + The problem here: the application might not make use of + zzip_seek/zzip_tell explicitly, but may be the internal + implementation of a zzip call uses io->seeks or io->filesize. + When an application uses plugin-io with these callbacks + overridden then surely problems will arise. +</P> + +</section><section> +<h3> zziplib mixedmode option </h3> + +<P> + I have extended the zziplib implementation to allow itself to + live fine on 64on32 systems. The 64on32 system are like linux + and solaris where the default off_t is 32bit and only by the + preprocessor hint they shift into 64bit. The C library on + these systems is a mixedmode one offering a pair for each of + the problematic functions - lseek <em>and</em> lseek64 for + example. +</P> + +<P> + The zziplib header file detects when it is present on a + 64on32 system (through hints in configured zzip/conf.h) + and that _FILE_OFFSET_BITS has been set to 64bit. In that + case it does automatically issue #defines that shift the + symbol-name from zzip_seek into zzip_seek64. Likewise, + <em>all</em> the *_ext_io functions are renamed into + *_ext_io64 calls +</P> + +<P> + The zziplib library itself will also pick up the renamings + when it is compiled with 64bit off_t - in effect an application + with a 64bit-off_t dependency can only link with a zziplib + compiled in 64bit-off_t mode. If the application does not + use any call symbol with an off_t dependency then it does + not matter and the link will succeed. That's simply because + function calls without an off_t dependency will not be + renamed and they are the same for a 32bit-off_t zziplib or + a 64bit-off_t zziplib. +</P> + +<P> + As an extra, the zziplib exports a few of its common calls + like being a mixedmode library when you compile it both in + 64bit mode and as a shared library. In that case, the + resulting shared library will export symbol pairs for the + calls with an off_t dependency, i.e. both zzip_seek and + zzip_seek64 are present. +</P> + +<P> + Note that for reasons of being a lightweight library, the + zziplib library does not export mixmode call pairs for + the *_ext_io family of functions. The current generation + of zziplib does call io->seeks unconditionally of any + case'ing flag and so far there are no problems with the + current design. +</P> + +</section><section> +<h3> Implementation details </h3> + +<P> + In the header file zzip/zzip.h you will find the define + ZZIP_LARGEFILE_RENAME which triggers the renaming process. + See zzip/conf.h on the conditions where it is being triggered. +</P> + +<P> + For the implementation of the mixedmode symbol pairs, see + zzip/dir.c for an example for the zzip_seekdir/zzip_seekdir64 + pair - here we use libtools -DPIC to detect the situation of + being compiled as shared-library, we use the preprocessor + #def ZZIP_LARGEFILE_RENAME to know we are on a 64on32 + system compiled in 64bit-off_t, and we check the transitional + largefile API to be present by looking for EOVERFLOW errno. +</P> + +<P> + When all the three are present then we simply #undef the + renaming preprocessor macro and define a function symbol + (without the renaming) and call the renamed symbol + already compiled a few lines before. We use the pre-off_t + type "long" for the 32bit entity of these calls. While + we mostly let the compiler do the shrink/expand of these + integer types, we do also sometimes check for overflows + of the seekvalue. +</P> + +</section><section> +<h3> rpm extras and pkg-config </h3> + +<P> + The provided .spec file shows how to compile both variants + of the zziplib shared library and to install them in + parallel in the system. Also we provide doubled sets + of .pc files for pkg-config installation. That should make + it a lot easier for applications to link to the correct + library they want. +</P> + +<P> + Here are all the variants that you can find after installing + the vanilla rpm files from zziplib.sf.net: +<pre> +$ pkg-config --list-all | sort | grep zzip +zziplib32 zziplib32 - ZZipLib - libZ-based ZIP-access Library +zziplib64 zziplib64 - ZZipLib - libZ-based ZIP-access Library +zziplib zziplib - ZZipLib - libZ-based ZIP-access Library +zzip-sdl-config zzip-sdl-config - SDL Config (for ZZipLib) +zzip-sdl-rwops zzip-sdl-rwops - SDL_rwops for ZZipLib +zzipwrap zzipwrap - Callback Wrappers for ZZipLib +zzip-zlib-config zzip-zlib-config - ZLib Config (for ZZipLib) +</pre></P> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.LIB b/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.LIB new file mode 100644 index 00000000000..eb685a5ec98 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.LIB @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, 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 library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + 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 Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, 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 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 a program 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. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, 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 companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + 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, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +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 compile 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) 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. + + c) 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. + + d) 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 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. + + 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 to +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 Library 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 + + Appendix: 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 Library General Public + License as published by the Free Software Foundation; either + version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 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! diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.MPL b/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.MPL new file mode 100644 index 00000000000..18f8109b797 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.MPL @@ -0,0 +1,567 @@ + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + + ---------------------------------------------------------------------- + + AMENDMENTS + + The Netscape Public License Version 1.1 ("NPL") consists of the + Mozilla Public License Version 1.1 with the following Amendments, + including Exhibit A-Netscape Public License. Files identified with + "Exhibit A-Netscape Public License" are governed by the Netscape + Public License Version 1.1. + + Additional Terms applicable to the Netscape Public License. + I. Effect. + These additional terms described in this Netscape Public + License -- Amendments shall apply to the Mozilla Communicator + client code and to all Covered Code under this License. + + II. "Netscape's Branded Code" means Covered Code that Netscape + distributes and/or permits others to distribute under one or more + trademark(s) which are controlled by Netscape but which are not + licensed for use under this License. + + III. Netscape and logo. + This License does not grant any rights to use the trademarks + "Netscape", the "Netscape N and horizon" logo or the "Netscape + lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", + "Smart Browsing" even if such marks are included in the Original + Code or Modifications. + + IV. Inability to Comply Due to Contractual Obligation. + Prior to licensing the Original Code under this License, Netscape + has licensed third party code for use in Netscape's Branded Code. + To the extent that Netscape is limited contractually from making + such third party code available under this License, Netscape may + choose to reintegrate such code into Covered Code without being + required to distribute such code in Source Code form, even if + such code would otherwise be considered "Modifications" under + this License. + + V. Use of Modifications and Covered Code by Initial Developer. + V.1. In General. + The obligations of Section 3 apply to Netscape, except to + the extent specified in this Amendment, Section V.2 and V.3. + + V.2. Other Products. + Netscape may include Covered Code in products other than the + Netscape's Branded Code which are released by Netscape + during the two (2) years following the release date of the + Original Code, without such additional products becoming + subject to the terms of this License, and may license such + additional products on different terms from those contained + in this License. + + V.3. Alternative Licensing. + Netscape may license the Source Code of Netscape's Branded + Code, including Modifications incorporated therein, without + such Netscape Branded Code becoming subject to the terms of + this License, and may license such Netscape Branded Code on + different terms from those contained in this License. + + VI. Litigation. + Notwithstanding the limitations of Section 11 above, the + provisions regarding litigation in Section 11(a), (b) and (c) of + the License shall apply to all disputes relating to this License. + + EXHIBIT A-Netscape Public License. + + "The contents of this file are subject to the Netscape Public + License Version 1.1 (the "License"); you may not use this file + except in compliance with the License. You may obtain a copy of + the License at http://www.mozilla.org/NPL/ + + Software distributed under the License is distributed on an "AS + IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + implied. See the License for the specific language governing + rights and limitations under the License. + + The Original Code is Mozilla Communicator client code, released + March 31, 1998. + + The Initial Developer of the Original Code is Netscape + Communications Corporation. Portions created by Netscape are + Copyright (C) 1998-1999 Netscape Communications Corporation. All + Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the + terms of the _____ license (the "[___] License"), in which case + the provisions of [______] License are applicable instead of + those above. If you wish to allow use of your version of this + file only under the terms of the [____] License and not to allow + others to use your version of this file under the NPL, indicate + your decision by deleting the provisions above and replace them + with the notice and other provisions required by the [___] + License. If you do not delete the provisions above, a recipient + may use your version of this file under either the NPL or the + [___] License." diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.ZLIB b/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.ZLIB new file mode 100644 index 00000000000..b21b5724b39 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/COPYING.ZLIB @@ -0,0 +1,30 @@ + + THE ZLIB/LIBPNG LICENSE (copy from opensource.org) + + Copyright (c) <year> <copyright holders> + + This software is provided 'as-is', without any express + or implied warranty. In no event will the authors be + held liable for any damages arising from the use of this + software. + + Permission is granted to anyone to use this software for + any purpose, including commercial applications, and to + alter it and redistribute it freely, subject to the + following restrictions: + + 1. The origin of this software must not be + misrepresented; you must not claim that you + wrote the original software. If you use this + software in a product, an acknowledgment in + the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly + marked as such, and must not be + misrepresented as being the original + software. + + 3. This notice may not be removed or altered + from any source distribution. + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/Makefile.am b/Build/source/libs/zziplib/zziplib-0.13.60/docs/Makefile.am new file mode 100644 index 00000000000..ec0dd845747 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/Makefile.am @@ -0,0 +1,281 @@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2 + +PYRUN = PYTHONDONTWRITEBYTECODE=1 $(PYDEFS) @PYTHON@ $(PYFLAGS) +PLRUN = PERL_DL_NONLAZY=1 $(PLDEFS) @PERL@ $(PLFLAGS) +DELETE = echo deleting... + +doc_FILES = README.MSVC6 README.SDL COPYING.MPL COPYING.LIB COPYING.ZLIB \ + zziplib.html zzipmmapped.html zzipfseeko.html +htm_FILES = zzip-index.htm zzip-zip.htm zzip-file.htm zzip-sdl-rwops.htm \ + zzip-extio.htm zzip-xor.htm zzip-crypt.htm zzip-cryptoid.htm \ + zzip-api.htm zzip-basics.htm zzip-extras.htm zzip-parse.htm \ + 64on32.htm future.htm fseeko.htm mmapped.htm memdisk.htm \ + configs.htm sfx-make.htm developer.htm download.htm \ + history.htm referentials.htm faq.htm copying.htm notes.htm \ + functions.htm zip-php.htm +htms_FILES = changes.htm +SDL = @top_srcdir@/SDL +SDL_RWOPS = $(SDL)/SDL_rwops_zzcat.c \ + $(SDL)/SDL_rwops_zzip.c $(SDL)/SDL_rwops_zzip.h +changelog = @top_srcdir@/ChangeLog + +EXTRA_DIST = make-doc.py $(doc_FILES) $(htm_FILES) $(SDL_RWOPS) \ + make-doc.pl make-dbk.pl mksite.sh mksite.pl body.htm \ + $(zzipdoc_FILES) sdocbook.css \ + zziplib-manpages.dbk zziplib-master.dbk \ + zziplib-manpages.tar +CLEANFILES = *.pc *.omf +DISTCLEANFILES = zziplib.spec manpages.tar htmpages.tar *.html *.xml + +zzipdoc_FILES = makedocs.py zzipdoc/__init__.py \ + zzipdoc/commentmarkup.py zzipdoc/match.py \ + zzipdoc/dbk2htm.py zzipdoc/htm2dbk.py \ + zzipdoc/functionheader.py zzipdoc/options.py \ + zzipdoc/functionlisthtmlpage.py zzipdoc/textfileheader.py \ + zzipdoc/functionlistreference.py zzipdoc/textfile.py \ + zzipdoc/functionprototype.py zzipdoc/htmldocument.py \ + zzipdoc/docbookdocument.py + +html_FILES = $(htm_FILES:.htm=.html) $(htms_FILES:.htm=.html) \ + $(htm_FILES:.htm=.print.html) $(htms_FILES:.htm=.print.html) \ + site.html site.print.html + +all : all-am default +default : doc @MAINTAINER_MODE_FALSE@ mans +clean-doc clean-docs : clean-unpack + - rm $(DISTCLEANFILES) + - rm $(MAINTAINERCLEANFILES) +install-data-local : @MAINTAINER_MODE_FALSE@ install-mans + +# ------------------------------------------------------------------- +zziplib.spec : @top_srcdir@/$(PACKAGE).spec + @ cp $? $@ # the two zzip-doc.* will grep thru zziplib.spec +doc : $(doc_FILES) site.html +docs : doc manpages.tar htmpages.tar +# docu : docs +docu : + - rm zziplib2.html zzipmmapped.html zzipfseeko.html + $(MAKE) manpages.tar htmpages.tar DELETE=exit + +zziplib.html: zziplib.xml +zziplib.xml: zziplib.spec $(srcdir)/Makefile.am \ + $(srcdir)/zzipdoc/*.py \ + $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c + $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \ + "--package=$(PACKAGE)" "--version=$(VERSION)" \ + "--onlymainheader=zzip/lib.h" "--output=zziplib" + test -s zziplib.docbook && mv zziplib.docbook zziplib.xml +zzipmmapped.html: zzipmmapped.xml +zzipmmapped.xml: zziplib.spec $(srcdir)/Makefile.am \ + $(srcdir)/zzipdoc/*.py \ + $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c + $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \ + "--package=$(PACKAGE)" "--version=$(VERSION)" \ + "--onlymainheader=zzip/mmapped.h" "--output=zzipmmapped" + test -s zzipmmapped.docbook && mv zzipmmapped.docbook zzipmmapped.xml +zzipfseeko.html: zzipfseeko.xml +zzipfseeko.xml: zziplib.spec $(srcdir)/Makefile.am \ + $(srcdir)/zzipdoc/*.py \ + $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c + $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \ + "--package=$(PACKAGE)" "--version=$(VERSION)" \ + "--onlymainheader=zzip/fseeko.h" "--output=zzipfseeko" + test -s zzipfseeko.docbook && mv zzipfseeko.docbook zzipfseeko.xml + +omfdir=${datadir}/omf +pkgomfdir=${omfdir}/${PACKAGE} +pkgdocdir=${mandir}/../doc/${PACKAGE} +bins = @top_srcdir@/bins +DOCEXAMPLES = $(bins)/zzdir.c $(bins)/zzcat.c \ + $(bins)/zzobfuscated.c $(bins)/zziptest.c \ + $(bins)/zzxordir.c $(bins)/zzxorcat.c \ + $(bins)/zzxorcopy.c $(SDL_RWOPS) + +install-docs: $(doc_FILES) $(man_FILES) site.html htmpages.tar + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir) + $(INSTALL_DATA) $(html_FILES) $(DESTDIR)$(pkgdocdir) + for i in $(doc_FILES) $(DOCEXAMPLES) $(changelog) $(srcdir)/README.* \ + ; do $(INSTALL_DATA) `test -f $$i || echo $(srcdir)/`$$i \ + $(DESTDIR)$(pkgdocdir) ; done + cd $(DESTDIR)$(pkgdocdir) && ln -sf zzip-index.html index.html + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/man + @ echo $(PAX_TAR_EXTRACT) htmpages.tar '>>>' $(DESTDIR)$(pkgdocdir)/man/ \ + ; test -f htmpages.tar || cd "$srcdir" \ + ; P=`pwd` ; test -s htmpages.tar || exit 1 \ + ; cd $(DESTDIR)$(pkgdocdir)/man && $(PAX_TAR_EXTRACT) $$P/htmpages.tar \ + ; true + +install-doc : install-docs $(PACKAGE)-doc.omf + $(mkinstalldirs) $(DESTDIR)$(pkgomfdir) + $(INSTALL_DATA) $(PACKAGE)-doc.omf $(DESTDIR)$(pkgomfdir)/ + - test ".$(DESTDIR)" != "." || scrollkeeper-update + +SOURCEFORGE_GROUP=zziplib +SOURCEFORGE_HOST=web.sourceforge.net +SOURCEFORGE_PATH=/home/groups/z/zz/zziplib/htdocs +www: upload-sourceforge +upload-sourceforge: + $(MAKE) install-docs DESTDIR=/tmp/zziplib-htdocs-$$USER/ + echo scp ... $(SOURCEFORGE_HOST):$(SOURCEFORGE_PATH)/ ; sleep 4 + scp -r /tmp/zziplib-htdocs-$$USER/$(pkgdocdir)/* \ + $$USER,$(SOURCEFORGE_GROUP)@$(SOURCEFORGE_HOST):$(SOURCEFORGE_PATH) + rm -r /tmp/zziplib-htdocs-$$USER/ + +# ------------------------------------------------------------ package manpages +mans : manpages +install-mans : install-man3 + +man3 man manpages : manpages.tar +html htm htmpages : htmpages.tar + +zziplib-manpages.tar : manpages.tar + test -s "$@" || test -s "$(srcdir)/$@" +manpages.tar : zziplib.xml zzipmmapped.xml zzipfseeko.xml + : "unix man format of the manpages - goes to ../share/man/man3" + @ if test "$(XMLTO)" != ":" \ + ; then echo going to regenerate "$@" in subdir "'"man"'" \ + ; echo 'test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3' \ + ; test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3 \ + ; echo '$(XMLTO) -o man3 man zziplib.xml' \ + ; $(XMLTO) -o man3 man zziplib.xml \ + ; echo '$(XMLTO) -o man3 man zzipmmapped.xml' \ + ; $(XMLTO) -o man3 man zzipmmapped.xml \ + ; echo '$(XMLTO) -o man3 man zzipfseeko.xml' \ + ; $(XMLTO) -o man3 man zzipfseeko.xml \ + ; if test -d man3/man3; then mv man3 man3_ \ + ; mv man3_/man3 man3; rm -r man3_; fi \ + ; echo 'chmod 664 man3/*.3' \ + ; chmod 664 man3/*.3 \ + ; echo '$(PAX_TAR_CREATE) "$@" man3/' \ + ; $(PAX_TAR_CREATE) "$@" man3/ \ + ; echo '$(DELETE); rm man3/*.3 ; rmdir man3' \ + ; $(DELETE); rm man3/*.3 ; rmdir man3 \ + ; fi ; true + @ if test -s $@ \ + ; then echo cp $@ zziplib-$@ "(saved)"; cp $@ zziplib-$@ \ + ; else echo cp $(srcdir)/zziplib-$@ $@; cp $(srcdir)/zziplib-$@ $@ \ + ; fi + +zziplib-htmpages.tar : htmpages.tar + test -s "$@" || test -s "$(srcdir)/$@" +htmpages.tar : zziplib.xml zzipmmapped.xml zzipfseeko.xml zziplib-manpages.dbk + : "html format of the manpages - put into zziplib/htdocs/man/*" + @ if test "$(XMLTO)" != ":" \ + ; then echo going to regenerate "$@" in subdir "'"html"'" \ + ; echo 'test ! -d html || rm /* ; test -d html || mkdir html' \ + ; test ! -d html || rm html/* ; test -d html || mkdir html \ + ; echo 'cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml' \ + ; cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml \ + ; echo '$(XMLTO) -o html html zziplib-manpages.xml | tee written.lst' \ + ; $(XMLTO) -o html html zziplib-manpages.xml | tee written.lst \ + ; echo '$(PAX_TAR_CREATE) $@ html/*.*' \ + ; $(PAX_TAR_CREATE) $@ html/*.* \ + ; echo '$(DELETE); rm html/*.* ; rmdir html' \ + ; $(DELETE); rm html/*.* ; rmdir html \ + ; fi ; true + @ if test -s $@ \ + ; then echo cp $@ zziplib-$@ "(saved)"; cp $@ zziplib-$@ \ + ; else echo cp $(srcdir)/zziplib-$@ $@; cp $(srcdir)/zziplib-$@ $@ \ + ; fi + +install-man3 : manpages.tar + $(mkinstalldirs) $(DESTDIR)$(mandir)/man3 + P=`pwd` ; test -s manpages.tar || exit 1 \ + ; cd $(DESTDIR)$(mandir) && $(PAX_TAR_EXTRACT) $$P/manpages.tar \ + ; true + +unpack : manpages.tar htmpages.tar + test -s manpages.tar && test -s htmpages.tar + (rm -rf _htm && mkdir _htm && cd _htm && $(PAX_TAR_EXTRACT) ../htmpages.tar) + (rm -rf _man && mkdir _man && cd _man && $(PAX_TAR_EXTRACT) ../manpages.tar) +clean-unpack : + rm -rf _htm + rm -rf _man + +# --------------------------------------------------------------- OMF handling +spec_file=$(top_srcdir)/$(PACKAGE).spec +DOCSERIES= 775fb73e-1874-11d7-93e9-e18cd7ea3c2e +FROMSPEC= $(spec_file) | head -1 | sed -e 's,<,\<,g' -e 's,>,\>,g' +DATESPEC= `date +%Y-%m-%d` + +$(PACKAGE)-doc.omf : $(spec_file) Makefile + : "OMF for the html documentation - a copy of zziplib.sf.net" + echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>' >$@ + echo '<omf><resource><creator> Guido Draheim </creator>' >>$@ + grep Packager $(FROMSPEC) | sed -e 's,Packager *: *, <maintainer>,' \ + -e '/<maintainer>/s,$$,</maintainer>,' >>$@ + grep Summary $(FROMSPEC) | sed -e 's,Summary *: *, <title>,' \ + -e '/<title>/s,$$,</title>,' >>$@ + echo ' <date>'$(DATESPEC)'</date>' >>$@ + echo ' <version identifier="$(VERSION)" date="'$(DATESPEC)'"/>' >>$@ + grep Group $(FROMSPEC) | sed -e 's,Group *: *, <subject category=",' \ + -e 's,/,|,g' -e '/<subject/s,$$," />,' >>$@ + echo ' <format mime="text/html"/>' >>$@ + pkgdocdir=`echo "$(pkgdocdir)" | sed -e "s|/[a-z][a-z]*/[.][.]/|/|"` \ + echo ' <identifier url="file:'"$$pkgdocdir"'/zzip-index.html"/>' >>$@ + echo ' <language code="C"/>' >>$@ + echo ' <relation seriesid="$(DOCSERIES)"/>' >>$@ + echo ' <rights type="GNU LGPL" holder="Guido Draheim"' >>$@ + pkgdocdir=`echo "$(pkgdocdir)" | sed -e "s|/[a-z][a-z]*/[.][.]/|/|"` \ + echo ' license="'"$$pkgdocdir"')/COPYING.LIB"/>' >>$@ + echo '</resource></omf>' >>$@ + +DOCBOOKDTD= -//OASIS/DTD Docbook V4.1.2//EN +MANSERIES= a302c642-1888-11d7-86f6-ba4b52ef847d +$(PACKAGE)-man.omf : $(PACKAGE)-doc.omf $(PACKAGE).xml + : "OMF for functions reference - the docbook master of the manpages" + sed -e 's,"text/html","text/xml" dtd="$(DOCBOOKDTD)",' \ + -e 's,</title>, (Function Reference)</title>,' \ + -e 's,/index.html,/xml/manpages.xml,' \ + -e 's,$(DOCSERIES),$(MANSERIES),' $(PACKAGE)-doc.omf > $@ + test -s $@ || rm $@ + +omf : $(PACKAGE)-doc.omf $(PACKAGE)-man.omf +install-omf : omf zziplib.xml zzipmmapped.xml zzipfseeko.xml + : "not installed by default anymore - 'make install-doc' has one OMF" + $(mkinstalldirs) $(DESTDIR)$(pkgomfdir) + $(INSTALL_DATA) $(PACKAGE)-doc.omf $(DESTDIR)$(pkgomfdir)/ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir) + $(INSTALL_DATA) $(srcdir)/zziplib-manpages.xml \ + $(DESTDIR)$(pkgdocdir)/xml/manpages.xml + $(INSTALL_DATA) zziplib.xml zzipmmapped.xml zzipfseeko.xml \ + $(DESTDIR)$(pkgdocdir)/xml/ + $(INSTALL_DATA) $(PACKAGE)-man.omf $(DESTDIR)$(pkgomfdir)/ + - test ".$(DESTDIR)" != "." || scrollkeeper-update -v + +# ----------------------------------------------- mksite.sh for the main html +site.htm : body.htm + cp $(srcdir)/body.htm site.htm +mksite_sh_args = --VERSION=$(VERSION) --xml --src-dir=$(srcdir) --print +site.html : body.htm site.htm mksite.sh $(htm_FILES) $(htms_FILES) + cp $(srcdir)/body.htm site.htm + perl $(srcdir)/mksite.pl $(mksite_sh_args) site.htm || \ + $(SHELL) $(srcdir)/mksite.sh $(mksite_sh_args) site.htm + +changes.htm : $(top_srcdir)/ChangeLog Makefile + echo "<pre>" > $@ ; cat $(top_srcdir)/ChangeLog \ + | sed -e "s,\\&,\\&\\;,g" \ + -e "s,<,\\<\\;,g" -e "s,>,\\>\\;,g" \ + -e "/^[A-Z].*[12][09][09][09]/s,\\(.*\\),<b>&</b>," \ + -e "/^[0-9]/s,\\(.*\\),<b>&</b>," >> $@ ; echo "</pre>" >>$@ + +# ----------------------------------------------- create pdf via docbook xml +# sorry, the xmlto / docbook-xsl are too broken to rebuild the PDF anymore + +zzip.xml : $(htm_FILES) zziplib.xml make-dbk.pl + : '@PERL@ make-dbk.pl $(htm_FILES) zziplib.xml >$@' + @PYTHON@ $(srcdir)/zzipdoc/htm2dbk.py $(htm_FILES) zziplib.xml >$@ + test -s "$@" || rm "$@" + +zzip.html : zzip.xml + xmlto html-nochunks zzip.xml +zzip.pdf : zzip.xml + xmlto pdf zzip.xml + +zziplib.pdf : $(htm_FILES) $(srcdir)/zziplib-master.dbk mksite.pl + cp $(srcdir)/zziplib-master.dbk zziplib.docbook + xmlto pdf zziplib.docbook ; rm zziplib.docbook + test -s zziplib.pdf + +pdfs : zziplib.pdf diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/Makefile.in b/Build/source/libs/zziplib/zziplib-0.13.60/docs/Makefile.in new file mode 100644 index 00000000000..03ab81a5738 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/Makefile.in @@ -0,0 +1,694 @@ +# Makefile.in generated by automake 1.11.1 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@ +target_triplet = @target@ +subdir = docs +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in COPYING.LIB +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \ + $(top_srcdir)/m4/ac_set_default_paths_system.m4 \ + $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \ + $(top_srcdir)/m4/acx_restrict.m4 \ + $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ + $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \ + $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \ + $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ + $(top_srcdir)/m4/ax_configure_args.m4 \ + $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ + $(top_srcdir)/m4/ax_enable_builddir_uname.m4 \ + $(top_srcdir)/m4/ax_expand_prefix.m4 \ + $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \ + $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \ + $(top_srcdir)/m4/ax_pax_tar.m4 \ + $(top_srcdir)/m4/ax_prefix_config_h.m4 \ + $(top_srcdir)/m4/ax_set_version_info.m4 \ + $(top_srcdir)/m4/ax_spec_file.m4 \ + $(top_srcdir)/m4/ax_spec_package_version.m4 \ + $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \ + $(top_srcdir)/m4/ax_warning_default_pkgconfig.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/patch_libtool_on_darwin_zsh_overquoting.m4 \ + $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \ + $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CONFIG_FILES = @CONFIG_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTAR = @GNUTAR@ +GREP = @GREP@ +GTAR = @GTAR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKZIP = @MKZIP@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PAX = @PAX@ +PAX_TAR_CREATE = @PAX_TAR_CREATE@ +PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELEASE_INFO = @RELEASE_INFO@ +RESOLVES = @RESOLVES@ +SDL = @top_srcdir@/SDL +SDL_GENERATE = @SDL_GENERATE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +THREAD_SAFE = @THREAD_SAFE@ +VERSION = @VERSION@ +VERSION_INFO = @VERSION_INFO@ +XMLTO = @XMLTO@ +ZIPTESTS = @ZIPTESTS@ +ZLIB_INCL = @ZLIB_INCL@ +ZLIB_LDIR = @ZLIB_LDIR@ +ZLIB_VERSION = @ZLIB_VERSION@ +ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@ +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@ +aclocaldir = @aclocaldir@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_enable_builddir_sed = @ax_enable_builddir_sed@ +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@ +pkgconfig_libdir = @pkgconfig_libdir@ +pkgconfig_libfile = @pkgconfig_libfile@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2 +PYRUN = PYTHONDONTWRITEBYTECODE=1 $(PYDEFS) @PYTHON@ $(PYFLAGS) +PLRUN = PERL_DL_NONLAZY=1 $(PLDEFS) @PERL@ $(PLFLAGS) +DELETE = echo deleting... +doc_FILES = README.MSVC6 README.SDL COPYING.MPL COPYING.LIB COPYING.ZLIB \ + zziplib.html zzipmmapped.html zzipfseeko.html + +htm_FILES = zzip-index.htm zzip-zip.htm zzip-file.htm zzip-sdl-rwops.htm \ + zzip-extio.htm zzip-xor.htm zzip-crypt.htm zzip-cryptoid.htm \ + zzip-api.htm zzip-basics.htm zzip-extras.htm zzip-parse.htm \ + 64on32.htm future.htm fseeko.htm mmapped.htm memdisk.htm \ + configs.htm sfx-make.htm developer.htm download.htm \ + history.htm referentials.htm faq.htm copying.htm notes.htm \ + functions.htm zip-php.htm + +htms_FILES = changes.htm +SDL_RWOPS = $(SDL)/SDL_rwops_zzcat.c \ + $(SDL)/SDL_rwops_zzip.c $(SDL)/SDL_rwops_zzip.h + +changelog = @top_srcdir@/ChangeLog +EXTRA_DIST = make-doc.py $(doc_FILES) $(htm_FILES) $(SDL_RWOPS) \ + make-doc.pl make-dbk.pl mksite.sh mksite.pl body.htm \ + $(zzipdoc_FILES) sdocbook.css \ + zziplib-manpages.dbk zziplib-master.dbk \ + zziplib-manpages.tar + +CLEANFILES = *.pc *.omf +DISTCLEANFILES = zziplib.spec manpages.tar htmpages.tar *.html *.xml +zzipdoc_FILES = makedocs.py zzipdoc/__init__.py \ + zzipdoc/commentmarkup.py zzipdoc/match.py \ + zzipdoc/dbk2htm.py zzipdoc/htm2dbk.py \ + zzipdoc/functionheader.py zzipdoc/options.py \ + zzipdoc/functionlisthtmlpage.py zzipdoc/textfileheader.py \ + zzipdoc/functionlistreference.py zzipdoc/textfile.py \ + zzipdoc/functionprototype.py zzipdoc/htmldocument.py \ + zzipdoc/docbookdocument.py + +html_FILES = $(htm_FILES:.htm=.html) $(htms_FILES:.htm=.html) \ + $(htm_FILES:.htm=.print.html) $(htms_FILES:.htm=.print.html) \ + site.html site.print.html + +omfdir = ${datadir}/omf +pkgomfdir = ${omfdir}/${PACKAGE} +pkgdocdir = ${mandir}/../doc/${PACKAGE} +bins = @top_srcdir@/bins +DOCEXAMPLES = $(bins)/zzdir.c $(bins)/zzcat.c \ + $(bins)/zzobfuscated.c $(bins)/zziptest.c \ + $(bins)/zzxordir.c $(bins)/zzxorcat.c \ + $(bins)/zzxorcopy.c $(SDL_RWOPS) + +SOURCEFORGE_GROUP = zziplib +SOURCEFORGE_HOST = web.sourceforge.net +SOURCEFORGE_PATH = /home/groups/z/zz/zziplib/htdocs + +# --------------------------------------------------------------- OMF handling +spec_file = $(top_srcdir)/$(PACKAGE).spec +DOCSERIES = 775fb73e-1874-11d7-93e9-e18cd7ea3c2e +FROMSPEC = $(spec_file) | head -1 | sed -e 's,<,\<,g' -e 's,>,\>,g' +DATESPEC = `date +%Y-%m-%d` +DOCBOOKDTD = -//OASIS/DTD Docbook V4.1.2//EN +MANSERIES = a302c642-1888-11d7-86f6-ba4b52ef847d +mksite_sh_args = --VERSION=$(VERSION) --xml --src-dir=$(srcdir) --print +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign docs/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +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 +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: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +all : all-am default +default : doc @MAINTAINER_MODE_FALSE@ mans +clean-doc clean-docs : clean-unpack + - rm $(DISTCLEANFILES) + - rm $(MAINTAINERCLEANFILES) +install-data-local : @MAINTAINER_MODE_FALSE@ install-mans + +# ------------------------------------------------------------------- +zziplib.spec : @top_srcdir@/$(PACKAGE).spec + @ cp $? $@ # the two zzip-doc.* will grep thru zziplib.spec +doc : $(doc_FILES) site.html +docs : doc manpages.tar htmpages.tar +# docu : docs +docu : + - rm zziplib2.html zzipmmapped.html zzipfseeko.html + $(MAKE) manpages.tar htmpages.tar DELETE=exit + +zziplib.html: zziplib.xml +zziplib.xml: zziplib.spec $(srcdir)/Makefile.am \ + $(srcdir)/zzipdoc/*.py \ + $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c + $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \ + "--package=$(PACKAGE)" "--version=$(VERSION)" \ + "--onlymainheader=zzip/lib.h" "--output=zziplib" + test -s zziplib.docbook && mv zziplib.docbook zziplib.xml +zzipmmapped.html: zzipmmapped.xml +zzipmmapped.xml: zziplib.spec $(srcdir)/Makefile.am \ + $(srcdir)/zzipdoc/*.py \ + $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c + $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \ + "--package=$(PACKAGE)" "--version=$(VERSION)" \ + "--onlymainheader=zzip/mmapped.h" "--output=zzipmmapped" + test -s zzipmmapped.docbook && mv zzipmmapped.docbook zzipmmapped.xml +zzipfseeko.html: zzipfseeko.xml +zzipfseeko.xml: zziplib.spec $(srcdir)/Makefile.am \ + $(srcdir)/zzipdoc/*.py \ + $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c + $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \ + "--package=$(PACKAGE)" "--version=$(VERSION)" \ + "--onlymainheader=zzip/fseeko.h" "--output=zzipfseeko" + test -s zzipfseeko.docbook && mv zzipfseeko.docbook zzipfseeko.xml + +install-docs: $(doc_FILES) $(man_FILES) site.html htmpages.tar + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir) + $(INSTALL_DATA) $(html_FILES) $(DESTDIR)$(pkgdocdir) + for i in $(doc_FILES) $(DOCEXAMPLES) $(changelog) $(srcdir)/README.* \ + ; do $(INSTALL_DATA) `test -f $$i || echo $(srcdir)/`$$i \ + $(DESTDIR)$(pkgdocdir) ; done + cd $(DESTDIR)$(pkgdocdir) && ln -sf zzip-index.html index.html + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/man + @ echo $(PAX_TAR_EXTRACT) htmpages.tar '>>>' $(DESTDIR)$(pkgdocdir)/man/ \ + ; test -f htmpages.tar || cd "$srcdir" \ + ; P=`pwd` ; test -s htmpages.tar || exit 1 \ + ; cd $(DESTDIR)$(pkgdocdir)/man && $(PAX_TAR_EXTRACT) $$P/htmpages.tar \ + ; true + +install-doc : install-docs $(PACKAGE)-doc.omf + $(mkinstalldirs) $(DESTDIR)$(pkgomfdir) + $(INSTALL_DATA) $(PACKAGE)-doc.omf $(DESTDIR)$(pkgomfdir)/ + - test ".$(DESTDIR)" != "." || scrollkeeper-update +www: upload-sourceforge +upload-sourceforge: + $(MAKE) install-docs DESTDIR=/tmp/zziplib-htdocs-$$USER/ + echo scp ... $(SOURCEFORGE_HOST):$(SOURCEFORGE_PATH)/ ; sleep 4 + scp -r /tmp/zziplib-htdocs-$$USER/$(pkgdocdir)/* \ + $$USER,$(SOURCEFORGE_GROUP)@$(SOURCEFORGE_HOST):$(SOURCEFORGE_PATH) + rm -r /tmp/zziplib-htdocs-$$USER/ + +# ------------------------------------------------------------ package manpages +mans : manpages +install-mans : install-man3 + +man3 man manpages : manpages.tar +html htm htmpages : htmpages.tar + +zziplib-manpages.tar : manpages.tar + test -s "$@" || test -s "$(srcdir)/$@" +manpages.tar : zziplib.xml zzipmmapped.xml zzipfseeko.xml + : "unix man format of the manpages - goes to ../share/man/man3" + @ if test "$(XMLTO)" != ":" \ + ; then echo going to regenerate "$@" in subdir "'"man"'" \ + ; echo 'test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3' \ + ; test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3 \ + ; echo '$(XMLTO) -o man3 man zziplib.xml' \ + ; $(XMLTO) -o man3 man zziplib.xml \ + ; echo '$(XMLTO) -o man3 man zzipmmapped.xml' \ + ; $(XMLTO) -o man3 man zzipmmapped.xml \ + ; echo '$(XMLTO) -o man3 man zzipfseeko.xml' \ + ; $(XMLTO) -o man3 man zzipfseeko.xml \ + ; if test -d man3/man3; then mv man3 man3_ \ + ; mv man3_/man3 man3; rm -r man3_; fi \ + ; echo 'chmod 664 man3/*.3' \ + ; chmod 664 man3/*.3 \ + ; echo '$(PAX_TAR_CREATE) "$@" man3/' \ + ; $(PAX_TAR_CREATE) "$@" man3/ \ + ; echo '$(DELETE); rm man3/*.3 ; rmdir man3' \ + ; $(DELETE); rm man3/*.3 ; rmdir man3 \ + ; fi ; true + @ if test -s $@ \ + ; then echo cp $@ zziplib-$@ "(saved)"; cp $@ zziplib-$@ \ + ; else echo cp $(srcdir)/zziplib-$@ $@; cp $(srcdir)/zziplib-$@ $@ \ + ; fi + +zziplib-htmpages.tar : htmpages.tar + test -s "$@" || test -s "$(srcdir)/$@" +htmpages.tar : zziplib.xml zzipmmapped.xml zzipfseeko.xml zziplib-manpages.dbk + : "html format of the manpages - put into zziplib/htdocs/man/*" + @ if test "$(XMLTO)" != ":" \ + ; then echo going to regenerate "$@" in subdir "'"html"'" \ + ; echo 'test ! -d html || rm /* ; test -d html || mkdir html' \ + ; test ! -d html || rm html/* ; test -d html || mkdir html \ + ; echo 'cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml' \ + ; cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml \ + ; echo '$(XMLTO) -o html html zziplib-manpages.xml | tee written.lst' \ + ; $(XMLTO) -o html html zziplib-manpages.xml | tee written.lst \ + ; echo '$(PAX_TAR_CREATE) $@ html/*.*' \ + ; $(PAX_TAR_CREATE) $@ html/*.* \ + ; echo '$(DELETE); rm html/*.* ; rmdir html' \ + ; $(DELETE); rm html/*.* ; rmdir html \ + ; fi ; true + @ if test -s $@ \ + ; then echo cp $@ zziplib-$@ "(saved)"; cp $@ zziplib-$@ \ + ; else echo cp $(srcdir)/zziplib-$@ $@; cp $(srcdir)/zziplib-$@ $@ \ + ; fi + +install-man3 : manpages.tar + $(mkinstalldirs) $(DESTDIR)$(mandir)/man3 + P=`pwd` ; test -s manpages.tar || exit 1 \ + ; cd $(DESTDIR)$(mandir) && $(PAX_TAR_EXTRACT) $$P/manpages.tar \ + ; true + +unpack : manpages.tar htmpages.tar + test -s manpages.tar && test -s htmpages.tar + (rm -rf _htm && mkdir _htm && cd _htm && $(PAX_TAR_EXTRACT) ../htmpages.tar) + (rm -rf _man && mkdir _man && cd _man && $(PAX_TAR_EXTRACT) ../manpages.tar) +clean-unpack : + rm -rf _htm + rm -rf _man + +$(PACKAGE)-doc.omf : $(spec_file) Makefile + : "OMF for the html documentation - a copy of zziplib.sf.net" + echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>' >$@ + echo '<omf><resource><creator> Guido Draheim </creator>' >>$@ + grep Packager $(FROMSPEC) | sed -e 's,Packager *: *, <maintainer>,' \ + -e '/<maintainer>/s,$$,</maintainer>,' >>$@ + grep Summary $(FROMSPEC) | sed -e 's,Summary *: *, <title>,' \ + -e '/<title>/s,$$,</title>,' >>$@ + echo ' <date>'$(DATESPEC)'</date>' >>$@ + echo ' <version identifier="$(VERSION)" date="'$(DATESPEC)'"/>' >>$@ + grep Group $(FROMSPEC) | sed -e 's,Group *: *, <subject category=",' \ + -e 's,/,|,g' -e '/<subject/s,$$," />,' >>$@ + echo ' <format mime="text/html"/>' >>$@ + pkgdocdir=`echo "$(pkgdocdir)" | sed -e "s|/[a-z][a-z]*/[.][.]/|/|"` \ + echo ' <identifier url="file:'"$$pkgdocdir"'/zzip-index.html"/>' >>$@ + echo ' <language code="C"/>' >>$@ + echo ' <relation seriesid="$(DOCSERIES)"/>' >>$@ + echo ' <rights type="GNU LGPL" holder="Guido Draheim"' >>$@ + pkgdocdir=`echo "$(pkgdocdir)" | sed -e "s|/[a-z][a-z]*/[.][.]/|/|"` \ + echo ' license="'"$$pkgdocdir"')/COPYING.LIB"/>' >>$@ + echo '</resource></omf>' >>$@ +$(PACKAGE)-man.omf : $(PACKAGE)-doc.omf $(PACKAGE).xml + : "OMF for functions reference - the docbook master of the manpages" + sed -e 's,"text/html","text/xml" dtd="$(DOCBOOKDTD)",' \ + -e 's,</title>, (Function Reference)</title>,' \ + -e 's,/index.html,/xml/manpages.xml,' \ + -e 's,$(DOCSERIES),$(MANSERIES),' $(PACKAGE)-doc.omf > $@ + test -s $@ || rm $@ + +omf : $(PACKAGE)-doc.omf $(PACKAGE)-man.omf +install-omf : omf zziplib.xml zzipmmapped.xml zzipfseeko.xml + : "not installed by default anymore - 'make install-doc' has one OMF" + $(mkinstalldirs) $(DESTDIR)$(pkgomfdir) + $(INSTALL_DATA) $(PACKAGE)-doc.omf $(DESTDIR)$(pkgomfdir)/ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir) + $(INSTALL_DATA) $(srcdir)/zziplib-manpages.xml \ + $(DESTDIR)$(pkgdocdir)/xml/manpages.xml + $(INSTALL_DATA) zziplib.xml zzipmmapped.xml zzipfseeko.xml \ + $(DESTDIR)$(pkgdocdir)/xml/ + $(INSTALL_DATA) $(PACKAGE)-man.omf $(DESTDIR)$(pkgomfdir)/ + - test ".$(DESTDIR)" != "." || scrollkeeper-update -v + +# ----------------------------------------------- mksite.sh for the main html +site.htm : body.htm + cp $(srcdir)/body.htm site.htm +site.html : body.htm site.htm mksite.sh $(htm_FILES) $(htms_FILES) + cp $(srcdir)/body.htm site.htm + perl $(srcdir)/mksite.pl $(mksite_sh_args) site.htm || \ + $(SHELL) $(srcdir)/mksite.sh $(mksite_sh_args) site.htm + +changes.htm : $(top_srcdir)/ChangeLog Makefile + echo "<pre>" > $@ ; cat $(top_srcdir)/ChangeLog \ + | sed -e "s,\\&,\\&\\;,g" \ + -e "s,<,\\<\\;,g" -e "s,>,\\>\\;,g" \ + -e "/^[A-Z].*[12][09][09][09]/s,\\(.*\\),<b>&</b>," \ + -e "/^[0-9]/s,\\(.*\\),<b>&</b>," >> $@ ; echo "</pre>" >>$@ + +# ----------------------------------------------- create pdf via docbook xml +# sorry, the xmlto / docbook-xsl are too broken to rebuild the PDF anymore + +zzip.xml : $(htm_FILES) zziplib.xml make-dbk.pl + : '@PERL@ make-dbk.pl $(htm_FILES) zziplib.xml >$@' + @PYTHON@ $(srcdir)/zzipdoc/htm2dbk.py $(htm_FILES) zziplib.xml >$@ + test -s "$@" || rm "$@" + +zzip.html : zzip.xml + xmlto html-nochunks zzip.xml +zzip.pdf : zzip.xml + xmlto pdf zzip.xml + +zziplib.pdf : $(htm_FILES) $(srcdir)/zziplib-master.dbk mksite.pl + cp $(srcdir)/zziplib-master.dbk zziplib.docbook + xmlto pdf zziplib.docbook ; rm zziplib.docbook + test -s zziplib.pdf + +pdfs : zziplib.pdf + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/README.MSVC6 b/Build/source/libs/zziplib/zziplib-0.13.60/docs/README.MSVC6 new file mode 100644 index 00000000000..ee042c35092 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/README.MSVC6 @@ -0,0 +1,137 @@ +To compile zziplib with MSVC++ 6 you can use the workspace and project +files shipped along with the zziplib tarball in the msvc6/ directory. +This will save you most of the following steps, atleast skip step 1. + +Step 1: create zziplib workspace file + +- Create a workspace and a project file for "zzip". +- Add all .c and .h files in the zzip/ directory. Yes, all. +- Add the toplevel directory (containing the zzip/ directory) as an + "Additional Include Directory" to the search path. Best do this in + -> Project -> Settings -> Tab: C/C++ + -> Category: Preprocessor -> "Additional Include Directories". + This is a comma-separated list, in the workspace files shipped along + with the zziplib tarball, you will see ".." in there where ".." (or ..\..) + is the path to the toplevel directory of the unpacked sources. +- if you did choose "DLL" as a project type then you will automatically + see a define _USRDLL and ZZIP_EXPORTS in (this is just a hint)... + -> Project -> Settings -> Tab: C/C++ + -> Category: Preprocessor -> "Preprocessor Definitions". +- remove any LIB imports other than "kernel32.lib" + -> Project -> Settings -> Tab: Link + -> Category: Input -> "Object/Library Modules" + +Step 2: add zlib dependencies of zziplib.dll + +- if you do not have installed zlib in the system then you may want to + download "lib" + "bin" parts from http://gnuwin32.sf.net/packages/zlib.htm + (I found this msvcrt package via a reference at http://www.zlib.org) +- suppose you have the zlib.h file in "D:\include" and the libz.lib file + is in "D:\lib" then we need to add those dependencies to the project. +- add the path to zlib.h as an "Additional Include Path", best do this in + -> Project -> Settings -> Tab: C/C++ + -> Category: Preprocessor -> "Additional Include Directories". + This is a comma-separated list, after you have changed it, it might + look like "..,.,D:\include" (for ".." part see description in Step 1) +- That is enough to build a zziplib.lib, in order to create a zziplib.dll + we need to resolve its linker dependencies as well, best do this in + -> Project -> Settings -> Tab: Link + -> Category: Input -> "Object/Library Modules" + This is a space separated list (!!), add "libz.lib" there, so after + changing it it might look like "kernel32.lib libz.lib". Also modify + -> Project -> Settings -> Tab: Link + -> Category: Input -> "Additional Library Path" + which is usually empty. After changing it, it might contain "D:\lib". +- Also add ZZIP_DLL or ZZIP_EXPORTS for dllspec(exports), best do this in + -> Project -> Settings -> Tab: C/C++ + -> Category: Preprocessor" -> "Preprocessor Definitions". + After changing it, it might look like + "NDEBUG,WIN32,_WINDOWS,_MBCS,_USRDLL,ZZIP_EXPORTS" + +Step 3: example binaries to link with zziplib.dll + +- dynamic linking is best to avoid any copyright problems, the "Lesser GPL" + does not restrict usage of zziplib for the case of a separated zzip.dll +- the example workspace builds two zziplib libraries, where zziplib.lib + points to the staticlink variant and zzip.lib to the dynalink variant + which will add a dependency on zzip-1.dll being in the PATH +- the example binaries shipped with zziplib tarball do only have a single + .c file per output .exe, we pick zzcat.exe to guide you through. +- if you do not use our shipped project files, create a project "zzcat" + and add "bins/zzcat.c" in there. +- adjust the "Additional Include Directories": + -> Project -> Settings -> Tab: C/C++ + -> Category: Preprocessor -> "Additional Include Directories". + like in Step 1 add the path to "./zzip" owning the zziplib headers. + We do _not_ need the zlib headers to compile "zzcat.exe", so it might + just look like ".." (or "..\.." or "..\zziplib-0.10.82") +- adjust the "Object/Library Modules" + -> Project -> Settings -> Tab: Link + -> Category: Input -> "Object/Library Modules" + adding "zzip.lib libz.lib" with a space. The result might look like + "kernel32.lib zzip.lib libz.lib" or "kernel32.lib zziplib.lib libz.lib". +- adjust the "Additional Library Path" + -> Project -> Settings -> Tab: Link + -> Category: Input -> "Additional Library Path" + and add both zziplib libpath and libz libpath, separated by comma, i.e. + ".\Release,D:\lib" or ".\Debug,D:\lib" + +Step 4: Customization +- have a look at the info parts that can be put into the DLL project: + -> Project -> Settings -> Tab: Link + -> Category: Output -> "Version Information" + e.g. Major: "10" Minor: "82" for Release 0.10.82 of zziplib + -> Project -> Settings -> Tab: Resources -> "Language" + or just ignore the value when no messages are there + -> Project -> Settings -> Tab: Link + -> Category: General -> "Output Filename" + e.g. "zzip-1.dll" intead of "zzip.dll" for this first generation + (needs also to rename dll dependencies from "zzip.lib" to "zzip-1.lib") +- there are a few defines that trigger extra code in zziplib, e.g. + ZZIP_HARDEN - extra sanity check for obfuscated zip files + ZZIP_CHECK_BACKSLASH_DIRSEPARATOR - to check for win32-like paths + (for the magic part within a zip archive we always assume a "/" separator) + ZZIP_USE_ZIPLIKES - not only do magic checks for ".zip" files to + be handled like directories, also do that for a few other zip documents + ZZIP_WRAPWRAP - if there problems on unusual targets then try this one. + -> Project -> Settings -> Tab: C/C++ + -> Category: Preprocessor" -> "Preprocessor Definitions". + +Step 5: Testing +- copy the *.dll and *.exe files from msvc6/Release/ to a place reachable + from your PATH (perhaps d:\bin), or even simpler, go the other way round, + copy the file test/test.zip to the msvc6/Release/ directory. +- open a command window (usually with a "MSDOS" symbol) and go the + directory containing the test.zip (e.g. cd zziplib-0.10.82/msvc6/Release) +- run `zzcat test/README` which should extract the file README from the + test.zip archive and print it to the screen. Try `zzdir test` to see + that it was really a compressed file printed to the screen. +- If it works then everything is alright round zziplib which is a good + thing to know when there are other problems +- at the time of writing (0.10.82 of zziplib), the set of bin files are + precompiled with msvc6 and pushed to the download center at sourceforge. + +cheers, -- guido + +# finally, the older description for zziplib 0.10.5x + +To build zziplib you need to add the path to zlib to the include directories +search path. You find this under + + Project, Settings, C/C++, Preprocessor, Additional Include Directories. + +Example: +You have installed zlib to D:\zlib. You then change the edit box + Additional Include Directories +from + .. +to + ..,D:\zlib + + +Included are two project files for zziplib. One that creates +zziplib as a DLL, and one that creates zziplib as a static library. +The DLL version is compiled with multi-threaded support. The static library +version is currently set to link with libc(d).lib, i.e. only single-threaded +CRT. If this does not suit your needs, you can change this under + Project, Settings, C/C++, Code Generation, Use run-time library. diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/README.SDL b/Build/source/libs/zziplib/zziplib-0.13.60/docs/README.SDL new file mode 100644 index 00000000000..f0fc66fee24 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/README.SDL @@ -0,0 +1,134 @@ +WARNING: + The following instructions are outdated. + They refer back to 16. Dezember 2002 with zziplib version 0.10.66. + Most things refer to MSVC which have a different README + (and there are msvc project files being shipped along) + The rest is mainly an example program that you can use as a + boilerplate in your souce code - may be just copy and use. + +--------------------------------------------------------------------- +16122002, Thomas.Eder@nmi.at, Using the zziplib library with SDL + + +PREREQUISITES + + Tested versions: + zziplib 0.10.66 (preview), SDL 1.2.5, Win32, MSVC6 + + Homepages (download) + zziplib.sourceforge.net (zziplib-0.10.66.tar.gz) + www.libsdl.org (SDL-devel-1.2.5a-VC6.zip) + + Also you have to get zlib, I used + from SDL_image-1.2.2.zip in VisualC.zip: + zlib.lib (12.7.1998, 34674 bytes) + zlib.h ( 9.7.1998, 41791 bytes, 1.1.3) + zconf.h ( 8.7.1998, 8089 bytes) + + from SDL_image-devel-1.2.2-VC6.zip: + zlib.dll ( 5.4.2001, 53760 bytes, 1.1.3.1) + + Maybe you should get the latest version (currently 1.1.4) from + http://gnuwin32.sourceforge.net/install.html + (see notes at end of page!) + + +CREATING zzlib.dll/zzlib.lib + + Copy your versions of zlib.lib, zlib.h and zconf.h to the zzlib + directory. + In MSVC (start zziplib.dsw) + Add zlib.lib to the files for the zziplib_DLL project. + Add ZLIB_DLL to the preprocessor definitions. + + Set the active project and the active configuration to create zziplib.dll + and zziplib.lib (I created and used the release version). + + +USING zzlib WITH SDL + + Include/add the following files to your SDL-Project + (put them in proper directories, etc.): + + Header files: + zconf.h + zlib.h + zzip.h + zzip-conf.h + zzip-io.h + zziplib.h + zzip-msvc.h + zzip-stdint.h + + Libraries: + zlib.lib + zziplib.lib + + DLLs: + zlib.dll + zziplib.dll + + you may also want to use + SDL_rwops_zzip.c + SDL_rwops_zzip.h + + + For compiling it should be sufficient to use + #include <zziplib.h> + in the files where you use zziplib-functions. + + +NOTE + + It is possible to use both original (unzipped) and zipped versions of files, + and zziplib will take one of them (depending on the modes when calling + zziplib). + + But this didnt work for all of my original files, so I suggest using zipped + files only (and remove the original unzipped files, so zziplib doesnt try to + open the original version). + + +HINT + + When opening many files from a zip, its faster to open the zip-directory + only once, and not for every file access. You may want to modify + SDL_rwops_zzip for this to get code like: + + + SDL_Surface* image; + SDL_RWops* rw; + SDL_Surface* temp1 = NULL; //default > NULL > error + SDL_Surface* temp2 = NULL; //default > NULL > error + + //last param may be used for err return + ZZIP_DIR* zzipdir = zzip_dir_open( "figures.zip", NULL ); + + ZZIP_FILE* zfile = zzip_file_open(zzipdir, "f1.bmp", ZZIP_CASELESS); + + if (zfile) + { + rw = SDL_RWFromZZIP(zfile); //modified version + if (rw) + { + temp1 = IMG_Load_RW(rw, 0); + SDL_FreeRW(rw); + } + int zret = zzip_file_close( zfile ); + } + + zfile = zzip_file_open(zzipdir, "f2.bmp", ZZIP_CASELESS); + if (zfile) + { + rw = SDL_RWFromZZIP(zfile); //modified version + if (rw) + { + temp2 = IMG_Load_RW(rw, 0); + SDL_FreeRW(rw); + } + int zret = zzip_file_close( zfile ); + } + + //.. etc + + zzip_dir_close( zzipdir ); diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/body.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/body.htm new file mode 100644 index 00000000000..a2b2dba91f4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/body.htm @@ -0,0 +1,103 @@ +<html><head><title>zziplib <!--$title?--> </title> +<link rel="stylesheet" type="text/css" href="sdocbook.css" /> + <style> + a:link { text-decoration : none ; color : #000080 ; } + a:visited { text-decoration : none ; color : #200060 ; } + .justify { text-align : justify ; } + .navlist { background-color : #F0F0F0 ; + width : 9em ; speak : none ; } + .navprint { pause-after : 200ms ; speak : spell-out ; } + body { background-color : white ; } + .P { text-align : justify ; margin-right: 1em ; + margin-left: 1em ; } + .BLOCKQUOTE { text-align : justify ; margin-right: 3em ; + margin-left: 3em ; } + .PRE { margin-right: 2em ; + margin-left: 2em ; } + .DT { font-weight : bold ; } + .DD { text-align : justify ; margin-right: 1em ; } + </style> +</head><body> +<!--mksite:sectioninfo--> <!--mksite:nosimplevars--> +<table width="100%"><tr valign="top"><td class="navlist"> +<center><sub> + <!--mksite:printerfriendly--> + <a href="${printerfriendly:=site.htm}" title="printer friendly version"> + <img alt="printer / text mode version" width="8" height="8" border="0" /></a> + </sub> + <big><big><big><b> + <font color="#800080"><sup>Z</sup>ZIP<sub>lib</sub></font> + </b></big></big></big> +<br><big><b> <!--$VERSION--> </b></big> +</center> +<hr><a href="zzip-index.html">Library</a> +<br>-<a href="zzip-zip.html"> ZIP Access</a> +<br>-<a href="zzip-file.html"> Transparently</a> +<br>-<a href="zzip-sdl-rwops.html"> SDLrwops <small>Example</small></a> +<br>-<a href="zzip-extio.html"> ext/io <small>Customization</small></a> +<br><><a href="zzip-xor.html"> xor/io <small>Obfuscation</small></a> +<br><><a href="zzip-crypt.html"> zip/no <small>Encryption</small></a> +<small><a href="zzip-cryptoid.html">(2)</a></small> +<br>-<a href="zzip-api.html"> Library API</a> +<br><><a href="zzip-basics.html"> basics</a></u> +<><a href="zzip-extras.html"> extras</a></u> +<br>=<a href="zzip-parse.html">Parsing ZIPs</a> +<br>-<a href="64on32.html"> 64on32 extras</a> +<br>-<a href="future.html"> Next To Come</a> <br> <> +<small><a href="fseeko.html"> fseeko </a></small> +<small><a href="mmapped.html"> mmapped </a></small> +<small><a href="memdisk.html"> memdisk </a></small> +<br>-<a href="configs.html"> Config Helpers</a> +<br>-<a href="sfx-make.html"> Making a zip/exe</a> +<br>=<a href="history.html">Hints And Links</a> +<br>-<a href="referentials.html"> Referentials</a> +<br>-<a href="functions.html"> Functions List..</a> +<br> -<a href="zziplib.html"> zziplib.*</a> +<br> -<a href="zzipmmapped.html"> zzipmmapped.*</a> +<br> -<a href="zzipfseeko.html"> zzipfseeko.*</a> +<!--START--> +<br> -<a href="man/index.html"><small> unix man pages</small></a> +<!--ENDS--> + +<br>  +<br> +<br><small><a href="faq.html"> faq </a></small> +<small><><a href="notes.html"> notes </a></small> +<small><><a href="zip-php.html"> zip-php </a></small> +<hr><a href="download.html"> Download Area </a> +<br><><a href="developer.html"> Developer Area </a> +<br><><a href="http://sourceforge.net/projects/zziplib"> Sourceforge Project</a> +<br><><a href="http://zziplib.sourceforge.net"> zziplib.sf.net + <small><i>Home</i></small></a> + +<br><><a href="changes.html"> ChangeLog</a> +<br><small><a href="copying.html"> LGPL/MPL license</a></small> +<br> +<hr> +<center><!--START--> + <a href="http://sourceforge.net/project/?group_id=6389"> + <img src="http://sourceforge.net/sflogo.php?group_id=6389&type=2" + border="0" alt="sourceforge.net" width="125" height="37"> + </a> +<br><small><a href="site.html">-sitemap-</a></small> +</center><!--ENDS--> + +<p align="right"><small> +generated <!--$today--> +</small> +<br> <small>(C)</small> Guido Draheim +<br><i> guidod<small>@</small>gmx.de</i> +</p> +<!--mksite:emailfooter:guidod@gmx.de?subject=zzip:--> + +<p align="right"><small><small> + formatted by <a href="http://zziplib.sf.net/mksite">mksite.sh</a> +</p> + +<p><b>as xml:</b></p> +<hr><a href="zzip-index.xml">Library</a> +<br>-<a href="64on32.xml"> 64on32 extras</a> +<br>-<a href="future.xml"> Next To Come</a> <br> <> +</td><td> + +</td></tr></table></body></html> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/configs.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/configs.htm new file mode 100644 index 00000000000..49631e673de --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/configs.htm @@ -0,0 +1,164 @@ +<section> <date> February 2003 </date> +<h2> Configuration </h2> of other projects using zziplib + +<!--border--> + +<P> + If using the zziplib with other project then you can use a number + of possibility to configure and link. The zziplib had been usually + included within the projects that made use of it - some did even + pick up the advantage to be allowed to staticlink in a limited + set of conditions. Recently however, the zziplib is shipped as a + standard library of various linux/freebsd distros - mostly for + the usage by the php-zip module. This allows third party software + makers to link to the preinstalled library in the system and + consequently reduce the memory consumption - even more than now + with the zziplib being a lightweight anyway (the i386 .so is + usually less than 20k) +</P> + +<section> +<h3> pkg-config --libs </h3> + +<P> + Within modern software development, one should be advised to use + pkg-config as soon as it is available. The pkg-config helper can + handle a lot of problems that can usually come up with linking + to third party libraries in case that those link again dynamically + with other libraries themselves. It does correctly order the + list of "libs", it can throw away duplicate "-L" hints, and same + for cflags "-I" hints, plus it will throw away some sys-includes + that gcc3.2 will warn about with a false positive. +</P> +<P> + There is a number of pkg-config targets installed in the system + but the one you want to use is <b>pkg-config zziplib</b>. + Therefore, a simple Makefile could read like + <pre> + PROGRAM = my_prog + CFLAGS = -Dhappy `pkg-config zziplib --cflags` + LIBS = -Wl,-E `pkg-config zziplib --libs` + + my_prog.o : my_prog.c + $(CC) $(CFLAGS) $< -o $@ + my_prog : my_prog.o + $(LINK) $< $(LIBS) + </pre> +</P> +<P> + The `pkg-config zziplibs --libs` will usually expand to + something like <code>-lzzip -lz</code> which are the + two (!!) libraries that you need to link with - in that + order. The zziplib builds on top of the z-lib algorithms + for compression of files within the zip-archive. That's + the same for other lib-parts of the zziplib project as + well, e.g. the sdl-rwops part which does also need to + link with the sdl-lib - and that's where the pkg-config + infrastructure can be of great help. That's the reason + why zziplib installs a few more ".pc" files, you can + get a list of them like this: + <pre> + $ pkg-config --list-all | sort | grep zzip + zziplib zziplib - ZZipLib - libZ-based ZIP-access Library + zzip-sdl-config zzip-sdl-config - SDL Config (for ZZipLib) + zzip-sdl-rwops zzip-sdl-rwops - SDL_rwops for ZZipLib + zzipwrap zzipwrap - Callback Wrappers for ZZipLib + zzip-zlib-config zzip-zlib-config - ZLib Config (for ZZipLib) + </pre> +</P><P> + The two entries like "zzip-sdl-config" and "zzip-zlib-config" + happen to be ".pc" files for the libz.so and libSDL.so that + were seen at configure-time of zziplib - you may want to reuse + these in your projects as well whenever you need to link to + either of zlib or libsdl even in places where there is no direct + need for zziplib. It basically looks like: + <pre> + $ pkg-config zzip-zlib-config --modversion + 1.1.4 + $ pkg-config zzip-zlib-config --libs + -lz + </pre> +</P> + +</section><section> +<h3> zzip-config </h3> +<P> + The pkg-config ".pc" files are relativly young in the history of + zziplib. A long time before that there was the `zzip-config` + script installed in the system. These `*-config` were common + before the pkg-config came about, and in fact the pkg-config + infrastructure was invented to flatten away the problems of + using multiple `*-config` scripts for a project. As long as you + do not combine multiple `*-config`s then it should be well okay + to use the `zzip-config` directly - it does also kill another + dependency on the `pkg-config` tool to build your project, the + zziplib is all that's needed. +</P> +<P> + In its call-structure the `zzip-config` script uses the same + options as `pkg-config`, (well they are historic cousins anyway). + and that simply means you can replace each call above like + `pkg-config zziplib...` with `zzip-config...`. + + <pre> + PROGRAM = my_prog + CFLAGS = -Dhappy `zzip-config --cflags` + LIBS = -Wl,-E `zzip-config --libs` + + my_prog.o : my_prog.c + $(CC) $(CFLAGS) $< -o $@ + my_prog : my_prog.o + $(LINK) $< $(LIBS) + </pre> +</P> +<P> + Be informed that the zzip-config script is low-maintained and + starting with 2004 it will be replaced with a one-line script + that simply reads `pkg-config zziplib $*`. By that time the + rpm/deb packages will also list "pkgconfig" as a dependency + on the zziplib-devel/zziplib-dev part. +</P> + +</section><section> +<h3> autoconf macro </h3> + +<P> + There is currently an autoconf macro installed along into + the usual /usr/share/aclocal space for making it easier for + you to pick up the configure-time cflags/libs needed to + build/link with zziplib. In any way it does look like + this: + <pre> + dnl PKG_CHECK_ZZIPLIB(ZSTUFF, min-version, action-if, action-not) + AC_DEFUN([PKG_CHECK_ZZIPLIB],[dnl + PKG_CHECK_MODULES([$1], [zziplib $2], [$3], [$4])]) + </pre> +</P> +<P> + You are strongly advised to take advantage of the pkgconfig's + macro directly - you can find the macro in + <code>/usr/share/aclocal/pkg.m4</code> and it allows to + combine the flags of a list of library modules that you + want to have. If it is only zziplib, than you could simply + use this in your configure.ac: +<pre> + <b>PKG_CHECK_MODULES</b>([<b>ZZIP</b>],[zziplib >= 0.10.75]) + </pre> +</P><P> + which will provide you with two autoconf/automake variables + named <b><code>ZZIP_CFLAGS</code></b> and <b><code>ZZIP_LIBS</code></b> + respectivly. +</P> +<P> + Up to 2004, the macro in zziplib.m4 will be however carry + a copy of the pkg.m4 so that you do not need another + dependency for your software project. The macro is called + like shown above PKG_CHECK_ZZIPLIB and you would call it + like +<br><code> + PKG_CHECK_ZZIPLIB([ZZIP],[0.10.75])</code><br> + which will give you the two autoconf/automake variables + as well, <code>ZZIP_CFLAGS</code> and <code>ZZIP_LIBS</code> +</P> + +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/copying.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/copying.htm new file mode 100644 index 00000000000..2f0c8c96d79 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/copying.htm @@ -0,0 +1,113 @@ +<section> <date> 2004 </date> +<h2> COPYING - license information </h2> the public license terms + +<P> + The zziplib is a small library that allows for some parts of + obfuscation. This is very handy in commercial projects which tend + to incorporate a copy into their source tree. And with + <a href="zzip-xor.htm">obfuscation</a> it is often advisable + to staticlink the zziplib part and `strip` the symbols from + the resulting binary - in order to obfuscate the usage of a + standard library for semi-`encryption` of data files. +</P> + +<P> + In the past I have been modifying the original LGPL license + with a text that allows staticlinking thereby taking over a + few paragraphs from the MPL as restrictions to do so, just to + defend against improper usage. However I kept being asked + legalese questions since most people do not want to interpret + added text either and on their own without a lawyer. However + that accounts to me as well. +</P> +<P> + The public license(s) are simply there to protect me and + my work, none of this is fixed and it is neither the only + possible way to get hold of a proper license. You can + always contact me to negotiate a special one if you do + need so. In most cases I will just say okay and you get + it for free, perhaps after some presentations I will + ask for som tax-reductable compensation sent to + a wellfare organisation (never me!). +</P> +<P> + A last hint from a friend did make me think as well, as + that the whole point of using standard public licenses + is to protect against the need to use your own lawyers + in the case that someone breaks the license rules. If + one uses a standard license then it is in the interest + of that big organization XY that the license will be + enforced and that it will be shown valid in all courts. + At the time of writing, no opensource license has + ever been discussed to an end in a court trial. +</P> +<P> + That's why at last, I decided to change the COPYING + details once again - and start shipping under a dual + MPL / LGPL license where each of them is separate + and restrictions apply alternatively. Remember that + each license is non-exclusive anyway, and I can give + out as many licenses as I want, here we have one as + MPL, then we have one as LGPL, and perhaps you ask me + for a third text to send you over. The public ones + are just there for you as a free choice which you can + pick without negotiations or a fee. +</P> +<P> + And yes, you will be on established legal grounds as + long as you restrict your usage of the library to the + details contained in either COPYING text. And better + yet, the legal possibilities have been discussed + a few hundred times before. You will surely find + good answers on the internet as well to guide you + to decisions in your company whether zziplib may + be adopted for a specific task. +</P> +<P> + The sources themselves are sent out under a dual license, + with both MPL and LGPL license options, and as long as + the MPL part is not removed then the recpient of some + modified sources will be entitled to the same choice + among the public licenses of LGPL / MPL. Note that some + example sources are given away under the ZLIB license + which is nothing more than asking for nice behavior + which should have been the case even without such a text. + <small><small>(However, it is just a fact that some people + happen to behave anti-social especially under pressure of + capitalist needs, said to lower the risks for commercial + success/failure of a company. You have to enforce good + behavior or it will be "forgotten". With a license it is + not just an error, it is a risk in itself to forget about it) + </small></small> +</P> +<P> + As for staticlinking, let us explore that a bit - there has + been a debate that the LGPL warrants in fact the freedom of + the final recipient as you must give him the original or + modified sources of zziplib, to allow them to modify that + part again, and then (re-)link to your own parts. Your own + parts may come in the form of precompiled objects without + sources (as opposed to the GPL restrictions). In here, it + is simply easier to use a dynamic linker that does the + re-linking job at startup-time of the whole project instead + to provide a makefile and linkage descriptions to let the + user do the staticlink it into a combined executable object. + The latter however is often needed for embedded environments + and it is quite of the original motivation to ask for a + staticlink option where in fact the LGPL does allow it anyway + as long as you ship all parts separatly as well. +</P> + +<P> + The MPL defines the area of a combined work a bit differently, + in a way it derives some ideas from BSD'ish licenses. This + part does more care to protect the `Intellectual Properties` + of the original developers. It does ask to prominently show + off that you have gone to link with the work of someone else + in your project. Take special note of <em>"3.5 Required Notices"</em>, + <em>"3.6 Distribution of Executable Versions"</em> and + <em>"3.7 Larger Works"</em> here. Or read a lawyer text on + the legal result of the whole license. +</P> + +</section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/developer.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/developer.htm new file mode 100644 index 00000000000..9c964f09933 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/developer.htm @@ -0,0 +1,75 @@ +<section> <date> 2009-08-23 </date> +<H2> Developer </H2> sourceforge SVN area + +<center> +<a href="http://zziplib.svn.sourceforge.net/viewvc/zziplib/"> + http://zziplib.svn.sourceforge.net/viewvc/zziplib/ </a> +</center> + +<P> + The zziplib is using the Subversion repository of sourceforge + for development. (originally it used the cvs service but it + is now switched over to the svn serivce) Since 0.13.x the zziplib + is using the version control system as the main area to host + the source code in the module "zzip-0". You can get a snapshot + from that area anytime, the access details can be found under the + link above. All later releases are actually snapshots of some + cvs day. (Prior releases had seen too many reshuffling of the + build system which cvs is not the best tool to handle gracefully. + Since the switch to svn also refactoring can be tracked just fine). +</P> +<P> + I was using the sourceforge compilefarm to do remote testing of + releses for crossplatform compatibility. This included usually + some unix compatible platforms such as Linux, Solaris, + FreeBSD, Darwin/MacOSX including i386, amd64, sparc, sparc64, + powerpc when available. Even the latest daytoday cvs snapshots + should be fine for these platforms. However sourceforge has + shut down the compilefarm just as HP closed the teamdrive + service for the public. At the moment I am using the buildservice + at build.opensuse.org to test multiple platforms atleast with + the help of a "make check" minimal unittest during the rpmbuild. +</P> +<P> + In the labs of my former employer some more platforms exist but these + were only checked once in a few months, mostly summertime and christmas + season if the general workload is low. That included hp/ux but more + importantly a real MSVC6 installation and a few PCs with win32 flavours. + I do not use win32 at home! Any help in that area is greatly appreciated, + the zziplib was written in strict ansi-C but the build system and dll hell + is sometimes very weird for win32 platforms. I feel it often requires + experienced hands to detect the source of a problem should there be one. +</P> +<P> + Note also that I do not use PHP, there is a regular flow of questions + circulating around the php-zip module which is built around zziplib. But + I can not answer any questions about the build and installation for that. + It would be greatly appreciated if I can find contact to a PHP hacker + to whom I can forward php related mails! The php zip wrapper is not part + of the zziplib in any way. +</P> +<P> + Since there is an MSVC6 system in reach now, I have not been updating my + gcc/mingw32 installations as rigidly as most other win32 developers + have. I understand there are great advancements in the msys/mingw32 area + and the provided technology which made them follow quickly. However in + the labs only some older releases are used for these are called more + "stable". Remember that I do not use win32 at home, only crosscompile to + mingw32 is checked out sometimes but I know that it is somewhat different + than the selfhosted msys environment. Any help is greatly appreciated. +</P> +<P> + Lastly, I am trying to make the zziplib as close as possible to the + thing called "industrial strength". But remember that this is still + an opensource spare time probject. <b>I take patches</b>! Many of the + interesting parts of zziplib have been introduced by submission which + I have later integrated more heavily to make the zziplib be what it + was always intended for: to be a small, fast and portable library allowing + to use a zip file as a special variant of a data filesystem. The ext/io + obfuscation stuff was one of the best feature submissions so far. Thanks. +</P> +<P> + Looking forward to hear from <em>YOU</em>. + - <a href="mailto:guidod@gmx.de?subject=zzip:">guidod@gmx.de</a> +</P> +</section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/download.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/download.htm new file mode 100644 index 00000000000..d52111155fc --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/download.htm @@ -0,0 +1,56 @@ +<section> <date> 2004-05-18 </date> +<H2> Download </H2> what to get to get it + +<section> +<H4>Sourceforge File Area</H4> + +<center> +<a href="http://sourceforge.net/project/showfiles.php?group_id=6389"> + sourceforge.net/project/showfiles.php?group_id=6389 </a> +</center> + +<P> + All source releases and some binary releases are listed at the + sourceforge download area under the link show above. The sourceforge + file area is replicated all over the world and should be accessible + with highest bandwith in all corners of the world. +</P> + +</section><section> +<H4> Which Version To Download </H4> + +<P> + Do not use 0.10.x anymore! It is listed as stable since it is the + only release of zziplib tested to work on a few dozen platforms. + However there were some problematic zip files out there that can + trigger segfaults. Later zzip file decoders have extra checks and + helper routines for that. It's just that the later zziplib have not + been given as many crossplatform build tets as the 0.10.x generation. +</P> +<P> + Use a 0.12.x (proto-stable) or a 0.13.x (developer) variant of + zziplib, especially if you intend to make heavy usage of the zip + decoders in specialized environments - I will not add any fixes to + the 0.10.x series anymore (it's deep frozen) but if you hit a + problem with 0.13.x I can help you quickly with a patch and official + bugfix release. The later versions are regulary checked crossplatform + atleast for <b>Linux, Solaris, FreeBSD, Darwin/MacOSX, Win32/NT</b> + including i386, amd64, sparc, sparc64, powerpc where available. +</P> +<P> + Note that all generations 0.10.x through 0.13.x are strictly + <b>backward compatible</b>. There is a core API (file and dir + handling) being binary compatible, which is also true for most + of the helper routines (data getters). Only some rarely used + entries are made source level compatible, and so far no one had + ever any problem with binary compatibility of the zziplib DLLs. +</P> +<P> + The MSVC users are strongly advised to use a a later version as + well since I have tested the 0.12.x/0.13.x myself and making + some msc binary dll releases directly - prior versions were + thirdparty contributions which were working smoothly since I have + been preparing zziplib for win32 using the gcc/mingw compile suite. + Please check also the <a href="developer.html">developer pages</a>. +</P> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/faq.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/faq.htm new file mode 100644 index 00000000000..56d79366655 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/faq.htm @@ -0,0 +1,182 @@ +<section> <date> 2004 </date> +<H2> FAQ </H2> (non)frequently asked questions + +<BLOCKQUOTE> + While using the zziplib some people come up with questions and + problems that need a little longer to be explained. So here is + a list of these notes for your information. Keep it up. +</BLOCKQUOTE> +<ul> +<li> <a href="#latin-1">extended ascii characters in names of zipped files </a> +</li> +<li> <a href="#utf-8">unicode support for names of zipped files </a> +</li> +<li> <a href="#timestamps">timestamps of zipped files </a> +</li> +<li> <a href="#install">installation instructions </a> +</li> +<li> <a href="#php">php zip module installation </a> +</li> +<li> <a href="#license">commercial support </a> +</li> +</ul> + +<DL> +<DT><a name="latin-1" /> + zziplib does not support extended ascii characaters, winzip does</DT> +<DD><P> + That's somehow incorrect - the ascii range is the 7bit lower plane of + an 8bit character encoding. The upper plane had been non-standard for + decades including the age when the ZIP file format was invented. The + first instances of pkware's zip compressor were used on DOS with a + codepage 437 which has a way different encoding for the upper plane + than todays latin-1 encoding which in fact used in <em>all</em> + modern operating systems. So what really see is a mismatch of + character encodings that you are used to. +</P><P> + Even more than that the character encoding had never been specified + at all for the filenames in the central directory part. An alert + reader will however recognize that <em>each</em> file entry does + also have version-info field telling about the compressor that did + create the file entry. That version-info has an upper byte telling + about the host OS being in use while packaging. A heavy-weight + zip decoder might use that value to infer the character encoding + on the host OS (while compressing), to detect a mismatch to the + current OS (while decompressing), and going to re-code the filename + accordingly. +</P><P> + Even more than that the zip file format has seen various extensions + over time that have found their place in an extra info block. There + are info blocks telling more about the filename / codeset. However + the zziplib library does not even attempt to decode a single extra + info block as zziplib is originally meant to be a light-weight library. + However one might want to put a layer on top of the structure decoding + of zziplib that does the necessary detection of character encodings and + re-coding of name entries. Such a layer has not been written so far. +</P></DD> +<DT><a name="utf-8" /> + zziplib does not support any unicode plane for filenames </DT> +<DD><P> + The pkware's appnote.text has an extra info block (id-8) for the + unicode name of the file entry but it was never actually being + used AFAICS. This might be related to the current developments of + older systems to drop usage of latin-1 encoding in the upper plane + of 8bit characters and instead choosing the multibyte encoding + according to UTF-8. This is again highly system specific. +</P><P> + Basically, you would need to instruct the compressor to use + UTF-8 encoding for the file-entries to arrive at a zip archive + with filenames in that specific character encoding. Along with + this zip archive one can switch the application into utf-8 usage + as well and take advantage of filename matches in that encoding. + This will make it so there is not mismatch in character encoding + and implicit re-coding being needed. +</P></DD> +<DT><a name="timestamps" /> + zziplib does not return stat values for file timestamps </DT> +<DD><P> + That's correct and again a re-coding problem. The original + timestamp in each file entry is in DOS format (i.e. old-FAT). + The stat value is usually expected to be in POSIX format. The + win32 API has an extra function for conversion but none of the + unix compatibles has one, so it would be needed to ship a + conversion function along with zziplib. +</P><P> + However the zziplib is intended to be light-weight system and + used largely for packaging data for an application. There it + is not used strictly as a variant of Virtual File System (vfs) + that would need to map any information from the zip file system + to native host system. Of course applications are free to cut + out the DOS file timestamp and re-code it on their own. It's + just that zziplib does not provide that re-coding originally. +</P></DD> +<DT><a name="install" /> + how can one install the zziplib package </DT> +<DD><P> + The zziplib project is opensource which effectly gives two ways of + installing the package: one can download the source archive and use + a C compiler to derive a binary executable for whatever computer + it needs to be on (see the platform compatibility list). This is + the preferred way but for convenience one can download a binary + installation archive with precompiled executables. +</P><P> + The current project uses autoconf/automake for cross platform + support which includes most unix compatible systems and their + native C compilers. The derivates of the GNU C compiler (gcc) have + replaced most of these native C compilers in the past years. The + <a href="http://www.mingw.org">mingw32</a> project has ported a + unix born C compiler to win32 and zziplib can be compiled with + it for the various win32 platforms. +</P><P> + There exist some C compilers which can not be embedded easily into + a unix compilation framework. The zziplib source archive ships with + project files for MSVC6 and MSVC6 (Microsoft Visual C). Adapting + these project files might help with installation problems of the + DLL hell on win32 platforms. There exist no sufficient guidelines to + mix binary helper libraries for many applications on windows. +</P><P> + There exists win32 binary archives as zip files on the download area + of zziplib (MSI is always on my wishlist). Including the project as + a helper library however you should not use it but instead compile + from source. The general library installation on unix are better, + the zziplib download area contains regularly some linux binary + archives (rpm). Many vendors of unix compatible systems provide + precompiled binary packages of zziplib on their own. +</P></DD> +<DT><a name="php" /> + after installing zziplib the php zip module still does not work </DT> +<DD><P> + Now that is one of <b>the most</b> frequently asked questions that + I do receive. There is just one major problem with it: I did not + write the php zip module (which uses zziplib) and I have no idea + how php modules work or how to tell apache's php sandbox to make + it work. Really, I do not have the slightest clue on that. +</P><P> + I was posting to some php developer sites to spread awareness of + the fact and hopefully to find a guy that I could forward any + questions on the php zip module installation. But so far there is + nothing, it merily seems that such installation problems are in no + way related to zziplib anyway but exists <b>with any other module with a + third party library dependency</b> as well. So the answers on php forum + sites will ask for details of the current php and apache configuration. +</P><P> + Since I do not run a php zip whatever nor any other php stuff, it's + just that those hints were not quite helpful to me. It would be really + really great if someone with a php zip background could be so nice to + write a short roundup of the areas to check when a php zip module + installation fails, so that I could post it here. Where are you? + Yours desperatly... ;-) +</P></DD> +<DT><a name="license" /> + how to obtain a license and support contract for a commercial project </DT> +<DD><P> + The zziplib has been created as a spare time project and it is put + under a very easy free public license. Even for commercial projects + there is hardly any need to negotiate a separate license since the + restrictions of the GNU LGPL or MPL can be matched easily. As a + general hint, if the zziplib is shipped unmodified with your project + then you are right within the limits of the free public license. +</P><P> + Sometimes the question for a personal license comes up for very + different reason - the need for a support contract and/or the setting + of functionality guarantees. The free public licenses include a safeguard + clause to that end, "in the hope that it will be useful, + but <em>without any warranty</em>; without even the implied warranty of + <em>merchantability</em> or <em>fitness for a particular purpose</em>." + Since the project was developed as a spare time project however there + have never been personal licenses going beyond. +</P><P> + In general you can still try to negotiate a support contract but it + will be very costly. It is much more profitable for you to tell one + of your developers to have a look at the source code and ensure the + required functionality is there, with hands on. The source code is + written to be very readable, maintainable and extensible. Just be + reminded that the free public licenses have restrictions on shipping + modified binaries but I can give you a cheap personal license to + escape these. (Such licenses can be obtained in return for tax-deductible + donations to organisations supporting opensource software). +</P></DD> +</DL> + +<P> and as always - <em> Patches are welcome </em> - </P> +</section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/fseeko.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/fseeko.htm new file mode 100644 index 00000000000..89c3195e36d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/fseeko.htm @@ -0,0 +1,193 @@ +<section> <date> 2005 </date> +<H2> zzip/fseeko </H2> zip access for stdio handle + +<BLOCKQUOTE> + These routines are fully independent from the traditional zzip + implementation. They assume a readonly seekable stdio handle + representing a complete zip file. The functions show how to + parse the structure, find files and return a decoded bytestream. +</BLOCKQUOTE> + +<section> +<H3> stdio disk handle </H3> + +<P> + Other than with the <a href="mmapped.html">mmapped</a> alternative + interface there is no need to build special handle for the zip + disk file. The normal stdio file handle (of type <b><code>FILE</code></b>) + serves as the disk access representation. You can open that stdio file + handle any way you want. Note however that the <code>zzipfseeko</code> + routines modify the access state of that file handle, especially the + read position. +</P> + +<P> + To get access to a zipped file, you need a zip archive entry known + under the type <code>ZZIP_ENTRY</code>. This is again modelled after + the <code>DIR_ENTRY</code> type in being a representation of a file + name inside the zip central directory. To get a fresh zzip entry, use + <code>zzip_entry_findfirst</code>, to get the next use + <code>zzip_entry_findnext</code>, and do not forget to free the + resource with <code>zzip_entry_free</code>. +</P> +<PRE> + extern ZZIP_ENTRY* zzip_entry_findfirst(FILE* disk); + extern ZZIP_ENTRY* zzip_entry_findnext(ZZIP_ENTRY* entry); + extern int zzip_entry_free(ZZIP_ENTRY* entry); +</PRE> +<P> + These three calls will allow to walk all zip archive members in the + order listed in the zip central directory. To actually implement a + directory lister ("zzipdir"), you need to get the name string of the + zzip entry. This is not just a pointer: the zzip disk entry is not + null terminated actually. Therefore we have a helper function that + will <code>strdup</code> the entry name as a normal C string: +</P> +<PRE> + #include <zzip/fseeko.h> + void _zzip_dir(FILE* disk) + { + for (ZZIP_ENTRY* entry = zzip_findfirst (disk); + entry ; entry = zzip_findnext (entry)) { + char* name = zzip_entry_strdup_name (entry); + puts (name); free (name); + } + } +</PRE> + +</section><section> +<H3> find a zipped file </H3> + +<P> + The central directory walk can be used to find any file in the + zip archive. The <code>zzipfseeko</code> library however provides + two convenience functions that allow to jump directly to the + zip disk entry of a given name or pattern. You are free to use + the newly allocated <code>ZZIP_ENTRY</code> for later calls on + that handle type. Do not forget to <code>zzip_entry_free</code> + the handle unless the handle is consumed by a routine, e.g. + <code>zzip_entry_findnext</code> to hit the end of directory. +</P> +<PRE> + extern ZZIP_ENTRY* zzip_entry_findfile(FILE* disk, char* filename, + ZZIP_ENTRY* _zzip_restrict entry, + zzip_strcmp_fn_t compare); + + extern ZZIP_ENTRY* zzip_entry_findmatch(FILE* disk, char* filespec, + ZZIP_ENTRY* _zzip_restrict entry, + zzip_fnmatch_fn_t compare, int flags); +</PRE> +<P> + In general only the first two arguments are non-null pointing to the + stdio disk handle and the file name to look for. The "entry" argument + is an old value and allows you to walk the zip directory similar to + <code>zzip_entry_findnext</code> but actually leaping forward. The + compare function can be used for alternate match behavior: the default + of <code>strcmp</code> might be changed to <code>strncmp</code> for + a caseless match. The "flags" of the second call are forwarded to the + posix <code>fnmatch</code> which we use as the default function. +</P> +<P> + If you do know a specific filename then you can just use + <code>zzip_entry_findfile</code> and supply the return value to + <code>zzip_entry_fopen</code> with the second argument set to "1" + to tell the function to actually consume whichever entry was given. + That allows you to skip an explicit <code>zzip_entry_free</code> + as it is included in a later <code>zzip_entry_fclose</code>. +</P> +<PRE> + #include <zzip/fseeko.h> +<small> + /* zzipfseeko already exports this convenience function: */</small> + ZZIP_ENTRY_FILE* zzip_entry_ffile(FILE* disk, char* filename) { + return zzip_entry_fopen (zzip_entry_findfile (filename, 0, 0), 1); + } + + int _zzip_read(FILE* disk, char* filename, void* buffer, int bytes) + { + ZZIP_ENTRY_FILE* file = zzip_entry_ffile (disk, filename); + if (! file) return -1; + int bytes = zzip_entry_fread (buffer, 1, bytes, file); + zzip_entry_fclose (file); + return bytes; + } +</PRE> + +</section><section> +<H3> reading bytes </H3> + +<P> + The example has shown already how to read some bytes off the head of + a zipped file. In general the zzipfseeko api is used to replace a few + stdio routines that access a file. For that purpose we provide three + functions that look very similar to the stdio functions of + <code>fopen()</code>, <code>fread()</code> and <code>fclose()</code>. + These work on an active file descriptor of type <code>ZZIP_ENTRY_FILE</code>. + Note that this <code>zzip_entry_fopen()</code> uses <code>ZZIP_ENTRY</code> + argument as returned by the findfile api. To open a new reader handle from + a disk archive and file name you can use the <code>zzip_entry_ffile()</code> + convenience call. +</P> + +<PRE> + ZZIP_ENTRY_FILE* zzip_entry_ffile (FILE* disk, char* filename); + ZZIP_ENTRY_FILE* zzip_entry_fopen (ZZIP_ENTRY* entry, int takeover); + zzip_size_t zzip_entry_fread (void* ptr, + zzip_size_t sized, zzip_size_t nmemb, + ZZIP_ENTRY_FILE* file); + int zzip_entry_fclose (ZZIP_ENTRY_FILE* file); + int zzip_entry_feof (ZZIP_ENTRY_FILE* file); +</PRE> + +<P> + In all of the examples you need to remember that you provide a single + stdio <code>FILE</code> descriptor which is in reality a virtual + filesystem on its own. Per default filenames are matched case + sensitive also on win32 systems. The findnext function will walk all + files on the zip virtual filesystem table and return a name entry + with the full pathname, i.e. including any directory names to the + root of the zip disk <code>FILE</code>. +</P> + +</section><section> +<H3> ZZIP_ENTRY inspection </H3> + +<P> + The <code>ZZIP_ENTRY_FILE</code> is a special file descriptor handle + of the <code>zzipfseeko</code> library - but the <code>ZZIP_ENTRY</code> + is not so special. It is actually a bytewise copy of the data inside the + zip disk archive (plus some internal hints appended). While + <code>zzip/fseeko.h</code> will not reveal the structure on its own, + you can include <code>zzip/format.h</code> to get access to the actual + structure content of a <code>ZZIP_ENTRY</code> by (up)casting it to +<br><b><code> struct zzip_disk_entry</code></b>. +</P> + +<P> + In reality however it is not a good idea to actually read the bytes + in the <code>zzip_disk_entry</code> structure unless you seriously know + the internals of a zip archive entry. That includes any byteswapping + needed on bigendian platforms. Instead you want to take advantage of + helper macros defined in <code>zzip/fetch.h</code>. These will take + care to convert any struct data member to the host native format. +</P> +<PRE> +extern uint16_t zzip_disk_entry_get_flags( zzip_disk_entry* entry); +extern uint16_t zzip_disk_entry_get_compr( zzip_disk_entry* entry); +extern uint32_t zzip_disk_entry_get_crc32( zzip_disk_entry* entry); + +extern zzip_size_t zzip_disk_entry_csize( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_usize( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_namlen( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_extras( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_comment( zzip_disk_entry* entry); +extern int zzip_disk_entry_diskstart( zzip_disk_entry* entry); +extern int zzip_disk_entry_filetype( zzip_disk_entry* entry); +extern int zzip_disk_entry_filemode( zzip_disk_entry* entry); + +extern zzip_off_t zzip_disk_entry_fileoffset( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_sizeof_tail( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_sizeto_end( zzip_disk_entry* entry); +extern char* zzip_disk_entry_skipto_end( zzip_disk_entry* entry); +</PRE> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/functions.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/functions.htm new file mode 100644 index 00000000000..1ded1f47d66 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/functions.htm @@ -0,0 +1,28 @@ +<H2> Exported Functions </H2> +<date>2006-09-21</date> + +<P> + The ZZipLib Project does already provide THREE libraries. The classic + zziplib.so (via "zzip/lib.h") is the most prominent one and used in + a number of different projects. The zzipfseeko.so ("zzip/fseeko.html") + and zzipmmapped.so ("zzip/mmapped.html") are technology demonstrations. +</P> + +<ul> +<li><a href="zzip/lib.h"> zzip/lib.h </a> - Main User Library </li> +<li><a href="zzip/mmapped.h"> zzip/mmapped.h </a> - MMap Library </li> +<li><a href="zzip/fseeko.h"> zzip/fseeko.h </a> - Fseeko Library </li> +</ul> + +<P> + Additonally, there is a complete set of unpacked documentation - the + unix manual pages are translated to html manual pages. +</P> + +<ul> +<li><a href="manual">zzip man pages</a> +</ul> + +<p> </p> +<p> </p> +<p> </p> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/future.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/future.htm new file mode 100644 index 00000000000..e116429abb1 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/future.htm @@ -0,0 +1,80 @@ +<?xml-stylesheet type="text/css" href="sdocbook.css" ?> +<section> <date> 15. July 2002 </date> +<h2> ZZIP Future </h2> What next to come. + +<section><!--border--> +<h3> ZIP-Write </h3> + +<P> + Anybody out there who wants to program the write-support for the + zziplib? Actually, I just do not have the time to do it and no + real need to but I guess it would be nice for people as for + example to spit out savegame files in zipformat. The actual + programming path is almost obvious - start off with the zziplib + as it is, and let it open an existing zip-file. This will parse + the central directory into memory - including the file-offsets + for each file. Then, truncate the zip-realfile to the place that + the central-dir was found (identical with the end of the last + file). If a datafile is opened for writing, either add a new + entry or modify the start-offset of the existing entry to the + end of the zip-realfile - the old data is simply junk. Then + init zlib to do the deflation of the data and append it to the + current zip-realfile. When the zipdir-handle is getting closed + from write-mode, the zip's central-directory needs to be appended + to the file on disk. This coincides with creating a new zip-file + with an empty central-directory that can be spit out to disk. + During development, do not care about creating temp-files to + guard against corruption for partial writes - the usual application + will use the zziplib to create zip savegames in one turn, no + "update"-operation needs to be implemented like exists in the + standalone zip command utilities. +</P> + +</section><section> +<h3> readdir for subdir inside zip magicdir </h3> + +<P> + See the notes in the first paragraphs of <a href="zzip-api.html"> + ZZIP Programmers Interface</a> description. It would add some + complexity for something I never needed so far. The question + came up with using zziplib as the backend of a dynamic webserver + to store the content in compressed form possibly through the + incarnation of a php module - and some scripted functionality + that walks all directories to index the files hosted. I'm not + going to implement that myself but perhaps someone else wants + to do it and send me patches for free. +</P> + +</section><section> +<h3> obfuscation example project </h3> + +<P> + A subproject that shows <b>all</b> the steps from a dat-tree + to a dat-zip to an obfuscated-dat along with build-files and + source-files for all helper tools needed to obfuscate and + deobfuscate, plus a sample program to use the obfuscated + dat-file and make some use of it. Along with some extra + documentation about 20..40 hours. Don't underestimate the + amount of work for it! (otherwise a great student project). +</P> + +</section><section> +<h3> zip/unzip tool </h3> + +<P> + The infozip tools implement a full set of zip/unzip routines + based on internal code to access the zip-format. The zziplib + has its own set of zip-format routines. Still, it should be + possible to write a frontend to the library that implements + parts (if not all) of the options of the infozip zip/unzip + tools. Even without write-support in zziplib it would be + interesting to see an normal unzip-tool that does not use + the magic-wrappers thereby only going off at plain zip-files. + On the upside, such a tool would be smaller than the infozip + tools since it can use the library routines that are shared + with other tools as well. Again - don't underestimate the + amount of work for it, I guess 40..80 hours as there is a lot + of fine-tuning needed to match the infozip model. +</P> +</section> +</section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/history.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/history.htm new file mode 100644 index 00000000000..7250729e877 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/history.htm @@ -0,0 +1,92 @@ +<section><date>created 1.Jun.2000, last updated 25.Apr.2002 </date> +<h2> History and Links </h2> plus Installation and Contact Hints + +<!--border--> + +<section> +<h3> A Bit Of History </h3> + +<P> +You'll find <a href="http://www.gzip.org">gzip</a> using the same compression +that was written by Jean-loup <a href="http://gailly.net">Gailly</a> +for the <a href="http://www.info-zip.org">Info-Zip</a> Group +whose <a href="http://www.info-zip.org/pub/infozip/Zip.html">Zip</a> +program is compatible with msdos PKZIP program from +<a href="http://www.pkware.com">PK Ware</a>. Then, in collaboration +with <a href="http://www.alumni.caltech.edu/~madler">Mark Adler</a> +he wrote the <a href="http://www.gzip.org/zlib">zlib</a> +compression library which was later standardized in the +<a href="ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html"> +zlib RFCs</a>, namely +<a href="http://www.ietf.org/rfc/rfc1950.txt">RFC 1950</a> +<a href="ftp://ftp.uu.net/graphics/png/documents/zlib/rfc-zlib.html.Z"> +zlib 3.3</a>, +<a href="http://www.ietf.org/rfc/rfc1951.txt">RFC 1951</a> +<a href="ftp://ftp.uu.net/graphics/png/documents/zlib/rfc-deflate.html.Z"> +deflate 1.3</a> and +<a href="http://www.ietf.org/rfc/rfc1952.txt">RFC 1952</a> +<a href="ftp://ftp.uu.net/graphics/png/documents/zlib/rfc-gzip.html"> +gzip 4.3</a>. The free algorithm can be found in lots of places +today including PPP packet compression and PNG picture compression. +</P> + +</section><section> +<h3> Installation </h3> + +<P> + The installation is from the source .tar.gz tarball does follow + the simple gnu style: type <tt>''configure && make install''</tt> + in the unpacked directory. This will actually perform the usual + sequence of <tt>''configure && make && make install''</tt>. The + use of <tt>''make rpm''</tt> will make rpms based on your system + setup, and using a decent mingw32 compiler (e.g. the crossgcc + from <a href="http://libsdl.org/Xmingw32">libsdl.org/Xmingw32</a>) + will allow you to create windows dlls using a gnu development + environment. MSVC and Borland support (Make-)files should be + easy to be derived from the <a href="Makefile.am">Makefile.am</a> +</P> + +</section><section> +<h3> Contact </h3> + +<P> + The library was developed by + <a href="mailto:guidod@gmx.de?subject=zziplib"> + Guido Draheim </a> based on the library + <a href="http://freshmeat.net/appindex/1999/08/02/933593367.html"> + <tt>zip08x</tt> </a> + by <a href="mailto:too@iki.fi"> Tomi Ollila </a> (many thanks + for his support of the zziplib project). He has provided + a good deal of testing rounds and very helpful comments. + It may be assumed that this library supersedes + <a href="http://www.iki.fi/too/sw/zip08x.readme"> + <tt>zip08x</tt></a>, and in April 2002, he + has even given up copyright restrictions coming from zip08x + and changed the <a href="http://www.iki.fi/too/sw/zip08x.readme">zip08x</a> + readme to point to <a href="http://zziplib.sf.net">zziplib</a>. + Anyone who wants to contribute in accessing zip-archives + with the zlib-library is hereby kindly invited to send us + comments and sourcecode. +</P> + +</section><section> +<h3> Links </h3> + +<P> +The <a href="zziplib.html">zziplib library</a> must be +linked with the free <b><a href="http://www.gzip.org/zlib/">zlib</a></b> +<a href="http://www.info-zip.org/pub/infozip/zlib">[1]</a> +<a href="http://www.lifl.fr/PRIVATE/Manuals/gnulang/zlib">[2]</a> +<a href="http://pobox.com/~newt">[3]</a> package originally developed +by the <a href="http://www.info-zip.org">Info-Zip</a> Group +and now maintained at the <a href="http://www.gzip.org">GZip</a> Group. +As of late, the pkware appnote.txt has been revised into a whitepaper +document named +<a href="http://www.pkware.com/products/enterprise/white_papers/appnote.html"> + "APPNOTE.TXT - .ZIP File Format Specification"</a>. +Be also aware of other zzip like projects, e.g. +<a href="http://zipios.sourceforge.net">zipios++</a> that +mangles zip access into C++ iostream facilities. +</P> + +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-dbk.pl b/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-dbk.pl new file mode 100644 index 00000000000..e1fe56683df --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-dbk.pl @@ -0,0 +1,118 @@ +#! /usr/local/bin/perl +# this file converts simple html text into a docbook xml variant. +# The mapping of markups and links is far from perfect. But all we +# want is the docbook-to-pdf converter and similar technology being +# present in the world of docbook-to-anything converters. + +use strict; + +my %o; + +my %file; +my $F; +my @order; + +for $F (@ARGV) +{ + if ($F =~ /^(\w+)=(.*)/) + { + $o{$1} = $2; + }else{ + open F, "<$F" or next; + my $T = join ("",<F>); close F; + $file{$F}{text} = $T; + $file{$F}{orig} = $F; + push @order, $F; + } +} + +$o{version} = `date` if not length $o{version}; + +for $F (keys %file) +{ + $_ = $file{$F}{text}; + s{<!--VERSION-->}{ $o{version} }gse; + s{</h2>(.*)}{</title>\n<subtitle>$1</subtitle>}mg; + s{<h2>}{<sect1 id=\"$F\"><title>}mg; + s{<[Pp]([> ])}{<para$1}mg; s{</[Pp]>}{</para>}mg; + s{<pre>}{<screen>}mg; s{</pre>}{</screen>}mg; + s{<h3>}{<sect2><title>}mg; + s{</h3>((?:.(?!<sect2>))*.?)}{</title>$1</sect2>}sg; + s{<!doctype [^<>]*>}{}sg; + s{<!DOCTYPE [^<>]*>}{}sg; + s{(<\w+\b[^<>]*\swidth=)(\d+\%)}{$1\"$2\"}sg; + s{(<\w+\b[^<>]*\s\w+=)(\d+)}{$1\"$2\"}sg; + s{&&}{\&\;\&\;}sg; + s{\$\<}{\$\<\;}sg; + s{&(\w+[\),])}{\&\;$1}sg; + s{(</?)span(\s[^<>]*)?>}{$1."phrase$2>"}sge; + s{(</?)small(\s[^<>]*)?>}{$1."note$2>"}sge; + s{(</?)(b|em|i)>}{$1."emphasis>"}sge; + s{(</?)(li)>}{$1."listitem>"}sge; + s{(</?)(ul)>}{$1."itemizedlist>"}sge; + s{(</?)(ol)>}{$1."orderedlist>"}sge; + s{(</?)(dl)>}{$1."variablelist>"}sge; + s{<dt\b([^<>]*)>}{"<varlistentry$1><term>"}sge; + s{</dt\b([^<>]*)>}{"</term>"}sge; + s{<dd\b([^<>]*)>}{"<listitem$1>"}sge; + s{</dd\b([^<>]*)>}{"</listitem></varlistentry>"}sge; + s{<table\b([^<>]*)>}{"<informaltable$1><tgroup cols=\"2\"><tbody>"}sge; + s{</table\b([^<>]*)>}{"</tbody></tgroup></informaltable>"}sge; + s{(</?)tr(\s[^<>]*)?>}{$1."row$2>"}sge; + s{(</?)td(\s[^<>]*)?>}{$1."entry$2>"}sge; + s{<informaltable\b[^<>]*>\s*<tgroup\b[^<>]*>\s*<tbody> + \s*<row\b[^<>]*>\s*<entry\b[^<>]*>\s*<informaltable\b} + {<informaltable}gsx; + s{</informaltable>\s*</entry>\s*</row> + \s*</tbody>\s*</tgroup>\s*</informaltable>} + {</informaltable>}gsx; + s{(<informaltable[^<>]*\swidth=\"100\%\")}{$1 pgwide=\"1\"}gs; + s{(<tbody>\s*<row[^<>]*>\s*<entry[^<>]*\s)(width=\"50\%\")} + {<colspec colwidth=\"1*\" /><colspec colwidth=\"1*\" />\n$1$2}gs; + + s{<nobr>([\'\`]*)<tt>}{<cmdsynopsis>$1}sg; + s{</tt>([\'\`]*)</nobr>}{$2</cmdsynopsis>}sg; + s{<nobr><(?:tt|code)>([\`\"\'])}{<cmdsynopsis>$1}sg; + s{<(?:tt|code)><nobr>([\`\"\'])}{<cmdsynopsis>$1}sg; + s{([\`\"\'])</(?:tt|code)></nobr>}{$1</cmdsynopsis>}sg; + s{([\`\"\'])</nobr></(?:tt|code)>}{$1</cmdsynopsis>}sg; + s{(</?)tt>}{$1."constant>"}sge; + s{(</?)code>}{$1."literal>"}sge; + s{>([^<>]+)<br>}{><highlights>$1</highlights>}sg; + s{<br>}{<br />}sg; + + s{(</?)date>}{$1."sect1info>"}sge; + s{<reference>}{<reference id=\"reference\">}s; + + s{<a\s+href=\"((?:http|ftp|mailto):[^<>]+)\"\s*>((?:.(?!</a>))*.)</a>} + { "<ulink url=\"$1\">$2</ulink>" }sge; + s{<a\s+href=\"zziplib.html\#([\w_]+)\"\s*>((?:.(?!</a>))*.)</a>} + { "<link linkend=\"$1\">$2</link>" }sge; + s{<a\s+href=\"(zziplib.html)\"\s*>((?:.(?!</a>))*.)</a>} + { "<link linkend=\"reference\">$2</link>" }sge; + s{<a\s+href=\"([\w-]+[.]html)\"\s*>((?:.(?!</a>))*.)</a>} + { my $K = $1; chop $K; + if (not exists $file{$K}) { print STDERR "bad link $1\n"; } + "<link linkend=\"$K\">$2</link>" }sge; + s{<a\s+href=\"([\w-]+[.](?:h|c|am|txt))\"\s*>((?:.(?!</a>))*.)</a>} + { "<ulink url=\"file:$1\">$2</ulink>" }sge; + s{<a\s+href=\"([A-Z0-9]+[.][A-Z0-9]+)\"\s*>((?:.(?!</a>))*.)</a>} + { "<ulink url=\"file:$1\">$2</ulink>" }sge; + +# s{(</?)subtitle>}{$1."para>"}ge; + + $_ .= "</sect1>" if /<sect1[> ]/; + $file{$F}{text} = $_; +} + +my $n = "\n"; + +print '<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"',$n; +print ' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">',$n; +print '<book><chapter><title>Documentation</title>',$n; +for $F (@order) +{ + print "</chapter>" if $file{$F}{text} =~ /<reference /; + print $file{$F}{text},$n,$n; +} +print '</book>',$n; diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-doc.pl b/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-doc.pl new file mode 100644 index 00000000000..89da2f6a95c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-doc.pl @@ -0,0 +1,580 @@ + +use strict "vars"; + +my $x; +my $F; +my @regs; +my %file; +my %func; + +my %o = ( verbose => 0 ); + +$o{version} = + `grep -i "^version *:" *.spec | sed -e "s/[Vv]ersion *: *//"`; +$o{package} = + `grep -i "^name *:" *.spec | sed -e "s/[Nn]ame *: *//"`; +$o{version} =~ s{\s*}{}gs; +$o{package} =~ s{\s*}{}gs; + +$o{version} = `date +%Y.%m.%d` if not length $o{version}; +$o{package} = "_project" if not length $o{package}; + +$o{suffix} = "-doc1"; +$o{mainheader} = "$o{package}.h"; + +my %fn; +my $id = 1000; + +for $F (@ARGV) +{ + if ($F =~ /^(\w+)=(.*)/) + { + $o{$1} = $2; + }else{ + open F, "<$F" or next; + my $T = join ("",<F>); close F; + + $T =~ s/\&/\&\;/sg; + $T =~ s/¬/\&#AC\;/sg; + $T =~ s/\*\//¬/sg; + + # cut per-function comment block + while ( $T =~ + s{ [/][*][*](?=\s) ([^¬]+) ¬ ([^\{\}\;\#]+) [\{\;] } + { per_function_comment_and_declaration($F," ".$1,$2) }gsex + ) {} + + # cut per-file comment block + if ( $T =~ m{ ^ [/][*]+(?=\s) ([^¬]+) ¬ + (\s*\#include\s*<[^<>]*>(?:\s*/[/*][^\n]*)?) }sx) + { + $file{$F}{comment} = $1; + $file{$F}{include} = $2; + $file{$F}{comment} =~ s/¬/\*\//sg; + $file{$F}{include} =~ s/¬/\*\//sg; + $file{$F}{include} =~ s{[/][*]}{//}s; + $file{$F}{include} =~ s{[*][/]}{\n}s; + $file{$F}{include} =~ s{<}{\<\;}sg; + $file{$F}{include} =~ s{>}{\>\;}sg; + } + elsif ( $T =~ m{ ^ [/][*]+(?=\s) ([^¬]+) ¬ }sx) + { + $file{$F}{comment} = $1; + $file{$F}{comment} =~ s/¬/\*\//sg; + } + + # throw away the rest - further processing on memorized strings only + } +} + +$o{outputfilestem}= "$o{package}$o{suffix}" if not length $o{outputfilestem}; +$o{docbookfile}= "$o{outputfilestem}.docbook" if not length $o{docbookfile}; +$o{libhtmlfile}= "$o{outputfilestem}.html" if not length $o{libhtmlfile}; +$o{dumpdocfile}= "$o{outputfilestem}.dxml" if not length $o{dumpdocfile}; + +sub per_function_comment_and_declaration +{ + my ($filename, $comment, $prototype) = @_; + + $prototype =~ s{¬}{*/}sg; + $comment =~ s{¬}{*/}sg; + $comment =~ s{<([\w\.\-]+\@[\w\.\-]+\w\w)>}{<$1>}sg; + $func{$id}{filename} = $filename; + $func{$id}{comment} = $comment; + $func{$id}{prototype} = $prototype; + $id ++; + return $prototype; +} +# ----------------------------------------------------------------------- +sub pre { # used for non-star lines in comment blocks + my $T = $_[0]; $T =~ s/\&/\&\;/g; + $T =~ s/\</\<\;/g; $T =~ s/\>/\>\;/g; $T =~ s/\"/\"\;/g; + $T =~ s/^/\ /gm; # $T =~ s/^/\| /gm; + return " <pre> $T </pre> "; +} + +# per-file comment block handling +my $name; +for $name (keys %file) +{ + $file{$name}{comment} =~ s{<([\w\.\-]+\@[\w\.\-]+\w\w)>}{<$1>}sg; + $file{$name}{comment} =~ s{ ^\s?\s?\s? ([^\*\s]+ .*) $}{&pre($1)}mgex; + $file{$name}{comment} =~ s{ ^\s*[*]\s* $}{ <p> }gmx; + $file{$name}{comment} =~ s{ ^\s?\s?\s?\* (.*) $}{ $1 }gmx; + $file{$name}{comment} =~ s{ </pre>(\s*)<pre> }{$1}gsx; + $file{$name}{comment} =~ s{ <([^<>\;]+\@[^<>\;]+)> }{<email>$1</email>}gsx; + $file{$name}{comment} =~ s{ \<\;([^<>\&\;]+\@[^<>\&\;]+)\>\; } + {<email>$1</email>}gsx; + $file{$name}{comment} .= "<p>"; + + $file{$name}{comment} =~ s{ \b[Aa]uthor\s*:(.*<\/email>) } + { + $file{$name}{author} = "$1"; + "<author>"."$1"."</author>" + }sex; + + $file{$name}{comment} =~ s{ \b[Cc]opyright[\s:]([^<>]*)<p> } + { + $file{$name}{copyright} = "$1"; + "<copyright>"."$1"."</copyright>" + }sex; +# if ($name =~ /file/) { +# print STDERR $file{$name}{comment},"\n"; +# } + if ($file{$name}{include} =~ m{//\s*(\w+)[.][.][.]\s*}) + { + if (length $o{$1}) { + $file{$name}{include} = "#include " + .$o{$1}."\n"; + $file{$name}{include} =~ s{<}{\<\;}sg; + $file{$name}{include} =~ s{>}{\>\;}sg; + } + } +} + +# ----------------------------------------------------------------------- + +# pass 1 of per-func strings: +# (a) cut prototype into prespec/namespec/callspec +# (b) sanitize comment-block into proper docbook format +# do this while copying strings from $func{$name} to $fn{name} strstrhash +my @namelist; +for $x (sort keys %func) +{ + my $name = $func{$x}{prototype}; + $name =~ s/^.*[^.]\b(\w[\w.]*\w)\b\s*\(.*$/$1/s; + push @namelist, $name; # may be you want to omit some funcs from output? + + $func{$x}{prototype} =~ m{ ^(.*[^.]) \b(\w[\w.]*\w)\b (\s*\(.*) $ }sx; + $fn{$name}{prespec} = $1; + $fn{$name}{namespec} = $2; + $fn{$name}{callspec} = $3; + + $fn{$name}{comment} = $func{$x}{comment}; + $fn{$name}{comment} =~ s/(^|\s)\=\>\"([^\"]*)\"/$1<link>$2<\/link>/gmx; + $fn{$name}{comment} =~ s/(^|\s)\=\>\'([^\"]*)\'/$1<link>$2<\/link>/gmx; + $fn{$name}{comment} =~ s/(^|\s)\=\>\s(\w[\w.]*\w)\b/$1<link>$2<\/link>/gmx; + $fn{$name}{comment} =~ + s/(^|\s)\=\>\s([^\s\,\.\!\?\:\;\<\>\&\'\=\-]+)/$1<link>$2<\/link>/gmx; + + # cut comment in first-line (describe) and only keep the rest in comment + $fn{$name}{describe} = $fn{$name}{comment}; + $fn{$name}{describe} =~ s{^([^\n]*\n).*}{$1}gs; + $fn{$name}{comment} =~ s{^[^\n]*\n}{}gs; + if ($fn{$name}{describe} =~ /^\s*$/s) + { + $fn{$name}{describe} = "(".$func{$x}{filename}.")"; + $fn{$name}{describe} =~ s,[.][.][/],,g; + } + + $fn{$name}{comment} =~ s/ ^\s?\s?\s? ([^\*\s]+ .*) $/&pre($1)/mgex; + $fn{$name}{comment} =~ s/ ^\s?\s?\s?\* (.*) $/ <br \/> $1 /gmx; + $fn{$name}{comment} =~ s/ ^\s*<br\s*\/>\s* $/ <p> /gmx; + $fn{$name}{comment} =~ s{<<}{<}sg; + $fn{$name}{comment} =~ s{>>}{>}sg; + $fn{$name}{comment} =~ s/ (<p>\s*)<br\s*\/?>/$1/gsx; + $fn{$name}{comment} =~ s/ (<p>\s*)<br\s*\/?>/$1/gsx; + $fn{$name}{comment} =~ s/ (<br\s*\/?>\s*)<br\s*\/?>/$1/gsx; + $fn{$name}{comment} =~ s/<c>/<code>/gs; + $fn{$name}{comment} =~ s/<\/c>/<\/code>/gs; + $fn{$name}{comment} =~ s/<\/pre>(\s*)<pre>/$1/gs; + + $fn{$name}{filename} = $func{$x}{filename}; + $fn{$name}{callspec} =~ s{^ \s*}{}gsx; + $fn{$name}{prespec} =~ s{^ \s*}{}gsx; + $fn{$id} = $x; +} + +# add extra docbook markups to callspec in $fn-hash +for $name (@namelist) # <paramdef> +{ + $fn{$name}{callspec} =~ s:^([^\(\)]*)\(:$1<parameters>\(<paramdef>:s; + $fn{$name}{callspec} =~ s:\)([^\(\)]*)$:</paramdef>\)</parameters>$1:s; + $fn{$name}{callspec} =~ s:,:</paramdef>,<paramdef>:gs; + $fn{$name}{callspec} =~ s:<paramdef>(\s+):$1<paramdef>:gs; + $fn{$name}{callspec} =~ s:(\s+)</paramdef>:</paramdef>$1:gs; +} + +# html-formatting of callspec strings +for $name (@namelist) +{ + $fn{$name}{declcode} = + "<td valign=\"top\"><code>".$fn{$name}{prespec}."<\/code><\/td>" + ."<td valign=\"top\"> </td>" + ."<td valign=\"top\"><a href=\"#$name\">" + ."\n <code>".$fn{$name}{namespec}."<\/code>\n" + ."<\/a><\/td>" + ."<td valign=\"top\"> </td>" + ."<td valign=\"top\">".$fn{$name}{callspec}."<\/td>"; + + $fn{$name}{implcode} = + "<code>".$fn{$name}{prespec}."<\/code>" + ."\n <br \/><b><code>".$fn{$name}{namespec}."<\/code><\/b>" + ."\n <code>".$fn{$name}{callspec}."<\/code>"; + + $fn{$name}{declcode} =~ s{\s+<paramdef>}{\n<nobr>}gs; + $fn{$name}{implcode} =~ s{\s+<paramdef>}{\n<nobr>}gs; + $fn{$name}{declcode} =~ s{<paramdef>}{<nobr>}gs; + $fn{$name}{implcode} =~ s{<paramdef>}{<nobr>}gs; + $fn{$name}{declcode} =~ s{</paramdef>}{</nobr>}gs; + $fn{$name}{implcode} =~ s{</paramdef>}{</nobr>}gs; + $fn{$name}{declcode} =~ s{<parameters>}{\n <code>}gs; + $fn{$name}{implcode} =~ s{<parameters>}{\n <code>}gs; + $fn{$name}{declcode} =~ s{</parameters>}{</code>\n}gs; + $fn{$name}{implcode} =~ s{</parameters>}{</code>\n}gs; +} + +# whether each function should get its own page or combined with others +my $combinedstyle = 1; + +for $name (@namelist) +{ + if ($fn{$name}{describe} =~ /^ \s* <link>(\w[\w.]*\w)<\/link> /sx) + { + if ($combinedstyle and exists $fn{$1}) + { + # $into tells later steps which func-name is the leader of a man + # page and that this func should add its descriptions over there. + $fn{$name}{into} = $1; + } + } + + if ($fn{$name}{describe} =~ s/(.*)also:(.*)/$1/) + { + $fn{$name}{_seealso} = $2; + } + + # and prepare items for being filled in $combinedstyle (html-mode) + # which includes adding descriptions of the leader functions firsthand + $fn{$name}{_anchors} = "<a name=\"$name\" />"; + $fn{$name}{_impcode} = "<code>".$fn{$name}{implcode}."</code>"; + $fn{$name}{_comment} = "<p> ".$fn{$name}{describe}."\n"; + $fn{$name}{_comment} .= "<p>".$fn{$name}{comment}; +} + +for $name (@namelist) # and add descriptions of non-leader entries (html-mode) +{ + next if not exists $fn{$name}{into}; # skip leader pages + my $into = $fn{$name}{into}; + $fn{$into}{_anchors} .= "<a name=\"$name\" />"; + $fn{$into}{_impcode} .= "<br />\n"; + $fn{$into}{_impcode} .= "<code>".$fn{$name}{implcode}."</code>"; + my $text = $fn{$name}{comment}; + $text =~ s/ (T|t)his \s (function|procedure) /$1."he ".$name." ".$2/gsex; + $fn{$name}{_comment} .= "<p>".$text; +} + +my $htmlTOC = ""; +my $htmlTXT = ""; + +# generate the index-block at the start of the onepage-html file +for $name (@namelist) +{ + $fn{$name}{_comment} =~ s/ (<p>\s*)<br\s*\/>/$1/gsx; + + $htmlTOC .= "<tr valign=\"top\">\n".$fn{$name}{declcode}."</tr>"; + next if $combinedstyle and exists $fn{$name}{into}; + + $htmlTXT .= "\n<dt>".$fn{$name}{_anchors}.$fn{$name}{_impcode}."<dt>"; + $htmlTXT .= "\n<dd>".$fn{$name}{_comment}; + $htmlTXT .= "\n<p align=\"right\"><small>(" + .$fn{$name}{filename}.")</small></p></dd>"; +} + +# link ref-names in this page with its endpoints on the same html page +$htmlTXT =~ s/ <link>(\w+)([^<>]*)<\/link> / &a_name($1,$2) /gsex; +sub a_name +{ + my ($n,$m) = @_; + if (exists $fn{$n}) { return "<a href=\"#$n\"><code>$n$m</code></a>"; } + else { return "<code>$n$m</code>"; } +} +$htmlTXT =~ s/ \-\> /<small>-\>\;<\/small>/gsx; # just sanitize + +# and finally print the html-formatted output +open F, ">$o{libhtmlfile}" or die "could not open '$o{libhtmlfile}': $!"; +print F "<html><head><title> $o{package} autodoc documentation </title>"; +print F "</head>\n<body>\n"; +print F "\n<h1>",$o{package}," <small><small><i>-", $o{version}; +print F "</i></small></small></h1>"; +print F "\n<table border=0 cellspacing=2 cellpadding=0>"; +print F $htmlTOC; +print F "\n</table>"; +print F "\n<h3>Documentation</h3>\n"; +print F "\n<dl>"; +print F $htmlTXT; +print F "\n</dl>"; +print F "\n</body></html>\n"; +close F; + +# =========================================================================== # +# let's go for the pure docbook, a reference type master file for all man pages +my @headerlist; # leader function pages - a file will be created for each of th +my @mergedlist; # non-leader function that end up in one of those in headerlist + +for $name (@namelist) +{ + push @headerlist, $name if not exists $fn{$name}{into}; + push @mergedlist, $name if exists $fn{$name}{into}; + + # and initialize the fields need for a man page entry - the fields are + # named after the docbook-markup that encloses (!!) the text we store + # in the strstrhash - therefore, {}{_refhint} = "hello" will be printed + # as <refhint>hello</refhint>. Names with scores at the end are only used + # as temporaries but they are memorized - perhaps they are useful later. + + $fn{$name}{_refhint} = + "\n<!--========= ".$name." (3) ===========-->\n"; + $fn{$name}{_refstart} = ""; + $fn{$name}{_date_} = $o{version}; + $fn{$name}{_date_} =~ s{\s*}{}gs; + $fn{$name}{_refentryinfo} + = "\n <date>".$fn{$name}{_date_}."</date>"; + $fn{$name}{_productname_} = $o{package}; + $fn{$name}{_productname_} =~ s{\s*}{}gs; + $fn{$name}{_refentryinfo} + .= "\n <productname>".$fn{$name}{_productname_}."</productname>"; +# if (exists $file{ $fn{$name}{filename} }{author}) +# { +# $H = $file{ $fn{$name}{filename} }{author}; +# $H =~ s{ \s* ([^<>]*) (<email>[^<>]*</email>) }{ +# $fn{$name}{_refentryinfo} .= "\n <author>".$1.$2."</author>"; +# "" }gmex; +# } + $fn{$name}{_refmeta} = ""; + $fn{$name}{_refnamediv} = ""; + $fn{$name}{_mainheader} = $o{mainheader}; + $fn{$name}{_includes} = $file{ $fn{$name}{filename} }{include}; + $fn{$name}{_manvolnum} = "3"; + $fn{$name}{_funcsynopsisinfo} = ""; + $fn{$name}{_funcsynopsis} = ""; + $fn{$name}{_description} = ""; + $fn{$name}{_refends} = ""; +} + +push @headerlist, @mergedlist; # aaahmm... + +# let's walk all (!!) entries... +for $name (@headerlist) +{ + # $into is the target-manpage to add descriptions to. Initially it does + # reference the name of the function itself - but it overridden in the + # next line when we see an {into} mark. The self/into state is registered + # in two vars: $into is an index into %fn-strstrhash to be used instead of + # the $name-runvar and $me just a boolean value to conditionally add texts + my $into = $name; my $me = 1; + + if (exists $fn{$name}{into}) + { + $into = $fn{$name}{into}; $me = 0; + $fn{$name}{_refhint} = + "\n <!-- see ".$fn{$name}{mergeinto}." -->\n"; + } + + $fn{$into}{_refstart} .= '<refentry id="'.$name.'">' if $me; + $fn{$into}{_refends} .= "\n</refentry>\n" if $me; + + $fn{$name}{_title_} = $name; + $fn{$name}{_title_} =~ s{\s*}{}gs; + $fn{$name}{_refentryinfo} + .= "\n <title>".$fn{$name}{_title_}."</title>" if $me; + $fn{$into}{_refmeta} + .= "\n <manvolnum>".$fn{$name}{_manvolnum}."</manvolnum>" if $me; + $fn{$into}{_refmeta} + .= "\n <refentrytitle>".$name."</refentrytitle>" if $me; + + $fn{$name}{_funcsynopsisinfo} + = "\n".' #include <'.$fn{$into}{_mainheader}.'>' if $me; + $fn{$name}{_funcsynopsisinfo} + = "\n".$fn{$into}{_includes} if $me and length $fn{$into}{_includes}; + $fn{$name}{_funcsynopsisinfo} + .= " // ".$o{synopsis} if $me and length $o{synopsis}; + + $fn{$into}{_refnamediv} .= "\n ". + "<refpurpose>".$fn{$name}{describe}." </refpurpose>" if $me; + $fn{$into}{_refnamediv} .= "\n".' <refname>'.$name.'</refname>'; + + # add to {}{_funcsynopsis}... + $fn{$into}{_funcsynopsis} .= "\n <funcprototype>\n <funcdef>"; + $fn{$into}{_funcsynopsis} .= $fn{$name}{prespec} + ." <function>".$name."</function></funcdef>"; + $fn{$name}{_callspec_} = $fn{$name}{callspec}; + $fn{$name}{_callspec_} =~ s{<parameters>\s*\(}{ }gs; + $fn{$name}{_callspec_} =~ s{\)\s*</parameters>}{ }gs; + $fn{$name}{_callspec_} =~ s{</paramdef>\s*,\s*}{</paramdef>\n }gs; + $fn{$into}{_funcsynopsis} + .= "\n".$fn{$name}{_callspec_}." </funcprototype>"; + + # add to {}{_description}... + $fn{$name}{_comment_} = "<para>\n".$fn{$name}{comment}."\n</para>"; + $fn{$name}{_comment_} =~ s{ (T|t)his \s (function|procedure) } + { $1."he <function>".$name."</function> ".$2 }gsex; + $fn{$name}{_comment_} =~ s{<p>}{"\n</para><para>\n"}gsex; + $fn{$name}{_comment_} =~ s{<br\s*/?>}{}gs; + $fn{$name}{_comment_} =~ s{(</?)em>}{$1emphasis>}gs; + $fn{$name}{_comment_} =~ s{<code>}{<userinput>}gs; + $fn{$name}{_comment_} =~ s{</code>}{</userinput>}gs; + $fn{$name}{_comment_} =~ s{<link>}{<function>}gs; + $fn{$name}{_comment_} =~ s{</link>}{</function>}gs; + $fn{$name}{_comment_} =~ s{<pre>}{<screen>}gs; # only xmlto .8 and + $fn{$name}{_comment_} =~ s{</pre>}{</screen>}gs; # higher !! +# $fn{$name}{_comment_} =~ s{<ul>}{</para><itemizedlist>}gs; +# $fn{$name}{_comment_} =~ s{</ul>}{</itemizedlist><para>}gs; +# $fn{$name}{_comment_} =~ s{<li>}{<listitem><para>}gs; +# $fn{$name}{_comment_} =~ s{</li>}{</para></listitem>\n}gs; + $fn{$name}{_comment_} =~ s{<ul>}{</para><programlisting>\n}gs; + $fn{$name}{_comment_} =~ s{</ul>}{</programlisting><para>}gs; + $fn{$name}{_comment_} =~ s{<li>}{}gs; + $fn{$name}{_comment_} =~ s{</li>}{}gs; + $fn{$into}{_description} .= $fn{$name}{_comment_}; + + if (length $fn{$name}{_seealso} and not $me) + { + $fn{$into}{_seealso} .= ", " if length $fn{$into}{_seealso}; + $fn{$into}{_seealso} .= $fn{$name}{_seealso}; + } + + if (exists $file{ $fn{$name}{filename} }{author}) + { + my $authors = $file{ $fn{$name}{filename} }{author}; + $fn{$into}{_authors} = "<itemizedlist>"; + $authors =~ s{ \s* ([^<>]*) (<email>[^<>]*</email>) }{ + $fn{$into}{_authors} + .= "\n <listitem><para>".$1." ".$2."</para></listitem>"; + "" }gmex; + $fn{$into}{_authors} .= "</itemizedlist>"; + } + + if (exists $file{ $fn{$name}{filename} }{copyright}) + { + $fn{$into}{_copyright} + = "<screen>\n".$file{ $fn{$name}{filename} }{copyright}."</screen>\n"; + } +} + +# printing the docbook file is a two-phase process - we spit out the +# leader pages first - later we add more pages with _refstart pointing +# to the lader page, so that xmlto will add the functions there. Only the +# leader page contains some extra info needed for troff page processing. + +my %header; + +open F, ">$o{docbookfile}" or die "could not open $o{docbookfile}: $!"; +print F '<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"'; +print F "\n",' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">'; +print F "\n\n",'<reference><title>Manual Pages</title>',"\n"; +for $name (@namelist) +{ + print F $fn{$name}{_refhint}; + next if exists $fn{$name}{into}; + print F $fn{$name}{_refstart}; + print F "\n<refentryinfo>", $fn{$name}{_refentryinfo} + , "\n</refentryinfo>\n" if length $fn{$name}{_refentryinfo}; + print F "\n<refmeta>", $fn{$name}{_refmeta} + , "\n</refmeta>\n" if length $fn{$name}{_refmeta}; + print F "\n<refnamediv>", $fn{$name}{_refnamediv} + , "\n</refnamediv>\n" if length $fn{$name}{_refnamediv}; + + print F "\n<refsynopsisdiv>" if length $fn{$name}{_funcsynopsis}; + print F "\n<funcsynopsisinfo>", $fn{$name}{_funcsynopsisinfo} + , "\n</funcsynopsisinfo>" if length $fn{$name}{_funcsynopsisinfo}; + print F "\n<funcsynopsis>", $fn{$name}{_funcsynopsis} + , "\n</funcsynopsis>" if length $fn{$name}{_funcsynopsis}; + print F "\n</refsynopsisdiv>" if length $fn{$name}{_funcsynopsis}; + print F "\n<refsect1><title>Description</title>", $fn{$name}{_description} + , "\n</refsect1>" if length $fn{$name}{_description}; + print F "\n<refsect1><title>Author</title>", $fn{$name}{_authors} + , "\n</refsect1>" if length $fn{$name}{_authors}; + print F "\n<refsect1><title>Copyright</title>", $fn{$name}{_copyright} + , "\n</refsect1>" if length $fn{$name}{_copyright}; + print F "\n<refsect1><title>See Also</title>", $fn{$name}{_seealso} + , "\n</refsect1>" if length $fn{$name}{_seealso}; + + print F $fn{$name}{_refends}; + + # ------------------------------------------------------------------ + # creating the per-header manpage - a combination of function man pages + + my $H = $fn{$name}{_mainheader}; # a shorthand for the mainheader index + my $me = 0; $me = 1 if not exists $header{$H}; + my $HH = $H; $HH =~ s/[^\w\.]/-/g; + $header{$H}{_refstart} = "\n<refentry id=\"".$HH."\">" if $me; + $header{$H}{_refends} = "\n</refentry>\n" if $me; + $header{$H}{_refentryinfo} = $fn{$name}{_refentryinfo} if $me; + $header{$H}{_refentryinfo} + =~ s/(<title>)([^<>]*)(<\/title>)/$1 the library $3/s if $me; + $header{$H}{_refmeta} + = "\n <manvolnum>".$fn{$name}{_manvolnum}."</manvolnum>\n" + . "\n <refentrytitle>".$fn{$name}{_mainheader}."</refentrytitle>" if $me; + $header{$H}{_refnamediv} = "\n <refpurpose> library </refpurpose>"; + $header{$H}{_refnamediv} .= "\n <refname>".$HH."</refname>"; + + $header{$H}{_refsynopsisinfo} + = $fn{$name}{_refsynopsisinfo} if exists $fn{$name}{_refsynopsisinfo}; + $header{$H}{_funcsynopsis} + .= "\n".$fn{$name}{_funcsynopsis} if exists $fn{$name}{_funcsynopsis}; +# $header{$H}{_funcsynopsisdiv} .= "\n<funcsynopsis>" +# .$fn{$name}{_funcsynopsis}."</funcsynopsis>" +# if exists $fn{$name}{_funcsynopsis}; + $header{$H}{_copyright} + = $fn{$name}{_copyright} if exists $fn{$name}{_copyright} and $me; + $header{$H}{_authors} + = $fn{$name}{_authors} if exists $fn{$name}{_authors} and $me; + if ($me) + { + my $T = `cat $o{package}.spec`; + if ($T =~ /\%description\b([^\%]*)\%/s) + { + $header{$H}{_description} = $1; + }elsif (not length $header{$H}{_description}) + { + $header{$H}{_description} = "$o{package} library"; + } + } +} + +my $H; +for $H (keys %header) # second pass +{ + next if not length $header{$H}{_refstart}; + print F "\n<!-- _______ ",$H," _______ -->"; + print F $header{$H}{_refstart}; + print F "\n<refentryinfo>", $header{$H}{_refentryinfo} + , "\n</refentryinfo>\n" if length $header{$H}{_refentryinfo}; + print F "\n<refmeta>", $header{$H}{_refmeta} + , "\n</refmeta>\n" if length $header{$H}{_refmeta}; + print F "\n<refnamediv>", $header{$H}{_refnamediv} + , "\n</refnamediv>\n" if length $header{$H}{_refnamediv}; + + print F "\n<refsynopsisdiv>" if length $header{$H}{_funcsynopsis}; + print F "\n<funcsynopsisinfo>", $header{$H}{_funcsynopsisinfo} + , "\n</funcsynopsisinfo>" if length $header{$H}{_funcsynopsisinfo}; + print F "\n<funcsynopsis>", $header{$H}{_funcsynopsis} + , "\n</funcsynopsis>" if length $header{$H}{_funcsynopsis}; + print F "\n</refsynopsisdiv>" if length $header{$H}{_funcsynopsis}; + + print F "\n<refsect1><title>Description</title>", $header{$H}{_description} + , "\n</refsect1>" if length $header{$H}{_description}; + print F "\n<refsect1><title>Author</title>", $header{$H}{_authors} + , "\n</refsect1>" if length $header{$H}{_authors}; + print F "\n<refsect1><title>Copyright</title>", $header{$H}{_copyright} + , "\n</refsect1>" if length $header{$H}{_copyright}; + + print F $header{$H}{_refends}; +} +print F "\n",'</reference>',"\n"; +close (F); + +# _____________________________________________________________________ +open F, ">$o{dumpdocfile}" or die "could not open $o{dumpdocfile}: $!"; + +for $name (sort keys %fn) +{ + print F "<fn id=\"$name\"><!-- FOR \"$name\" -->\n"; + for $H (sort keys %{$fn{$name}}) + { + print F "<$H name=\"$name\">",$fn{$name}{$H},"</$H>\n"; + } + print F "</fn><!-- END \"$name\" -->\n\n"; +} +close F; diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-doc.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-doc.py new file mode 100644 index 00000000000..c58427c4a5c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/make-doc.py @@ -0,0 +1,1028 @@ +#! /usr/bin/python +# -*- coding: UTF-8 -*- +import sys +import re +import string +import commands +import warnings + +errors = 0 +def warn(msg, error=None): + global errors + errors += 1 + if error is None: + warnings.warn("-- "+str(errors)+" --\n "+msg, RuntimeWarning, 2) + else: + warnings.warn("-- "+str(errors)+" --\n "+msg+ + "\n error was "+str(error), RuntimeWarning, 2) +#fu + +# beware, stupid python interprets backslashes in repl only partially! +def s(string, pattern, repl, count=0): + return re.sub(pattern, repl, string, count) +def m(string, pattern): + return re.match(pattern, string) +def sorted_keys(dict): + keys = dict.keys() + keys.sort() + return keys + +# we make up a few formatter routines to help in the processing: +def html2docbook(text): + """ the C comment may contain html markup - simulate with docbook tags """ + return ( + s(s(s(s(s(s(s(s(s(s(s(text, + r"<br\s*/?>",""), + r"(</?)em>",r"\1emphasis>"), + r"<code>","<userinput>"), + r"</code>","</userinput>"), + r"<link>","<function>"), + r"</link>","</function>"), + r"(?s)\s*</screen>","</screen>"), +# r"<ul>","</para><itemizedlist>"), +# r"</ul>","</itemizedlist><para>"), +# r"<li>","<listitem><para>"), +# r"</li>","</para></listitem>\n"), + r"<ul>","</para><programlisting>\n"), + r"</ul>","</programlisting><para>"), + r"<li>",""), + r"</li>","")) +def paramdef2html(text): + return s(s(s(s(s(text, + r"\s+<paramdef>", r"\n<nobr>"), + r"<paramdef>",r"<nobr>"), + r"</paramdef>",r"</nobr>"), + r"<parameters>",r"\n <code>"), + r"</parameters>",r"</code>\n") +def section2html(text): + mapping = { "<screen>" : "<pre>", "</screen>" : "</pre>", + "<para>" : "<p>", "</para>" : "</p>" , + "<function>" : "<link>", "</function>" : "</link>" } + for str in mapping: + text = string.replace(text, str, mapping[str]) + return text +def html(text): + return section2html(paramdef2html(text)) +def cdata1(text): + return string.replace(text, "&", "&") +def cdata31(text): + return string.replace(string.replace(text, "<","<"), ">",">") +def cdata3(text): + return cdata31(cdata1(text)) +def cdata43(text): + return string.replace(text,"\"", """) +def cdata41(text): + return cdata43(cdata31(text)) +def cdata4(text): + return cdata43(cdata3(text)) +def markup_as_screen41 (text): + """ used for non-star lines in comment blocks """ + return " <screen> " + s(cdata41(text), r"(?m)^", r" ") +" </screen> " + +def file_comment2section(text): + """ convert a C comment into a series of <para> and <screen> parts """ + return ("<para>\n"+ + s(s(s(s(s(s(s(text, + r"(?s){<([\w\.\-]+\@[\w\.\-]+\w\w)>", + r"<\1>"), + r"(?mx) ^\s?\s?\s? ([^\*\s]+ .*) $", + lambda x : markup_as_screen41 (x.group(1))), + r"(?mx) ^\s*[*]\s* $", r" \n</para><para>\n"), + r"(?mx) ^\s?\s?\s?\* (.*) $", r" \1 "), + r"(?sx) </screen>(\s*)<screen> ", r"\1"), + r"(?sx) <([^<>\;]+\@[^<>\;]+)> ", r"<email>\1</email>"), + r"(?sx) \<\;([^<>\&\;]+\@[^<>\&\;]+)\>\; ", + r"<email>\1</email>") + "\n</para>") +def func_comment2section(text): + """ convert a C comment into a series of <para> and <screen> parts + and sanitize a few markups already present in the comment text + """ + return ("<para>\n"+ + s(s(s(s(s(s(s(s(s(s(s(text, + r"<c>",r"<code>"), r"</c>", r"</code>"), + r"(?mx) ^\s?\s?\s? ([^\*\s]+.*)", + lambda x: markup_as_screen41 (x.group(1))), + r"(?mx) ^\s?\s?\s?\* (.*) $", r" <br /> \1"), + r"(?mx) ^\s*<br\s*\/>\s* $", r"\n</para><para>\n"), + r"<<",r"<"), r">>",r">"), + r"(?sx) (</?para>\s*)<br\s*\/?>",r"\1"), + r"(?sx) (</?para>\s*)<br\s*\/?>",r"\1"), + r"(?sx) (<br\s*\/?>\s*)<br\s*\/?>",r"\1"), + r"(?sx) <\/screen>(\s*)<screen>",r"\1") + "\n</para>") +def markup_link_syntax(text): + """ markup the link-syntax ` => somewhere ` in the text block """ + return ( + s(s(s(s(text, + r"(?mx) (^|\s)\=\>\"([^\"]*)\"", r"\1<link>\2</link>"), + r"(?mx) (^|\s)\=\>\'([^\"]*)\'", r"\1<link>\2</link>"), + r"(?mx) (^|\s)\=\>\s(\w[\w.]*\w)\b", r"\1<link>\2</link>"), + r"(?mx) (^|\s)\=\>\s([^\s\,\.\!\?\:\;\<\>\&\'\=\-]+)", + r"\1<link>\2</link>")) +def this_function_link(text, name): + return s(text, r"(?sx) (T|t)his \s (function|procedure) ", lambda x + : "<function>"+x.group(1)+"he "+name+" "+x.group(2)+"</function>") + +# ----------------------------------------------------------------------- +class Options: + var = {} + def __getattr__(self, name): + if not self.var.has_key(name): return None + return self.var[name] + def __setattr__(self, name, value): + self.var[name] = value +#end + +o = Options() +o.verbose = 0 + +o.version = s( commands.getoutput( + """ grep -i "^version *:" *.spec 2>/dev/null | + sed -e "s/[Vv]ersion *: *//" """), r"\s*",r"") +o.package = s(commands.getoutput( + """ grep -i "^name *:" *.spec 2>/dev/null | + sed -e "s/[Nn]ame *: *//" """), r"\s*",r"") + +if not len(o.version): + o.version = commands.getoutput(""" date +%Y.%m.%d """) +if not len(o.package): + o.package = "_project" + +o.suffix = "-doc3" +o.mainheader = o.package+".h" + +class File: + def __init__(self, filename): + self.name = filename + self.mainheader = o.mainheader + self.authors = "" + self.copyright = "" + def __getattr__(self, name): + """ defend against program to break on uninited members """ + if self.__dict__.has_key(name): return self.__dict__[name] + warn("no such member: "+name); return None + def set_author(self, text): + if self.authors: + self.authors += "\n" + self.authors += text + return text + def set_copyright(self, text): + self.copyright = text + return text + +class InputFiles: + """ for each set of input files we can create an object + it does correspond with a single html-output page and + a single docbook <reference> master page to be output + """ + def __init__(self): + # the id will tell us in which order + # we did meet each function definition + self.id = 1000 + self.files = [] # file_list + self.funcs = [] # func_list: of hidden class FuncDeclaration + self.file = None # current file + def new_File(self, name): + self.file = File(name) + self.files.append(self.file) + return self.file + def next_id(self): + id = self.id ; self.id += 1 + return id + def add_function_declaration(self, comment, prototype): + class FuncDeclaration: # note that both decl.comment and + pass # decl.prototype are in cdata1 format + func = FuncDeclaration() + func.file = self.file + func.comment = s(comment, # need to take out email-style markups + r"<([\w\.\-]+\@[\w\.\-]+\w\w)>", r"<\1>") + func.prototype = prototype + func.id = all.next_id() + self.funcs.append(func) + # print id + return prototype + +def scan_options (options, list): + def encode(text): + return s(s(text, r"¬", r"&#AC;"), r"\*/",r"¬") + def decode(text): + return s(text, r"¬", r"*/") + + for name in options: + found = m(name, r"^(\w+)=(.*)") + if found: + o.var[found.group(1)] = found.group(2) + continue + #else + try: + input = open(name, "r") + except IOError, error: + warn(#...... (scan_options) ............... + "can not open input file: "+name, error) + continue + text = input.read() ; input.close() + text = encode (cdata1 (text)) + + file = list.new_File(name) + + # cut per-function comment block + text = s(text, r"(?x) [/][*][*](?=\s) ([^¬]+) ¬ ([^\{\}\;\#]+) [\{\;]", + lambda x : list.add_function_declaration( + decode(x.group(1)), decode(x.group(2)))) + + # cut per-file comment block + found = m(text, r"(?sx) [/][*]+(?=\s) ([^¬]+) ¬ " + r"(?:\s*\#define\s*\S+)*" + r"(\s*\#include\s*<[^<>]*>(?:\s*//[^\n]*)?)") + if found: + file.comment = decode(found.group(1)) + file.include = cdata31(found.group(2)) + else: + file.comment = None + file.include = None + found = m(text, r"(?sx) ^ [/][*]+(?=\s) ([^¬]+) ¬ ") + if found: + file.comment = decode(found.group(1)) + #fi + # throw away the rest - further processing on memorized strings only + + return None + +all = InputFiles() +scan_options (sys.argv[1:], all) + +if not o.docbookfile: + o.docbookfile = o.package+o.suffix+".docbook" +if not o.libhtmlfile: + o.libhtmlfile = o.package+o.suffix+".html" +if not o.dumpdocfile: + o.dumpdocfile = o.package+o.suffix+".dxml" + +# ........................................................................... +# check out information in the file.comment section + +def all_files_comment2section(list): + for file in list: + if file.comment is None: continue + file.section = file_comment2section(file.comment) + + file.section = s( + file.section, r"(?sx) \b[Aa]uthor\s*:(.*</email>) ", lambda x + : "<author>" + file.set_author(x.group(1)) + "</author>") + file.section = s( + file.section, r"(?sx) \b[Cc]opyright\s*:([^<>]*)</para> ",lambda x + : "<copyright>" + file.set_copyright(x.group(1)) + "</copyright>") + # if "file" in file.name: print >> sys.stderr, file.comment # 2.3 + #od +all_files_comment2section(all.files) + +# ----------------------------------------------------------------------- + +class Function: + " <prespec>void* </><namespec>hello</><namespec> (int) const</callspec> " + def __init__(self): + self.prespec = "" + self.namespec = "" + self.callspec = "" + self.name = "" +# def set(self, **defines): +# name = defines.keys()[0] +# self.__dict__[name] = defines[name] +# return defines[name] +# def cut(self, **defines): +# name = defines.keys()[0] +# self.__dict__[name] += defines[name] +# return "" + def __getattr__(self, name): + """ defend against program exit on members being not inited """ + if self.__dict__.has_key(name): return self.__dict__[name] + warn("no such member: "+name); return None + def dict(self): + return self.__dict__ + def dict_sorted_keys(self): + keys = self.__dict__.keys() + keys.sort() + return keys + def parse(self, prototype): + found = m(prototype, r"(?sx) ^(.*[^.]) \b(\w[\w.]*\w)\b (\s*\(.*) $ ") + if found: + self.prespec = found.group(1).lstrip() + self.namespec = found.group(2) + self.callspec = found.group(3).lstrip() + self.name = self.namespec.strip() + return self.name + return None + +# pass 1 of per-func strings ............................................... +# (a) cut prototype into prespec/namespec/callspec +# (b) cut out first line of comment as headline information +# (c) sanitize rest of comment block into proper docbook formatted .body +# +# do this while copying strings from all.funcs to function_list +# and remember the original order in name_list + +def markup_callspec(text): + return ( + s(s(s(s(s(text, + r"(?sx) ^([^\(\)]*)\(", r"\1<parameters>(<paramdef>",1), + r"(?sx) \)([^\(\)]*)$", r"</paramdef>)</parameters>\1",1), + r"(?sx) , ", r"</paramdef>,<paramdef>"), + r"(?sx) <paramdef>(\s+) ", r"\1<paramdef>"), + r"(?sx) (\s+)</paramdef>", r"</paramdef>\1")) + +def parse_all_functions(func_list): # list of FunctionDeclarations + """ parse all FunctionDeclarations and create a list of Functions """ + list = [] + for func in all.funcs: + function = Function() + if not function.parse (func.prototype): continue + + list.append(function) + + function.body = markup_link_syntax(func.comment) + if "\n" not in function.body: # single-line comment is the head + function.head = function.body + function.body = "" + else: # cut comment in first-line and only keep the rest as descr body + function.head = s(function.body, r"(?sx) ^([^\n]*\n).*",r"\1",1) + function.body = s(function.body, r"(?sx) ^[^\n]*\n", r"", 1) + #fi + if m(function.head, r"(?sx) ^\s*$ "): # empty head line, autofill here + function.head = s("("+func.file.name+")", r"[.][.][/]", r"") + + function.body = func_comment2section(function.body) + function.src = func # keep a back reference + + # add extra docbook markups to callspec in $fn-hash + function.callspec = markup_callspec (function.callspec) + #od + return list +function_list = parse_all_functions(all.funcs) + +def examine_head_anchors(func_list): + """ .into tells later steps which func-name is the leader of a man + page and that this func should add its descriptions over there. """ + for function in func_list: + function.into = None + function.seealso = None + + found = m(function.head, r"(?sx) ^ \s* <link>(\w[\w.]*\w)<\/link>") + # if found and found.group(1) in func_list.names: + if found and found.group(1): + function.into = found.group(1) + + def set_seealso(f, value): + f.seealso = value + return value + function.head = s(function.head, r"(.*)also:(.*)", lambda x + : set_seealso(function, x.group(2)) and x.group(1)) + if function.seealso and None: + print "function[",function.name,"].seealso=",function.seealso +examine_head_anchors(function_list) + +# =============================================================== HTML ===== + +def find_by_name(func_list, name): + for func in func_list: + if func.name == name: + return func + #od + return None +#fu + +class HtmlFunction: + def __init__(self, func): + self.src = func.src + self.into = func.into + self.name = func.name + self.toc_line = paramdef2html( + " <td valign=\"top\"><code>"+func.prespec+"</code></td>\n"+ + " <td valign=\"top\"> </td>\n"+ + " <td valign=\"top\"><a href=\"#"+func.name+"\">\n"+ + " <code>"+func.namespec+"</code>"+ + " </a></td>\n"+ + " <td valign=\"top\"> </td>\n"+ + " <td valign=\"top\">"+func.callspec+"</td>\n") + self.synopsis = paramdef2html( + " <code>"+func.prespec+"</code>\n"+ + " <br /><b><code>"+func.namespec+"</code></b>\n"+ + " <code>"+func.callspec+"</code>\n") + self.anchor = "<a name=\""+func.name+"\" />" + self.section = "<para><em> "+func.head+"\n"+ \ + "\n</em></para>"+section2html(func.body) +#class + +class HtmlFunctionFamily(HtmlFunction): + def __init__(page, func): + HtmlFunction.__init__(page, func) + page.toc_line_list = [ page.toc_line ] + # page.html_txt = page.synopsis + page.synopsis_list = [ page.synopsis ] + page.anchor_list = [ page.anchor ] + page.section_list = [ this_function_link(page.section, func.name) ] + +def ensure_name(text, name): + adds = "<small><code>"+name+"</code></small> -" + match = r"(?sx) .*>[^<>]*\b" + name + r"\b[^<>]*<.*" + found = m(text, match) + if found: return text + found = m(text, r".*<p(ara)?>.*") + if found: return s(text, r"(<p(ara)?>)", r"\1"+adds, 1) + return adds+text + +def combined_html_pages(func_list): + """ and now add descriptions of non-leader entries (html-mode) """ + combined = {} + + for func in func_list: # assemble leader pages + if func.into is not None: continue + combined[func.name] = HtmlFunctionFamily(func) + + for func in func_list: + if func.into is None: continue + if func.into not in combined : + warn(#......... (combine_html_pages) .............. + "function '"+func.name+"'s into => '"+func.into+ + "\n: no such target function: "+func.into) + combined[func.name] = HtmlFunctionFamily(func) + continue + #fi + page = HtmlFunction(func) + into = combined[func.into] + into.toc_line_list.append( page.toc_line ) + into.anchor_list.append( page.anchor ) + into.synopsis_list.append( page.synopsis ) + into.section_list.append( + s(ensure_name(this_function_link(section2html( func.body ), + func.name), func.name), + r"(?sx) (</?para>\s*) <br\s*\/>", r"\1")) + return combined.values() +html_pages = combined_html_pages(function_list) + +def html_resolve_links_on_page(text, list): + """ link ref-names of a page with its endpoint on the same html page""" + def html_link (name , extra): + """ make <link>s to <href> of correct target or make it <code> """ + if find_by_name(list, name) is None: + return "<code>"+name+extra+"</code>" + else: + return "<a href=\"#"+name+"\"><code>"+name+extra+"</code></a>" + #fu html_link + return s(s(text, r"(?sx) <link>(\w+)([^<>]*)<\/link> ", + lambda x : html_link(x.group(1),x.group(2))), + r"(?sx) \-\> ", r"<small>-></small>") # just sanitize.. +#fu html_resolve_links + +class HtmlPage: + def __init__(self): + self.toc = "" + self.txt = "" + self.package = o.package + self.version = o.version + def page_text(self): + """ render .toc and .txt parts into proper <html> page """ + T = "" + T += "<html><head>" + T += "<title>"+self.package+"autodoc documentation </title>" + T += "</head>\n<body>\n" + T += "\n<h1>"+self.package+" <small><small><i>- "+self.version + T += "</i></small></small></h1>" + T += "\n<table border=0 cellspacing=2 cellpadding=0>" + T += self.toc + T += "\n</table>" + T += "\n<h3>Documentation</h3>\n\n<dl>" + T += html_resolve_links_on_page(self.txt, function_list) + T += "\n</dl>\n</body></html>\n" + return T + def add_page_map(self, list): + """ generate the index-block at the start of the onepage-html file """ + keys = list.keys() + keys.sort() + for name in keys: + self.toc += "<tr valign=\"top\">\n"+ \ + "\n</tr><tr valign=\"top\">\n".join( + list[name].toc_line_list)+"</tr>\n" + self.txt += "\n<dt>"+" ".join(list[name].anchor_list) + self.txt += "\n"+"\n<br />".join(list[name].synopsis_list)+"<dt>" + self.txt += "\n<dd>\n"+"\n".join(list[name].section_list) + self.txt += ("\n<p align=\"right\">"+ + "<small>("+list[name].src.file.name+")</small>"+ + "</p></dd>") + def add_page_list(self, functions): + """ generate the index-block at the start of the onepage-html file """ + mapp = {} + for func in functions: + mapp[func.name] = func + #od + self.add_page_map(mapp) +#end + +html = HtmlPage() +# html.add_function_dict(Fn) +# html.add_function_list(Fn.sort.values()) +html.add_page_list(html_pages) + +# and finally print the html-formatted output +try: + F = open(o.libhtmlfile, "w") +except IOError, error: + warn(# ............. open(o.libhtmlfile, "w") .............. + "can not open html output file: "+o.libhtmlfile, error) +else: + print >> F, html.page_text() + F.close() +#fi + +# ========================================================== DOCBOOK ===== +# let's go for the pure docbook, a reference type master for all man pages + +class RefPage: + def __init__(self, func): + """ initialize the fields needed for a man page entry - the fields are + named after the docbook-markup that encloses (!!) the text we store + the entries like X.refhint = "hello" will be printed therefore as + <refhint>hello</refhint>. Names with underscores are only used as + temporaries but they are memorized, perhaps for later usage. """ + self.refhint = "\n<!--========= "+func.name+" (3) ===========-->\n" + self.refentry = None + self.refentry_date = o.version.strip() # //refentryinfo/date + self.refentry_productname = o.package.strip() # //refentryinfo/prod* + self.refentry_title = None # //refentryinfo/title + self.refentryinfo = None # override + self.manvolnum = "3" # //refmeta/manvolnum + self.refentrytitle = None # //refmeta/refentrytitle + self.refmeta = None # override + self.refpurpose = None # //refnamediv/refpurpose + self.refname = None # //refnamediv/refname + self.refname_list = [] + self.refnamediv = None # override + self.mainheader = func.src.file.mainheader + self.includes = func.src.file.include + self.funcsynopsisinfo = "" # //funcsynopsisdiv/funcsynopsisinfo + self.funcsynopsis = None # //funcsynopsisdiv/funcsynopsis + self.funcsynopsis_list = [] + self.description = None + self.description_list = [] + # optional sections + self.authors_list = [] # //sect1[authors]/listitem + self.authors = None # override + self.copyright = None + self.copyright_list = [] + self.seealso = None + self.seealso_list = [] + if func.seealso: + self.seealso_list.append(func.seealso) + # func.func references + self.func = func + self.file_authors = None + if func.src.file.authors: + self.file_authors = func.src.file.authors + self.file_copyright = None + if func.src.file.copyright: + self.file_copyright = func.src.file.copyright + #fu + def refentryinfo_text(page): + """ the manvol formatter wants to render a footer line and header line + on each manpage and such info is set in <refentryinfo> """ + if page.refentryinfo: + return page.refentryinfo + if page.refentry_date and \ + page.refentry_productname and \ + page.refentry_title: return ( + "\n <date>"+page.refentry_date+"</date>"+ + "\n <productname>"+page.refentry_productname+"</productname>"+ + "\n <title>"+page.refentry_title+"</title>") + if page.refentry_date and \ + page.refentry_productname: return ( + "\n <date>"+page.refentry_date+"</date>"+ + "\n <productname>"+page.refentry_productname+"</productname>") + return "" + def refmeta_text(page): + """ the manvol formatter needs to know the filename of the manpage to + be made up and these parts are set in <refmeta> actually """ + if page.refmeta: + return page.refmeta + if page.manvolnum and page.refentrytitle: + return ( + "\n <refentrytitle>"+page.refentrytitle+"</refentrytitle>"+ + "\n <manvolnum>"+page.manvolnum+"</manvolnum>") + if page.manvolnum and page.func.name: + return ( + "\n <refentrytitle>"+page.func.name+"</refentrytitle>"+ + "\n <manvolnum>"+page.manvolnum+"</manvolnum>") + return "" + def refnamediv_text(page): + """ the manvol formatter prints a header line with a <refpurpose> line + and <refname>'d functions that are described later. For each of + the <refname>s listed here, a mangpage is generated, and for each + of the <refname>!=<refentrytitle> then a symlink is created """ + if page.refnamediv: + return page.refnamediv + if page.refpurpose and page.refname: + return ("\n <refname>"+page.refname+'</refname>'+ + "\n <refpurpose>"+page.refpurpose+" </refpurpose>") + if page.refpurpose and page.refname_list: + T = "" + for refname in page.refname_list: + T += "\n <refname>"+refname+'</refname>' + T += "\n <refpurpose>"+page.refpurpose+" </refpurpose>" + return T + return "" + def funcsynopsisdiv_text(page): + """ refsynopsisdiv shall be between the manvol mangemaent information + and the reference page description blocks """ + T="" + if page.funcsynopsis: + T += "\n<funcsynopsis>" + if page.funcsynopsisinfo: + T += "\n<funcsynopsisinfo>"+ page.funcsynopsisinfo + \ + "\n</funcsynopsisinfo>\n" + T += page.funcsynopsis + \ + "\n</funcsynopsis>\n" + if page.funcsynopsis_list: + T += "\n<funcsynopsis>" + if page.funcsynopsisinfo: + T += "\n<funcsynopsisinfo>"+ page.funcsynopsisinfo + \ + "\n</funcsynopsisinfo>\n" + for funcsynopsis in page.funcsynopsis_list: + T += funcsynopsis + T += "\n</funcsynopsis>\n" + #fi + return T + def description_text(page): + """ the description section on a manpage is the main part. Here + it is generated from the per-function comment area. """ + if page.description: + return page.description + if page.description_list: + T = "" + for description in page.description_list: + if not description: continue + T += description + if T: return T + return "" + def authors_text(page): + """ part of the footer sections on a manpage and a description of + original authors. We prever an itimizedlist to let the manvol + show a nice vertical aligment of authors of this ref item """ + if page.authors: + return page.authors + if page.authors_list: + T = "<itemizedlist>" + previous="" + for authors in page.authors_list: + if not authors: continue + if previous == authors: continue + T += "\n <listitem><para>"+authors+"</para></listitem>" + previous = authors + T += "</itemizedlist>" + return T + if page.authors: + return page.authors + return "" + def copyright_text(page): + """ the copyright section is almost last on a manpage and purely + optional. We list the part of the per-file copyright info """ + if page.copyright: + return page.copyright + """ we only return the first valid instead of merging them """ + if page.copyright_list: + T = "" + for copyright in page.copyright_list: + if not copyright: continue + return copyright # !!! + return "" + def seealso_text(page): + """ the last section on a manpage is called 'SEE ALSO' usally and + contains a comma-separated list of references. Some manpage + viewers can parse these and convert them into hyperlinks """ + if page.seealso: + return page.seealso + if page.seealso_list: + T = "" + for seealso in page.seealso_list: + if not seealso: continue + if T: T += ", " + T += seealso + if T: return T + return "" + def refentry_text(page, id=None): + """ combine fields into a proper docbook refentry """ + if id is None: + id = page.refentry + if id: + T = '<refentry id="'+id+'">' + else: + T = '<refentry>' # this is an error + + if page.refentryinfo_text(): + T += "\n<refentryinfo>"+ page.refentryinfo_text()+ \ + "\n</refentryinfo>\n" + if page.refmeta_text(): + T += "\n<refmeta>"+ page.refmeta_text() + \ + "\n</refmeta>\n" + if page.refnamediv_text(): + T += "\n<refnamediv>"+ page.refnamediv_text() + \ + "\n</refnamediv>\n" + if page.funcsynopsisdiv_text(): + T += "\n<refsynopsisdiv>\n"+ page.funcsynopsisdiv_text()+ \ + "\n</refsynopsisdiv>\n" + if page.description_text(): + T += "\n<refsect1><title>Description</title> " + \ + page.description_text() + "\n</refsect1>" + if page.authors_text(): + T += "\n<refsect1><title>Author</title> " + \ + page.authors_text() + "\n</refsect1>" + if page.copyright_text(): + T += "\n<refsect1><title>Copyright</title> " + \ + page.copyright_text() + "\n</refsect1>\n" + if page.seealso_text(): + T += "\n<refsect1><title>See Also</title><para> " + \ + page.seealso_text() + "\n</para></refsect1>\n" + + T += "\n</refentry>\n" + return T + #fu +#end + +# ----------------------------------------------------------------------- +class FunctionRefPage(RefPage): + def reinit(page): + """ here we parse the input function for its values """ + if page.func.into: + page.refhint = "\n <!-- see "+page.func.into+" -->\n" + #fi + page.refentry = page.func.name # //refentry@id + page.refentry_title = page.func.name.strip() # //refentryinfo/title + page.refentrytitle = page.func.name # //refmeta/refentrytitle + if page.includes: + page.funcsynopsisinfo += "\n"+page.includes + if not page.funcsynopsisinfo: + page.funcsynopsisinfo="\n"+' #include <'+page.mainheader+'>' + page.refpurpose = page.func.head + page.refname = page.func.name + + def funcsynopsis_of(func): + return ( + "\n <funcprototype>\n <funcdef>"+func.prespec+ + " <function>"+func.name+"</function></funcdef>"+ + "\n"+s(s(s(func.callspec, + r"<parameters>\s*\(",r" "), + r"\)\s*</parameters>",r" "), + r"</paramdef>\s*,\s*",r"</paramdef>\n ")+ + " </funcprototype>") + page.funcsynopsis = funcsynopsis_of(page.func) + + page.description = ( + html2docbook(this_function_link(page.func.body, page.func.name))) + + if page.file_authors: + def add_authors(page, ename, email): + page.authors_list.append( ename+' '+email ) + return ename+email + s(page.file_authors, + r"(?sx) \s* ([^<>]*) (<email>[^<>]*</email>) ", lambda x + : add_authors(page, x.group(1), x.group(2))) + #fi + + if page.file_copyright: + page.copyright = "<screen>\n"+page.file_copyright+"</screen>\n" + #fi + return page + def __init__(page,func): + RefPage.__init__(page, func) + FunctionRefPage.reinit(page) + +def refpage_list_from_function_list(funclist): + list = [] + mapp = {} + for func in funclist: + mapp[func.name] = func + #od + for func in funclist: + page = FunctionRefPage(func) + if func.into and func.into not in mapp: + warn (# ............ (refpage_list_from_function_list) ....... + "page '"+page.func.name+"' has no target => "+ + "'"+page.func.into+"'" + "\n: going to reset .into of Function '"+page.func.name+"'") + func.into = None + #fi + list.append(FunctionRefPage(func)) + return list +#fu + +# ordered list of pages +refpage_list = refpage_list_from_function_list(function_list) + +class FunctionFamilyRefPage(RefPage): + def __init__(self, page): + RefPage.__init__(self, page.func) + self.seealso_list = [] # reset + self.refhint_list = [] + def refhint_list_text(page): + T = "" + for hint in page.refhint_list: + T += hint + return T + def refentry_text(page): + return page.refhint_list_text() + "\n" + \ + RefPage.refentry_text(page) + pass + +def docbook_pages_recombine(pagelist): + """ take a list of RefPages and create a new list where sections are + recombined in a way that their description is listed on the same + page and the manvol formatter creates symlinks to the combined + function description page - use the attribute 'into' to guide the + processing here as each of these will be removed from the output + list. If no into-pages are there then the returned list should + render to the very same output text like the input list would do """ + + list = [] + combined = {} + for orig in pagelist: + if orig.func.into: continue + page = FunctionFamilyRefPage(orig) + combined[orig.func.name] = page ; list.append(page) + + page.refentry = orig.refentry # //refentry@id + page.refentry_title = orig.refentrytitle # //refentryinfo/title + page.refentrytitle = orig.refentrytitle # //refmeta/refentrytitle + page.includes = orig.includes + page.funcsynopsisinfo = orig.funcsynopsisinfo + page.refpurpose = orig.refpurpose + if orig.refhint: + page.refhint_list.append( orig.refhint ) + if orig.refname: + page.refname_list.append( orig.refname ) + elif orig.refname_list: + page.refname_list.extend( orig.refname_list ) + if orig.funcsynopsis: + page.funcsynopsis_list.append( orig.funcsynopsis ) + elif orig.refname_list: + page.funcsynopsis_list.extend( orig.funcsynopsis_list ) + if orig.description: + page.description_list.append( orig.description ) + elif orig.refname_list: + page.description_list.extend( orig.description_list ) + if orig.seealso: + page.seealso_list.append( orig.seealso ) + elif orig.seealso_list: + page.seealso_list.extend( orig.seealso_list ) + if orig.authors: + page.authors_list.append( orig.authors ) + elif orig.authors_list: + page.authors_list.extend( orig.authors_list ) + if orig.copyright: + page.copyright_list.append( orig.copyright ) + elif orig.refname_list: + page.copyright_list.extend( orig.copyright_list ) + #od + for orig in pagelist: + if not orig.func.into: continue + if orig.func.into not in combined: + warn("page for '"+orig.func.name+ + "' has no target => '"+orig.func.into+"'") + page = FunctionFamilyRefPage(orig) + else: + page = combined[orig.func.into] + + if orig.refname: + page.refname_list.append( orig.refname ) + elif orig.refname_list: + page.refname_list.extend( orig.refname_list ) + if orig.funcsynopsis: + page.funcsynopsis_list.append( orig.funcsynopsis ) + elif orig.refname_list: + page.funcsynopsis_list.extend( orig.funcsynopsis_list ) + if orig.description: + page.description_list.append( orig.description ) + elif orig.refname_list: + page.description_list.extend( orig.description_list ) + if orig.seealso: + page.seealso_list.append( orig.seealso ) + elif orig.seealso_list: + page.seealso_list.extend( orig.seealso_list ) + if orig.authors: + page.authors_list.append( orig.authors ) + elif orig.authors_list: + page.authors_list.extend( orig.authors_list ) + if orig.copyright: + page.copyright_list.append( orig.copyright ) + elif orig.refname_list: + page.copyright_list.extend( orig.copyright_list ) + #od + return list +#fu + +combined_pages = docbook_pages_recombine(pagelist = refpage_list) + +# ----------------------------------------------------------------------- + +class HeaderRefPage(RefPage): + pass + +def docbook_refpages_perheader(page_list): # headerlist + " creating the per-header manpage - a combination of function man pages " + header = {} + for page in page_list: + assert not page.func.into + file = page.func.src.file.mainheader # short for the mainheader index + if file not in header: + header[file] = HeaderRefPage(page.func) + header[file].id = s(file, r"[^\w\.]","-") + header[file].refentry = header[file].id + header[file].refentryinfo = None + header[file].refentry_date = page.refentry_date + header[file].refentry_productname = ( + "the library "+page.refentry_productname) + header[file].manvolnum = page.manvolnum + header[file].refentrytitle = file + header[file].funcsynopsis = "" + if 1: # or += or if not header[file].refnamediv: + header[file].refpurpose = " library " + header[file].refname = header[file].id + + if not header[file].funcsynopsisinfo and page.funcsynopsisinfo: + header[file].funcsynopsisinfo = page.funcsynopsisinfo + if page.funcsynopsis: + header[file].funcsynopsis += "\n"+page.funcsynopsis + if not header[file].copyright and page.copyright: + header[file].copyright = page.copyright + if not header[file].authors and page.authors: + header[file].authors = page.authors + if not header[file].authors and page.authors_list: + header[file].authors_list = page.authors_list + if not header[file].description: + found = m(commands.getoutput("cat "+o.package+".spec"), + r"(?s)\%description\b([^\%]*)\%") + if found: + header[file].description = found.group(1) + elif not header[file].description: + header[file].description = "<para>" + ( + page.refentry_productname + " library") + "</para>"; + #fi + #fi + #od + return header#list +#fu + +def leaders(pagelist): + list = [] + for page in pagelist: + if page.func.into : continue + list.append(page) + return list +header_refpages = docbook_refpages_perheader(leaders(refpage_list)) + +# ----------------------------------------------------------------------- +# printing the docbook file is a two-phase process - we spit out the +# leader pages first - later we add more pages with _refstart pointing +# to the leader page, so that xmlto will add the functions there. Only the +# leader page contains some extra info needed for troff page processing. + +doctype = '<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"' +doctype += "\n " +doctype += '"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">'+"\n" + +try: + F = open(o.docbookfile,"w") +except IOError, error: + warn("can not open docbook output file: "+o.docbookfile, error) +else: + print >> F, doctype, '<reference><title>Manual Pages</title>' + + for page in combined_pages: + print >> F, page.refentry_text() + #od + + for page in header_refpages.values(): + if not page.refentry: continue + print >> F, "\n<!-- _______ "+page.id+" _______ -->", + print >> F, page.refentry_text() + #od + + print >> F, "\n",'</reference>',"\n" + F.close() +#fi + +# _____________________________________________________________________ +try: + F = open( o.dumpdocfile, "w") +except IOError, error: + warn ("can not open"+o.dumpdocfile,error) +else: + for func in function_list: + name = func.name + print >> F, "<fn id=\""+name+"\">"+"<!-- FOR \""+name+"\" -->\n" + for H in sorted_keys(func.dict()): + print >> F, "<"+H+" name=\""+name+"\">", + print >> F, str(func.dict()[H]), + print >> F, "</"+H+">" + #od + print >> F, "</fn><!-- END \""+name+"\" -->\n\n"; + #od + F.close(); +#fi + +if errors: sys.exit(errors) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/makedocs.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/makedocs.py new file mode 100644 index 00000000000..1bc8f885e79 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/makedocs.py @@ -0,0 +1,323 @@ +import sys +from zzipdoc.match import * +from zzipdoc.options import * +from zzipdoc.textfile import * +from zzipdoc.textfileheader import * +from zzipdoc.functionheader import * +from zzipdoc.functionprototype import * +from zzipdoc.commentmarkup import * +from zzipdoc.functionlisthtmlpage import * +from zzipdoc.functionlistreference import * +from zzipdoc.dbk2htm import * +from zzipdoc.htmldocument import * +from zzipdoc.docbookdocument import * + +def _src_to_xml(text): + return text.replace("&", "&").replace("<", "<").replace(">", ">") +def _email_to_xml(text): + return text & Match("<([^<>]*@[^<>]*)>") >> "<\\1>" + +class PerFileEntry: + def __init__(self, header, comment): + self.textfileheader = header + self.filecomment = comment +class PerFile: + def __init__(self): + self.textfileheaders = [] + self.filecomments = [] + self.entries = [] + def add(self, textfileheader, filecomment): + self.textfileheaders += [ textfileheader ] + self.filecomments += [ filecomment ] + self.entries += [ PerFileEntry(textfileheader, filecomment) ] + def where_filename(self, filename): + for entry in self.entries: + if entry.textfileheader.get_filename() == filename: + return entry + return None + def print_list_mainheader(self): + for t_fileheader in self.headers: + print t_fileheader.get_filename(), t_fileheader.src_mainheader() + +class PerFunctionEntry: + def __init__(self, header, comment, prototype): + self.header = header + self.comment = comment + self.prototype = prototype + def get_name(self): + return self.prototype.get_name() + def get_titleline(self): + return self.header.get_titleline() + def get_head(self): + return self.prototype + def get_body(self): + return self.comment +class PerFunction: + def __init__(self): + self.headers = [] + self.comments = [] + self.prototypes = [] + self.entries = [] + def add(self, functionheader, functioncomment, functionprototype): + self.headers += [ functionheader ] + self.comments += [ functionprototype ] + self.prototypes += [ functionprototype ] + self.entries += [ PerFunctionEntry(functionheader, functioncomment, + functionprototype) ] + def print_list_titleline(self): + for funcheader in self.headers: + print funcheader.get_filename(), "[=>]", funcheader.get_titleline() + def print_list_name(self): + for funcheader in self.prototypes: + print funcheader.get_filename(), "[>>]", funcheader.get_name() + +class PerFunctionFamilyEntry: + def __init__(self, leader): + self.leader = leader + self.functions = [] + def contains(self, func): + for item in self.functions: + if item == func: return True + return False + def add(self, func): + if not self.contains(func): + self.functions += [ func ] + def get_name(self): + if self.leader is None: return None + return self.leader.get_name() +class PerFunctionFamily: + def __init__(self): + self.functions = [] + self.families = [] + self.retarget = {} + self.entries = [] + def add_PerFunction(self, per_list): + for item in per_list.entries: + add_PerFunctionEntry(item) + def add_PerFunctionEntry(self, item): + self.functions += [ item ] + def get_function(self, name): + for item in self.functions: + if item.get_name() == name: + return item + return None + def get_entry(self, name): + for item in self.entries: + if item.get_name() == name: + return item + return None + def fill_families(self): + name_list = {} + for func in self.functions: + name = func.get_name() + name_list[name] = func + for func in self.functions: + name = func.get_name() + line = func.get_titleline() + is_retarget = Match("=>\s*(\w+)") + if line & is_retarget: + into = is_retarget[1] + self.retarget[name] = is_retarget[1] + lead_list = [] + for name in self.retarget: + into = self.retarget[name] + if into not in name_list: + print ("function '"+name+"' retarget into '"+into+ + "' does not exist - keep alone") + if into in self.retarget: + other = self.retarget[into] + print ("function '"+name+"' retarget into '"+into+ + "' which is itself a retarget into '"+other+"'") + if into not in lead_list: + lead_list += [ into ] + for func in self.functions: + name = func.get_name() + if name not in lead_list and name not in self.retarget: + lead_list += [ name ] + for name in lead_list: + func = self.get_function(name) + if func is not None: + entry = PerFunctionFamilyEntry(func) + entry.add(func) # the first + self.entries += [ entry ] + else: + print "head function '"+name+" has no entry" + for func in self.functions: + name = func.get_name() + if name in self.retarget: + into = self.retarget[name] + entry = self.get_entry(into) + if entry is not None: + entry.add(func) # will not add duplicates + else: + print "into function '"+name+" has no entry" + def print_list_name(self): + for family in self.entries: + name = family.get_name() + print name, ":", + for item in family.functions: + print item.get_name(), ",", + print "" +class HtmlManualPageAdapter: + def __init__(self, entry): + """ usually takes a PerFunctionEntry """ + self.entry = entry + def get_name(self): + return self.entry.get_name() + def _head(self): + return self.entry.get_head() + def _body(self): + return self.entry.get_body() + def head_xml_text(self): + return self._head().xml_text() + def body_xml_text(self, name): + return self._body().xml_text(name) + def head_get_prespec(self): + return self._head().get_prespec() + def head_get_namespec(self): + return self._head().get_namespec() + def head_get_callspec(self): + return self._head().get_callspec() + def get_title(self): + return self._body().header.get_title() + def get_filename(self): + return self._body().header.get_filename() + def src_mainheader(self): + return self._body().header.parent.textfile.src_mainheader() + def get_mainheader(self): + return _src_to_xml(self.src_mainheader()) +class RefEntryManualPageAdapter: + def __init__(self, entry, per_file = None): + """ usually takes a PerFunctionEntry """ + self.entry = entry + self.per_file = per_file + def get_name(self): + return self.entry.get_name() + def _head(self): + return self.entry.get_head() + def _body(self): + return self.entry.get_body() + def _textfile(self): + return self._body().header.parent.textfile + def head_xml_text(self): + return self._head().xml_text() + def body_xml_text(self, name): + return self._body().xml_text(name) + def get_title(self): + return self._body().header.get_title() + def get_filename(self): + return self._body().header.get_filename() + def src_mainheader(self): + return self._textfile().src_mainheader() + def get_mainheader(self): + return _src_to_xml(self.src_mainheader()) + def get_includes(self): + return "" + def list_seealso(self): + return self._body().header.get_alsolist() + def get_authors(self): + comment = None + if self.per_file: + entry = self.per_file.where_filename(self.get_filename()) + if entry: + comment = entry.filecomment.xml_text() + if comment: + check = Match(r"(?s)<para>\s*[Aa]uthors*\b:*" + r"((?:.(?!</para>))*.)</para>") + if comment & check: return _email_to_xml(check[1]) + return None + def get_copyright(self): + comment = None + if self.per_file: + entry = self.per_file.where_filename(self.get_filename()) + if entry: + comment = entry.filecomment.xml_text() + if comment: + check = Match(r"(?s)<para>\s*[Cc]opyright\b" + r"((?:.(?!</para>))*.)</para>") + if comment & check: return _email_to_xml(check[0]) + return None + +def makedocs(filenames, o): + textfiles = [] + for filename in filenames: + textfile = TextFile(filename) + textfile.parse() + textfiles += [ textfile ] + per_file = PerFile() + for textfile in textfiles: + textfileheader = TextFileHeader(textfile) + textfileheader.parse() + filecomment = CommentMarkup(textfileheader) + filecomment.parse() + per_file.add(textfileheader, filecomment) + funcheaders = [] + for textfile in per_file.textfileheaders: + funcheader = FunctionHeaderList(textfile) + funcheader.parse() + funcheaders += [ funcheader ] + per_function = PerFunction() + for funcheader in funcheaders: + for child in funcheader.get_children(): + funcprototype = FunctionPrototype(child) + funcprototype.parse() + funccomment = CommentMarkup(child) + funccomment.parse() + per_function.add(child, funccomment, funcprototype) + per_family = PerFunctionFamily() + for item in per_function.entries: + per_family.add_PerFunctionEntry(item) + per_family.fill_families() + # debug output.... + # per_file.print_list_mainheader() + # per_function.print_list_titleline() + # per_function.print_list_name() + # per_family.print_list_name() + # + html = FunctionListHtmlPage(o) + for item in per_family.entries: + for func in item.functions: + func_adapter = HtmlManualPageAdapter(func) + if o.onlymainheader and not (Match("<"+o.onlymainheader+">") + & func_adapter.src_mainheader()): + continue + html.add(func_adapter) + html.cut() + html.cut() + class _Html_: + def __init__(self, html): + self.html = html + def html_text(self): + return section2html(paramdef2html(self.html.xml_text())) + def get_title(self): + return self.html.get_title() + HtmlDocument(o).add(_Html_(html)).save(o.output+o.suffix) + # + man3 = FunctionListReference(o) + for item in per_family.entries: + for func in item.functions: + func_adapter = RefEntryManualPageAdapter(func, per_file) + if o.onlymainheader and not (Match("<"+o.onlymainheader+">") + & func_adapter.src_mainheader()): + continue + man3.add(func_adapter) + man3.cut() + man3.cut() + DocbookDocument(o).add(man3).save(o.output+o.suffix) + + +if __name__ == "__main__": + filenames = [] + o = Options() + o.package = "ZZipLib" + o.program = sys.argv[0] + o.html = "html" + o.docbook = "docbook" + o.output = "zziplib" + o.suffix = "" + for item in sys.argv[1:]: + if o.scan(item): continue + filenames += [ item ] + makedocs(filenames, o) + + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/memdisk.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/memdisk.htm new file mode 100644 index 00000000000..d5d25c9952d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/memdisk.htm @@ -0,0 +1,116 @@ +<section> <date> 2005 </date> +<H2> zzip/memdisk </H2> zip cache for mmapped views + +<BLOCKQUOTE> + These routines are fully independent from the traditional zzip + implementation. They build on top of + <a href="mmapped.html">zzip/mmapped</a> that uses a readonly + mmapped sharedmem block. These functions add additional hints + how to parse extension blocks and how to cache the zip central + directory entries which does furthermore allow to convert them + to any host-local format as required. +</BLOCKQUOTE> + +<section> +<H3> zzip disk handle </H3> + +<P> + Other than with the <a href="fseeko.html">fseeko</a> alternative + interface there is no need to have an actual disk handle to the + zip archive. Instead you can use a bytewise copy of a file or + even use a mmapped view of a file. This is generally the fastest + way to get to the data contained in a zipped file. All it requires + is enough of virtual memory space but a desktop computer with a + a modern operating system will easily take care of that. +</P> + +<P> + The zzipmmapped library provides a number of calls to create a + disk handle representing a zip archive in virtual memory. Per + default we use the sys/mmap.h (or MappedView) functionality + of the operating system. See for more details in the + <a href="mmapped.html">zzip/mmapped</a> descriptions. +</P> +<P> + The zzip/memdisk extensions of zzip/mmapped are made to have a + very similar call API - therefore you will find again open and + close functions for filenames or filehandles. However the + direct mmap interface is not re-exported under the zzip_mem_disk + prefix (of the underlying zzip_disk prefix). The "_mem_" part + hints that the central directory of the underlying zzip_disk + is preparsed to a separate memory block. +<PRE> + ZZIP_MEM_DISK* zzip_mem_disk_open(char* filename); + ZZIP_MEM_DISK* zzip_mem_disk_fdopen(int fd); + void zzip_mem_disk_close(ZZIP_MEM_DISK* disk); + + int zzip_mem_disk_load (ZZIP_MEM_DISK* dir, ZZIP_DISK* disk); + void zzip_mem_disk_unload (ZZIP_MEM_DISK* dir); +</PRE> + The last two functions export some parts of the underlying + interface. It is possible to bind an existing ZZIP_MEM_DISK + handle with an arbitrary ZZIP_DISK handle. Upon calling "load" + the central directory will be loaded from the underlying zip + disk content and parsed to an internal mem block. The corresponding + "unload" function will trash that central directory cache but it + leaves the handles intact. +</P> + +</section><section> +<H3> reading the central directory </H3> + +<P> + All other zzip_mem_disk functions are simply re-exporting the + underlying zzip_disk functions. Note that the first field in + the ZZIP_MEM_DISK is a "ZZIP_DISK* disk" - the header file + zzip/memdisk.h will simply export inline functions where there + is no special zzip_mem_disk function. Therefore, whenever a + function call on a ZZIP_DISK handle is appropriate one can + also use its cousin for a ZZIP_MEM_DISK handle without any + penalties but future compatibility for extra functionality in + zzip/memdisk layer of the zzip/mmapped library. +</P> + +<P><small>Note: by default the re-exports are done with the help + of the C precompiler as precompiler macros. Using USE_INLINE + will force to make them real inlines. In the future that may + change in favor of a better autodetection for inline capabilities + of the compiler and/or using a standard cpp-define that enables + the C/C++ inline functions. The inline functions do have the + added value of having strongtyped arguments provoking more + readable warning messages in user application code.</small></P> + +<PRE> + inline ZZIP_DISK_ENTRY* +zzip_mem_disk_findfirst(ZZIP_MEM_DISK* dir); + inline ZZIP_DISK_ENTRY* +zzip_mem_disk_findnext(ZZIP_MEM_DISK* dir, ZZIP_DISK_ENTRY* entry); + inline char* _zzip_restrict +zzip_mem_disk_entry_strdup_name(ZZIP_MEM_DISK* dir, + ZZIP_DISK_ENTRY* entry); + inline struct zzip_file_header* +zzip_mem_disk_entry_to_file_header(ZZIP_MEM_DISK* dir, + ZZIP_DISK_ENTRY* entry); + inline char* +zzip_mem_disk_entry_to_data(ZZIP_MEM_DISK* dir, ZZIP_DISK_ENTRY* entry); + inline ZZIP_DISK_ENTRY* +zzip_mem_disk_findfile(ZZIP_MEM_DISK* dir, + char* filename, ZZIP_DISK_ENTRY* after, + zzip_strcmp_fn_t compare); + inline ZZIP_DISK_ENTRY* +zzip_mem_disk_findmatch(ZZIP_MEM_DISK* dir, + char* filespec, ZZIP_DISK_ENTRY* after, + zzip_fnmatch_fn_t compare, int flags); + inline ZZIP_DISK_FILE* _zzip_restrict +zzip_mem_disk_entry_fopen (ZZIP_MEM_DISK* dir, ZZIP_DISK_ENTRY* entry); + inline ZZIP_DISK_FILE* _zzip_restrict +zzip_mem_disk_fopen (ZZIP_MEM_DISK* dir, char* filename); + inline _zzip_size_t +zzip_mem_disk_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb, + ZZIP_DISK_FILE* file); + inline int +zzip_mem_disk_fclose (ZZIP_DISK_FILE* file); + inline int +zzip_mem_disk_feof (ZZIP_DISK_FILE* file); +</PRE> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/mksite.pl b/Build/source/libs/zziplib/zziplib-0.13.60/docs/mksite.pl new file mode 100644 index 00000000000..a463b3a9ce7 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/mksite.pl @@ -0,0 +1,2634 @@ +#! /usr/bin/perl +# this is the perl variant of the mksite script. It based directly on a +# copy of mksite.sh which is derived from snippets that I was using to +# finish doc pages for website publishing. Using only sh/sed along with +# files has a great disadvantage: it is a very slow process atleast. The +# perl language in contrast has highly optimized string, replace, search +# functions as well as data structures to store intermediate values. As +# an advantage large parts of the syntax are similar to the sh/sed variant. +# +# http://zziplib.sf.net/mksite/ +# THE MKSITE.SH (ZLIB/LIBPNG) LICENSE +# Copyright (c) 2004 Guido U. Draheim <guidod@gmx.de> +# This software is provided 'as-is', without any express or implied warranty +# In no event will the authors be held liable for any damages arising +# from the use of this software. +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute it +# freely, subject to the following restrictions: +# 1. The origin of this software must not be misrepresented; you must not +# claim that you wrote the original software. If you use this software +# in a product, an acknowledgment in the product documentation would be +# appreciated but is not required. +# 2. Altered source versions must be plainly marked as such, and must not +# be misrepresented as being the original software. +# 3. This notice may not be removed or altered from any source distribution. +# $Id: mksite.pl,v 1.2 2006-09-22 00:33:22 guidod Exp $ + +use strict; use warnings; no warnings "uninitialized"; +use File::Basename qw(basename); +use POSIX qw(strftime); + +# initialize some defaults +my $SITEFILE=""; +$SITEFILE="site.htm" if not $SITEFILE and -f "site.htm"; +$SITEFILE="site.html" if not $SITEFILE and -f "site.html"; +$SITEFILE="site.htm" if not $SITEFILE; +# my $MK="-mksite"; # note the "-" at the start +my $SED="sed"; + +my $DATA="~~"; # extension for meta data files +my $HEAD="~head~"; # extension for head sed script +my $BODY="~body~"; # extension for body sed script +my $FOOT="~foot~"; # append to body text (non sed) + +my $SED_LONGSCRIPT="$SED -f"; + +my $az="a-z"; # for perl +my $AZ="A-Z"; # we may assume there are +my $NN="0-9"; # char-ranges available +my $AA="_$NN$AZ$az"; # that makes the resulting +my $AX="$AA.+-"; # script more readable + +my $n = "\n"; +my $Q = "q class"; +my $QX = "/q"; + +# LANG="C" ; LANGUAGE="C" ; LC_COLLATE="C" # these are needed for proper +# export LANG LANGUAGE LC_COLLATE # lowercasing as some collate + # treat A-Z to include a-z + +my @HTMLTAGS = qw/a p h1 h2 h3 h4 h5 h6 dl dd dt ul ol li pre code + table tr td th b u i s q em strong strike cite big small sup sub tt + thead tbody center hr br nobr wbr span div img adress blockquote/; +my @HTMLTAGS2 = qw/html head body title meta http-equiv style link/; + +# ========================================================================== +my $hint=""; + +sub echo +{ + print join(" ",@_),$n; +} +sub error +{ + print STDERR "ERROR: ", join(" ",@_),$n; +} +sub warns +{ + print STDERR "WARN: ", join(" ",@_), $n; +} +sub hint +{ + print STDERR "NOTE: ", join(" ", @_), $n if $hint; +} +sub init +{ + $hint="1" if -d "DEBUG"; +} + +&init ("NOW!!!"); + +sub ls_s { + my $x=`ls -s @_`; + chomp($x); + return $x; +} + +# ========================================================================== +# reading options from the command line GETOPT +my %o = (); # to store option variables +$o{variables}="files"; +$o{fileseparator}="?"; +$o{files}=""; +$o{main_file}=""; +$o{formatter}="$0"; +my $opt=""; +for my $arg (@ARGV) { # this variant should allow to embed spaces in $arg + if ($opt) { + $o{$opt}=$arg; + $opt=""; + } else { + $_=$arg; + if (/^-.*=.*$/) { + $opt=$arg; $opt =~ s/-*([$AA][$AA-]*).*/$1/; $opt =~ y/-/_/; + if (not $opt) { + error "invalid option $arg"; + } else { + $arg =~ s/^[^=]*=//; + $o{$opt} = $arg; + $o{variables} .= " ".$opt; + } + $opt="";; + } elsif (/^-.*.-.*$/) { + $opt=$arg; $opt =~ s/-*([$AA][$AA-]*).*/$1/; $opt =~ y/-/_/; + if (not $opt) { + error "invalid option $arg"; + $opt=""; + } else { + # keep the option for next round + } ;; + } elsif (/^-.*/) { + $opt=$arg; $opt =~ s/^-*([$AA][$AA-]*).*/$1/; $opt =~ y/-/_/; + if (not $opt) { + error "invalid option $arg"; + } else { + $arg =~ s/^[^=]*=//; + $o{$opt} = ' '; + } + $opt="" ;; + } else { + hint "<$arg>"; + if (not $o{main_file}) { $o{main_file} = $arg; } else { + $o{files} .= $o{fileseparator} if $o{files}; + $o{files} .= $arg; }; + $opt="" ;; + }; + } +} ; if ($opt) { + $o{$opt}=" "; + $opt=""; + } + +### env | grep ^opt + +$SITEFILE=$o{main_file} if $o{main_file} and -f $o{main_file}; +$SITEFILE=$o{site_file} if $o{site_file} and -f $o{site_file}; +$hint="1" if $o{debug}; + +if ($o{help}) { + $_=$SITEFILE; + echo "$0 [sitefile]"; + echo " default sitefile = $_ ($o{main_file}) ($o{files})"; + echo "options:"; + echo " --filelist : show list of target files as ectracted from $_"; + echo " --src-dir xx : if source files are not where mksite is executed"; + echo " --tmp-dir xx : use temp instead of local directory"; + echo " --tmp : use automatic temp directory in \$TEMP/mksite.*"; + exit; + echo " internal:"; + echo "--fileseparator=x : for building the internal filelist (def. '?')"; + echo "--files xx : for list of additional files to be processed"; + echo "--main-file xx : for the main sitefile to take file list from"; +} + +if (not $SITEFILE) { + error "no SITEFILE found (default would be 'site.htm')$n"; + exit 1; +} else { + hint "sitefile: ", ls_s($SITEFILE); +} + +# we use internal hashes to store mappings - kind of relational tables +my @MK_TAGS= (); # "./$MK.tags.tmp" +my @MK_VARS= (); # "./$MK.vars.tmp" +my @MK_SPAN= (); # "./$MK.span.tmp" +my @MK_META= (); # "./$MK.meta.tmp" +my @MK_METT= (); # "./$MK.mett.tmp" +my @MK_TEST= (); # "./$MK.test.tmp" +my @MK_FAST= (); # "./$MK.fast.tmp" +my @MK_GETS= (); # "./$MK.gets.tmp" +my @MK_PUTS= (); # "./$MK.puts.tmp" +my @MK_OLDS= (); # "./$MK.olds.tmp" +my @MK_SITE= (); # "./$MK.site.tmp" +my @MK_SECT1= (); # "./$MK.sect1.tmp" +my @MK_SECT2= (); # "./$MK.sect2.tmp" +my @MK_SECT3= (); # "./$MK.sect3.tmp" +my @MK_DATA= (); # "./$MK~~" +my %DATA= (); # used for $F.$PARTs + +# ======================================================================== +# ======================================================================== +# ======================================================================== +# MAGIC VARS +# IN $SITEFILE +my $printerfriendly=""; +my $sectionlayout="list"; +my $sitemaplayout="list"; +my $attribvars=" "; # <x ref="${varname:=default}"> +my $updatevars=" "; # <!--$varname:=-->default +my $expandvars=" "; # <!--$varname--> +my $commentvars=" "; # $updatevars && $expandsvars +my $sectiontab=" "; # highlight ^<td class=...>...href="$section" +my $currenttab=" "; # highlight ^<br>..<a href="$topic"> +my $headsection="no"; +my $tailsection="no"; +my $sectioninfo="no"; # using <h2> title <h2> = info text +my $emailfooter="no"; + +for (source($SITEFILE)) { + if (/<!--multi-->/) { + warns("do not use <!--multi-->," + ." change to <!--mksite:multi--> $SITEFILE" + ."warning: or" + ." <!--mksite:multisectionlayout-->" + ." <!--mksite:multisitemaplayout-->"); + $sectionlayout="multi"; + $sitemaplayout="multi"; + } + if (/<!--mksite:multi-->/) { + $sectionlayout="multi"; + $sitemaplayout="multi"; + } + if (/<!--mksite:multilayout-->/) { + $sectionlayout="multi"; + $sitemaplayout="multi"; + } +} + +sub mksite_magic_option +{ + # $1 is word/option to check for + my ($U,$INP,$Z) = @_; + $INP=$SITEFILE if not $INP; + for (source($INP)) { + s/(<!--mksite:)($U)-->/$1$2: -->/g; + s/(<!--mksite:)(\w\w*)($U)-->/$1$3:$2-->/g; + /<!--mksite:$U:/ or next; + s/.*<!--mksite:$U:([^<>]*)-->.*/$1/; + s/.*<!--mksite:$U:([^-]*)-->.*/$1/; + /<!--mksite:$U:/ and next; + chomp; + return $_; + } + return ""; +} + +{ + my $x; + $x=mksite_magic_option("sectionlayout"); if + ($x =~ /^(list|multi)$/) { $sectionlayout="$x" ; } + $x=mksite_magic_option("sitemaplayout"); if + ($x =~ /^(list|multi)$/) { $sitemaplayout="$x" ; } + $x=mksite_magic_option("attribvars"); if + ($x =~ /^( |no|warn)$/) { $attribvars="$x" ; } + $x=mksite_magic_option("updatevars"); if + ($x =~ /^( |no|warn)$/) { $updatevars="$x" ; } + $x=mksite_magic_option("expandvars"); if + ($x =~ /^( |no|warn)$/) { $expandvars="$x" ; } + $x=mksite_magic_option("commentvars"); if + ($x =~ /^( |no|warn)$/) { $commentvars="$x" ; } + $x=mksite_magic_option("printerfriendly"); if + ($x =~ /^( |[.].*|[-]-.*)$/) { $printerfriendly="$x" ; } + $x=mksite_magic_option("sectiontab"); if + ($x =~ /^( |no|warn)$/) { $sectiontab="$x" ; } + $x=mksite_magic_option("currenttab"); if + ($x =~ /^( |no|warn)$/) { $currenttab="$x" ; } + $x=mksite_magic_option("sectioninfo"); if + ($x =~ /^( |no|[=:-])$/) { $sectioninfo="$x" ; } + $x=mksite_magic_option("commentvars"); if + ($x =~ /^( |no|warn)$/) { $commentvars="$x" ; } + $x=mksite_magic_option("emailfooter"); if + ($x) { $emailfooter="$x"; } +} + +$printerfriendly=$o{print} if $o{print}; +$updatevars="no" if $commentvars eq "no"; # duplicated into +$expandvars="no" if $commentvars eq "no"; # info2vars_sed + +hint "'$sectionlayout\'sectionlayout '$sitemaplayout\'sitemaplayout"; +hint "'$attribvars\'attribvars '$updatevars\'updatevars"; +hint "'$expandvars\'expandvars '$commentvars\'commentvars"; +hint "'$currenttab\'currenttab '$sectiontab\'sectiontab"; +hint "'$headsection\'headsection '$tailsection\'tailsection"; + +# ========================================================================== +# init a few global variables +# 0. INIT + +# $MK.tags.tmp - originally, we would use a lambda execution on each +# uppercased html tag to replace <P> with <p class="P">. Here we just +# walk over all the known html tags and make an sed script that does +# the very same conversion. There would be a chance to convert a single +# tag via "h;y;x" or something we do want to convert all the tags on +# a single line of course. +@MK_TAGS=(); +{ my ($M,$P); for $M (@HTMLTAGS) { + $P=uc($M); + push @MK_TAGS, "s|<$P>|<$M class=\\\"$P\\\">|g;"; + push @MK_TAGS, "s|<$P |<$M class=\\\"$P\\\" |g;"; + push @MK_TAGS, "s|</$P>|</$M>|g;"; +}} +push @MK_TAGS, "s|<>|\\ \\;|g;"; +push @MK_TAGS, "s|<->|<WBR />\\;|g;"; +push @MK_TAGS, "s|<c>|<code>|g;"; +push @MK_TAGS, "s|</c>|</code>|g;"; +push @MK_TAGS, "s|<section>||g;"; +push @MK_TAGS, "s|</section>||g;"; +push @MK_TAGS, "s|<(a [^<>]*) />|<\$1></a>|g"; +my $_ulink_="<a href=\"\$1\" remap=\"url\">\$1</a>"; +push @MK_TAGS, "s|<a>\\s*(\\w+://[^<>]*)</a>|$_ulink_|g;"; +# also make sure that some non-html entries are cleaned away that +# we are generally using to inject meta information. We want to see +# that meta ino in the *.htm browser view during editing but they +# shall not get present in the final html page for publishing. +my @DC_VARS = + ("contributor", "date", "source", "language", "coverage", "identifier", + "rights", "relation", "creator", "subject", "description", + "publisher", "DCMIType"); +my @_EQUIVS = + ("refresh", "expires", "content-type", "cache-control", + "redirect", "charset", # mapped to refresh / content-type + "content-language", "content-script-type", "content-style-type"); +{ my $P; for $P (@DC_VARS) { # dublin core embedded + push @MK_TAGS, "s|<$P>[^<>]*</$P>||g;"; +}} +{ my $P; for $P (@_EQUIVS) { + push @MK_TAGS, "s|<$P>[^<>]*</$P>||g;"; +}} +push @MK_TAGS, "s|<a sect=\\\"[$AZ$NN]\\\"|<a|g;" if not $o{keepsect}; +push @MK_TAGS, "s|<!--[$AX]*[?]-->||g;"; +push @MK_TAGS, "s|<!--\\\$[$AX]*[?]:-->||g;"; +push @MK_TAGS, "s|<!--\\\$[$AX]*:[?=]-->||g;"; +push @MK_TAGS, "s|(<[^<>]*)\\\${[$AX]*:[?=]([^<{}>]*)}([^<>]*>)|\$1\$2\$3|g;"; + +my $TRIMM=" -e 's:^ *::' -e 's: *\$::'"; # trimm away leading/trailing spaces +sub trimm +{ + my ($T,$Z) = @_; + $T =~ s:\A\s*::s; $T =~ s:\s*\Z::s; + return $T; +} +sub trimmm +{ + my ($T,$Z) = @_; + $T =~ s:\A\s*::s; $T =~ s:\s*\Z::s; $T =~ s:\s+: :g; + return $T; +} +sub timezone +{ + # +%z is an extension while +%Z is supposed to be posix + my $tz; + eval { $tz = strftime("%z", localtime()) }; + return $tz if $tz =~ /[+]/; + return $tz if $tz =~ /[-]/; + return strftime("%Z", localtime()); +} + +sub timetoday +{ + return strftime("%Y-%m-%d", localtime()); +} +sub timetodays +{ + return strftime("%Y-%m%d", localtime()); +} + +sub esc +{ + my ($TXT,$XXX) = @_; + $TXT =~ s|&|\\\\&|g; + return $TXT; +} + +my %SOURCE; +sub source # $file : @lines +{ + my ($FILE,$Z) = @_; + if (exists $SOURCE{$FILE}) { return @{$SOURCE{$FILE}}; } + my @TEXT = (); + open FILE, "<$FILE" or die "could not open $FILE: $!"; + for my $line (<FILE>) { + push @TEXT, $line; + } close FILE; + @{$SOURCE{$FILE}} = @TEXT; + return @{$SOURCE{$FILE}}; +} +sub savesource # $file \@lines +{ + my ($FILE,$LINES,$Z) = @_; + @{$SOURCE{$FILE}} = @{$LINES}; +} + +my $F; # current file during loop <<<<<<<<< +my $i = 100; +sub savelist { + if (-d "DEBUG") { + my ($script,$ext,$Z) = @_; + if (not $ext) { $ext = "_".$i; $i++; } + my $X = "$F.$ext.tmp.PL"; $X =~ s|/|:|g; + open X, ">DEBUG/$X" or die "could not open $X: $!"; + print X "#! /usr/bin/env perl",$n; + print X "# ",$#_," $ext files ",localtime(),$n; + my $TEXT = join("$n", @{$script}); + $TEXT =~ s|source\([^()]*\)|<>|; + print X $TEXT,$n; close X; + } +} + +sub eval_MK_LIST # $str @list +{ + my $FILETYPE = $_[0]; shift @_; + my $result = $_[0]; shift @_; + my $extra = ""; + my $script = "\$_ = \$result; my \$Z;"; + $script .= join(";$n ", @_); + $script .= "$n;\$result = \$_;$n"; + savelist([$script],$FILETYPE); + eval $script; + return $result.$extra; +} + +sub eval_MK_FILE { + my $FILETYPE = $_[0]; shift @_; + my $FILENAME = $_[0]; shift @_; + my $result = ""; + my $script = "my \$FILE; my \$extra = ''; my \$Z; $n"; + $script.= "for (source('$FILENAME')) { $n"; + $script.= join(";$n ", @_); + $script.= "$n; \$result .= \$_; "; + $script.= "$n if(\$extra){\$result.=\$extra;\$extra='';\$result.=\"\\n\"}"; + $script.= "$n} if(\$extra){\$result.=\$extra;}$n"; + savelist([$script],$FILETYPE); + eval $script; + return $result; +} +my $sed_add = "\$extra .= "; # "/r "; + +sub foo { print " '$F'$n"; } + +# ====================================================================== +# FUNCS + +my $SOURCEFILE; # current file <<<<<<<< +my @FILELIST; # <<<<<<< + +sub sed_slash_key # helper to escape chars special in /anchor/ regex +{ # currently escaping "/" "[" "]" "." + my $R = $_[0]; $R =~ s|[\"./[-]|\\$&|g; $R =~ s|\]|\\\\$&|g; + return $R; +} +sub sed_piped_key # helper to escape chars special in s|anchor|| regex +{ # currently escaping "|" "[" "]" "." + my $R = $_[0]; $R =~ s/[\".|[-]/\\$&/g; $R =~ s/\]/\\\\$&/g; + return $R; +} + +sub back_path # helper to get the series of "../" for a given path +{ + my ($R,$Z) = @_; if ($R !~ /\//) { return ""; } + $R =~ s|/[^/]*$|/|; $R =~ s|[^/]*/|../|g; + return $R; +} + +sub dir_name +{ + my $R = $_[0]; $R =~ s:/[^/][^/]*\$::; + return $R; +} + +sub info2vars_sed # generate <!--$vars--> substition sed addon script +{ + my ($INP,$Z) = @_; + $INP = \@{$DATA{$F}} if not $INP; + my @OUT = (); + my $V8=" *([^ ][^ ]*) +(.*)<$QX>"; + my $V9=" *DC[.]([^ ][^ ]*) +(.*)<$QX>"; + my $N8=" *([^ ][^ ]*) ([$NN].*)<$QX>"; + my $N9=" *DC[.]([^ ][^ ]*) ([$NN].*)<$QX>"; + my $V0="([<]*)\\\$"; + my $V1="([^<>]*)\\\$"; + my $V2="([^{<>}]*)"; + my $V3="([^<>]*)"; + my $SS="<"."<>".">"; # spacer so value="2004" dont make for s|\(...\)|\12004| + $Z="\$Z="; + $updatevars = "no" if $commentvars eq "no"; # duplicated from + $expandvars = "no" if $commentvars eq "no"; # option handling + my @_INP = (); for (@{$INP}) { + my $x=$_; $x =~ s/(>[^<>]*)'([^<>]*<)/$1\\'$2/; push @_INP, $x; # OOOOPS + } + if ($expandvars ne "no") { + for (@_INP) { + if (/^=....=formatter /) { next; } + elsif (/^<$Q='name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V0$1\\?-->|- \$Z|;"} + elsif (/^<$Q='Name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V0$1\\?-->|(\$Z)|;"} + elsif (/^<$Q='name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V0$1\\?-->|- \$Z|;"} + elsif (/^<$Q='Name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V0$1\\?-->|(\$Z)|;"} + } + } + if ($expandvars ne "no") { + for (@_INP) { + if (/^=....=formatter /) { next; } + elsif (/^<$Q='text'>$V9/){push @OUT, "\$Z='$2';s|<!--$V1$1-->|\$1$SS\$Z|;"} + elsif (/^<$Q='Text'>$V9/){push @OUT, "\$Z='$2';s|<!--$V1$1-->|\$1$SS\$Z|;"} + elsif (/^<$Q='name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V1$1\\?-->|\$1$SS\$Z|;"} + elsif (/^<$Q='Name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V1$1\\?-->|\$1$SS\$Z|;"} + elsif (/^<$Q='text'>$V8/){push @OUT, "\$Z='$2';s|<!--$V1$1-->|\$1$SS\$Z|;"} + elsif (/^<$Q='Text'>$V8/){push @OUT, "\$Z='$2';s|<!--$V1$1-->|\$1$SS\$Z|;"} + elsif (/^<$Q='name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V1$1\\?-->|\$1$SS\$Z|;"} + elsif (/^<$Q='Name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V1$1\\?-->|\$1$SS\$Z|;"} + } + } + if ($updatevars ne "no") { + for (@_INP) { my $H = "[^<>]*"; + if (/^=....=formatter /) { next; } + elsif (/^<$Q='name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V0$1:\\?-->$H|- \$Z|;"} + elsif (/^<$Q='Name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V0$1:\\?-->$H|(\$Z)|;"} + elsif (/^<$Q='name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V0$1:\\?-->$H|- \$Z|;"} + elsif (/^<$Q='Name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V0$1:\\?-->$H|(\$Z)|;"} + } + } + if ($updatevars ne "no") { + for (@_INP) { my $H = "[^<>]*"; + if (/^=....=formatter /) { next; } + elsif (/^<$Q='text'>$V9/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\=-->$H|\$1$SS\$Z|;"} + elsif (/^<$Q='Text'>$V9/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\=-->$H|\$1$SS\$Z|;"} + elsif (/^<$Q='name'>$V9/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\?-->$H|\$1$SS\$Z|;"} + elsif (/^<$Q='Name'>$V9/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\?-->$H|\$1$SS\$Z|;"} + elsif (/^<$Q='text'>$V8/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\=-->$H|\$1$SS\$Z|;"} + elsif (/^<$Q='Text'>$V8/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\=-->$H|\$1$SS\$Z|;"} + elsif (/^<$Q='name'>$V8/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\?-->$H|\$1$SS\$Z|;"} + elsif (/^<$Q='Name'>$V8/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\?-->$H|\$1$SS\$Z|;"} + } + } + if ($attribvars ne "no") { + for (@_INP) { my $H = "[^<>]*"; + if (/^=....=formatter /) { next; } + elsif (/^<$Q='text'>$V9/){push @OUT,"\$Z='$2';s|<$V1\{$1:[=]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + elsif (/^<$Q='Text'>$V9/){push @OUT,"\$Z='$2';s|<$V1\{$1:[=]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + elsif (/^<$Q='name'>$V9/){push @OUT,"\$Z='$2';s|<$V1\{$1:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + elsif (/^<$Q='Name'>$V9/){push @OUT,"\$Z='$2';s|<$V1\{$1:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + elsif (/^<$Q='text'>$V8/){push @OUT,"\$Z='$2';s|<$V1\{$1:[=]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + elsif (/^<$Q='Text'>$V8/){push @OUT,"\$Z='$2';s|<$V1\{$1:[=]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + elsif (/^<$Q='name'>$V8/){push @OUT,"\$Z='$2';s|<$V1\{$1:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + elsif (/^<$Q='Name'>$V8/){push @OUT,"\$Z='$2';s|<$V1\{$1:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + } + for (split / /, $o{variables}) { + {push @OUT,"\$Z='$o{$_}';s|<$V1\{$_:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"} + } + } + # if value="2004" then generated sed might be "\\12004" which is bad + # instead we generate an edited value of "\\1$SS$value" and cut out + # the spacer now after expanding the variable values: + push @OUT, "s|$SS||g;"; + return @OUT; + +} + +sub info2meta_sed # generate <meta name..> text portion +{ + my ($INP,$XXX) = @_; + $INP = \@{$DATA{$F}} if not $INP; + my @OUT = (); + # http://www.metatab.de/meta_tags/DC_type.htm + my $V6=" *HTTP[.]([^ ]+) (.*)<$QX>"; + my $V7=" *DC[.]([^ ]+) (.*)<$QX>"; + my $V8=" *([^ ]+) (.*)<$QX>" ; + sub __TYPE_SCHEME { "name=\"DC.type\" content=\"$2\" scheme=\"$1\"" }; + sub __DCMI { "name=\"$1\" content=\"$2\" scheme=\"DCMIType\"" }; + sub __NAME { "name=\"$1\" content=\"$2\"" }; + sub __NAME_TZ { "name=\"$1\" content=\"$2 ".&timezone()."\"" }; + sub __HTTP { "http-equiv=\"$1\" content=\"$2\"" }; + for (@$INP) { + if (/=....=today /) { next; } + if (/<$Q='meta'>HTTP[.]/ && /<$Q='meta'>$V6/) { + push @OUT, " <meta ${\(__HTTP)} />" if $2; next; } + if (/<$Q='meta'>DC[.]DCMIType / && /<$Q='meta'>$V7/) { + push @OUT, " <meta ${\(__TYPE_SCHEME)} />" if $2; next; } + if (/<$Q='meta'>DC[.]type Collection$/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__DCMI)} />" if $2; next; } + if (/<$Q='meta'>DC[.]type Dataset$/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__DCMI)} />" if $2; next; } + if (/<$Q='meta'>DC[.]type Event$/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__DCMI)} />" if $2; next; } + if (/<$Q='meta'>DC[.]type Image$/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__DCMI)} />" if $2; next; } + if (/<$Q='meta'>DC[.]type Service$/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__DCMI)} />" if $2; next; } + if (/<$Q='meta'>DC[.]type Software$/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__DCMI)} />" if $2; next; } + if (/<$Q='meta'>DC[.]type Sound$/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__DCMI)} />" if $2; next; } + if (/<$Q='meta'>DC[.]type Text$/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__DCMI)} />" if $2; next; } + if (/<$Q='meta'>DC[.]date[.].*[+]/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__NAME)} />" if $2; next; } + if (/<$Q='meta'>DC[.]date[.].*[:]/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__NAME_TZ)} />" if $2; next; } + if (/<$Q='meta'>/ && /<$Q='meta'>$V8/) { + push @OUT, " <meta ${\(__NAME)} />" if $2; next; } + } + return @OUT; +} + +sub info_get_entry # get the first <!--vars--> value known so far +{ + my ($TXT,$INP,$XXX) = @_; + $TXT = "sect" if not $TXT; + $INP = \@{$DATA{$F}} if not $INP; + for (grep {/<$Q='text'>$TXT /} @$INP) { + my $info = $_; + $info =~ s|<$Q='text'>$TXT ||; $info =~ s|<$QX>||; + chomp($info); chomp($info); return $info; + } +} + +sub info1grep # test for a <!--vars--> substition to be already present +{ + my ($TXT,$INP,$XXX) = @_; + $TXT = "sect" if not $TXT; + $INP = \@{$DATA{$F}} if not $INP; + return scalar(grep {/^<$Q='text'>$TXT /} @$INP); # returning the count +} + +sub dx_init +{ + @{$DATA{$F}} = (); + &dx_meta ("formatter", basename($o{formatter})); + for (split / /, $o{variables}) { # commandline --def=value + if (/_/) { my $u=$_; $u =~ y/_/-/; # makes for <!--$def--> override + &dx_meta ($u, $o{$_}); + } else { &dx_text ($_, $o{$_}); } + } +} + +sub dx_line +{ + my ($U,$V,$W,$Z) = @_; chomp($U); chomp($V); + push @{$DATA{$F}}, "<$Q=$U>".$V." ".trimmm($W)."<$QX>"; +} + +sub DX_line +{ + my ($U,$V,$W,$Z) = @_; $W =~ s/<[^<>]*>//g; + &dx_line ($U,$V,$W); +} + +sub dx_text +{ + my ($U,$V,$Z) = @_; + &dx_line ("'text'",$U,$V); +} + +sub DX_text # add a <!--vars--> substition includings format variants +{ + my ($N, $T,$XXX) = @_; + $N = trimm($N); $T = trimm($T); + if ($N) { + if ($T) { + my $text=lc("$T"); $text =~ s/<[^<>]*>//g; + &dx_line ("'text'",$N,$T); + &dx_line ("'name'",$N,$text); + my $varname=$N; $varname =~ s/.*[.]//; # cut out front part + if ($N ne $varname and $varname) { + $text=lc("$varname $T"); $text =~ s/<[^<>]*>//g; + &dx_line ("'Text'",$varname,$T); + &dx_line ("'Name'",$varname,$text); + } + } + } +} + +sub dx_meta +{ + my ($U,$V,$Z) = @_; + &DX_line ("'meta'",$U,$V); +} + +sub DX_meta # add simple meta entry and its <!--vars--> subsitution +{ + my ($U,$V,$Z) = @_; + &DX_line ("'meta'",$U,$V); + &DX_text ("$U", $V); +} + +sub DC_meta # add new DC.meta entry plus two <!--vars--> substitutions +{ + my ($U,$V,$Z) = @_; + &DX_line ("'meta'","DC.$U",$V); + &DX_text ("DC.$U", $V); + &DX_text ("$U", $V); +} + +sub HTTP_meta # add new HTTP.meta entry plus two <!--vars--> substitutions +{ + my ($U,$V,$Z) = @_; + &DX_line ("'meta'","HTTP.$U",$V); + &DX_text ("HTTP.$U", $V); + &DX_text ("$U", $V); +} + +sub DC_VARS_Of # check DC vars as listed in $DC_VARS global/generate DC_meta +{ # the results will be added to .meta.tmp and .vars.tmp later + my ($FILENAME,$Z)= @_; + $FILENAME=$SOURCEFILE if not $FILENAME; + for my $M (@DC_VARS, "title") { + # scan for a <markup> of this name FIXME + my ($part,$text); + for (source($FILENAME)) { + /<$M>/ or next; s|.*<$M>||; s|</$M>.*||; + $part = trimm($_); last; + } + $text=$part; $text =~ s|^\w*:||; $text = trimm($text); + next if not $text; + # <mark:part> will be <meta name="mark.part"> + if ($text ne $part) { + my $N=$part; $N =~ s/:.*//; + &DC_meta ("$M.$N", $text); + } elsif ($M eq "date") { + &DC_meta ("$M.issued", $text); # "<date>" -> "<date>issued:" + } else { + &DC_meta ("$M", $text); + } + } +} + +sub HTTP_VARS_Of # check HTTP-EQUIVs as listed in $_EQUIV global then +{ # generate meta tags that are http-equiv= instead of name= + my ($FILENAME,$Z)= @_; + $FILENAME=$SOURCEFILE if not $FILENAME; + for my $M (@_EQUIVS) { + # scan for a <markup> of this name FIXME + my ($part,$text); + for (source($FILENAME)) { + /<$M>/ or next; s|.*<$M>||; s|</$M>.*||; + $part = trimm($_); last; + } + $text=$part; $text =~ s|^\w*:||; $text = trimm($text); + next if not $text; + if ($M eq "redirect") { + &HTTP_meta ("refresh", "5; url=$text"); &DX_text ("$M", $text); + } elsif ($M eq "charset") { + &HTTP_meta ("content-type", "text/html; charset=$text"); + } else { + &HTTP_meta ("$M", $text); + } + } +} + +sub DC_isFormatOf # make sure there is this DC.relation.isFormatOf tag +{ # choose argument for a fallback (usually $SOURCEFILE) + my ($NAME,$Z) = @_; + $NAME=$SOURCEFILE if not $NAME; + if (not &info1grep ("DC.relation.isFormatOf")) { + &DC_meta ("relation.isFormatOf", "$NAME"); + } +} + +sub DC_publisher # make sure there is this DC.publisher meta tag +{ # choose argument for a fallback (often $USER) + my ($NAME,$Z) = @_; + $NAME=$ENV{"USER"} if not $NAME; + if (not &info1grep ("DC.publisher")) { + &DC_meta ("publisher", "$NAME"); + } +} + +sub DC_modified # make sure there is a DC.date.modified meta tag +{ # maybe choose from filesystem dates if possible + my ($ZZ,$Z) = @_; # target file + if (not &info1grep ("DC.date.modified")) { + my @stats = stat($ZZ); + my $text = strftime("%Y-%m-%d", localtime($stats[9])); + &DC_meta ("date.modified", $text); + } +} + +sub DC_date # make sure there is this DC.date meta tag +{ # choose from one of the available DC.date.* specials + my ($ZZ,$Z) = @_; # source file + if (&info1grep ("DC.date")) { + &DX_text ("issue", "dated ".&info_get_entry("DC.date")); + &DX_text ("updated", &info_get_entry("DC.date")); + } else { + my $text=""; my $kind; + for $kind (qw/available issued modified created/) { + $text=&info_get_entry("DC.date.$kind"); + # test ".$text" != "." && echo "$kind = date = $text ($ZZ)" + last if $text; + } + if (not $text) { + my $part; my $M="date"; + for (source($ZZ)) { + /<$M>/ or next; s|.*<$M>||; s|</$M>.*||; + $part=trimm($_); last; + } + $text=$part; $text =~ s|^[$AA]*:||; + $text = &trimm ($text); + } + if (not $text) { + my $part; my $M="!--date:*=*--"; # takeover updateable variable... + for (source($ZZ)) { + /<$M>/ or next; s|.*<$M>||; s|</.*||; + $part=trimm($_); last; + } + $text=$part; $text =~ s|^[$AA]*:||; $text =~ s|\&.*||; + $text = &trimm ($text); + } + $text =~ s/[$NN]*:.*//; # cut way seconds + &DX_text ("updated", $text); + my $text1=$text; $text1 =~ s|^.* *updated ||; + if ($text ne $text1) { + $kind="modified" ; $text=$text1; $text =~ s|,.*||; + } + $text1=$text; $text1 =~ s|^.* *modified ||; + if ($text ne $text1) { + $kind="modified" ; $text=$text1; $text =~ s|,.*||; + } + $text1=$text; $text1 =~ s|^.* *created ||; + if ($text ne $text1) { + $kind="created" ; $text=$text1; $text =~ s|,.*||; + } + &DC_meta ("date", "$text"); + &DX_text ("issue", "$kind $text"); + } +} + +sub DC_title +{ + # choose a title for the document, either an explicit title-tag + # or one of the section headers in the document or fallback to filename + my ($ZZ,$Z) = @_; # target file + my ($term, $text); + if (not &info1grep ("DC.title")) { + for my $M (qw/TITLE title H1 h1 H2 h2 H3 H3 H4 H4 H5 h5 H6 h6/) { + for (source($ZZ)) { + /<$M>/ or next; s|.*<$M>||; s|</$M>.*||; + $text = trimm($_); last; + } + last if $text; + for (source($ZZ)) { + /<$M [^<>]*>/ or next; s|.*<$M [^<>]*>||; s|</$M>.*||; + $text = trimm($_); last; + } + last if $text; + } + if (not $text) { + $text=basename($ZZ,".html"); + $text=basename($text,".htm"); $text =~ y/_/ /; $text =~ s/$/ info/; + $text=~ s/\n/ /g; + } + $term=$text; $term =~ s/.*[\(]//; $term =~ s/[\)].*//; + $text =~ s/[\(][^\(\)]*[\)]//; + if (not $term or $term eq $text) { + &DC_meta ("title", "$text"); + } else { + &DC_meta ("title", "$term - $text"); + } + } +} + +sub site_get_section # return parent section page of given page +{ + my $_F_ = &sed_slash_key(@_); + for my $x (grep {/<$Q='sect'>$_F_ /} @MK_DATA) { + my $info = $x; $info =~ s|<$Q='sect'>[^ ]* ||; $info =~ s|<$QX>||; + return $info; + } +} + +sub DC_section # not really a DC relation (shall we use isPartOf ?) +{ # each document should know its section father + my $sectn = &site_get_section($F); + if ($sectn) { + &DC_meta ("relation.section", $sectn); + } +} + +sub info_get_entry_section +{ + return &info_get_entry("DC.relation.section"); +} + +sub site_get_selected # return section of given page +{ + my $_F_ = &sed_slash_key(@_); + for my $x (grep {/<$Q='[u]se.'>$_F_ /} @MK_DATA) { + my $info = $x; + $info =~ s/<$Q='[u]se.'>[^ ]* //; $info =~ s|<$QX>||; + return $info; + } +} + +sub DC_selected # not really a DC title (shall we use alternative ?) +{ + # each document might want to highlight the currently selected item + my $short=&site_get_selected($F); + if ($short) { + &DC_meta ("title.selected", $short); + } +} + +sub info_get_entry_selected +{ + return &info_get_entry("DC.title.selected"); +} + +sub site_get_rootsections # return all sections from root of nav tree +{ + my @OUT; + for (grep {/<$Q='[u]se1'>/} @MK_DATA) { + my $x = $_; + $x =~ s/<$Q='[u]se.'>([^ ]*) .*/$1/; + push @OUT, $x; + } + return @OUT; +} + +sub site_get_sectionpages # return all children pages in the given section +{ + my $_F_=&sed_slash_key(@_); + my @OUT = (); + for (grep {/^<$Q='sect'>[^ ]* $_F_$/} @MK_DATA) { + my $x = $_; + $x =~ s/^<$Q='sect'>//; $x =~ s/ .*//; $x =~ s|<$QX>||; + push @OUT, $x; + } + return @OUT; +} + +sub site_get_subpages # return all page children of given page +{ + my $_F_=&sed_slash_key(@_); + my @OUT = (); + for (grep {/^<$Q='node'>[^ ]* $_F_<[^<>]*>$/} @MK_DATA) { + my $x = $_; + $x =~ s/^<$Q='node'>//; $x =~ s/ .*//; $x =~ s|<$QX>||; + push @OUT, $x; + } + return @OUT; +} + +sub site_get_parentpage # ret parent page for given page (".." for sections) +{ + my $_F_=&sed_slash_key(@_); + for (grep {/^<$Q='node'>$_F_ /} @MK_DATA) { + my $x = $_; + $x =~ s/^<$Q='node'>[^ ]* //; $x =~ s|<$QX>||; + return $x; + } +} + +sub DX_alternative # detect wether page asks for alternative style +{ # which is generally a shortpage variant + my ($U,$Z) = @_; + my $x=&mksite_magic_option("alternative",$U); + $x =~ s/^ *//; $x =~s/ .*//; + if ($x) { + &DX_text ("alternative", $x); + } +} + +sub info2head_sed # append alternative handling script to $HEAD +{ + my @OUT = (); + my $have=&info_get_entry("alternative"); + if ($have) { + push @OUT, "/<!--mksite:alternative:$have .*-->/ && do {"; + push @OUT, "s/<!--mksite:alternative:$have( .*)-->/\$1/"; + push @OUT, "$sed_add \$_; last; };"; + } + return @OUT; +} +sub info2body_sed # append alternative handling script to $BODY +{ + my @OUT = (); + my $have=&info_get_entry("alternative"); + if ($have) { + push @OUT, "s/<!--mksite:alternative:$have( .*)-->/\$1/"; + } + return @OUT; +} + +sub bodymaker_for_sectioninfo +{ + if ($sectioninfo eq "no") { return ""; } + my $_x_="<!--mksite:sectioninfo::-->"; + my $_q_="([^<>]*[$AX][^<>]*)"; + $_q_="[ ][ ]*$sectioninfo([ ])" if $sectioninfo ne " "; + my @OUT = (); + push @OUT, "s|(^<[hH][$NN][ >].*</[hH][$NN]>)$_q_|\$1$_x_\$2|"; + push @OUT, "/$_x_/ and s|^|<table width=\"100%\"><tr valign=\"bottom\"><td>|"; + push @OUT, "/$_x_/ and s|</[hH][$NN]>|&</td><td align=\"right\"><i>|"; + push @OUT, "/$_x_/ and s|\$|</i></td></tr></table>|"; + push @OUT, "s|$_x_||"; + return @OUT; +} + +sub fast_href # args "$FILETOREFERENCE" "$FROMCURRENTFILE:$F" +{ # prints path to $FILETOREFERENCE href-clickable in $FROMCURRENTFILE + # if no subdirectoy then output is the same as input $FILETOREFERENCE + my ($T,$R,$Z) = @_; + my $S=&back_path ($R); + if (not $S) { + return $T; + } else { + my $t=$T; + $t =~ s/^ *$//; $t =~ s/^\/.*//; + $t =~ s/^[.][.].*//; $t =~ s/^\w*:.*//; + if (not $t) { # don't move any in the pattern above + return $T; + } else { + return "$S$T"; # prefixed with backpath + } + } +} + +sub make_back_path # "$FILE" +{ + my ($R,$Z) = @_; + my $S=&back_path ($R); + my @OUT = (); + return @OUT if $S !~ /^\.\./; + push @OUT, "s|(<[^<>]*\\shref=\\\")(\\w[^<>:]*\\\"[^<>]*>)|\$1$S\$2|g;"; + push @OUT, "s|(<[^<>]*\\ssrc=\\\")(\\w[^<>:]*\\\"[^<>]*>)|\$1$S\$2|g;"; + return @OUT; +} + +# ============================================================== SITE MAP DATA +# each entry needs atleast a list-title, a long-title, and a list-date +# these are the basic information to be printed in the sitemap file +# where it is bound the hierarchy of sect/subsect of the entries. + +sub site_map_list_title # $file $text +{ + my ($U,$V,$Z) = @_; chomp($U); + push @MK_DATA, "<$Q='list'>$U ".trimm($V)."<$QX>"; +} +sub info_map_list_title # $file $text +{ + my ($U,$V,$Z) = @_; chomp($U); + push @{$DATA{$U}}, "<$Q='list'>".trimm($V)."<$QX>"; +} +sub site_map_long_title # $file $text +{ + my ($U,$V,$Z) = @_; chomp($U); + push @MK_DATA, "<$Q='long'>$U ".trimm($V)."<$QX>"; +} +sub info_map_long_title # $file $text +{ + my ($U,$V,$Z) = @_; chomp($U); + push @{$DATA{$U}}, "<$Q='long'>".trimm($V)."<$QX>"; +} +sub site_map_list_date # $file $text +{ + my ($U,$V,$Z) = @_; chomp($U); + push @MK_DATA, "<$Q='date'>$U ".trimm($V)."<$QX>"; +} +sub info_map_list_date # $file $text +{ + my ($U,$V,$Z) = @_; chomp($U); + push @{$DATA{$U}}, "<$Q='date'>".trimm($V)."<$QX>"; +} + +sub site_get_list_title +{ + my ($U,$V,$Z) = @_; + for (@MK_DATA) { if (m|^<$Q='list'>$U (.*)<$QX>|) { return $1; } } return ""; +} +sub site_get_long_title +{ + my ($U,$V,$Z) = @_; + for (@MK_DATA) { if (m|^<$Q='long'>$U (.*)<$QX>|) { return $1; } } return ""; +} +sub site_get_list_date +{ + my ($U,$V,$Z) = @_; + for (@MK_DATA) { if (m|^<$Q='date'>$U (.*)<$QX>|) { return $1; } } return ""; +} + +sub siteinfo2sitemap# generate <name><page><date> addon sed scriptlet +{ # the resulting script will act on each item/line + # containing <!--"filename"--> and expand any following + # reference of <!--name--> or <!--date--> or <!--long--> + my ($INP,$Z) = @_ ; $INP= \@MK_DATA if not $INP; + my @OUT = (); + my $_list_= + sub{"s|(<!--\\\"$1\\\"-->.*)<name [^<>]*>.*</name>|\$1<name href=\\\"$1\\\">$2</name>|"}; + my $_date_= + sub{"s|(<!--\\\"$1\\\"-->.*)<date>.*</date>|\$1<date>$2</date>|"}; + my $_long_= + sub{"s|(<!--\\\"$1\\\"-->.*)<long>.*</long>|\$1<long>$2</long>|"}; + + for (@$INP) { + my $info = $_; + $info =~ s:<$Q='list'>([^ ]*) (.*)<$QX>:&$_list_:e; + $info =~ s:<$Q='date'>([^ ]*) (.*)<$QX>:&$_date_:e; + $info =~ s:<$Q='long'>([^ ]*) (.*)<$QX>:&$_long_:e; + $info =~ /^s\|/ || next; + push @OUT, $info; + } + return @OUT; +} + +sub make_multisitemap +{ # each category gets its own column along with the usual entries + my ($INPUTS,$Z)= @_ ; $INPUTS=\@MK_DATA if not $INPUTS; + @MK_SITE = &siteinfo2sitemap(); # have <name><long><date> addon-sed + my @OUT = (); + my $_form_= sub{"<!--\"$2\"--><!--use$1--><long>$3</long><!--end$1-->" + ."<br><name href=\"$2\">$3</name><date>......</date>" }; + my $_tiny_="small><small><small" ; my $_tinyX_="small></small></small "; + my $_tabb_="<br><$_tiny_> </$_tinyX_>" ; my $_bigg_="<big> </big>"; + push @OUT, "<table width=\"100%\"><tr><td> ".$n; + for (grep {/<$Q='[Uu]se.'>/} @$INPUTS) { + my $x = $_; + $x =~ />\w\w\w\w*:/ and next; # name: http: ftp: mailto: ... + $x =~ s|<$Q='[Uu]se(.)'>([^ ]*) (.*)<$QX>|&$_form_|e; + $x = &eval_MK_LIST("multisitemap", $x, @MK_SITE); + $x =~ /<name/ or next; + $x =~ s|<!--[u]se1-->|</td><td valign=\"top\"><b>|; + $x =~ s|<!--[e]nd1-->|</b>|; + $x =~ s|<!--[u]se2-->|<br>|; + $x =~ s|<!--[u]se.-->|<br>|; $x =~ s/<!--[^<>]*-->/ /g; + $x =~ s|<name |<$_tiny_><a |; $x =~ s|</name>||; + $x =~ s|<date>|<small style="date">|; + $x =~ s|</date>|</small></a><br></$_tinyX_>|; + $x =~ s|<long>|<!--long-->|; + $x =~ s|</long>|<!--/long-->|; + chomp $x; + push @OUT, $x.$n; + } + push @OUT, "</td><tr></table>".$n; + return @OUT; +} + +sub make_listsitemap +{ # traditional - the body contains a list with date and title extras + my ($INPUTS,$Z)= @_ ; $INPUTS=\@MK_DATA if not $INPUTS; + @MK_SITE = &siteinfo2sitemap(); # have <name><long><date> addon-sed + my @OUT = (); + my $_form_=sub{ + "<!--\"$2\"--><!--use$1--><name href=\"$2\">$3</name><date>......</date><long>$3</long>"}; + my $_tabb_="<td>\ \;</td>"; + push @OUT, "<table cellspacing=\"0\" cellpadding=\"0\">".$n; + my $xx; + for $xx (grep {/<$Q='[Uu]se.'>/} @$INPUTS) { + my $x = "".$xx; + $x =~ />\w\w\w\w*:/ and next; + $x =~ s|<$Q='[Uu]se(.)'>([^ ]*) (.*)<$QX>|&$_form_|e; + $x = &eval_MK_LIST("listsitemap", $x, @MK_SITE); + $x =~ /<name/ or next; + $x =~ s|<!--[u]se(1)-->|<tr class=\"listsitemap$1\"><td>*</td>|; + $x =~ s|<!--[u]se(2)-->|<tr class=\"listsitemap$1\"><td>-</td>|; + $x =~ s|<!--[u]se(.)-->|<tr class=\"listsitemap$1\"><td> </td>|; + $x =~ /<tr.class=\"listsitemap3\">/ and $x =~ s|(<name [^<>]*>)|$1- |; + $x =~ s|<!--[^<>]*-->| |g; + $x =~ s|<name href=\"name:sitemap:|<name href=\"|; + $x =~ s|<name |<td><a |; $x =~ s|</name>|</a></td>$_tabb_|; + $x =~ s|<date>|<td><small style="date">|; + $x =~ s|</date>|</small></td>$_tabb_|; + $x =~ s|<long>|<td><em><!--long-->|; + $x =~ s|</long>|<!--/long--></em></td></tr>|; + push @OUT, $x.$n; + } + for $xx (grep {/<$Q='[u]se.'>/} @$INPUTS) { + my $x = $xx; + $x =~ s/<$Q='[u]se.'>name:sitemap://; $x =~ s|<$QX>||; $x =~ s:\s*::gs; + if (-f $x) { + for (grep {/<tr.class=\"listsitemap\d\">/} source($x)) { + push @OUT, $_; + } + } + } + push @OUT, "</table>".$n; + return @OUT; +} + +my $_xi_include_= + "<xi:include xmlns:xi=\"http://www.w3.org/2001/XInclude\" parse=\"xml\""; + +sub make_xmlsitemap +{ # traditional - the body contains a list with date and title extras + my ($INPUTS,$Z)= @_ ; $INPUTS=\@MK_DATA if not $INPUTS; + @MK_SITE = &siteinfo2sitemap(); # have <name><long><date> addon-sed + my @OUT = (); + my $_form_=sub{"<!--\"$2\"--><name href=\"$2\">$3</name>"}; + my $xx; + for $xx (grep {/<$Q='[Uu]se.'>/} @$INPUTS) { + my $x = "".$xx; + $x =~ />\w\w\w\w*:/ and next; + $x =~ s|<$Q='[Uu]se(.)'>([^ ]*) (.*)<$QX>|&$_form_|e; + $x = &eval_MK_LIST("listsitemap", $x, @MK_SITE); + $x =~ /<name/ or next; + $x =~ m|href="${SITEFILE}"| and next; + $x =~ m|href="${SITEFILE}l"| and next; + $x =~ s|(href="[^<>]*)\.html(")|$1.xml$2|g; + $x =~ s|.*<name|$_xi_include_$n |; + $x =~ s|>.*</name>| />|; + push @OUT, $x.$n; + } + return @OUT; +} + +sub print_extension +{ + my ($ARG,$Z)= @_ ; $ARG=$o{print} if not $ARG; + if ($ARG =~ /^([.-])/) { + return $ARG; + } else { + return ".print"; + } +} + +sub from_sourcefile +{ + my ($U,$Z) = @_; + if (-f $U) { + return $U; + } elsif (-f "$o{src_dir}/$U") { + return "$o{src_dir}/$U"; + } else { + return $U; + } +} + +sub html_sourcefile # generally just cut away the trailing "l" (ell) +{ # making "page.html" argument into "page.htm" return + my ($U,$Z) = @_; + my $_SRCFILE_=$U; $_SRCFILE_ =~ s/l$//; + my $_XMLFILE_=$U; $_XMLFILE_ =~ s/\.html$/.dbk/; + if (-f $_SRCFILE_) { + return $_SRCFILE_; + } elsif (-f $_XMLFILE_) { + return $_XMLFILE_; + } elsif (-f "$o{src_dir}/$_SRCFILE_") { + return "$o{src_dir}/$_SRCFILE_"; + } elsif (-f "$o{src_dir}/$_XMLFILE_") { + return "$o{src_dir}/$_XMLFILE_"; + } else { + return ".//$_SRCFILE_"; + } +} +sub html_printerfile_sourcefile +{ + my ($U,$Z) = @_; + if (not $printerfriendly) { + $U =~ s/l\$//; return $U; + } else { + my $_ext_=&sed_slash_key(&print_extension($printerfriendly)); + $U =~ s/l\$//; $U =~ s/$_ext_([.][\w]*)$/$1/; return $U; + } +} + +sub fast_html_printerfile { + my ($U,$V,$Z) = @_; + my $x=&html_printerfile($U) ; return basename($x); +# my $x=&html_printerfile($U) ; return &fast_href($x,$V); +} + +sub html_printerfile # generate the printerfile for a given normal output +{ + my ($U,$Z) = @_; + my $_ext_=&esc(&print_extension($printerfriendly)); + $U =~ s/([.][\w]*)$/$_ext_$1/; return $U; # index.html -> index.print.html +} + +sub make_printerfile_fast # generate s/file.html/file.print.html/ for hrefs +{ # we do that only for the $FILELIST + my ($U,$Z) = @_; + my $ALLPAGES=$U; + my @OUT = (); + for my $p (@$ALLPAGES) { + my $a=&sed_slash_key($p); + my $b=&html_printerfile($p); + if ($b ne $p) { + $b =~ s:/:\\/:g; + push @OUT, + "s/<a href=\\\"$a\\\"([^<>])*>/<a href=\\\"$b\\\"\$1>/;"; + } + } + return @OUT; +} + +sub echo_printsitefile_style +{ + my $_bold_="text-decoration : none ; font-weight : bold ; "; + return " <style>" + ."$n a:link { $_bold_ color : #000060 ; }" + ."$n a:visited { $_bold_ color : #000040 ; }" + ."$n body { background-color : white ; }" + ."$n </style>" + ."$n"; +} + +sub make_printsitefile_head # $sitefile +{ + my $MK_STYLE = &echo_printsitefile_style(); + my @OUT = (); + for (source($SITEFILE)) { + if (/<head>/) { push @OUT, $_; + push @OUT, $MK_STYLE; next; } + if (/<title>/) { push @OUT, $_; next; } + if (/<\/head>/) { push @OUT, $_; next; } + if (/<body>/) { push @OUT, $_; next; } + if (/<link [^<>]*rel=\"shortcut icon\"[^<>]*>/) { + push @OUT, $_; next; + } + } + return @OUT; +} + +# ------------------------------------------------------------------------ +# The printsitefile is a long text containing html href markups where +# each of the href lines in the file is being prefixed with the section +# relation. During a secondary call the printsitefile can grepp'ed for +# those lines that match a given output fast-file. The result is a +# navigation header with 1...3 lines matching the nesting level + +# these alt-texts will be only visible in with a text-mode browser: +my $printsitefile_square="width=\"8\" height=\"8\" border=\"0\""; +my $printsitefile_img_1="<img alt=\"|go text:\" $printsitefile_square />"; +my $printsitefile_img_2="<img alt=\"||topics:\" $printsitefile_square />"; +my $printsitefile_img_3="<img alt=\"|||pages:\" $printsitefile_square />"; +my $_SECT="mksite:sect:"; + +sub echo_current_line # $sect $extra +{ + # add the prefix which is used by select_in_printsitefile to cut out things + my ($N,$M,$Z) = @_; + return "<!--$_SECT\"$N\"-->$M"; +} +sub make_current_entry # $sect $file ## requires $MK_SITE +{ + my ($S,$R,$Z) = @_; + my $RR=&sed_slash_key($R); + my $sep=" - " ; my $_left_=" [ " ; my $_right_=" ] "; + my $name = site_get_list_title($R); + $_ = &echo_current_line ("$S", "<a href=\"$R\">$name</a>$sep"); + if ($R eq $S) { + s/<a href/$_left_$&/; + s/<\/a>/$&$_right_/; + } + return $_; +} +sub echo_subpage_line # $sect $extra +{ + my ($N,$M,$Z) = @_; + return "<!--$_SECT*:\"$N\"-->$M"; +} + +sub make_subpage_entry +{ + my ($S,$R,$Z) = @_; + my $RR=&sed_slash_key($R); + my $sep=" - " ; + my $name = site_get_list_title($R); + $_ = &echo_subpage_line ("$S", "<a href=\"$R\">$name</a>$sep"); + return $_; +} + +sub make_printsitefile +{ + # building the printsitefile looks big but its really a loop over sects + my ($INPUTS,$Z) = @_; $INPUTS=\@MK_DATA if not $INPUTS; + @MK_SITE = &siteinfo2sitemap(); # have <name><long><date> addon-sed + savelist(\@MK_SITE,"SITE"); + + my @OUT = &make_printsitefile_head ($SITEFILE); + my $sep=" - " ; + my $_sect1= + "<a href=\"#.\" title=\"section\">$printsitefile_img_1</a> ||$sep"; + my $_sect2= + "<a href=\"#.\" title=\"topics\">$printsitefile_img_2</a> ||$sep"; + my $_sect3= + "<a href=\"#.\" title=\"pages\">$printsitefile_img_3</a> ||$sep"; + + my $_SECT1="mksite:sect1"; + my $_SECT2="mksite:sect2"; + my $_SECT3="mksite:sect3"; + + @MK_SECT1 = &site_get_rootsections(); + # round one - for each root section print a current menu + for my $r (@MK_SECT1) { + push @OUT, &echo_current_line ("$r", "<!--$_SECT1:A--><br>$_sect1"); + for my $s (@MK_SECT1) { + push @OUT, &make_current_entry ("$r", "$s"); + } + push @OUT, &echo_current_line ("$r", "<!--$_SECT1:Z-->"); + } + + # round two - for each subsection print a current and subpage menu + for my $r (@MK_SECT1) { + @MK_SECT2 = &site_get_subpages ("$r"); + for my $s (@MK_SECT2) { + push @OUT, &echo_current_line ("$s", "<!--$_SECT2:A--><br>$_sect2"); + for my $t (@MK_SECT2) { + push @OUT, &make_current_entry ("$s", "$t"); + } # "$t" + push @OUT, &echo_current_line ("$s", "<!--$_SECT2:Z-->"); + } # "$s" + my $_have_children_=""; + for my $t (@MK_SECT2) { + if (not $_have_children_) { + push @OUT, &echo_subpage_line ("$r", "<!--$_SECT2:A--><br>$_sect2"); } + $_have_children_ .= "1"; + push @OUT, &make_subpage_entry ("$r", "$t"); + } + if ($_have_children_) { + push @OUT, &echo_subpage_line ("$r", "<!--$_SECT2:Z-->"); } + } # "$r" + + # round three - for each subsubsection print a current and subpage menu + for my $r (@MK_SECT1) { + @MK_SECT2 = &site_get_subpages ("$r"); + for my $s (@MK_SECT2) { + @MK_SECT3 = &site_get_subpages ("$s"); + for my $t (@MK_SECT3) { + push @OUT, &echo_current_line ("$t", "<!--$_SECT3:A--><br>$_sect3"); + for my $u (@MK_SECT3) { + push @OUT, &make_current_entry ("$t", "$u"); + } # "$t" + push @OUT, &echo_current_line ("$t", "<!--$_SECT3:Z-->"); + } # "$t" + my $_have_children_=""; + for my $u (@MK_SECT3) { + if (not $_have_children_) { + push @OUT, &echo_subpage_line ("$s", "<!--$_SECT3:A--><br>$_sect3"); } + $_have_children_ .= "1"; + push @OUT, &make_subpage_entry ("$s", "$u"); + } + if ($_have_children_) { + push @OUT, &echo_subpage_line ("$s", "<!--$_SECT3:Z-->"); } + } # "$s" + } # "$r" + push @OUT, "<a name=\".\"></a>"; + push @OUT, "</body></html>"; + savelist(\@OUT,"FORM"); + return @OUT; +} + +# create a selector that can grep a printsitefile for the matching entries +sub select_in_printsitefile # arg = "page" : return to stdout >> $P.$HEAD +{ + my ($N,$Z) = @_; + my $_selected_="$N" ; $_selected_="$F" if not $_selected_; + my $_section_=&sed_slash_key($_selected_); + my @OUT = (); + push @OUT, "s/^<!--$_SECT\\\"$_section_\\\"-->//;"; # sect3 + push @OUT, "s/^<!--$_SECT\[*\]:\\\"$_section_\\\"-->//;"; # children + $_selected_=&site_get_parentpage($_selected_); + $_section_=&sed_slash_key($_selected_); + push @OUT, "s/^<!--$_SECT\\\"$_section_\\\"-->//;"; # sect2 + $_selected_=&site_get_parentpage($_selected_); + $_section_=&sed_slash_key($_selected_); + push @OUT, "s/^<!--$_SECT\\\"$_section_\\\"-->//;"; # sect1 + push @OUT, "/^<!--$_SECT\\\"[^\\\"]*\\\"-->/ and next;"; + push @OUT, "/^<!--$_SECT\[*\]:\\\"[^\\\"]*\\\"-->/ and next;"; + push @OUT, "s/^<!--mksite:sect[$NN]:[$AZ]-->//;"; + return @OUT; +} + +sub body_for_emailfooter +{ + return "" if $emailfooter eq "no"; + my $_email_=$emailfooter; $_email_ =~ s|[?].*||; + my $_dated_=&info_get_entry("updated"); + return "<hr><table border=\"0\" width=\"100%\"><tr><td>" + ."$n"."<a href=\"mailto:$emailfooter\">$_email_</a>" + ."$n"."</td><td align=\"right\">" + ."$n"."$_dated_</td></tr></table>" + ."$n"; +} + +# =================================================================== CSS +# There was another project to support sitemap build from xml files. +# The source format was using .dbk+xml with embedded references to .css +# files for visual preview in a browser. An docbook xml file with semantic +# outlines is far better suited for quality documentation than any html +# source. It happens that the xml/css support in browsers is still not +# very portable - especially embedded css style blocks are a nightmare. +# Instead we (a) grab all non-html xml markup tags (b) grab all referenced +# css stylesheets (c) cut out css defs from [b] that are known by [a] and +# (d) append those to the <style> tag in the output html file as well as +# (e) reformatting the defs as well as markups from tags to tag classes. +# Input dbk/htm +# <?xml-stylesheet type="text/css" href="html.css" ?> <!-- dbk/xml --> +# <link rel="stylesheet" type="text/css" href="sdocbook.css" /> <!-- xhtml --> +# <article><para> +# Using some <command>exe</command> +# </para></article> +# Input css: +# article { .. ; display : block } +# para { .. ; display : block } +# command { .. ; display : inline } +# Output html: +# <html><style type="text/css"> +# div .article { .. } +# div .para { .. } +# span .command { .. } +# </style> +# <div class="article"><div class="para> +# Using some <span class="command">exe</span> +# </div></div> + +sub css_sourcefile +{ + my ($X,$XXX) = @_; + return $X if -f $X; + return "$o{src_dir}/$X" if -f "$o{src_dir}/$X"; + return "$X" if "$X" =~ m:^/:; + return "./$X"; +} + +my %XMLTAGS = (); +sub css_xmltags # $SOURCEFILE +{ + my $X=$SOURCEFILE; + my %R = (); + my $line; + foreach $line (source($SOURCEFILE)) { + $line =~ s|>[^<>]*<|><|g; + $line =~ s|^[^<>]*<|<|; + $line =~ s|>[^<>]*\$|>|; + my $item; + foreach $item (split /</, $line) { + $item =~ m:^/: and next; + $item =~ m:^\s*$: and next; + $item !~ m|>| and next; + $item =~ s|>.*||; + chomp $item; + $R{$item} = ""; + } + } + @{$XMLTAGS{$X}} = keys %R; +} + +my %XMLSTYLESHEETS = (); +sub css_xmlstyles # $SOURCEFILE +{ + my $X=$SOURCEFILE; + my %R = (); + my $text = ""; + my $line = ""; + foreach $line (source($SOURCEFILE)) { + $text .= $line; + $text =~ s|<link *rel=[\'\"]*stylesheet|<?xml-stylesheet |; + if ($text !~ m/<.xml-stylesheet/) { $text = ""; next; } + if ($text !~ m/href=/) { next; } + $text =~ s|^.*<.xml-stylesheet||; + $text =~ s|^.*href=[\"\']||; $text =~ s|[\"\'].*||s; + chomp $text; + $R{$text} = ""; + } + foreach $line (source($SITEFILE)) { + $text .= $line; + $text =~ s|<link *rel=[\'\"]*stylesheet|<?xml-stylesheet |; + if ($text !~ m/<.xml-stylesheet/) { $text = ""; next; } + if ($text !~ m/href=/) { next; } + $text =~ s|^.*<.xml-stylesheet||; + $text =~ s|^.*href=[\"\']||; $text =~ s|[\"\'].*||s; + chomp $text; + $R{$text} = ""; + } + @{$XMLSTYLESHEETS{$X}} = keys %R; +} + +my %XMLTAGSCSS = (); +sub css_xmltags_css # $SOURCEFILE +{ + my $X=$SOURCEFILE; + my @S = $XMLTAGS{$X}; + my @R = (); + my $xmlstylesheet; + foreach $xmlstylesheet (@{$XMLSTYLESHEETS{$X}}) { + my $stylesheet = css_sourcefile($xmlstylesheet); + if (-f $stylesheet) { + push @R, "/* $xmlstylesheet */"; + my $text = ""; + my $line = ""; + my $STYLESHEET = $stylesheet; + open STYLESHEET, "<$STYLESHEET" or next; + foreach $line (<STYLESHEET>) + { + $text .= $line; + if ($text =~ /^[^\{]*\}/s) { $text = ""; next; } + if ($text !~ /^[^\{]*\{.*\}/s) { next; } + $text =~ s|\r||g; + my $xmltag; my $found = 0; + foreach $xmltag (grep /^\w/, @{$XMLTAGS{$X}}) { + $xmltag =~ s| .*||; + if (grep {$_ eq $xmltag} qw/title section/) { + next if $xmltag eq "section"; + $found++ if $text =~ + /\b$xmltag\s*(?:,[^{},]*)*\s*\{/s; + my $xmlparent; + foreach $xmlparent (@{$XMLTAGS{$X}}) { + $xmlparent =~ s| .*||; + /^\w/ or next; + $found++ if $text =~ + /\b$xmlparent\s+$xmltag\s*(?:,[^{},]*)*\s*\{/s; + } + } else { + $found++ if $text =~ + /\b$xmltag\s*(?:,[^\{\},]*)*\{/s; + } + last if $found; + } + if (not $found) { $text = ""; next; } + foreach $xmltag (grep /^\w/, @{$XMLTAGS{$X}}) { + $xmltag =~ s| .*||; + if (grep {$_ eq $xmltag} @HTMLTAGS) { next; } + if (grep {$_ eq $xmltag} @HTMLTAGS2) { next; } + $text =~ s/(\b$xmltag\s*(?:,[^{},]*)*\s*\{)/.$1/gs; + } + chomp $text; + push @R, $text; $text = ""; next; + } + } else { + warn "$xmlstylesheet : ERROR, no such stylesheet $xmlstylesheet"; + } + } + @{$XMLTAGSCSS{$X}} = @R; +} + +my %XMLMAPPING = (); +sub css_xmlmapping # $SOURCEFILE +{ + my $X=$SOURCEFILE; + my %R = (); + foreach (@{$XMLTAGSCSS{$X}}) { + my $span = ""; + $span="li" if /\bdisplay\s*:\s*list-item\b/; + $span="caption" if /\bdisplay\s*:\s*table-caption\b/; + $span="td" if /\bdisplay\s*:\s*table-cell\b/; + $span="tr" if /\bdisplay\s*:\s*table-row\b/; + $span="table" if /\bdisplay\s*:\s*table\b/; + $span="div" if /\bdisplay\s*:\s*block\b/; + $span="span" if /\bdisplay\s*:\s*inline\b/; + $span="small" if /\bdisplay\s*:\s*none\b/; + $span="ul" if /\blist-style-type\s*:\s*disc\b/ and $span eq "div"; + $span="ol" if /\blist-style-type\s*:\s*decimal\b/ and $span eq "div"; + $span="tt" if /\bfont-family\s*:\s*monospace\b/ and $span eq "span"; + $span="em" if /\bfont-style\s*:\s*italic\b/ and $span eq "span"; + $span="b" if /\bfont-weight\s*:\s*bold\b/ and $span eq "span"; + $span="pre" if /\bwhite-space\s*:\s*pre\b/ and $span eq "div"; + my $xmltag; + for $xmltag (grep /^\w/, @{$XMLTAGS{$X}}) { + $xmltag =~ s| .*||; + if (/\.$xmltag\b/s) { + $R{$xmltag} = $span; + $R{$xmltag} = "p" if $xmltag eq "para" and $span eq "div"; + $R{$xmltag} = "a" if $xmltag eq "ulink" and $span eq "span"; + } + } + } + %{$XMLMAPPING{$X}} = %R; +} + +sub css_scan # $SOURCEFILE +{ + css_xmltags (); + css_xmlstyles (); + css_xmltags_css (); + css_xmlmapping (); +} + +sub tags2span_sed # $SOURCEFILE > $++ +{ + my $X=$SOURCEFILE; + my $xmltag; + my @R = (); + push @R, "s|<[?]xml-stylesheet[^<>]*[?]>||"; + push @R, "s|<link *rel=['\"]*stylesheet[^<>]*>||"; + push @R, "s|<section[^<>]*>||g;"; + push @R, "s|</section[^<>]*>||g;"; + for $xmltag (grep /^\w/, @{$XMLTAGS{$X}}) { + $xmltag =~ s| .*||; + if (grep {$_ eq $xmltag} @HTMLTAGS) { next; } + if (grep {$_ eq $xmltag} @HTMLTAGS2) { next; } + my $span = $XMLMAPPING{$X}{$xmltag}; + $span = "span" if $span eq ""; + push @R, "s|<$xmltag([\\n\\t ][^<>]*)url=|<$span class=\"$xmltag\"\$1href=|g;"; + push @R, "s|<$xmltag([\\n\\t >])|<$span class=\"$xmltag\"\$1|g;"; + push @R, "s|</$xmltag([\\n\\t >])|</$span\$1|g;"; + } + my $xmlstylesheet; + foreach $xmlstylesheet (@{$XMLSTYLESHEETS{$X}}) { + my $H="[^<>]*href=[\'\"]${xmlstylesheet}[\'\"][^<>]*"; + push @R, "s|<[?]xml-stylesheet$H>||;"; + push @R, "s|<link[^<>]* rel=['\"]*stylesheet['\"]$H>||;"; + } + return @R; +} + +sub tags2meta_sed # $SOURCEFILE > $++ +{ + my @R = (); + push @R, " <style type=\"text/css\"><!--"; + push @R, map {s/(^|\n)/$1 /g;$_} @{$XMLTAGSCSS{$SOURCEFILE}}; + push @R, " --></style>"; + @R = () if $#R < 3; + return @R; +} + +# ========================================================================== +# xml/docbook support is taking an dbk input file converting any html DBK +# syntax into pure docbook tagging. Each file is being given a docbook +# doctype so that an xml/docbook viewer can render it correctly - that +# is needed atleast since docbook files do not embed stylesheet infos. +# Most of the processing is related to remap html markup and some other +# shortcut markup into correct docbook markup. The result is NOT checked +# for being well-formed or even matching the docbook schema DTD at all. + +sub scan_xml_rootnode +{ + my ($INF,$XXX) = @_; + $INF = \@{$DATA{$F}} if not $INF; + for my $entry (source($SOURCEFILE)) { + my $line = $entry; next if $line !~ /<\w/; + $line =~ s/<(\w*).*/$1/s; + # print ":",$line,$n; + push @{$INF}, "<!root $F>$line"; + return; + } +} + +sub get_xml_rootnode +{ + my ($INF,$XXX) = @_; + $INF = \@{$DATA{$F}} if not $INF; + my $_file_ = sed_slash_key($F); + foreach my $entry (grep /^<!root $_file_>/, @{$INF}) { + my $line=$entry; $line =~ s|.*>||; + return $line; + } +} + +sub xml_sourcefile +{ + my ($X,$XXX) = @_; + my $XMLFILE=$X; $XMLFILE =~ s/\.xml$/.dbk/; + my $SRCFILE=$X; $SRCFILE =~ s/\.xml$/.htm/; + $XMLFILE="///" if $X eq $XMLFILE; + $SRCFILE="///" if $X eq $SRCFILE; + return $XMLFILE if -f $XMLFILE; + return $SRCFILE if -f $SRCFILE; + return "$o{src_dir}/$XMLFILE" if -f "$o{src_dir}/$XMLFILE"; + return "$o{src_dir}/$SRCFILE" if -f "$o{src_dir}/$SRCFILE"; + return ".//$XMLFILE"; # $++ (not found?) +} + +sub scan_xmlfile +{ + $SOURCEFILE= &xml_sourcefile($F); + hint "'$SOURCEFILE': scanning xml -> '$F'"; + scan_xml_rootnode(); + my $rootnode=&get_xml_rootnode(); $rootnode =~ s|^(h\d.*$)|$1 <?section?>|; + hint "'$SOURCEFILE': rootnode ('$rootnode')"; +} + +sub make_xmlfile +{ + $SOURCEFILE= &xml_sourcefile($F); + my $X=$SOURCEFILE; + my $article= &get_xml_rootnode(); + $article="article" if $article eq ""; + my $text = ""; + $text .= '<!DOCTYPE '.$article. + ' PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"'.$n; + $text .= ' "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">' + .$n; + for my $stylesheet (@{$XMLSTYLESHEETS{$X}}) { + $text .= "<?xml-stylesheet type=\"text/css\" href=\"$stylesheet\" ?>" + .$n; + } + for (source($SOURCEFILE)) { + s!<>!\ \;!g; + s!(&)(&)!${1}amp;${2}amp;!g; + s!(<[^<>]*)(width)(=)(\d+\%*)!$1$2$3\"$4\"!g; + s!(<[^<>]*)(cellpadding)(=)(\d+\%*)!$1$2$3\"$4\"!g; + s!(<[^<>]*)(border)(=)(\d+\%*)!$1$2$3\"$4\"!g; + s!<[?]xml-stylesheet[^<>]*>!!; + s!<link[^<>]* rel=[\'\"]*stylesheet[^<>]*>!!; + s!<[hH]\d!<title!g; + s!</[hH]\d!</title!g; + s!(</title> *)([^<>]*\w[^<>\r\n]*)$!$1<sub>$2</sub>!; + s!(</title>.*)<sub>!$1<subtitle>!g; + s!(</title>.*)</sub>!$1</subtitle>!g; + s!(<section>[^<>]*)(<date>.*</date>[^<>\n]*)$!$1<sectioninfo>$2</sectioninfo>!gx; + s!<em>!<emphasis>!g; + s!</em>!</emphasis>!g; + s!<i>!<emphasis>!g; + s!</i>!</emphasis>!g; + s!<b>!<emphasis role=\"bold\">!g; + s!</b>!</emphasis>!g; + s!<u>!<emphasis role=\"underline\">!g; + s!</u>!</emphasis>!g; + s!<big>!<emphasis role=\"strong\">!g; + s!</big>!</emphasis>!g; + s!<(s|strike)>!<emphasis role=\"strikethrough\">!g; + s!</(s|strike)>!</emphasis>!g; + s!<center>!<blockquote><para>!g; + s!</center>!</para></blockquote>!g; + s!<p align=(\"\w*\")>!<para role=${1}>!g; + s!<[pP]>!<para>!g; + s!</[pP]>!</para>!g; + s!<(pre|PRE)>!<screen>!g; + s!</(pre|PRE)>!</screen>!g; + s!<a( [^<>]*)name=([^<>]*)/>!<anchor ${1}id=${2}/>!g; + s!<a( [^<>]*)name=([^<>]*)>!<anchor ${1}id=${2}/>!g; + s!<a( [^<>]*)href=!<ulink${1}url=!g; + s!</a>!</ulink>!g; + s! remap=\"url\">[^<>]*</ulink>! />!g; + s!<(/?)span(\s[^<>]*)?>!<${1}phrase${2}>!g; + s!<small(\s[^<>]*)?>!<phrase role=\"small\"${1}>!g; + s!</small(\s[^<>]*)?>!</phrase${1}>!g; + s!<(/?)(sup)>!<${1}superscript>!g; + s!<(/?)(sub)>!<${1}subscript>!g; + s!(<)(li)(><)!${1}listitem${3}!g; + s!(></)(li)(>)!${1}listitem${3}!g; + s!(<)(li)(>)!${1}listitem${3}<para>!g; + s!(</)(li)(>)!</para>${1}listitem${3}!g; + s!(</?)(ul)>!${1}itemizedlist>!g; + s!(</?)(ol)>!${1}orderedlist>!g; + s!(</?)(dl)>!${1}variablelist>!g; + s!<(/?)DT>!<${1}dt>!g; + s!<(/?)DD>!<${1}dd>!g; + s!<(/?)DL>!<${1}dl>!g; + s!<BLOCKQUOTE>!<blockquote><para>!g; + s!</BLOCKQUOTE>!</para></blockquote>!g; + s!<(/?)dl>!<${1}variablelist>!g; + s!<dt\b([^<>]*)>!<varlistentry${1}><term>!g; + s!</dt\b([^<>]*)>!</term>!g; + s!<dd\b([^<>]*)><!<listitem${1}><!g; + s!></dd\b([^<>]*)>!></listitem></varlistentry>!g; + s!<dd\b([^<>]*)>!<listitem${1}><para>!g; + s!</dd\b([^<>]*)>!</para></listitem></varlistentry>!g; + s!<table[^<>]*><tr><td>(<table[^<>]*>)!$1!; + s!(</table>)</td></tr></table>!$1!; + s!<table\b([^<>]*)>!<informaltable${1}><tgroup cols=\"2\"><tbody>!g; + s!</table\b([^<>]*)>!</tbody></tgroup></informaltable>!g; + s!(</?)tr(\s[^<>]*)?>!${1}row${2}>!g; + s!(</?)td(\s[^<>]*)?>!${1}entry${2}>!g; + s!(<informaltable[^<>]*\swidth=\"100\%\")!$1 pgwide=\"1\"!g; + s!(<tgroup[<>]*\scols=\"2\">)(<tbody>) + !$1<colspec colwidth=\"1*\" /><colspec colwidth=\"1*\" />$2!gx; + s!(<entry[^<>]*\s)width=(\"\d*\%*\")!${1}remap=${2}!g; + s!<nobr>([\'\`]*)<tt>!<cmdsynopsis><command>$1!g; + s!</tt>([\'\`]*)</nobr>!$1</command></cmdsynopsis>!g; + s!<nobr><(tt|code)>([\`\"\'])!<cmdsynopsis><command>$2!g; + s!<(tt|code)><nobr>([\`\"\'])!<cmdsynopsis><command>$2!g; + s!([\`\"\'])</(tt|code)></nobr>!$1</command></cmdsynopsis>!g; + s!([\`\"\'])</nobr></(tt|code)>!$1</command></cmdsynopsis>!g; + s!(</?)tt>!${1}constant>!g; + s!(</?)code>!${1}literal>!g; + s!<br>!<br />!g; + s!<br */>!<screen role=\"linebreak\">\n</screen>!g; + $text .= $_; + } + open F, ">$F" or die "could not write $F: $!"; print F $text; close F; + echo "'$SOURCEFILE': ",&ls_s($SOURCEFILE)," >> ",&ls_s($F); +} + +sub make_xmlmaster +{ + $SOURCEFILE= &xml_sourcefile($F); + my $X=$SOURCEFILE; + my $article="section"; # book? chapter? + my $text = ""; + $text .= '<!DOCTYPE '.$article. + ' PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"'.$n; + $text .= ' "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">' + .$n; + for my $stylesheet (@{$XMLSTYLESHEETS{$X}}) { + $text .= "<?xml-stylesheet type=\"text/css\" href=\"$stylesheet\" ?>" + .$n; + } + # $text .= "<section><sectioninfo><date/><authorblurb/></sectioninfo>..."; + $text .= "<section><title>Documentation</title>$n"; + for (make_xmlsitemap()) { + $text .= $_; + } + $text .= "</section>$n"; + open F, ">$F" or die "could not write $F: $!"; print F $text; close F; + echo "'$SOURCEFILE': ",&ls_s($SOURCEFILE)," >*> ",&ls_s($F); +} + +# ========================================================================== +# +# During processing we will create a series of intermediate files that +# store relations. They all have the same format being +# =relationtype=key value +# where key is usually s filename or an anchor. For mere convenience +# we assume that the source html text does not have lines that start +# off with =xxxx= (btw, ye remember perl section notation...). Of course +# any other format would be usuable as well. +# + +# we scan the SITEFILE for href references to be converted +# - in the new variant we use a ".gets.tmp" sed script that SECTS +# marks all interesting lines so they can be checked later +# with an sed anchor of sect="[$NN]" (or sect="[$AZ]") +my $S="\\ \\;"; +# S="[&]nbsp[;]" + +# HR and EM style markups must exist in input - BR sometimes left out +# these routines in(ter)ject hardspace before, between, after markups +# note that "<br>" is sometimes used with HR - it must exist in input +sub echo_HR_EM_PP +{ + my ($U,$V,$W,$X,$Z) = @_; + my @list = ( + "s%^($U$V$W*<a) (href=)%\$1 $X \$2%;", + "s%^(<>$U$V$W*<a) (href=)%\$1 $X \$2%;", + "s%^($S$U$V$W*<a) (href=)%\$1 $X \$2%;", + "s%^($U<>$V$W*<a) (href=)%\$1 $X \$2%;", + "s%^($U$S$V$W*<a) (href=)%\$1 $X \$2%;", + "s%^($U$V<>$W*<a) (href=)%\$1 $X \$2%;", + "s%^($U$V$S$W*<a) (href=)%\$1 $X \$2%;" ); + return @list; +} + +sub echo_br_EM_PP +{ + my ($U,$V,$W,$X,$Z) = @_; + my @list = &echo_HR_EM_PP ("$U", "$V", "$W", "$X"); + my @listt = ( + "s%^($V$W*<a) (href=)%\$1 $X \$2%;", + "s%^(<>$V$W*<a) (href=)%\$1 $X \$2%;", + "s%^($S$V$W*<a) (href=)%\$1 $X \$2%;", + "s%^($V<>$W*<a) (href=)%\$1 $X \$2%;", + "s%^($V$S$W*<a) (href=)%\$1 $X \$2%;", + "s%^($V$W*<><a) (href=)%\$1 $X \$2%;", + "s%^($V$W*$S<a) (href=)%\$1 $X \$2%;" ); + push @list, @listt; + return @list; +} + +sub echo_HR_PP +{ + my ($U,$V,$W,$Z) = @_; + my @list = ( + "s%^($U<a) (href=)%\$1 $W \$2%;", + "s%^($U$V*<a) (href=)%\$1 $W \$2%;", + "s%^(<>$U$V*<a) (href=)%\$1 $W \$2%;", + "s%^($S$U$V*<a) (href=)%\$1 $W \$2%;", + "s%^($U<>$V*<a) (href=)%\$1 $W \$2%;", + "s%^($U$S$V*<a) (href=)%\$1 $W \$2%;" ); + return @list; +} +sub echo_br_PP +{ + my ($U,$V,$W,$Z) = @_; + my @list = &echo_HR_PP ("$U", "$V", "$W"); + my @listt = ( + "s%^($V*<a) (href=)%\$1 $W \$2%;", + "s%^(<>$V*<a) (href=)%\$1 $W \$2%;", + "s%^($S$V*<a) (href=)%\$1 $W \$2%;" ); + push @list, @listt; + return @list; +} +sub echo_sp_PP +{ + my ($U,$V,$Z) = @_; + my @list = ( + "s%^(<>$U*<a) (href=)%\$1 $V \$2%;", + "s%^($S$U*<a) (href=)%\$1 $V \$2%;", + "s%^(<><>$U*<a) (href=)%\$1 $V \$2%;", + "s%^($S$S$U*<a) (href=)%\$1 $V \$2%;", + "s%^(<>$U<>*<a) (href=)%\$1 $V \$2%;", + "s%^($S$U$S*<a) (href=)%\$1 $V \$2%;", + "s%^($U<><>*<a) (href=)%\$1 $V \$2%;", + "s%^($U$S$S*<a) (href=)%\$1 $V \$2%;", + "s%^($U<>*<a) (href=)%\$1 $V \$2%;", + "s%^($U$S*<a) (href=)%\$1 $V \$2%;" ); + return @list; +} +sub echo_sp_SP +{ + my ($U,$V,$Z) = @_; + my @list = ( + "s%^($U<a) (href=)%\$1 $V \$2%;", + "s%^(<>$U<a) (href=)%\$1 $V \$2%;", + "s%^($S$U<a) (href=)%\$1 $V \$2%;", + "s%^(<><>$U<a) (href=)%\$1 $V \$2%;", + "s%^($S$S$U<a) (href=)%\$1 $V \$2%;", + "s%^(<>$U<><a) (href=)%\$1 $V \$2%;", + "s%^($S$U$S<a) (href=)%\$1 $V \$2%;", + "s%^($U<><><a) (href=)%\$1 $V \$2%;", + "s%^($U$S$S<a) (href=)%\$1 $V \$2%;", + "s%^($U<><a) (href=)%\$1 $V \$2%;", + "s%^($U$S<a) (href=)%\$1 $V \$2%;" ); + return @list; +} +sub echo_sp_sp +{ + my ($U,$V,$Z) = @_; + my @list = ( + "s%^($U<a) (name=)%\$1 $V \$2%;", + "s%^(<>$U<a) (name=)%\$1 $V \$2%;", + "s%^($S$U<a) (name=)%\$1 $V \$2%;", + "s%^(<><>$U<a) (name=)%\$1 $V \$2%;", + "s%^($S$S$U<a) (name=)%\$1 $V \$2%;", + "s%^(<>$U<><a) (name=)%\$1 $V \$2%;", + "s%^($S$U$S<a) (name=)%\$1 $V \$2%;", + "s%^($U<><><a) (name=)%\$1 $V \$2%;", + "s%^($U$S$S<a) (name=)%\$1 $V \$2%;", + "s%^($U<><a) (name=)%\$1 $V \$2%;", + "s%^($U$S<a) (name=)%\$1 $V \$2%;" ); + return @list; +} + +sub make_sitemap_init +{ + # build a list of detectors that map site.htm entries to a section table + # note that the resulting .gets.tmp / .puts.tmp are real sed-script + my $h1="[-|[]"; + my $b1="[*=]"; + my $b2="[-|[]"; + my $b3="[\\/:]"; + my $q3="[\\/:,[]"; + @MK_GETS = (); + push @MK_GETS, &echo_HR_PP ("<hr>", "$h1", "sect=\\\"1\\\""); + push @MK_GETS, &echo_HR_EM_PP("<hr>","<em>", "$h1", "sect=\\\"1\\\""); + push @MK_GETS, &echo_HR_EM_PP("<hr>","<strong>", "$h1", "sect=\\\"1\\\""); + push @MK_GETS, &echo_HR_PP ("<br>", , "$b1$b1", "sect=\\\"1\\\""); + push @MK_GETS, &echo_HR_PP ("<br>", , "$b2$b2", "sect=\\\"2\\\""); + push @MK_GETS, &echo_HR_PP ("<br>", , "$b3$b3", "sect=\\\"3\\\""); + push @MK_GETS, &echo_br_PP ("<br>", , "$b2$b2", "sect=\\\"2\\\""); + push @MK_GETS, &echo_br_PP ("<br>", , "$b3$b3", "sect=\\\"3\\\""); + push @MK_GETS, &echo_br_EM_PP("<br>","<small>" , "$q3" , "sect=\\\"3\\\""); + push @MK_GETS, &echo_br_EM_PP("<br>","<em>" , "$q3" , "sect=\\\"3\\\""); + push @MK_GETS, &echo_br_EM_PP("<br>","<u>" , "$q3" , "sect=\\\"3\\\""); + push @MK_GETS, &echo_HR_PP ("<br>", , "$q3" , "sect=\\\"3\\\""); + push @MK_GETS, &echo_br_PP ("<u>", , "$b2" , "sect=\\\"2\\\""); + push @MK_GETS, &echo_sp_PP ( "$q3" , "sect=\\\"3\\\""); + push @MK_GETS, &echo_sp_SP ( "" , "sect=\\\"2\\\""); + push @MK_GETS, &echo_sp_sp ( "$q3" , "sect=\\\"9\\\""); + push @MK_GETS, &echo_sp_sp ("<br>", "sect=\\\"9\\\""); + @MK_PUTS = map { my $x=$_; $x =~ s/(>)(\[)/$1 *$2/; $x } @MK_GETS; + # the .puts.tmp variant is used to <b><a href=..></b> some hrefs which + # shall not be used otherwise for being generated - this is nice for + # some quicklinks somewhere. The difference: a whitspace "<hr> <a...>" +} + +my $_uses_= sub{"<$Q='use$1'>$2 $3<$QX>" }; +my $_name_= sub{"<$Q='use$1'>name:$2 $3<$QX>" }; + +sub make_sitemap_list +{ + my ($V,$Z) = @_; $V = $SITEFILE if not $V; + # scan sitefile for references pages - store as "=use+=href+ anchortext" + for (source($V)) { + my $x = $_; + local $_ = &eval_MK_LIST("sitemap_list", $x, @MK_GETS); + /<a sect=\"[$NN]\"/ or next; + chomp; + s{.*<a sect=\"([^\"]*)\" href=\"([^\"]*)\"[^<>]*>(.*)</a>.*}{&$_uses_}e; + s{.*<a sect=\"([^\"]*)\" name=\"([^\"]*)\"[^<>]*>(.*)</a>.*}{&$_name_}e; + s{.*<a sect=\"([^\"]*)\" name=\"([^\"]*)\"[^<>]*>(.*)}{&$_name_}e; + /^<$Q=/ or next; + /^<!/ and next; + push @MK_DATA, $_; + } +} + +my $_Uses_= sub{"<$Q='Use$1'>$2 $3<$QX>" }; +my $_Name_= sub{"<$Q='Use$1'>name:$2 $3<$QX>" }; + +sub make_subsitemap_list # file-to-scan +{ + my ($V,$W,$Z) = @_; $V = $SITEFILE if not $V; + # scan sitefile for references pages - store as "=use+=href+ anchortext" + for (source($V)) { + my $x = $_; + local $_ = &eval_MK_LIST("subsitemap_list", $x, @MK_GETS); + /<a sect=\"[$NN]\"/ or next; + chomp; + s{.*<a sect=\"([^\"]*)\" href=\"([^\"]*)\"[^<>]*>(.*)</a>.*}{&$_Uses_}e; + s{.*<a sect=\"([^\"]*)\" name=\"([^\"]*)\"[^<>]*>(.*)</a>.*}{&$_Name_}e; + s{.*<a sect=\"([^\"]*)\" name=\"([^\"]*)\"[^<>]*>(.*)}{&$_Name_}e; + /^<$Q=/ or next; + /^<!/ and next; + s|>([^:./][^:./]*[./])|>$W$1|; + push @MK_DATA, $_; + } +} + +sub make_sitemap_sect +{ + # scan used pages and store prime section group relation =sect= and =node= + # (A) each "use1" creates "=sect=href+ href1" for all following non-"use1" + # (B) each "use1" creates "=node=href2 href1" for all following "use2" + my $sect = ""; + for (grep {/<$Q='[u]se.'>/} @MK_DATA) { + if (/<$Q='[u]se1'>([^ ]*) .*/) { $sect = $1; } + my $x = $_; # chomp $x; + $x =~ s|<$Q='[u]se.'>([^ ]*) .*|<$Q='sect'>$1 $sect<$QX>|; + push @MK_DATA, $x; + } + for (grep {/<$Q='[u]se.'>/} @MK_DATA) { + if (/<$Q='[u]se1'>([^ ]*) .*/) { $sect = $1; } + /<$Q='[u]se[13456789]'>/ and next; + my $x = $_; # chomp $x; + $x =~ s|<$Q='[u]se.'>([^ ]*) .*|<$Q='node'>$1 $sect<$QX>|; + push @MK_DATA, $x; + } +} + +sub make_sitemap_page +{ + # scan used pages and store secondary group relation =page= and =node= + # the parenting =node= for use3 is usually a use2 (or use1 if none there) + my $sect = ""; + for (grep {/<$Q='[u]se.'>/} @MK_DATA) { + if (/<$Q='[u]se1'>([^ ]*) .*/) { $sect = $1; } + if (/<$Q='[u]se2'>([^ ]*) .*/) { $sect = $1; } + /<$Q='[u]se[1]'>/ and next; + my $x = $_; + $x =~ s|<$Q='[u]se.'>([^ ]*) .*|<$Q='page'>$1<$QX>|; chomp $x; + push @MK_DATA, "$x $sect"; + } + for (grep {/<$Q='[u]se.'>/} @MK_DATA) { + if (/<$Q='[u]se1'>([^ ]*) .*/) { $sect = $1; } + if (/<$Q='[u]se2'>([^ ]*) .*/) { $sect = $1; } + /<$Q='[u]se[12456789]'>/ and next; + my $x = $_; + $x =~ s/<$Q='[u]se.'>([^ ]*) .*/<$Q='node'>$1<$QX>/; chomp $x; + push @MK_DATA, "$x $sect"; ## print "(",$_,")","$x $sect", $n; + } + # and for the root sections we register ".." as the parenting group + for (grep {/<$Q='[u]se1'>/} @MK_DATA) { + my $x = $_; $x = trimm($x); + $x =~ s/<$Q='[u]se.'>([^ ]*) .*/<$Q='node'>$1 ..<$QX>/; chomp $x; + push @MK_DATA, $x; + } +} +sub echo_site_filelist +{ + my @OUT = (); + for (grep {/<$Q='[u]se.'>/} @MK_DATA) { + my $x = $_; $x =~ s/<$Q='[u]se.'>//; $x =~ s/ .*[\n]*//; + push @OUT, $x; + } + return @OUT; +} + +# ========================================================================== +# originally this was a one-pass compiler but the more information +# we were scanning out the more slower the system ran - since we +# were rescanning files for things like section information. Now +# we scan the files first for global information. +# 1.PASS + +sub scan_sitefile # $F +{ + $SOURCEFILE=&html_sourcefile($F); + hint "'$SOURCEFILE': scanning -> sitefile"; + if ($SOURCEFILE ne $F) { + dx_init "$F"; + dx_text ("today", &timetoday()); + my $short=$F; + $short =~ s:.*/::; $short =~ s:[.].*::; # basename for all exts + $short .=" ~"; + DC_meta ("title", "$short"); + DC_meta ("date.available", &timetoday()); + DC_meta ("subject", "sitemap"); + DC_meta ("DCMIType", "Collection"); + DC_VARS_Of ($SOURCEFILE) ; HTTP_VARS_Of ($SOURCEFILE) ; + DC_modified ($SOURCEFILE) ; DC_date ($SOURCEFILE); + DC_section ($F); + DX_text ("date.formatted", &timetoday()); + if ($printerfriendly) { + DX_text ("printerfriendly", fast_html_printerfile($F)); } + if ($ENV{USER}) { DC_publisher ($ENV{USER}); } + echo "'$SOURCEFILE': $short (sitemap)"; + site_map_list_title ($F, "$short"); + site_map_long_title ($F, "generated sitemap index"); + site_map_list_date ($F, &timetoday()); + } +} + +sub scan_htmlfile # "$F" +{ + my ($FF,$Z) = @_; + $SOURCEFILE=&html_sourcefile($F); # SCAN : + hint "'$SOURCEFILE': scanning -> $F"; # HTML : + if ($SOURCEFILE ne $F) { + if ( -f $SOURCEFILE) { + dx_init "$F"; + dx_text ("today", &timetoday()); + dx_text ("todays", &timetodays()); + DC_VARS_Of ($SOURCEFILE); HTTP_VARS_Of ($SOURCEFILE); + DC_title ($SOURCEFILE); + DC_isFormatOf ($SOURCEFILE); + DC_modified ($SOURCEFILE); + DC_date ($SOURCEFILE); DC_date ($SITEFILE); + DC_section ($F); DC_selected ($F); DX_alternative ($SOURCEFILE); + if ($ENV{USER}) { DC_publisher ($ENV{USER}); } + DX_text ("date.formatted", &timetoday()); + if ($printerfriendly) { + DX_text ("printerfriendly", fast_html_printerfile($F)); } + my $sectn=&info_get_entry("DC.relation.section"); + my $short=&info_get_entry("DC.title.selected"); + &site_map_list_title ($F, "$short"); + &info_map_list_title ($F, "$short"); + my $title=&info_get_entry("DC.title"); + &site_map_long_title ($F, "$title"); + &info_map_long_title ($F, "$title"); + my $edate=&info_get_entry("DC.date"); + my $issue=&info_get_entry("issue"); + &site_map_list_date ($F, "$edate"); + &info_map_list_date ($F, "$edate"); + css_scan(); + echo "'$SOURCEFILE': '$title' ('$short') @ '$issue' ('$sectn')"; + }else { + echo "'$SOURCEFILE': does not exist"; + site_map_list_title ($F, "$F"); + site_map_long_title ($F, "$F (no source)"); + } + } else { + echo "<$F> - skipped - ($SOURCEFILE)"; + } +} + +sub scan_subsitemap_long +{ + my ($V,$W,$ZZZ) = @_; + for (source($V)) { + my $x = $_; + if ($x =~ m|<a href="([^\"]*)">.*<small style="date">([^<>]*)</small>|) { + &site_map_list_date($W.$1,$2); + } + if ($x =~ m|<a href="([^\"]*)">.*<!--long-->([^<>]*)<!--/long-->|) { + &site_map_long_title($W.$1,$2); + } + } +} + +sub scan_namespec +{ + # nothing so far + # my ($F,$ZZZ) = @_; + if ($F =~ /^name:sitemap:/) { + my $short=$F; + $short =~ s:.*/::; $short =~ s:[.].*::; # basename for all exts + $short =~ s/name:sitemap://; + $short .=" ~"; + site_map_list_title ($F, "$short"); + site_map_long_title ($F, "external sitemap index"); + site_map_list_date ($F, &timetoday()); + echo "'$F' external sitemap index"; + } + elsif ($F =~ /^name:(.*\.html*)$/) { # assuming it is a subsitefile + my $FF=$1; + my $FFF=$FF; $FFF =~ s:/[^/]*$:/:; # dirname + $FFF="" if $FFF !~ m:/:; + make_subsitemap_list($FF, $FFF); + scan_subsitemap_long($FF, $FFF); + } +} +sub scan_httpspec +{ + # nothing so far +} + +sub skip_namespec +{ + # nothing so far +} +sub skip_httpspec +{ + # nothing so far +} + +# ========================================================================== +# and now generate the output pages +# 2.PASS + +sub head_sed_sitemap # $filename $section +{ + my ($U,$V,$Z) = @_; + my $FF=&sed_piped_key($U); + my $SECTION=&sed_slash_key($V); + my $SECTS="sect=\"[$NN$AZ]\"" ; + my $SECTN="sect=\"[$NN]\""; # lines with hrefs + my @OUT = (); + push @OUT, "s|(<a $SECTS href=\\\"$FF\\\">.*</a>)|<b>\$1</b>|;"; + push @OUT, "/ href=\\\"$SECTION\\\"/ " + ."and s|^<td class=\\\"[^\\\"]*\\\"|<td |;" if $sectiontab ne "no"; + return @OUT; +} + +sub head_sed_listsection # $filename $section +{ + # traditional.... the sitefile is the full navigation bar + my ($U,$V,$Z) = @_; + my $FF=&sed_piped_key($U); + my $SECTION=&sed_slash_key($V); + my $SECTS="sect=\"[$NN$AZ]\"" ; + my $SECTN="sect=\"[$NN]\""; # lines with hrefs + my @OUT = (); + push @OUT, "s|(<a $SECTS href=\\\"$FF\\\">.*</a>)|<b>\$1</b>|;"; + push @OUT, "/ href=\\\"$SECTION\\\"/ " + ."and s|^<td class=\\\"[^\\\"]*\\\"|<td |;" if $sectiontab ne "no"; + return @OUT; +} + +sub head_sed_multisection # $filename $section +{ + # sitefile navigation bar is split into sections + my ($U,$V,$Z) = @_; + my $FF=&sed_piped_key($U); + my $SECTION=&sed_slash_key($V); + my $SECTS="sect=\"[$NN$AZ]\"" ; + my $SECTN="sect=\"[$NN]\""; # lines with hrefs + my @OUT = (); + # grep all pages with a =sect= relation to current $SECTION and + # build foreach an sed line "s|<a $SECTS (href=$F)>|<a sect="X" $1>|" + # after that all the (still) numeric SECTNs are deactivated / killed. + for my $section ($SECTION, $headsection, $tailsection) { + next if $section eq "no"; + for (grep {/^<$Q='sect'>[^ ]* $section/} @MK_DATA) { + my $x = $_; + $x =~ s|<$Q='sect'>||; $x =~ s| .*||; # $filename + $x =~ s/(.*)/s|<a $SECTS \(href=\\\"$1\\\"\)|<a sect=\\\"X\\\" \$1|/; + push @OUT, $x.";"; + } + for (grep {/^<$Q='sect'>name:[^ ]* $section/} @MK_DATA) { + my $x = $_; + $x =~ s|<$Q='sect'>name:||; $x =~ s| .*||; # $filename + $x =~ s/(.*)/s|<a $SECTS \(name=\\\"$1\\\"\)|<a sect=\\\"X\\\" \$1|/; + push @OUT, $x.";"; + } + } + push @OUT, "s|.*<a ($SECTN href=[^<>]*)>.*|<!-- \$1 -->|;"; + push @OUT, "s|.*<a ($SECTN name=[^<>]*)>.*|<!-- \$1 -->|;"; + push @OUT, "s|(<a $SECTS href=\\\"$FF\\\">.*</a>)|<b>\$1</b>|;"; + push @OUT, "/ href=\\\"$SECTION\\\"/ " + ."and s|^<td class=\\\"[^\\\"]*\\\"|<td |;" if $sectiontab ne "no"; + return @OUT; +} + +sub make_sitefile # "$F" +{ + $SOURCEFILE=&html_sourcefile($F); + if ($SOURCEFILE ne $F) { + if (-f $SOURCEFILE) { + # remember that in this case "${SITEFILE}l" = "$F" = "${SOURCEFILE}l" + @MK_VARS = &info2vars_sed(); # have <!--title--> vars substituted + @MK_META = &info2meta_sed(); # add <meta name="DC.title"> values + my @F_HEAD = (); my @F_FOOT = (); + push @F_HEAD, @MK_PUTS; + push @F_HEAD, &head_sed_sitemap ($F, &info_get_entry_section()); + push @F_HEAD, "/<head>/ and $sed_add join(\"\\n\", \@MK_META);"; + push @F_HEAD, @MK_VARS; push @F_HEAD, @MK_TAGS; + push @F_HEAD, "/<\\/body>/ and next;"; #cut lastline + if ( $sitemaplayout eq "multi") { + push @F_FOOT, &make_multisitemap(); # here we use ~foot~ to + } else { + push @F_FOOT, &make_listsitemap(); # hold the main text + } + + my $html = ""; # + $html .= &eval_MK_FILE("SITE", $SITEFILE, @F_HEAD); + $html .= join("", @F_FOOT); + for (source($SITEFILE)) { + /<\/body>/ or next; + $html .= &eval_MK_LIST("sitefile", $_, @MK_VARS); + } + open F, ">$F"; print F $html; close F; + echo "'$SOURCEFILE': ",ls_s($SOURCEFILE)," >-> ",ls_s($F); + savesource("$F.~head~", \@F_HEAD); + savesource("$F.~foot~", \@F_FOOT); +} else { + echo "'$SOURCEFILE': does not exist"; +} } +} + +sub make_htmlfile # "$F" +{ + $SOURCEFILE=&html_sourcefile($F); # 2.PASS + if ("$SOURCEFILE" ne "$F") { + if (-f "$SOURCEFILE") { + if (grep {/<meta name="formatter"/} source($SOURCEFILE)) { + echo "'$SOURCEFILE': SKIP, this sourcefile looks like a formatted file"; + echo "'$SOURCEFILE': (may be a sourcefile in place of a targetfile?)"; + return; } + @MK_VARS = &info2vars_sed(); # have <!--title--> vars substituted + @MK_META = &info2meta_sed(); # add <meta name="DC.title"> values + @MK_SPAN = &tags2span_sed(); # extern text/css -> intern css classes + push @MK_META, &tags2meta_sed(); # extern text/css -> intern css classes + my @F_HEAD = (); my @F_BODY = (); my $F_FOOT = ""; + push @F_HEAD, @MK_PUTS; + if ( $sectionlayout eq "multi") { + push @F_HEAD, &head_sed_multisection ($F, &info_get_entry_section()); + } else { + push @F_HEAD, &head_sed_listsection ($F, &info_get_entry_section()); + } + push @F_HEAD, @MK_VARS; push @F_HEAD, @MK_TAGS; push @F_HEAD, @MK_SPAN; + push @F_HEAD, "/<\\/body>/ and next;"; #cut lastline + push @F_HEAD, "/<head>/ and $sed_add join(\"\\n\",\@MK_META);"; #add metatags + push @F_BODY, "/<title>/ and next;"; #not that line + push @F_BODY, @MK_VARS; push @F_BODY, @MK_TAGS; push @F_BODY, @MK_SPAN; + push @F_BODY, &bodymaker_for_sectioninfo(); #if sectioninfo + push @F_BODY, &info2body_sed(); #cut early + push @F_HEAD, &info2head_sed(); + push @F_HEAD, &make_back_path($F); + if ($emailfooter ne "no") { + $F_FOOT = &body_for_emailfooter(); + } + my $html = ""; + $html .= eval_MK_FILE("head", $SITEFILE, @F_HEAD); + $html .= eval_MK_FILE("body", $SOURCEFILE, @F_BODY); + $html .= $F_FOOT; + for (source($SITEFILE)) { + /<\/body>/ or next; + $_ = &eval_MK_LIST("htmlfile", $_, @MK_VARS); + $html .= $_; + } + open F, ">$F" or die "could not write $F: $!"; print F $html; close F; + echo "'$SOURCEFILE': ",&ls_s($SOURCEFILE)," -> ",&ls_s($F); + savesource("$F.~head~", \@F_HEAD); + savesource("$F.~body~", \@F_BODY); + } else { + echo "'$SOURCEFILE': does not exist"; + }} else { + echo "<$F> - skipped"; + } +} + +my $PRINTSITEFILE; +sub make_printerfriendly # "$F" +{ # PRINTER + my $printsitefile="0"; # FRIENDLY + my $BODY_TXT; my $BODY_SED; + my $P=&html_printerfile ($F); + my @P_HEAD = (); my @P_BODY = (); + if ("$F" =~ /^(${SITEFILE}|${SITEFILE}l)$/) { + $printsitefile=">=>" ; $BODY_TXT="$F.~foot~" ; + } elsif ("$F" =~ /^(.*[.]html)$/) { + $printsitefile="=>" ; $BODY_TXT="$SOURCEFILE"; + } + if (grep {/<meta name="formatter"/} source($BODY_TXT)) { return; } + if ($printsitefile ne "0" and -f $SOURCEFILE) { my $x; + @MK_FAST = &make_printerfile_fast (\@FILELIST); + push @P_HEAD, @MK_VARS; push @P_HEAD, @MK_TAGS; push @P_HEAD, @MK_FAST; + @MK_METT = map { $x = $_; $x =~ + /DC.relation.isFormatOf/ and $x =~ s|content=\"[^\"]*\"|content=\"$F\"| ; + $x } @MK_META; + push @P_HEAD, "/<head>/ and $sed_add join(\"\\n\", \@MK_METT);"; + push @P_HEAD, "/<\\/body>/ and next;"; + push @P_HEAD, &select_in_printsitefile ("$F"); + my $_ext_=&print_extension($printerfriendly); +# my $line_=&sed_slash_key($printsitefile_img_2); + push @P_HEAD, "/\\|\\|topics:/" + ." and s| href=\\\"\\#\\.\\\"| href=\\\"$F\\\"|;"; + push @P_HEAD, "/\\|\\|\\|pages:/" + ." and s| href=\\\"\\#\\.\\\"| href=\\\"$F\\\"|;"; + push @P_HEAD, &make_back_path("$F"); + push @P_BODY, @MK_VARS; push @P_BODY, @MK_TAGS; push @P_BODY, @MK_FAST; + push @P_BODY, &make_back_path("$F"); + my $html = ""; + $html .= eval_MK_FILE("p_head", $PRINTSITEFILE, @P_HEAD); + $html .= eval_MK_FILE("p_body", $BODY_TXT, @P_BODY); + for (source($PRINTSITEFILE)) { + /<\/body>/ or next; + $_ = &eval_MK_LIST("printerfriendly", $_, @MK_VARS); + $html .= $_; + } + open P, ">$P" or die "could not write $P: $!"; print P $html; close P; + echo "'$SOURCEFILE': ",ls_s($SOURCEFILE)," $printsitefile ",ls_s($P); + } +} + + +# ======================================================================== +# ======================================================================== +# ======================================================================== +# ======================================================================== +# #### 0. INIT +$F=$SITEFILE; +&make_sitemap_init(); +&make_sitemap_list($SITEFILE); +&make_sitemap_sect(); +&make_sitemap_page(); +savelist(\@MK_DATA, "DATA"); + +@FILELIST=&echo_site_filelist(); +if ($o{filelist} or $o{list} eq "file" or $o{list} eq "files") { + for (@FILELIST) { echo $_; } exit; # --filelist +} +if ($o{files}) { @FILELIST=split(/ /, $o{files}); } # --files +if ($#FILELIST < 0) { warns "nothing to do (no --filelist)"; } +if ($#FILELIST == 0 and + $FILELIST[0] eq $SITEFILE) { warns "only '$SITEFILE'?!"; } + +for (@FILELIST) { #### 1. PASS + $F = $_; + if (/^(name:.*)$/) { + &scan_namespec ("$F"); + } elsif (/^(http:|https:|ftp:|mailto:|telnet:|news:|gopher:|wais:)/) { + &scan_httpspec ("$F"); + } elsif (/^(${SITEFILE}|${SITEFILE}l)$/) { + &scan_sitefile ("$F") ;; # ........... SCAN SITE + } elsif (/^(.*\@.*\.de)$/) { + echo "!! -> '$F' (skipping malformed mailto:-link)"; + } elsif (/^(\.\.\/.*)$/) { + echo "!! -> '$F' (skipping topdir build)"; +# */*.html) +# make_back_path # try for later subdir build +# echo "!! -> '$F' (skipping subdir build)" +# ;; +# */*/*/|*/*/|*/|*/index.htm|*/index.html) +# echo "!! -> '$F' (skipping subdir index.html)" +# ;; + } elsif (/^(.*\.html)$/) { + &scan_htmlfile ("$F"); # ........... SCAN HTML + if ($o{xml}) { + $F =~ s/\.html$/.xml/; + &scan_xmlfile ("$F"); + } + } elsif (/^(.*\.xml)$/) { + &scan_xmlfile ("$F") ;; + } elsif (/^(.*\/)$/) { + echo "'$F' : directory - skipped"; + &site_map_list_title ("$F", &sed_slash_key($F)); + &site_map_long_title ("$F", "(directory)"); + } else { + echo "?? -> '$F'"; + } +} + +if ($printerfriendly) { # .......... PRINT VERSION + my $_ext_=esc(&print_extension($printerfriendly)); + $PRINTSITEFILE=$SITEFILE; $PRINTSITEFILE =~ s/(\.\w*)$/$_ext_$1/; + $F=$PRINTSITEFILE; + my @TEXT = &make_printsitefile(); + echo "NOTE: going to create printer-friendly sitefile '$PRINTSITEFILE'" + ." $F._$i"; + savelist(\@TEXT, "TEXT"); + my @LINES = map { chomp; $_."$n" } @TEXT; + savesource($PRINTSITEFILE, \@LINES); + if (1) { + if (open PRINTSITEFILE, ">$PRINTSITEFILE") { + print PRINTSITEFILE join("", @LINES); close PRINTSITEFILE; + } + } +} + +for (@FILELIST) { #### 2. PASS + $F = $_; + if (/^(name:.*)$/) { + &skip_namespec ("$F") ;; + } elsif (/^(http:|https:|ftp:|mailto:|telnet:|news:|gopher:|wais:)/) { + &skip_httpspec ("$F") ;; + } elsif (/^(${SITEFILE}|${SITEFILE}l)$/) { + &make_sitefile ("$F") ;; # ........ SITE FILE + &make_printerfriendly ("$F") if ($printerfriendly); + if ($o{xml}) { + $F =~ s/\.html$/.xml/; + &make_xmlmaster ("$F"); + } + } elsif (/^(.*\@.*\.de)$/) { + echo "!! -> '$F' (skipping malformed mailto:-link)"; + } elsif (/^(\.\.\/.*)$/) { + echo "!! -> '$F' (skipping topdir build)"; +# */*.html) +# echo "!! -> '$F' (skipping subdir build)" +# ;; +# */*/*/|*/*/|*/|*/index.htm|*/index.html) +# echo "!! -> '$F' (skipping subdir index.html)" +# ;; + } elsif (/^(.*\.html)$/) { + &make_htmlfile ("$F") ; # .................. HTML FILES + &make_printerfriendly ("$F") if ($printerfriendly); + if ($o{xml}) { + $F =~ s/\.html$/.xml/; + &make_xmlfile ("$F"); + } + } elsif (/^(.*\.xml)$/) { + &make_xmlfile ("$F") ;; + } elsif (/^(.*\/)$/) { + echo "'$F' : directory - skipped"; + } else { + echo "?? -> '$F'"; + } + +# .............. debug .................... + if (-d "DEBUG" and -f $F) { + my $INP = \@{$DATA{$F}}; + my $FFFF = $F; $FFFF =~ s,/,:,g; + if (open FFFF, ">DEBUG/$FFFF.data.tmp.ht") { + for (@{$INP}) { print FFFF $_,$n; } close FFFF; + } + if (open FFFF, ">DEBUG/$FFFF.tags.tmp.pl") { + print FFFF "# /usr/bin/env perl -p",$n; + for (@MK_TAGS) { print FFFF $_,$n; } close FFFF; + } + if (open FFFF, ">DEBUG/$FFFF.vars.tmp.pl") { + print FFFF "# /usr/bin/env perl -p",$n; + for (@MK_VARS) { print FFFF $_,$n; } close FFFF; + } + if (open FFFF, ">DEBUG/$FFFF.span.tmp.pl") { + print FFFF "# /usr/bin/env perl -p",$n; + for (@MK_SPAN) { print FFFF $_,$n; } close FFFF; + } + if (open FFFF, ">DEBUG/$FFFF.meta.tmp.ht") { + for (@MK_META) { print FFFF $_,$n; } close FFFF; + } + if (open FFFF, ">DEBUG/$FFFF.gets.tmp.ht") { + for (@MK_GETS) { print FFFF $_,$n; } close FFFF; + } + if (open FFFF, ">DEBUG/$FFFF.puts.tmp.ht") { + for (@MK_PUTS) { print FFFF $_,$n; } close FFFF; + } + if (open FFFF, ">DEBUG/$FFFF.fast.tmp.ht") { + for (@MK_FAST) { print FFFF $_,$n; } close FFFF; + } + } +} # done + +## rm ./$MK.*.tmp.* if not $o{keeptmpfiles} +exit 0 diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/mksite.sh b/Build/source/libs/zziplib/zziplib-0.13.60/docs/mksite.sh new file mode 100644 index 00000000000..12af7948d00 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/mksite.sh @@ -0,0 +1,2355 @@ +#! /bin/sh +# this is the sh/sed variant of the mksite script. It is largely +# derived from snippets that I was using to finish doc pages for +# website publishing. For the mksite project the functionaliy has +# been expanded of course. Still this one does only use simple unix +# commands like sed, date, and test. And it still works. :-)=) +# http://zziplib.sf.net/mksite/ +# THE MKSITE.SH (ZLIB/LIBPNG) LICENSE +# Copyright (c) 2004 Guido U. Draheim <guidod@gmx.de> +# This software is provided 'as-is', without any express or implied warranty +# In no event will the authors be held liable for any damages arising +# from the use of this software. +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute it +# freely, subject to the following restrictions: +# 1. The origin of this software must not be misrepresented; you must not +# claim that you wrote the original software. If you use this software +# in a product, an acknowledgment in the product documentation would be +# appreciated but is not required. +# 2. Altered source versions must be plainly marked as such, and must not +# be misrepresented as being the original software. +# 3. This notice may not be removed or altered from any source distribution. +# $Id: mksite.sh,v 1.5 2006-09-22 00:33:22 guidod Exp $ + +# Zsh is not Bourne compatible without the following: (seen in autobook) +if test -n "$ZSH_VERSION"; then + emulate sh + NULLCMD=: +fi + +# initialize some defaults +test ".$SITEFILE" = "." && test -f "site.htm" && SITEFILE="site.htm" +test ".$SITEFILE" = "." && test -f "site.html" && SITEFILE="site.html" +test ".$SITEFILE" = "." && SITEFILE="site.htm" +MK="-mksite" # note the "-" at the start +SED="sed" +CAT="cat" # "sed -e n" would be okay too +GREP="grep" +DATE_NOW="date" # should be available on all posix systems +DATE_R="date -r" # gnu date has it / solaris date not +STAT_R="stat" # gnu linux +LS_L="ls -l" # linux uses one less char than solaris + +DATA="~~" # extension for meta data files +HEAD="~head~" # extension for head sed script +BODY="~body~" # extension for body sed script +FOOT="~foot~" # append to body text (non sed) + +NULL="/dev/null" # to divert stdout/stderr +CATNULL="$CAT $NULL" # to create 0-byte files +SED_LONGSCRIPT="$SED -f" + +Q='q class=' +QX='/q' +LOWER="abcdefghijklmnopqrstuvwxyz" +UPPER="ABCDEFGHIJKLMNOPQRSTUVWXYZ" +az="$LOWER" # some old sed tools can not +AZ="$UPPER" # use char-ranges in the +NN="0123456789" # match expressions so that +AA="_$NN$AZ$az" # we use their unrolled +AX="$AA.+-" # definition here +AP="|" # (pipe symbol in char-range) +AK="[" # (open range in char-range) + +LANG="C" ; LANGUAGE="C" ; LC_COLLATE="C" # these are needed for proper +export LANG LANGUAGE LC_COLLATE # lowercasing as some collate + # treat A-Z to include a-z + +HTMLTAGS=" a p h1 h2 h3 h4 h5 h6 dl dd dt ul ol li pre code table tr td th" +HTMLTAGS=" $HTMLTAGS b u i s q em strong strike cite big small sup sub tt" +HTMLTAGS=" $HTMLTAGS thead tbody center hr br nobr wbr" +HTMLTAGS=" $HTMLTAGS span div img adress blockquote" +HTMLTAGS2=" html head body title meta http-equiv style link" + +# ========================================================================== +if "${SHELL-/bin/sh}" -c 'foo () { exit 0; }; foo' 2>$NULL ; then : ; else +echo "!! sorry, this shell '$SHELL' does not support shell functions" ; exit 1 +fi + +error () +{ + echo "ERROR:" "$@" 1>&2 +} + +warn () +{ + echo "WARN:" "$@" 1>&2 +} + +note () +{ + echo "NOTE:" "$@" 1>&2 +} + +hint=":" + +init () +{ + if test -d DEBUG + then hint="note" + fi + if test "$SED" = "sed" ; then + if gsed --version 2>$NULL | $GREP "GNU sed" >$NULL ; then + SED="gsed" + $hint "using 'gsed' as SED" + fi + fi + if $SED --version 2>$NULL | $GREP "GNU sed" >$NULL ; then + az="a-z" # but if we have GNU sed + AZ="A-Z" # then we assume there are + NN="0-9" # char-ranges available + AA="_$NN$AZ$az" # that makes the resulting + AX="$AA.+-" # script more readable + $hint "found GNU sed - good" + elif uname -s | $GREP HP-UX >$NULL ; then + SED_LONGSCRIPT="sed_longscript" # due to 100 sed lines limit + $hint "weird sed - hpux sed has a limit of 100 lines" \ + "- using sed_longscript mode" + fi + if echo "TEST" | sed -e "s%[:[]*TEST%OK%" | grep OK 2>&1 > $NULL + then : + elif echo "TEST" | sed -e "s%[:\\[]*TEST%OK%" | grep OK 2>&1 > $NULL + then AK="\\[" ; $hint "AK=\\[" + else AK="" ; warn "buggy sed - disabled [ in char-ranges / fileref-tests" + fi + if echo "TEST" | sed -e "s%[:|]*TEST%OK%" | grep OK 2>&1 > $NULL + then : + elif echo "TEST" | sed -e "s%[:\\|]*TEST%OK%" | grep OK 2>&1 > $NULL + then AP="\\[" ; $hint "AP=\\|" + else AP="" ; warn "buggy sed - disabled | in char-ranges / fileref-tests" + fi +} + +init "NOW!!!" + +sed_debug () +{ + $note "sed" "$@" >&2 + sed "$@" +} + +# ========================================================================== +# reading options from the command line GETOPT +opt_variables="files" +opt_fileseparator="?" +opt_files="" +opt_main_file="" +opt_formatter="$0" +opt="" +for arg in "$@" # this variant should allow to embed spaces in $arg +do if test ".$opt" != "." ; then + eval "export opt_$opt='$arg'" + opt="" + else + case "$arg" in + -*=*) + opt=`echo "$arg" | $SED -e "s/-*\\([$AA][$AA-]*\\).*/\\1/" -e y/-/_/` + if test ".$opt" = "." ; then + error "invalid option $arg" + else + arg=`echo "$arg" | $SED -e "s/^[^=]*=//"` + eval "export opt_$opt='$arg'" + opt_variables="$opt_variables $opt" + fi + opt="" ;; + -*?-*) : an option with an argument --main-file=x or --main-file x + opt=`echo "$arg" | $SED -e "s/-*\\([$AA][$AA-]*\\).*/\\1/" -e y/-/_/` + if test ".$opt" = "." ; then + error "invalid option $arg" + opt="" + else : + # keep the option for next round + fi ;; + -*) : a simple option --filelist or --debug or --verbose + opt=`echo "$arg" | $SED -e "s/^-*\\([$AA][$AA-]*\\).*/\\1/" -e y/-/_/` + if test ".$opt" = "." ; then + error "invalid option $arg" + else + arg=`echo "$arg" | $SED -e "s/^[^=]*=//"` + eval "export opt_$opt=' '" + fi + opt="" ;; + *) $hint "<$arg>" + if test ".$opt_main_file" = "." ; then opt_main_file="$arg" ; else + test ".$opt_files" != "." && opt_files="$opt_files$opt_fileseparator" + opt_files="$opt_files$arg" ; fi + opt="" ;; + esac + fi +done ; if test ".$opt" != "." ; then + eval "export opt_$opt='$arg'" + opt="" +fi +### env | grep ^opt + +test ".$opt_main_file" != "." && test -f "$opt_main_file" && \ +SITEFILE="$opt_main_file" +test ".$opt_site_file" != "." && test -f "$opt_site_file" && \ +SITEFILE="$opt_site_file" +test "$opt_debug" && \ +hint="note" + +if test ".$opt_help" != "." ; then + F="$SITEFILE" + echo "$0 [sitefile]"; + echo " default sitefile = $F"; + echo "options:"; + echo " --filelist : show list of target files as ectracted from $F" + echo " --src-dir xx : if source files are not where mksite is executed" + echo " --tmp-dir xx : use temp instead of local directory" + echo " --tmp : use automatic temp directory in ${TEMP-/tmp}/mksite.*" + exit; + echo " internal:" + echo "--fileseparator=x : for building the internal filelist (default '?')" + echo "--files xx : for list of additional files to be processed" + echo "--main-file xx : for the main sitefile to take file list from" +fi + +if test ".$SITEFILE" = "." ; then + error "no SITEFILE found (default would be 'site.htm')" + exit 1 +else + $hint "sitefile:" `ls -s $SITEFILE` +fi + +tmp="." ; if test ".$opt_tmp_dir" != "." ; then tmp="$opt_tmp_dir" ; fi +if test ".$opt_tmp_dir" = "." && test ".$opt_tmp" != "." ; then +tmp="${TEMP-/tmp}/mksite.$$" ; fi + +# we use external files to store mappings - kind of relational tables +MK_TAGS="$tmp/$MK.tags.tmp.sed" +MK_VARS="$tmp/$MK.vars.tmp.sed" +MK_SPAN="$tmp/$MK.span.tmp.sed" +MK_META="$tmp/$MK.meta.tmp.htm" +MK_METT="$tmp/$MK.mett.tmp.htm" +MK_TEST="$tmp/$MK.test.tmp.htm" +MK_FAST="$tmp/$MK.fast.tmp.sed" +MK_GETS="$tmp/$MK.gets.tmp.sed" +MK_PUTS="$tmp/$MK.puts.tmp.sed" +MK_SITE="$tmp/$MK.site.tmp.sed" +MK_SECT1="$tmp/$MK.sect1.tmp.sed" +MK_SECT2="$tmp/$MK.sect2.tmp.sed" +MK_SECT3="$tmp/$MK.sect3.tmp.sed" +MK_STYLE="$tmp/$MK.style.tmp.sed" +MK_DATA="$tmp/$MK.$DATA.tmp.htm" + +# ======================================================================== +# ======================================================================== +# ======================================================================== +# MAGIC VARS +# IN $SITEFILE +printerfriendly="" +sectionlayout="list" +sitemaplayout="list" +attribvars=" " # <x ref="${varname:=default}"> +updatevars=" " # <!--$varname:=-->default +expandvars=" " # <!--$varname--> +commentvars=" " # $updatevars && $expandsvars +sectiontab=" " # highlight ^<td class=...>...href="$section" +currenttab=" " # highlight ^<br>..<a href="$topic"> +headsection="no" +tailsection="no" +sectioninfo="no" # using <h2> title <h2> = info text +emailfooter="no" + +if $GREP "<!--multi-->" $SITEFILE >$NULL ; then +echo \ +"WARNING: do not use <!--multi-->, change to <!--mksite:multi--> " "$SITEFILE" +echo \ +"warning: or <!--mksite:multisectionlayout--> <!--mksite:multisitemaplayout-->" +sectionlayout="multi" +sitemaplayout="multi" +fi +if $GREP "<!--mksite:multi-->" $SITEFILE >$NULL ; then +sectionlayout="multi" +sitemaplayout="multi" +fi +if $GREP "<!--mksite:multilayout-->" $SITEFILE >$NULL ; then +sectionlayout="multi" +sitemaplayout="multi" +fi + +mksite_magic_option () +{ + # $1 is word/option to check for + INP="$2" ; test ".$INP" = "." && INP="$SITEFILE" + $SED \ + -e "s/\\(<!--mksite:\\)\\($1\\)-->/\\1\\2: -->/g" \ + -e "s/\\(<!--mksite:\\)\\([$AA][$AA]*\\)\\($1\\)-->/\\1\\3:\\2-->/g" \ + -e "/<!--mksite:$1:/!d" \ + -e "s/.*<!--mksite:$1:\\([^<>]*\\)-->.*/\\1/" \ + -e "s/.*<!--mksite:$1:\\([^-]*\\)-->.*/\\1/" \ + -e "/<!--mksite:$1:/d" -e q $INP # $++ +} + +x=`mksite_magic_option sectionlayout` ; case "$x" in + "list"|"multi") sectionlayout="$x" ;; esac +x=`mksite_magic_option sitemaplayout` ; case "$x" in + "list"|"multi") sitemaplayout="$x" ;; esac +x=`mksite_magic_option attribvars` ; case "$x" in + " "|"no"|"warn") attribvars="$x" ;; esac +x=`mksite_magic_option updatevars` ; case "$x" in + " "|"no"|"warn") updatevars="$x" ;; esac +x=`mksite_magic_option expandvars` ; case "$x" in + " "|"no"|"warn") expandvars="$x" ;; esac +x=`mksite_magic_option commentvars` ; case "$x" in + " "|"no"|"warn") commentvars="$x" ;; esac +x=`mksite_magic_option printerfriendly` ; case "$x" in + " "|".*"|"-*") printerfriendly="$x" ;; esac +x=`mksite_magic_option sectiontab` ; case "$x" in + " "|"no"|"warn") sectiontab="$x" ;; esac +x=`mksite_magic_option currenttab` ; case "$x" in + " "|"no"|"warn") currenttab="$x" ;; esac +x=`mksite_magic_option sectioninfo` ; case "$x" in + " "|"no"|"[=:-]") sectioninfo="$x" ;; esac +x=`mksite_magic_option emailfooter` + test ".$x" != "." && emailfooter="$x" + +test ".$opt_print" != "." && printerfriendly="$opt_print" +test ".$commentvars" = ".no" && updatevars="no" # duplicated into +test ".$commentvars" = ".no" && expandvars="no" # info2vars_sed () + + +$hint "'$sectionlayout'sectionlayout '$sitemaplayout'sitemaplayout" +$hint "'$attribvars'attribvars '$updatevars'updatevars" +$hint "'$expandvars'expandvars '$commentvars'commentvars " +$hint "'$currenttab'currenttab '$sectiontab'sectiontab" +$hint "'$headsection'headsection '$tailsection'tailsection" + +if ($STAT_R "$SITEFILE" >$NULL) 2>$NULL ; then : ; else STAT_R=":" ; fi +# ========================================================================== +# init a few global variables +# 0. INIT + +mkpathdir () { + if test -n "$1" && test ! -d "$1" ; then + echo "!! mkdir '$1'" ; mkdir "$1" + test ! -d "$1" || mkdir -p "$1" + fi +} + +mkpathfile () { + dirname=`echo "$1" | $SED -e "s:/[^/][^/]*\$::"` + if test ".$1" != ".$dirname" && test ".$dirname" != "." ; + then mkpathdir "$dirname"; fi +} + +mknewfile () { + mkpathfile "$1" + $CATNULL > "$1" +} + +tmp_dir_was_created="no" +if test ! -d "$tmp" ; then mkpathdir "$tmp" ; tmp_dir_was_created="yes" ; fi + +# $MK_TAGS - originally, we would use a lambda execution on each +# uppercased html tag to replace <P> with <p class="P">. Here we just +# walk over all the known html tags and make an sed script that does +# the very same conversion. There would be a chance to convert a single +# tag via "h;y;x" or something we do want to convert all the tags on +# a single line of course. +mknewfile "$MK_TAGS" +for M in `echo $HTMLTAGS` +do P=`echo "$M" | $SED -e "y/$LOWER/$UPPER/"` + echo "s|<$P>|<$M class=\"$P\">|g" >> "$MK_TAGS" + echo "s|<$P |<$M class=\"$P\" |g" >> "$MK_TAGS" + echo "s|</$P>|</$M>|g" >> "$MK_TAGS" +done + echo "s|<>|\\ \\;|g" >> "$MK_TAGS" + echo "s|<->|<WBR />|g" >> "$MK_TAGS" + echo "s|<c>|<code>|g" >> "$MK_TAGS" + echo "s|</c>|</code>|g" >> "$MK_TAGS" + echo "s|<section>||g" >> "$MK_TAGS" + echo "s|</section>||g" >> "$MK_TAGS" + echo "s|<\\(a [^<>]*\\) />|<\\1></a>|g" >> "$MK_TAGS" + _ulink_="<a href=\"\\1\" remap=\"url\">\\1</a>" + echo "s|<a>\\([$az$AZ][$az$AZ]*://[^<>]*\\)</a>|$_ulink_|g" >> "$MK_TAGS" +# also make sure that some non-html entries are cleaned away that +# we are generally using to inject meta information. We want to see +# that meta ino in the *.htm browser view during editing but they +# shall not get present in the final html page for publishing. +DC_VARS="contributor date source language coverage identifier" +DC_VARS="$DC_VARS rights relation creator subject description" +DC_VARS="$DC_VARS publisher DCMIType" +_EQUIVS="refresh expires content-type cache-control" +_EQUIVS="$_EQUIVS redirect charset" # mapped to refresh / content-type +_EQUIVS="$_EQUIVS content-language content-script-type content-style-type" +for P in $DC_VARS $_EQUIVS ; do # dublin core embedded + echo "s|<$P>[^<>]*</$P>||g" >> "$MK_TAGS" +done + test ".$opt_keepsect" = "." && \ + echo "s|<a sect=\"[$AZ$NN]\"|<a|g" >> "$MK_TAGS" + echo "s|<!--[$AX]*[?]-->||g" >> "$MK_TAGS" + echo "s|<!--\\\$[$AX]*[?]:-->||g" >> "$MK_TAGS" + echo "s|<!--\\\$[$AX]*:[?=]-->||g" >> "$MK_TAGS" + echo "s|\\(<[^<>]*\\)\\\${[$AX]*:[?=]\\([^<{}>]*\\)}\\([^<>]*>\\)|\\1\\2\\3|g" >>$MK_TAGS + +# see overview at www.metatab.de - http-equivs are +# <refresh>5; url=target</reresh> or <redirect>target</redirect> +# <content-type>text/html; charset=koi8-r</content-type> iso-8859-1/UTF-8 +# <content-language>de</content-language> <charset>UTF-8</charset> +# <content-script-type>text/javascript</content-script-type> /jscript/vbscript +# <content-style-type>text/css</content-style-type> +# <cache-control>no-cache</cache-control> + +trimm () +{ + echo "$1" | $SED -e "s:^ *::" -e "s: *\$::"; +} +trimmm () +{ + echo "$1" | $SED -e "s:^ *::" -e "s: *\$::" -e "s:[ ][ ]*: :g"; +} + +timezone () +{ + # +%z is an extension while +%Z is supposed to be posix + _timezone=`$DATE_NOW +%z` + case "$_timezone" in + *+*) echo "$_timezone" ;; + *-*) echo "$_timezone" ;; + *) $DATE_NOW +%Z + esac +} +timetoday () +{ + $DATE_NOW +%Y-%m-%d +} +timetodays () +{ + $DATE_NOW +%Y-%m%d +} + +# ====================================================================== +# FUNCS + +sed_longscript () +{ + # hpux sed has a limit of 100 entries per sed script ! + $SED -e "100q" "$1" > "$1~1~" + $SED -e "1,100d" -e "200q" "$1" > "$1~2~" + $SED -e "1,200d" -e "300q" "$1" > "$1~3~" + $SED -e "1,300d" -e "400q" "$1" > "$1~4~" + $SED -e "1,400d" -e "500q" "$1" > "$1~5~" + $SED -e "1,500d" -e "600q" "$1" > "$1~6~" + $SED -e "1,600d" -e "700q" "$1" > "$1~7~" + $SED -e "1,700d" -e "800q" "$1" > "$1~8~" + $SED -e "1,800d" -e "900q" "$1" > "$1~9~" + $SED -f "$1~1~" -f "$1~2~" -f "$1~3~" -f "$1~4~" -f "$1~5~" \ + -f "$1~6~" -f "$1~7~" -f "$1~8~" -f "$1~9~" "$2" +} + +sed_escape_key () +{ + $SED -e "s|\\.|\\\\&|g" -e "s|\\[|\\\\&|g" -e "s|\\]|\\\\&|g" "$@" +} + +sed_slash_key () # helper to escape chars special in /anchor/ regex +{ # currently escaping "/" "[" "]" "." + echo "$1" | sed_escape_key -e "s|/|\\\\&|g" +} +sed_piped_key () # helper to escape chars special in s|anchor|| regex +{ # currently escaping "|" "[" "]" "." + echo "$1" | sed_escape_key -e "s/|/\\\\&/g" +} + +back_path () # helper to get the series of "../" for a given path +{ + echo "$1" | $SED -e "/\\//!d" -e "s|/[^/]*\$|/|" -e "s|[^/]*/|../|g" +} + +dir_name () +{ + echo "$1" | $SED -e "s:/[^/][^/]*\$::" +} + +piped_value="s/|/\\\\|/g" +amp_value="s|&|\\\\&|g" +info2vars_sed () # generate <!--$vars--> substition sed addon script +{ + INP="$1" ; test ".$INP" = "." && INP="$tmp/$F.$DATA" + V8=" *\\([^ ][^ ]*\\) \\(.*\\)<$QX>" + V9=" *DC[.]\\([^ ][^ ]*\\) \\(.*\\)<$QX>" + N8=" *\\([^ ][^ ]*\\) \\([$NN].*\\)<$QX>" + N9=" *DC[.]\\([^ ][^ ]*\\) \\([$NN].*\\)<$QX>" + V0="\\\\([<]*\\\\)\\\\\\\$" + V1="\\\\([^<>]*\\\\)\\\\\\\$" + V2="\\\\([^{<>}]*\\\\)" + V3="\\\\([^<>]*\\\\)" + SS="<""<>"">" # spacer so value="2004" does not make for s|\(...\)|\12004| + test ".$commentvars" = ".no" && updatevars="no" # duplicated from + test ".$commentvars" = ".no" && expandvars="no" # option handling + test ".$expandvars" != ".no" && \ + $SED -e "/^=....=formatter /d" -e "$piped_value" \ + -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<!--$V0\\1[?]-->|- \\2|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<!--$V0\\1[?]-->|(\\2)|," \ + -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<!--$V0\\1[?]-->|- \\2|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<!--$V0\\1[?]-->|(\\2)|," \ + -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++ + test ".$expandvars" != ".no" && \ + $SED -e "/^=....=formatter /d" -e "$piped_value" \ + -e "/^<$Q'text'>/s,<$Q'text'>$V9,s|<!--$V1\\1-->|\\\\1$SS\\2|," \ + -e "/^<$Q'Text'>/s,<$Q'Text'>$V9,s|<!--$V1\\1-->|\\\\1$SS\\2|," \ + -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<!--$V1\\1[?]-->|\\\\1$SS\\2|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<!--$V1\\1[?]-->|\\\\1$SS\\2|," \ + -e "/^<$Q'text'>/s,<$Q'text'>$V8,s|<!--$V1\\1-->|\\\\1$SS\\2|," \ + -e "/^<$Q'Text'>/s,<$Q'Text'>$V8,s|<!--$V1\\1-->|\\\\1$SS\\2|," \ + -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<!--$V1\\1[?]-->|\\\\1$SS\\2|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<!--$V1\\1[?]-->|\\\\1$SS\\2|," \ + -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++ + test ".$updatevars" != ".no" && \ + $SED -e "/^=....=formatter /d" -e "$piped_value" \ + -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<!--$V0\\1:[?]-->[^<>]*|- \\2|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<!--$V0\\1:[?]-->[^<>]*|(\\2)|," \ + -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<!--$V0\\1:[?]-->[^<>]*|- \\2|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<!--$V0\\1:[?]-->[^<>]*|(\\2)|," \ + -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++ + test ".$updatevars" != ".no" && \ + $SED -e "/^=....=formatter /d" -e "$piped_value" \ + -e "/^<$Q'text'>/s,<$Q'text'>$V9,s|<!--$V1\\1:[=]-->[^<>]*|\\\\1$SS\\2|," \ + -e "/^<$Q'Text'>/s,<$Q'Text'>$V9,s|<!--$V1\\1:[=]-->[^<>]*|\\\\1$SS\\2|," \ + -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<!--$V1\\1:[?]-->[^<>]*|\\\\1$SS\\2|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<!--$V1\\1:[?]-->[^<>]*|\\\\1$SS\\2|," \ + -e "/^<$Q'text'>/s,<$Q'text'>$V8,s|<!--$V1\\1:[=]-->[^<>]*|\\\\1$SS\\2|," \ + -e "/^<$Q'Text'>/s,<$Q'Text'>$V8,s|<!--$V1\\1:[=]-->[^<>]*|\\\\1$SS\\2|," \ + -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<!--$V1\\1:[?]-->[^<>]*|\\\\1$SS\\2|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<!--$V1\\1:[?]-->[^<>]*|\\\\1$SS\\2|," \ + -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++ + test ".$attribvars" != ".no" && \ + $SED -e "/^=....=formatter /d" -e "$piped_value" \ + -e "/^<$Q'text'>/s,<$Q'text'>$V9,s|<$V1{\\1:[=]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \ + -e "/^<$Q'Text'>/s,<$Q'Text'>$V9,s|<$V1{\\1:[=]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \ + -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<$V1{\\1:[?]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<$V1{\\1:[?]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \ + -e "/^<$Q'text'>/s,<$Q'text'>$V8,s|<$V1{\\1:[=]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \ + -e "/^<$Q'Text'>/s,<$Q'Text'>$V8,s|<$V1{\\1:[=]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \ + -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<$V1{\\1:[?]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \ + -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<$V1{\\1:[?]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \ + -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++ + # if value="2004" then generated sed might be "\\12004" which is bad + # instead we generate an edited value of "\\1$SS$value" and cut out + # the spacer now after expanding the variable values: + echo "s|$SS||g" # $++ +} + +info2meta_sed () # generate <meta name..> text portion +{ + # http://www.metatab.de/meta_tags/DC_type.htm + INP="$1" ; test ".$INP" = "." && INP="$tmp/$F.$DATA" + V6=" *HTTP[.]\\([^ ][^ ]*\\) \\(.*\\)<$QX>" + V7=" *DC[.]\\([^ ][^ ]*\\) \\(.*\\)<$QX>" + V8=" *\\([^ ][^ ]*\\) \\(.*\\)<$QX>" + DATA_META_TYPE_SCHEME="name=\"DC.type\" content=\"\\2\" scheme=\"\\1\"" + DATA_META_DCMI="name=\"\\1\" content=\"\\2\" scheme=\"DCMIType\"" + DATA_META_NAME_TZ="name=\"\\1\" content=\"\\2 `timezone`\"" + DATA_META_NAME="name=\"\\1\" content=\"\\2\"" + DATA_META_HTTP="http-equiv=\"\\1\" content=\"\\2\"" + $SED -e "/=....=today /d" \ + -e "/<$Q'meta'>HTTP[.]/s,<$Q'meta'>$V6, <meta $DATA_META_HTTP />," \ + -e "/<$Q'meta'>DC[.]DCMIType /s,<$Q'meta'>$V7, <meta $DATA_META_TYPE_SCHEME />," \ + -e "/<$Q'meta'>DC[.]type Collection$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \ + -e "/<$Q'meta'>DC[.]type Dataset$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \ + -e "/<$Q'meta'>DC[.]type Event$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \ + -e "/<$Q'meta'>DC[.]type Image$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \ + -e "/<$Q'meta'>DC[.]type Service$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \ + -e "/<$Q'meta'>DC[.]type Software$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \ + -e "/<$Q'meta'>DC[.]type Sound$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \ + -e "/<$Q'meta'>DC[.]type Text$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \ + -e "/<$Q'meta'>DC[.]date[.].*[+]/s,<$Q'meta'>$V8, <meta $DATA_META_NAME />," \ + -e "/<$Q'meta'>DC[.]date[.].*[:]/s,<$Q'meta'>$V8, <meta $DATA_META_NAME_TZ />," \ + -e "/<$Q'meta'>/s,<$Q'meta'>$V8, <meta $DATA_META_NAME />," \ + -e "/<meta name=\"[^\"]*\" content=\"\" /d" \ + -e "/<meta http-equiv=\"[^\"]*\" content=\"\" /d" \ + -e "/^<$Q/d" -e "/^<!/d" $INP # $++ +} + +info_get_entry () # get the first <!--vars--> value known so far +{ + TXT="$1" ; test ".$TXT" = "." && TXT="sect" + INP="$2" ; test ".$INP" = "." && INP="$tmp/$F.$DATA" + $SED -e "/<$Q'text'>$TXT /!d" \ + -e "s|<$Q'text'>$TXT ||" -e "s|<$QX>||" -e "q" $INP # $++ +} + +info1grep () # test for a <!--vars--> substition to be already present +{ + TXT="$1" ; test ".$TXT" = "." && TXT="sect" + INP="$2" ; test ".$INP" = "." && INP="$tmp/$F.$DATA" + $GREP "^<$Q'text'>$TXT " $INP >$NULL + return $? +} + +dx_init() +{ + mkpathdir "$tmp" + dx_meta formatter `basename $opt_formatter` > "$tmp/$F.$DATA" + for opt in $opt_variables ; do case "$opt" in # commandline --def=value + *_*) op_=`echo "$opt" | sed -e "y/_/-/"` # makes for <!--$def--> + dx_meta "$op_" `eval echo "\\\$opt_$opt"` ;; + *) dx_text "$opt" `eval echo "\\\$opt_$opt"` ;; + esac ; done +} + +dx_line () +{ + echo "<$Q$1>$2 "`trimmm "$3"`"<$QX>" >> "$tmp/$F.$DATA" +} + +DX_line () +{ + dx_val_=`echo "$3" | sed -e "s/<[^<>]*>//g"` + dx_line "$1" "$2" "$dx_val_" +} + +dx_text () +{ + dx_line "'text'" "$1" "$2" +} + +DX_text () # add a <!--vars--> substition includings format variants +{ + N=`trimm "$1"` ; T=`trimm "$2"` + if test ".$N" != "." ; then + if test ".$T" != "." ; then + text=`echo "$T" | $SED -e "y/$UPPER/$LOWER/" -e "s/<[^<>]*>//g"` + dx_line "'text'" "$N" "$T" + dx_line "'name'" "$N" "$text" + varname=`echo "$N" | $SED -e 's/.*[.]//'` # cut out front part + if test ".$N" != ".$varname" ; then + text=`echo "$varname $T" | $SED -e "y/$UPPER/$LOWER/" -e "s/<[^<>]*>//g"` + dx_line "'Text'" "$varname" "$T" + dx_line "'Name'" "$varname" "$text" + fi + fi + fi +} + +dx_meta () +{ + DX_line "'meta'" "$1" "$2" +} + +DX_meta () # add simple meta entry and its <!--vars--> subsitution +{ + DX_line "'meta'" "$1" "$2" + DX_text "$1" "$2" +} + +DC_meta () # add new DC.meta entry plus two <!--vars--> substitutions +{ + DX_line "'meta'" "DC.$1" "$2" + DX_text "DC.$1" "$2" + DX_text "$1" "$2" +} + +HTTP_meta () # add new HTTP.meta entry plus two <!--vars--> substitutions +{ + DX_line "'meta'" "HTTP.$1" "$2" + DX_text "HTTP.$1" "$2" + DX_text "$1" "$2" +} + +DC_VARS_Of () # check DC vars as listed in $DC_VARS global and generate DC_meta +{ # the results will be added to .meta.tmp and .vars.tmp later + FILENAME="$1" ; test ".$FILENAME" = "." && FILENAME="$SOURCEFILE" + for M in $DC_VARS title ; do + # scan for a <markup> of this name + part=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</$M>.*||" -e q $FILENAME` + part=`trimm "$part"` + text=`echo "$part" | $SED -e "s|^[$AA]*:||"` + text=`trimm "$text"` + test ".$text" = "." && continue + # <mark:part> will be <meta name="mark.part"> + if test ".$text" != ".$part" ; then + N=`echo "$part" | $SED -e "s/:.*//"` + DC_meta "$M.$N" "$text" + elif test ".$M" = ".date" ; then + DC_meta "$M.issued" "$text" # "<date>" -> "<date>issued:" + else + DC_meta "$M" "$text" + fi + done +} + +HTTP_VARS_Of () # check HTTP-EQUIVs as listed in $_EQUIV global then +{ # generate meta tags that are http-equiv= instead of name= + FILENAME="$1" ; test ".$FILENAME" = "." && FILENAME="$SOURCEFILE" + for M in $_EQUIVS ; do + # scan for a <markup> of this name + part=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</$M>.*||" -e q $FILENAME` + part=`trimm "$part"` + text=`echo "$part" | $SED -e "s|^[$AA]*:||"` + text=`trimm "$text"` + test ".$text" = "." && continue + if test ".$M" = ".redirect" ; then + HTTP_meta "refresh" "5; url=$text" ; DX_text "$M" "$text" + elif test ".$M" = ".charset" ; then + HTTP_meta "content-type" "text/html; charset=$text" + else + HTTP_meta "$M" "$text" + fi + done +} + +DC_isFormatOf () # make sure there is this DC.relation.isFormatOf tag +{ # choose argument for a fallback (usually $SOURCEFILE) + NAME="$1" ; test ".$NAME" = "." && NAME="$SOURCEFILE" + info1grep DC.relation.isFormatOf || DC_meta relation.isFormatOf "$NAME" +} + +DC_publisher () # make sure there is this DC.publisher meta tag +{ # choose argument for a fallback (often $USER) + NAME="$1" ; test ".$NAME" = "." && NAME="$USER" + info1grep DC.publisher || DC_meta publisher "$NAME" +} + +DC_modified () # make sure there is a DC.date.modified meta tag +{ # maybe choose from filesystem dates if possible + ZZ="$1" # target file + if info1grep DC.date.modified ; then : + else + _42_chars="........................................." + cut_42_55="s/^$_42_chars\\(.............\\).*/\\1/" # i.e.`cut -b 42-55` + text=`$STAT_R $ZZ 2>$NULL | $SED -e '/odify:/!d' -e 's|.*fy:||' -e q` + text=`echo "$text" | $SED -e "s/:..[.][$NN]*//"` + text=`trimm "$text"` + test ".$text" = "." && \ + text=`$DATE_R "$ZZ" +%Y-%m-%d 2>$NULL` # GNU sed + test ".$text" = "." && + text=`$LS_L "$ZZ" | $SED -e "$cut_42_55" -e "s/^ *//g" -e "q"` + text=`echo "$text" | $SED -e "s/[$NN]*:.*//"` # cut way seconds + DC_meta date.modified `trimm "$text"` + fi +} + +DC_date () # make sure there is this DC.date meta tag +{ # choose from one of the available DC.date.* specials + ZZ="$1" # source file + if info1grep DC.date + then DX_text issue "dated `info_get_entry DC.date`" + DX_text updated "`info_get_entry DC.date`" + else text="" + for kind in available issued modified created ; do + text=`info_get_entry DC.date.$kind` + # test ".$text" != "." && echo "$kind = date = $text ($ZZ)" + test ".$text" != "." && break + done + if test ".$text" = "." ; then + M="date" + part=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</$M>.*||" -e q $ZZ` + part=`trimm "$part"` + text=`echo "$part" | $SED -e "s|^[$AA]*:||"` + text=`trimm "$text"` + fi + if test ".$text" = "." ; then + M="!--date:*=*--" # takeover updateable variable... + part=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</.*||" -e q $ZZ` + part=`trimm "$part"` + text=`echo "$part" | $SED -e "s|^[$AA]*:||" -e "s|\\&.*||"` + text=`trimm "$text"` + fi + text=`echo "$text" | $SED -e "s/[$NN]*:.*//"` # cut way seconds + DX_text updated "$text" + text1=`echo "$text" | $SED -e "s|^.* *updated ||"` + if test ".$text" != ".$text1" ; then + kind="modified" ; text=`echo "$text1" | $SED -e "s|,.*||"` + fi + text1=`echo "$text" | $SED -e "s|^.* *modified ||"` + if test ".$text" != ".$text1" ; then + kind="modified" ; text=`echo "$text1" | $SED -e "s|,.*||"` + fi + text1=`echo "$text" | $SED -e "s|^.* *created ||"` + if test ".$text" != ".$text1" ; then + kind="created" ; text=`echo "$text1" | $SED -e "s|,.*||"` + fi + text=`echo "$text" | $SED -e "s/[$NN]*:.*//"` # cut way seconds + DC_meta date `trimm "$text"` + DX_text issue `trimm "$kind $text"` + fi +} + +DC_title () +{ + # choose a title for the document, either an explicit title-tag + # or one of the section headers in the document or fallback to filename + ZZ="$1" # target file + if info1grep DC.title ; then : + else + for M in TITLE title H1 h1 H2 h2 H3 H3 H4 H4 H5 h5 H6 h6 ; do + text=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</$M>.*||" -e q $ZZ` + text=`trimm "$text"` ; test ".$text" != "." && break + MM="$M [^<>]*" + text=`$SED -e "/<$MM>/!d" -e "s|.*<$MM>||" -e "s|</$M>.*||" -e q $ZZ` + text=`trimm "$text"` ; test ".$text" != "." && break + done + if test ".text" = "." ; then + text=`basename $ZZ .html` + text=`basename $text .htm | $SED -e 'y/_/ /' -e "s/\\$/ info/"` + fi + term=`echo "$text" | $SED -e 's/.*[(]//' -e 's/[)].*//'` + text=`echo "$text" | $SED -e 's/[(][^()]*[)]//'` + if test ".$term" = "." || test ".$term" = ".$text" ; then + DC_meta title "$text" + else + DC_meta title "$term - $text" + fi + fi +} + +site_get_section () # return parent section page of given page +{ + _F_=`sed_slash_key "$1"` + $SED -e "/^<$Q'sect'>$_F_ /!d" \ + -e "s|^<$Q'sect'>$_F_ ||" -e "s|<$QX>||" \ + -e q "$MK_DATA" # $++ +} + +DC_section () # not really a DC relation (shall we use isPartOf ?) +{ # each document should know its section father + sectn=`site_get_section "$F"` + if test ".$sectn" != "." ; then + DC_meta relation.section "$sectn" + fi +} + +info_get_entry_section() +{ + info_get_entry DC.relation.section # $++ +} + +site_get_selected () # return section of given page +{ + _F_=`sed_slash_key "$1"` + $SED -e "/<$Q'use.'>$_F_ /!d" \ + -e "s|<$Q'use.'>[^ ]* ||" -e "s|<$QX>||" \ + -e q "$MK_DATA" # $++ +} + +DC_selected () # not really a DC title (shall we use alternative ?) +{ + # each document might want to highlight the currently selected item + short=`site_get_selected "$F"` + if test ".$short" != "." ; then + DC_meta title.selected "$short" + fi +} + +info_get_entry_selected () +{ + info_get_entry DC.title.selected # $++ +} + +site_get_rootsections () # return all sections from root of nav tree +{ + $SED -e "/^<$Q'use1'>/!d" \ + -e "s|^<$Q'use.'>\\([^ ]*\\) .*|\\1|" "$MK_DATA" # $++ +} + +site_get_sectionpages () # return all children pages in the given section +{ + _F_=`sed_slash_key "$1"` + $SED -e "/^<$Q'sect'>[^ ]* $_F_<[^<>]*>\$/!d" \ + -e "s|^<$Q'sect'>||" -e "s|<$QX>||" \ + -e "s/ .*//" "$MK_DATA" # $++ +} + +site_get_subpages () # return all page children of given page +{ + _F_=`sed_slash_key "$1"` + $SED -e "/^<$Q'node'>[^ ]* $_F_<[^<>]*>\$/!d" \ + -e "s|^<$Q'node'>||" -e "s|<$QX>||" \ + -e "s/ .*//" "$MK_DATA" + # $++ +} + +site_get_parentpage () # return parent page for given page (".." for sections) +{ + _F_=`sed_slash_key "$1"` + $SED -e "/^<$Q'node'>$_F_ /!d" \ + -e "s|^<$Q'node'>[^ ]* ||" -e "s|<$QX>||" \ + -e "q" "$MK_DATA" # $++ +} + +DX_alternative () # detect wether page asks for alternative style +{ # which is generally a shortpage variant + x=`mksite_magic_option alternative $1 | sed -e "s/^ *//" -e "s/ .*//"` + if test ".$x" != "." ; then + DX_text alternative "$x" + fi +} + +info2head_sed () # append alternative handling script to $HEAD +{ + have=`info_get_entry alternative` + if test ".$have" != "." ; then + echo "/<!--mksite:alternative:$have .*-->/{" # $++ + echo "s/<!--mksite:alternative:$have\\( .*\\)-->/\\1/" # $++ + echo "q" # $++ + echo "}" # $++ + fi +} +info2body_sed () # append alternative handling script to $BODY +{ + have=`info_get_entry alternative` + if test ".$have" != "." ; then + echo "s/<!--mksite:alternative:$have\\( .*\\)-->/\\1/" # $++ + fi +} + +bodymaker_for_sectioninfo () +{ + test ".$sectioninfo" = ".no" && return + _x_="<!--mksite:sectioninfo::-->" + _q_="\\([^<>]*[$AX][^<>]*\\)" + test ".$sectioninfo" != ". " && _q_="[ ][ ]*$sectioninfo\\([ ]\\)" + echo "s|\\(^<[hH][$NN][ >].*</[hH][$NN]>\\)$_q_|\\1$_x_\\2|" # $++ + echo "/$_x_/s|^|<table width=\"100%\"><tr valign=\"bottom\"><td>|" # $++ + echo "/$_x_/s|</[hH][$NN]>|&</td><td align=\"right\"><i>|" # $++ + echo "/$_x_/s|\$|</i></td></tr></table>|" # $++ + echo "s|$_x_||" # $++ +} + +fast_href () # args "$FILETOREFERENCE" "$FROMCURRENTFILE:$F" +{ # prints path to $FILETOREFERENCE href-clickable in $FROMCURRENTFILE + # if no subdirectoy then output is the same as input $FILETOREFERENCE + R="$2" ; test ".$R" = "." && R="$F" + S=`back_path "$R"` + if test ".$S" = "." + then echo "$1" # $++ + else _1_=`echo "$1" | \ + $SED -e "/^ *\$/d" -e "/^\\//d" -e "/^[.][.]/d" -e "/^[$AA]*:/d" ` + if test ".$_1_" = "." # don't move any in the pattern above + then echo "$1" # $++ + else echo "$S$1" # $++ prefixed with backpath + fi fi +} + +make_back_path () # "$FILE" +{ + R="$1" ; test ".$R" = "." && R="$F" + S=`back_path "$R"` + if test ".$S" != "." ; then + echo "s|\\(<[^<>]* href=\\\"\\)\\([$AA][^<>:]*\\\"[^<>]*>\\)|\\1$S\\2|g" + echo "s|\\(<[^<>]* src=\\\"\\)\\([$AA][^<>:]*\\\"[^<>]*>\\)|\\1$S\\2|g" + fi +} + +# ============================================================== SITE MAP DATA +# each entry needs atleast a list-title, a long-title, and a list-date +# these are the basic information to be printed in the sitemap file +# where it is bound the hierarchy of sect/subsect of the entries. + +site_map_list_title() # $file $text +{ + echo "<$Q'list'>$1 $2<$QX>" >> "$MK_DATA" +} +info_map_list_title() # $file $text +{ + echo "<$Q'list'>$2<$QX>" >> "$tmp/$1.$DATA" +} +site_map_long_title() # $file $text +{ + echo "<$Q'long'>$1 $2<$QX>" >> "$MK_DATA" +} +info_map_long_title() # $file $text +{ + echo "<$Q'long'>$2<$QX>" >> "$tmp/$1.$DATA" +} +site_map_list_date() # $file $text +{ + echo "<$Q'date'>$1 $2<$QX>" >> "$MK_DATA" +} +info_map_list_date() # $file $text +{ + echo "<$Q'date'>$2<$QX>" >> "$tmp/$1.$DATA" +} + +siteinfo2sitemap () # generate <name><page><date> addon sed scriptlet +{ # the resulting script will act on each item/line + # containing <!--"filename"--> and expand any following + # reference of <!--name--> or <!--date--> or <!--long--> + INP="$1" ; test ".$INP" = "." && INP="$MK_DATA" + _list_="s|\\\\(<!--\"\\1\"-->.*\\\\)<name href=[^<>]*>.*</name>|\\\\1<name href=\"\\1\">\\2</name>|" + _date_="s|\\\\(<!--\"\\1\"-->.*\\\\)<date>.*</date>|\\\\1<date>\\2</date>|" + _long_="s|\\\\(<!--\"\\1\"-->.*\\\\)<long>.*</long>|\\\\1<long>\\2</long>|" + $SED -e "s:&:\\\\&:g" \ + -e "s:<$Q'list'>\\([^ ]*\\) \\(.*\\)<$QX>:$_list_:" \ + -e "s:<$Q'date'>\\([^ ]*\\) \\(.*\\)<$QX>:$_date_:" \ + -e "s:<$Q'long'>\\([^ ]*\\) \\(.*\\)<$QX>:$_long_:" \ + -e "/^s|/!d" $INP # $++ +} + +make_multisitemap () +{ # each category gets its own column along with the usual entries + INPUTS="$1" ; test ".$INPUTS" = "." && INPUTS="$MK_DATA" + siteinfo2sitemap > "$MK_SITE" # have <name><long><date> addon-sed + _form_="<!--\"\\2\"--><!--use\\1--><long>\\3</long><!--end\\1-->" + _form_="$_form_<br><name href=\"\\2\">\\3</name><date>......</date>" + _tiny_="small><small><small" ; _tinyX_="small></small></small " + _tabb_="<br><$_tiny_> </$_tinyX_>" ; _bigg_="<big> </big>" + echo "<table width=\"100%\"><tr><td> " # $++ + $SED -e "/^<$Q'[Uu]se.'>/!d" \ + -e "/>[$AZ$az][$AZ$az][$AZ$az][$AZ$az]*:/d" \ + -e "s|^<$Q'[Uu]se\\(.\\)'>\\([^ ]*\\) \\(.*\\)<$QX>|$_form_|" \ + -f "$MK_SITE" -e "/<name/!d" \ + -e "s|<!--use1-->|</td><td valign=\"top\"><b>|" \ + -e "s|<!--end1-->|</b>|" \ + -e "s|<!--use2-->|<br>|" \ + -e "s|<!--use.-->|<br>|" -e "s/<!--[^<>]*-->/ /g" \ + -e "s|<name |<$_tiny_><a |" -e "s|</name>||" \ + -e "s|<date>|<small style=\"date\">|" \ + -e "s|</date>|</small></a><br></$_tinyX_>|" \ + -e "s|<long>|<!--long-->|" -e "s|</long>|<!--/long-->|" \ + $INPUTS # $++ + echo "</td><tr></table>" # $++ +} + +make_listsitemap () +{ # traditional - the body contains a list with date and title extras + INPUTS="$1" ; test ".$INPUTS" = "." && INPUTS="$MK_DATA" + siteinfo2sitemap > "$MK_SITE" # have <name><long><date> addon-sed + _form_="<!--\"\\2\"--><!--use\\1--><name href=\"\\2\">\\3</name>" + _form_="$_form_<date>......</date><long>\\3</long>" + _tabb_="<td>\\ \\;</td>" + echo "<table cellspacing=\"0\" cellpadding=\"0\">" # $++ + $SED -e "/^<$Q'[Uu]se.'>/!d" \ + -e "/>[$AZ$az][$AZ$az][$AZ$az][$AZ$az]*:/d" \ + -e "s|^<$Q'[Uu]se\\(.\\)'>\\([^ ]*\\) \\(.*\\)<$QX>|$_form_|" \ + -f "$MK_SITE" -e "/<name/!d" \ + -e "s|<!--use\\(1\\)-->|<tr class=\"listsitemap\\1\"><td>*</td>|" \ + -e "s|<!--use\\(2\\)-->|<tr class=\"listsitemap\\1\"><td>-</td>|" \ + -e "s|<!--use\\(.\\)-->|<tr class=\"listsitemap\\1\"><td> </td>|" \ + -e "/<tr.class=\"listsitemap3\">/s|<name [^<>]*>|&- |" \ + -e "s|<!--[^<>]*-->| |g" \ + -e "s|<name href=\"name:sitemap:|<name href=\"|" \ + -e "s|<name |<td><a |" -e "s|</name>|</a></td>$_tabb_|" \ + -e "s|<date>|<td><small style=\"date\">|" \ + -e "s|</date>|</small></td>$_tabb_|" \ + -e "s|<long>|<td><em><!--long-->|" \ + -e "s|</long>|<!--/long--></em></td></tr>|" \ + "$INPUTS" # $++ + for xx in `grep "^<$Q'use.'>name:sitemap:" $INPUTS` ; do + xx=`echo $xx | sed -e "s/^<$Q'use.'>name:sitemap://" -e "s|<$QX>||"` + if test -f "$xx" ; then + grep "<tr.class=\"listsitemap[$NN]\">" $xx # $++ + fi + done + echo "</table>" # $++ +} + +_xi_include_=`echo \ + "<xi:include xmlns:xi=\"http://www.w3.org/2001/XInclude\" parse=\"xml\""` +make_xmlsitemap () +{ # traditional - the body contains a list with date and title extras + INPUTS="$1" ; test ".$INPUTS" = "." && INPUTS="$MK_DATA" + siteinfo2sitemap > "$MK_SITE" # have <name><long><date> addon-sed + _form_="<!--\"\\2\"--><name href=\"\\2\">\\3</name>" + _sitefile_=`sed_slash_key "$SITEFILE"` + $SED -e "/^<$Q'[Uu]se.'>/!d" \ + -e "/>[$AZ$az][$AZ$az][$AZ$az][$AZ$az]*:/d" \ + -e "s|^<$Q'[Uu]se\\(.\\)'>\\([^ ]*\\) \\(.*\\)<$QX>|$_form_|" \ + -f "$MK_SITE" -e "/<name/!d" \ + -e "/${_sitefile_}/d" \ + -e "/${_sitefile_}l/d" \ + -e "s|\\(href=\"[^<>]*\\)\\.html\\(\"\\)|\\1.xml\\2|g" \ + -e "s|.*<name|$_xi_include_\\n |" \ + -e "s|>.*</name>| />|" \ + "$INPUTS" # $++ +} + +print_extension () +{ + ARG="$1" ; test ".$ARG" = "." && ARG="$opt_print" + case "$ARG" in + -*|.*) echo "$ARG" ;; # $++ + *) echo ".print" ;; # $++ + esac +} + +from_sourcefile () +{ + if test -f "$1" + then echo "$1" + elif test -f "$opt_srcdir/$1" + then echo "$opt_srcdir/$1" + else echo "$1" + fi +} + +html_sourcefile () # generally just cut away the trailing "l" (ell) +{ # making "page.html" argument into "page.htm" return + # (as a new addtion the source may be in ".dbk" xml) + _SRCFILE_=`echo "$1" | $SED -e "s/l\\$//"` + _XMLFILE_=`echo "$1" | $SED -e "s/\\.html/.dbk/"` + if test -f "$_SRCFILE_" + then echo "$_SRCFILE_" # $++ + elif test -f "$_XMLFILE_" + then echo "$_XMLFILE_" # $++ + elif test -f "$opt_src_dir/$_SRCFILE_" + then echo "$opt_src_dir/$_SRCFILE_" # $++ + elif test -f "$opt_src_dir/$_XMLFILE_" + then echo "$opt_src_dir/$_XMLFILE_" # $++ + else echo ".//$_SRCFILE_" # $++ (not found?) + fi +} +html_printerfile_sourcefile () +{ + if test ".$printerfriendly" = "." + then + echo "$1" | sed -e "s/l\$//" # $++ + else + _ext_=`print_extension "$printerfriendly"` + _ext_=`sed_slash_key "$_ext_"` + echo "$1" | sed -e "s/l\$//" -e "s/$_ext_\\([.][$AA]*\\)\$/\\1/" # $++ + fi +} + +fast_html_printerfile () { + x=`html_printerfile "$1"` ; basename "$x" # $++ +# x=`html_printerfile "$1"` ; fast_href "$x" $2 # $++ +} + +html_printerfile () # generate the printerfile for a given normal output +{ + _ext_=`print_extension "$printerfriendly" | sed -e "s/&/\\\\&/"` + echo "$1" | sed -e "s/\\([.][$AA]*\\)\$/$_ext_\\1/" # $++ +} + +make_printerfile_fast () # generate s/file.html/file.print.html/ for hrefs +{ # we do that only for the $FILELIST + ALLPAGES="$1" ; # ="$FILELIST" + for p in $ALLPAGES ; do + a=`sed_slash_key "$p"` + b=`html_printerfile "$p"` + if test "$b" != "$p" ; then + b=`html_printerfile "$p" | sed -e "s:&:\\\\&:g" -e "s:/:\\\\\\/:g"` + echo "s/<a href=\"$a\">/<a href=\"$b\">/" # $++ + echo "s/<a href=\"$a\" /<a href=\"$b\" /" # $++ + fi + done +} + +echo_printsitefile_style () +{ + _bold_="text-decoration : none ; font-weight : bold ; " + echo " <style>" # $+++ + echo " a:link { $_bold_ color : #000060 ; }" # $+++ + echo " a:visited { $_bold_ color : #000040 ; }" # $+++ + echo " body { background-color : white ; }" # $+++ + echo " </style>" # $+++ +} + +make_printsitefile_head() # $sitefile +{ + echo_printsitefile_style > "$MK_STYLE" + $SED -e "/<title>/p" -e "/<title>/d" \ + -e "/<head>/p" -e "/<head>/d" \ + -e "/<\/head>/p" -e "/<\/head>/d" \ + -e "/<body>/p" -e "/<body>/d" \ + -e "/^.*<link [^<>]*rel=\"shortcut icon\"[^<>]*>.*\$/p" \ + -e "d" $SITEFILE | $SED -e "/<head>/r $MK_STYLE" # $+++ +} + + +# ------------------------------------------------------------------------ +# The printsitefile is a long text containing html href markups where +# each of the href lines in the file is being prefixed with the section +# relation. During a secondary call the printsitefile can grepp'ed for +# those lines that match a given output fast-file. The result is a +# navigation header with 1...3 lines matching the nesting level + +# these alt-texts will be only visible in with a text-mode browser: +printsitefile_square="width=\"8\" height=\"8\" border=\"0\"" +printsitefile_img_1="<img alt=\"|go text:\" $printsitefile_square />" +printsitefile_img_2="<img alt=\"||topics:\" $printsitefile_square />" +printsitefile_img_3="<img alt=\"|||pages:\" $printsitefile_square />" +_SECT="mksite:sect:" + +echo_current_line () # $sect $extra +{ + echo "<!--$_SECT\"$1\"-->$2" # $++ +} +make_current_entry () # $sect $file ## requires $MK_SITE +{ + S="$1" ; R="$2" + SSS=`sed_slash_key "$S"` + sep=" - " ; _left_=" [ " ; _right_=" ] " + echo_current_line "$S" "<!--\"$R\"--><name href=\"$R\">$R</name>$sep" \ + | $SED -f "$MK_SITE" \ + -e "s|<!--[^<>]*--><name |<a |" -e "s|</name>|</a>|" \ + -e "/<a href=\"$SSS\"/s/<a href/$_left_&/" \ + -e "/<a href=\"$SSS\"/s/<\\/a>/&$_right_/" # $+++ +} +echo_subpage_line () # $sect $extra +{ + echo "<!--$_SECT*:\"$1\"-->$2" # $++ +} + +make_subpage_entry () +{ + S="$1" ; R="$2" + RR=`sed_slash_key "$R"` + sep=" - " ; + echo_subpage_line "$S" "<!--\"$R\"--><name href=\"$R\">$R</name>$sep" \ + | $SED -f "$MK_SITE" \ + -e "s|<!--[^<>]*--><name |<a |" -e "s|</name>|</a>|" # $+++ +} + +make_printsitefile () +{ + # building the printsitefile looks big but its really a loop over sects + INPUTS="$1" ; test ".$INPUTS" = "." && INPUTS="$MK_DATA" + siteinfo2sitemap > "$MK_SITE" # have <name><long><date> addon-sed + if test -d DEBUG && test -f "$MK_SITE" + then FFFF=`echo "$F" | sed -e "s,/,:,g"` + cp "$MK_DATA" "DEBUG/$FFFF.SITE.tmp.sed" + fi + + make_printsitefile_head $SITEFILE # $++ + sep=" - " + _sect1="<a href=\"#.\" title=\"section\">$printsitefile_img_1</a> ||$sep" + _sect2="<a href=\"#.\" title=\"topics\">$printsitefile_img_2</a> ||$sep" + _sect3="<a href=\"#.\" title=\"pages\">$printsitefile_img_3</a> ||$sep" + site_get_rootsections > "$MK_SECT1" + # round one - for each root section print a current menu + for r in `cat "$MK_SECT1"` ; do + echo_current_line "$r" "<!--mksite:sect1:A--><br>$_sect1" # $++ + for s in `cat "$MK_SECT1"` ; do + make_current_entry "$r" "$s" # $++ + done + echo_current_line "$r" "<!--mksite:sect1:Z-->" # $++ + done # "$r" + + # round two - for each subsection print a current and subpage menu + for r in `cat "$MK_SECT1"` ; do + site_get_subpages "$r" > "$MK_SECT2" + for s in `cat "$MK_SECT2"` ; do test "$r" = "$s" && continue + echo_current_line "$s" "<!--mksite:sect2:A--><br>$_sect2" # $++ + for t in `cat "$MK_SECT2"` ; do test "$r" = "$t" && continue + make_current_entry "$s" "$t" # $++ + done # "$t" + echo_current_line "$s" "<!--mksite:sect2:Z-->" # $++ + done # "$s" + _have_children_="0" + for t in `cat "$MK_SECT2"` ; do test "$r" = "$t" && continue + test "$_have_children_" = "0" && _have_children_="1" && \ + echo_subpage_line "$r" "<!--mksite:sect2:A--><br>$_sect2" # $++ + make_subpage_entry "$r" "$t" # $++ + done # "$t" + test "$_have_children_" = "1" && \ + echo_subpage_line "$r" "<!--mksite:sect2:Z-->" # $++ + done # "$r" + + # round three - for each subsubsection print a current and subpage menu + for r in `cat "$MK_SECT1"` ; do + site_get_subpages "$r" > "$MK_SECT2" + for s in `cat "$MK_SECT2"` ; do test "$r" = "$s" && continue + site_get_subpages "$s" > "$MK_SECT3" + for t in `cat "$MK_SECT3"` ; do test "$s" = "$t" && continue + echo_current_line "$t" "<!--mksite:sect3:A--><br>$_sect3" # $++ + for u in `cat "$MK_SECT3"` ; do test "$s" = "$u" && continue + make_current_entry "$t" "$u" # $++ + done # "$u" + echo_current_line "$t" "<!--mksite:sect3:Z-->" # $++ + done # "$t" + _have_children_="0" + for u in `cat "$MK_SECT3"` ; do test "$u" = "$s" && continue + test "$_have_children_" = "0" && _have_children_="1" && \ + echo_subpage_line "$s" "<!--mksite:sect3:A--><br>$_sect3" # $++ + make_subpage_entry "$s" "$u" # $++ + done # "$u" + test "$_have_children_" = "1" && \ + echo_subpage_line "$s" "<!--mksite:sect3:Z-->" # $++ + done # "$s" + done # "$r" + echo "<a name=\".\"></a>" # $++ + echo "</body></html>" # $++ +} + +# create a selector that can grep a printsitefile for the matching entries +select_in_printsitefile () # arg = "page" : return to stdout >> $P.$HEAD +{ + _selected_="$1" ; test ".$_selected_" = "." && _selected_="$F" + _section_=`sed_slash_key "$_selected_"` + echo "s/^<!--$_SECT\"$_section_\"-->//" # sect3 + echo "s/^<!--$_SECT[*]:\"$_section_\"-->//" # children + _selected_=`site_get_parentpage "$_selected_"` + _section_=`sed_slash_key "$_selected_"` + echo "s/^<!--$_SECT\"$_section_\"-->//" # sect2 + _selected_=`site_get_parentpage "$_selected_"` + _section_=`sed_slash_key "$_selected_"` + echo "s/^<!--$_SECT\"$_section_\"-->//" # sect1 + echo "/^<!--$_SECT\"[^\"]*\"-->/d" + echo "/^<!--$_SECT[*]:\"[^\"]*\"-->/d" + echo "s/^<!--mksite:sect[$NN]:[$AZ]-->//" +} + +body_for_emailfooter () +{ + test ".$emailfooter" = ".no" && return + _email_=`echo "$emailfooter" | sed -e "s|[?].*||"` + _dated_=`info_get_entry updated` + echo "<hr><table border=\"0\" width=\"100%\"><tr><td>" + echo "<a href=\"mailto:$emailfooter\">$_email_</a>" + echo "</td><td align=\"right\">" + echo "$_dated_</td></tr></table>" +} + +# =================================================================== CSS +# There was another project to support sitemap build from xml files. +# The source format was using .dbk+xml with embedded references to .css +# files for visual preview in a browser. An docbook xml file with semantic +# outlines is far better suited for quality documentation than any html +# source. It happens that the xml/css support in browsers is still not +# very portable - especially embedded css style blocks are a nightmare. +# Instead we (a) grab all non-html xml markup tags (b) grab all referenced +# css stylesheets (c) cut out css defs from [b] that are known by [a] and +# (d) append those to the <style> tag in the output html file as well as +# (e) reformatting the defs as well as markups from tags to tag classes. +# Input dbk/htm +# <?xml-stylesheet type="text/css" href="html.css" ?> <!-- dbk/xml --> +# <link rel="stylesheet" type="text/css" href="sdocbook.css" /> <!-- xhtml --> +# <article><para> +# Using some <command>exe</command> +# </para></article> +# Input css: +# article { .. ; display : block } +# para { .. ; display : block } +# command { .. ; display : inline } +# Output html: +# <html><style type="text/css"> +# div .article { .. } +# div .para { .. } +# span .command { .. } +# </style> +# <div class="article"><div class="para> +# Using some <span class="command">exe</span> +# </div></div> + +css_sourcefile () +{ + if test -f "$1" ; then echo "$1" + elif test -f "$opt_src_dir/$1" ; then echo "$opt_src_dir/$1" + elif echo "$1" | grep "^/" > $NULL ; then echo "$1" + else echo "./$1" + fi +} + +css_xmltags () # $SOURCEFILE +{ + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + S="$SOURCEFILE" + cat "$S" | $SED -e "s|>[^<>]*<|><|g" -e "s|^[^<>]*<|<|" \ + -e "s|>[^<>]*\$|>|" -e "s|<|\\n|g" \ + | $SED -e "/^\\//d" -e "/^ *\$/d" -e "/>/!d" -e "s|>.*||" \ + | sort | uniq > "$tmp/$MK.$X.xmltags.tmp.txt" +} + +css_xmlstyles () # $SOURCEFILE +{ + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + S="$SOURCEFILE" + cat "$S" "$SITEFILE" \ + | sed \ + -e "s|<link *rel=['\"]*stylesheet|<?xml-stylesheet |" \ + -e "/<.xml-stylesheet/!d" -e "/href/!N" -e "/href/!N" \ + -e "s|^.*<.xml-stylesheet||" -e 's|^.*href="||' -e 's|".*||' \ + | sort | uniq > "$tmp/$MK.$X.xmlstylesheets.tmp.txt" +} + +css_xmlstyles_sed () # $SOURCEFILE +{ + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + S="$tmp/$MK.$X.xmltags.tmp.txt" + R="$tmp/$MK.$X.xmltags.tmp.sed" + rm -f "$R" + { + for x in 1 2 3 4 5 6 7 8 9 ; do echo "/}/d" ; echo "/{/!N" ; done + echo "s|\\r||g" + $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do + xmltag=`echo "$xmltag" | sed -e "s/ .*//"` + _xmltag=`sed_slash_key "$xmltag"` + if echo " title section " | grep " $xmltag " > $NULL ; then + test "$xmltag" = "section" && continue; + echo "/^ *$_xmltag *[,\\n{]/bfound" >> "$R" + echo "/[,\\n] *$_xmltag *[,\\n{]/bfound" >> "$R" + $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmlparent ; do + xmlparent=`echo "$xmlparent" | sed -e "s/ .*//"` + _xmlparent=`sed_slash_key "$xmlparent"` + echo "/^ *$_xmlparent *$_xmltag *[,\\n{]/bfound" + echo "/[ ,\\n] *$_xmlparent *$_xmltag *[,\\n{]/bfound" + done } + else + echo "/^ *$_xmltag *[ ,\\n{]/bfound" + echo "/[ ,\\n] *$_xmltag *[ ,\\n{]/bfound" + fi + done } + echo "d" ; echo ":found" + for x in 1 2 3 4 5 6 7 8 9 ; do echo "/}/!N" ; done + $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do + xmltag=`echo "$xmltag" | sed -e "s/ .*//"` + if echo " $HTMLTAGS $HTMLTAGS2" | grep " $xmltag " > $NULL ; then + continue # keep html tags + fi + echo "s|^\\( *\\)\\($xmltag *[ ,\\n{]\\)|\\1.\\2|g" + echo "s|\\([ ,\\n] *\\)\\($xmltag *[ ,\\n{]\\)|\\1.\\2|g" + done } + } > "$R" +} + +css_xmltags_css () # $SOURCEFILE +{ + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + S="$tmp/$MK.$X.xmltags.tmp.sed" + R="$tmp/$MK.$X.xmltags.tmp.css" + { + cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read xmlstylesheet ; do + stylesheet=`css_sourcefile "$xmlstylesheet"` + if test -f "$stylesheet" ; then + echo "/* $xmlstylesheet */" + cat "$stylesheet" | $SED -f "$S" + else + error "$xmlstylesheet : ERROR, no such stylesheet" + fi + done } + } > "$R" +} + +css_xmlmapping_sed () # $SOURCEFILE +{ + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + S="$tmp/$MK.$X.xmltags.tmp.txt" + R="$tmp/$MK.$X.xmlmapping.tmp.sed" + rm -f "$R" + { + for x in 1 2 3 4 5 6 7 8 9 ; do echo "/}/d" ; echo "/{/!N" ; done + echo "s|\\r||g" + $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do + xmltag=`echo "$xmltag" | sed -e "s/ .*//"` + xmltag=`sed_slash_key "$xmltag"` + echo "/^ *\\.$xmltag *[ ,\\n{]/bfound" + echo "/[ ,\\n] *\\.$xmltag *[,\\n{]/bfound" + done } + echo "d" ; echo ":found" + for x in 1 2 3 4 5 6 7 8 9 ; do echo "/}/!N" ; done + echo "s/^/>>/" + echo "/[\\n ]display *: *list-item/s|^.*>>|li>>|" + echo "/[\\n ]display *: *table-caption/s|^.*>>|caption>>|" + echo "/[\\n ]display *: *table-cell/s|^.*>>|td>>|" + echo "/[\\n ]display *: *table-row/s|^.*>>|tr>>|" + echo "/[\\n ]display *: *table/s|^.*>>|table>>|" + echo "/[\\n ]display *: *block/s|^.*>>|div>>|" + echo "/[\\n ]display *: *inline/s|^.*>>|span>>|" + echo "/[\\n ]display *: *none/s|^.*>>|small>>|" + echo "/^div>>.*[\\n ]list-style-type *: *disc/s|^.*>>|ul>>|" + echo "/^div>>.*[\\n ]list-style-type *: *decimal/s|^.*>>|ol>>|" + echo "/^span>>.*[\\n ]font-family *: *monospace/s|^.*>>|tt>>|" + echo "/^span>>.*[\\n ]font-style *: *italic/s|^.*>>|em>>|" + echo "/^span>>.*[\\n ]font-weight *: *bold/s|^.*>>|b>>|" + echo "/^div>>.*[\\n ]white-space *: *pre/s|^.*>>|pre>>|" + echo "/^div>>.*[\\n ]margin-left *: *[$NN]/s|^.*>>|blockquote>>|" + $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do + xmltag=`echo "$xmltag" | sed -e "s/ .*//"` + echo "s|^\\(.*\\)>> *\\.$xmltag *[ ,\\n{].*|\\1 .$xmltag|" + echo "s|^\\(.*\\)>>.*[ ,\\n] *\\.$xmltag *[ ,\\n{].*|\\1 .$xmltag|" + done } + echo "s/^div \\.para\$/p .para/" + echo "s/^span \\.ulink\$/a .ulink/" + } > "$R" +} + +css_xmlmapping () # $SOURCEFILE +{ + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + cat "$tmp/$MK.$X.xmltags.tmp.css" | \ + $SED -f "$tmp/$MK.$X.xmlmapping.tmp.sed" \ + > "$tmp/$MK.$X.xmlmapping.tmp.txt" +} + +css_scan() # $SOURCEFILE +{ + css_xmltags + css_xmlstyles + css_xmlstyles_sed + css_xmltags_css + css_xmlmapping_sed + css_xmlmapping +} + +tags2span_sed() # $SOURCEFILE > $++ +{ + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + S="$tmp/$MK.$X.xmltags.tmp.txt" + R="$tmp/$MK.$X.xmltags.tmp.css" + echo "s|<[?]xml-stylesheet[^<>]*[?]>||" + echo "s|<link *rel=['\"]*stylesheet[^<>]*>||" + echo "s|<section[^<>]*>||g" + echo "s|</section>||g" + $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do + # note "xmltag=$xmltag" + xmltag=`echo "$xmltag" | sed -e "s/ .*//"` + if echo " $HTMLTAGS $HTMLTAGS2" | grep " $xmltag " > $NULL ; then + continue # keep html tags + fi + _xmltag=`sed_slash_key "$xmltag"` + _span_=`$SED -e "/ \\.$_xmltag\$/!d" -e "s/ .*//" -e q \ + < "$tmp/$MK.$X.xmlmapping.tmp.txt"` + test ".$_span_" = "." && _span_="span" + _xmltag=`sed_piped_key "$xmltag"` + echo "s|<$xmltag\\([\\n\\t ][^<>]*\\)url=|<$_span_ class=\"$xmltag\"\\1href=|g" + echo "s|<$xmltag\\([\\n\\t >]\\)|<$_span_ class=\"$xmltag\"\\1|g" + echo "s|</$xmltag\\([\\n\\t >]\\)|</$_span_\\1|g" + done } + cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read xmlstylesheet ; do + if test -f "$xmlstylesheet" ; then + R="[^<>]*href=['"'"'"]$xmlstylesheet['"'"'"][^<>]*" + echo "s|<[?]xml-stylesheet$R>||" + echo "s|<link[^<>]* rel=['"'"'"]*stylesheet['"'"'" ]$R>||" + fi + done } +} + +tags2meta_sed() # $SOURCEFILE > $++ +{ + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + S="$tmp/$MK.$X.xmlstylesheets.tmp.txt" + R="$tmp/$MK.$X.xmltags.tmp.css" + cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read xmlstylesheet ; do + if test -f "$xmlstylesheet" ; then + echo " <style type=\"text/css\"><!--" + $SED -e "s/^/ /" < "$R" + echo " --></style>" + break + fi + done } +} + +# ========================================================================== +# xml/docbook support is taking an dbk input file converting any html DBK +# syntax into pure docbook tagging. Each file is being given a docbook +# doctype so that an xml/docbook viewer can render it correctly - that +# is needed atleast since docbook files do not embed stylesheet infos. +# Most of the processing is related to remap html markup and some other +# shortcut markup into correct docbook markup. The result is NOT checked +# for being well-formed or even matching the docbook schema DTD at all. + +scan_xml_rootnode () +{ + rootnode=`cat "$SOURCEFILE" | \ + $SED -e "/<[$AZ$az$NN]/!d" -e "s/<\\([$AZ$az$NN]*\\).*/\\1/" -e q` + echo "<$Q'root'>$F $rootnode<$QX>" >> "$MK_DATA" +} + +get_xml_rootnode () +{ + _file_=`sed_slash_key "$F"` + $SED -e "/^<$Q'root'>$_file_ /!d" \ + -e "s|.* ||" -e "s|<.*||" -e q "$MK_DATA" # + +} + +xml_sourcefile () +{ + _XMLFILE_=`echo "$1" | $SED -e "s/\\.xml\\$/.dbk/"` + _SRCFILE_=`echo "$1" | $SED -e "s/\\.xml\\$/.htm/"` + test "$1" = "$_XMLFILE_" && _XMLFILE_="///" + test "$1" = "$_SRCFILE_" && _SRCFILE_="///" + if test -f "$_XMLFILE_" + then echo "$_XMLFILE_" # $++ + elif test -f "$_SRCFILE_" + then echo "$_SRCFILE_" # $++ + elif test -f "$opt_src_dir/$_XMLFILE_" + then echo "$opt_src_dir/$_XMLFILE_" # $++ + elif test -f "$opt_src_dir/$_SRCFILE_" + then echo "$opt_src_dir/$_SRCFILE_" # $++ + else echo ".//$_XMLFILE_" # $++ (not found?) + fi +} + +scan_xmlfile() +{ + SOURCEFILE=`xml_sourcefile "$F"` + $hint "'$SOURCEFILE': scanning xml -> '$F'" + scan_xml_rootnode + rootnode=`get_xml_rootnode | sed -e "/^h[$NN]/s|\$| <?section?>|"` + $hint "'$SOURCEFILE': rootnode ('$rootnode')" +} + +make_xmlfile() +{ + SOURCEFILE=`xml_sourcefile "$F"` + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + article=`get_xml_rootnode` + test ".$article" = "." && article="article" + echo '<!DOCTYPE '$article' PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"' \ + > "$F" + echo ' "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">' \ + >> "$F" + cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read stylesheet ; do + echo "<?xml-stylesheet type=\"text/css\" href=\"$stylesheet\" ?>" \ + >> "$F" + done } + __secinfo="\\1<sectioninfo>\\2</sectioninfo>" + cat "$SOURCEFILE" | $SED \ + -e "s!<>!\ \;!g" \ + -e "s!\\(&\\)\\(&\\)!\\1amp;\\2amp;!g" \ + -e "s!\\(<[^<>]*\\)\\(width\\)\\(=\\)\\([$NN]*\%*\\)!\\1\\2\\3\"\\4\"!g" \ + -e "s!\\(<[^<>]*\\)\\(cellpadding\\)\\(=\\)\\([$NN]*\%*\\)!\\1\\2\\3\"\\4\"!g" \ + -e "s!\\(<[^<>]*\\)\\(border\\)\\(=\\)\\([$NN]*\%*\\)!\\1\\2\\3\"\\4\"!g" \ + -e "s!<[?]xml-stylesheet[^<>]*>!!" \ + -e "s!<link[^<>]* rel=[\'\"]*stylesheet[^<>]*>!!" \ + -e "s!<[hH][$NN]!<title!g" \ + -e "s!</[hH][$NN]!</title!g" \ + -e "s!\\(</title> *\\)\\([^<>]*[$AZ$az$NN][^<>\r\n]*\\)\$!\\1<sub>\\2</sub>!" \ + -e "s!\\(</title>.*\\)<sub>!\\1<subtitle>!g" \ + -e "s!\\(</title>.*\\)</sub>!\\1</subtitle>!g" \ + -e "s!\\(<section>[^<>]*\\)\\(<date>.*</date>[^<>]*\\)\$!\\1<sectioninfo>\\2</sectioninfo>!g" \ + -e "s!<em>!<emphasis>!g" \ + -e "s!</em>!</emphasis>!g" \ + -e "s!<i>!<emphasis>!g" \ + -e "s!</i>!</emphasis>!g" \ + -e "s!<b>!<emphasis role=\"bold\">!g" \ + -e "s!</b>!</emphasis>!g" \ + -e "s!<u>!<emphasis role=\"underline\">!g" \ + -e "s!</u>!</emphasis>!g" \ + -e "s!<big>!<emphasis role=\"strong\">!g" \ + -e "s!</big>!</emphasis>!g" \ + -e "s!<\\(strike\\)>!<emphasis role=\"strikethrough\">!g" \ + -e "s!<\\(s\\)>!<emphasis role=\"strikethrough\">!g" \ + -e "s!</\\(strike\\)>!</emphasis>!g" \ + -e "s!</\\(s\\)>!</emphasis>!g" \ + -e "s!<center>!<blockquote><para>!g" \ + -e "s!</center>!</para></blockquote>!g" \ + -e "s!<p align=\\(\"[$AZ$az$NN]*\"\\)>!<para role=\\1>!g" \ + -e "s!<[pP]>!<para>!g" \ + -e "s!</[pP]>!</para>!g" \ + -e "s!<\\(pre\\)>!<screen>!g" \ + -e "s!<\\(PRE\\)>!<screen>!g" \ + -e "s!</\\(pre\\)>!</screen>!g" \ + -e "s!</\\(PRE\\)>!</screen>!g" \ + -e "s!<a\\( [^<>]*\\)name=\\([^<>]*\\)/>!<anchor \\1id=\\2/>!g" \ + -e "s!<a\\( [^<>]*\\)name=\\([^<>]*\\)>!<anchor \\1id=\\2/>!g" \ + -e "s!<a\\( [^<>]*\\)href=!<ulink\\1url=!g" \ + -e "s!</a>!</ulink>!g" \ + -e "s! remap=\"url\">[^<>]*</ulink>! />!g" \ + -e "s!<\\(/*\\)span\\([ ][^<>]*\\)>!<\\1phrase\\2>!g" \ + -e "s!<\\(/*\\)span>!<\\1phrase>!g" \ + -e "s!<small\\([ ][^<>]*\\)>!<phrase role=\"small\"\\1>!g" \ + -e "s!<small>!<phrase role=\"small\">!g" \ + -e "s!</small>!</phrase>!g" \ + -e "s!<\\(/*\\)\\(sup\\)>!<\\1superscript>!g" \ + -e "s!<\\(/*\\)\\(sub\\)>!<\\1subscript>!g" \ + -e "s!\\(<\\)\\(li\\)\\(><\\)!\\1listitem\\3!g" \ + -e "s!\\(></\\)\\(li\\)\\(>\\)!\\1listitem\\3!g" \ + -e "s!\\(<\\)\\(li\\)\\(>\\)!\\1listitem\\3<para>!g" \ + -e "s!\\(</\\)\\(li\\)\\(>\\)!</para>\\1listitem\\3!g" \ + -e "s!\\(</*\\)\\(ul\\)>!\\1itemizedlist>!g" \ + -e "s!\\(</*\\)\\(ol\\)>!\\1orderedlist>!g" \ + -e "s!\\(</*\\)\\(dl\\)>!\\1variablelist>!g" \ + -e "s!<\\(/*\\)DT>!<\\1dt>!g" \ + -e "s!<\\(/*\\)DD>!<\\1dd>!g" \ + -e "s!<\\(/*\\)DL>!<\\1dl>!g" \ + -e "s!<BLOCKQUOTE>!<blockquote><para>!g" \ + -e "s!</BLOCKQUOTE>!</para></blockquote>!g" \ + -e "s!<\\(/*\\)dl>!<\\1variablelist>!g" \ + -e "s!<dt\\( [^<>]*\\)>!<varlistentry\\1><term>!g" \ + -e "s!<dt>!<varlistentry><term>!g" \ + -e "s!</dt>!</term>!g" \ + -e "s!<dd\\( [^<>]*\\)><!<listitem\\1><!g" \ + -e "s!<dd><!<listitem><!g" \ + -e "s!></dd>!></listitem></varlistentry>!g" \ + -e "s!<dd\\( [^<>]*\\)>!<listitem\\1><para>!g" \ + -e "s!<dd>!<listitem><para>!g" \ + -e "s!</dd>!</para></listitem></varlistentry>!g" \ + -e "s!<table[^<>]*><tr><td>\\(<table[^<>]*>\\)!\\1!" \ + -e "s!\\(</table>\\)</td></tr></table>!\\1!" \ + -e "s!<table\\( [^<>]*\\)>!<informaltable\\1><tgroup cols=\"2\"><tbody>!g" \ + -e "s!<table>!<informaltable><tgroup cols=\"2\"><tbody>!g" \ + -e "s!</table>!</tbody></tgroup></informaltable>!g" \ + -e "s!\\(</*\\)tr\\([ ][^<>]*\\)>!\\1row\\2>!g" \ + -e "s!\\(</*\\)tr>!\\1row>!g" \ + -e "s!\\(</*\\)td\\([ ][^<>]*\\)>!\\1entry\\2>!g" \ + -e "s!\\(</*\\)td>!\\1entry>!g" \ + -e "s!\\(<informaltable[^<>]*[ ]width=\"100\%\"\\)!\\1 pgwide=\"1\"!g" \ + -e "s!\\(<tgroup[<>]*[ ]cols=\"2\">\\)\\(<tbody>\\)!\\1<colspec colwidth=\"1*\" /><colspec colwidth=\"1*\" />\\2!g" \ + -e "s!\\(<entry[^<>]*[ ]\\)width=\\(\"[$NN]*\%*\"\\)!\\1remap=\\2!g" \ + -e "s!<nobr>\\([\'\`]*\\)<tt>!<cmdsynopsis><command>\\1!g" \ + -e "s!</tt>\\([\'\`]*\\)</nobr>!\\1</command></cmdsynopsis>!g" \ + -e "s!<nobr><\\(code\\)>\\([\`\"\']\\)!<cmdsynopsis><command>\\2!g" \ + -e "s!<\\(code\\)><nobr>\\([\`\"\']\\)!<cmdsynopsis><command>\\2!g" \ + -e "s!\\([\`\"\']\\)</\\(code\\)></nobr>!\\1</command></cmdsynopsis>!g" \ + -e "s!\\([\`\"\']\\)</nobr></\\(code\\)>!\\1</command></cmdsynopsis>!g" \ + -e "s!<nobr><\\(tt\\)>\\([\`\"\']\\)!<cmdsynopsis><command>\\2!g" \ + -e "s!<\\(tt\\)><nobr>\\([\`\"\']\\)!<cmdsynopsis><command>\\2!g" \ + -e "s!\\([\`\"\']\\)</\\(tt\\)></nobr>!\\1</command></cmdsynopsis>!g" \ + -e "s!\\([\`\"\']\\)</nobr></\\(tt\\)>!\\1</command></cmdsynopsis>!g" \ + -e "s!\\(</*\\)tt>!\\1constant>!g" \ + -e "s!\\(</*\\)code>!\\1literal>!g" \ + -e "s!<br>!<br />!g" \ + -e "s!<br */>!<screen role=\"linebreak\">\n</screen>!g" \ + >> "$F" + echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` ">>" `ls -s $F` +} + +make_xmlmaster () +{ + SOURCEFILE=`xml_sourcefile "$F"` + X=`echo $SOURCEFILE | sed -e "y:/:~:"` + article="section" # book? chapter? + echo '<!DOCTYPE' $article 'PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"' >$F + echo ' "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">' >>$F + cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read stylesheet ; do + echo "<?xml-stylesheet type=\"text/css\" href=\"$stylesheet\" ?>" \ + >> "$F" + done } + echo "<section><title>Documentation</title>" >>$F + make_xmlsitemap >> $F + echo "</section>" >> $F + echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` ">*>" `ls -s $F` +} + +# ========================================================================== +# +# During processing we will create a series of intermediate files that +# store relations. They all have the same format being +# =relationtype=key value +# where key is usually s filename or an anchor. For mere convenience +# we assume that the source html text does not have lines that start +# off with =xxxx= (btw, ye remember perl section notation...). Of course +# any other format would be usuable as well. +# + +# we scan the SITEFILE for href references to be converted +# - in the new variant we use a ".gets.tmp" sed script that SECTS +# marks all interesting lines so they can be checked later +# with an sed anchor of sect="[$NN]" (or sect="[$AZ]") +S="\\ \\;" +# S="[&]nbsp[;]" + +# HR and EM style markups must exist in input - BR sometimes left out +# these routines in(ter)ject hardspace before, between, after markups +# note that "<br>" is sometimes used with HR - it must exist in input +echo_HR_EM_PP () +{ + echo "s%^\\($1$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\(<>$1$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($S$1$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($1<>$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($1$S$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($1$2<>$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($1$2$S$3*<a\\) \\(href=\\)%\\1 $4 \\2%" +} + +echo_br_EM_PP () +{ + echo_HR_EM_PP "$1" "$2" "$3" "$4" + echo "s%^\\($2$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\(<>$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($S$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($2<>$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($2$S$3*<a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($2$3*<><a\\) \\(href=\\)%\\1 $4 \\2%" + echo "s%^\\($2$3*$S<a\\) \\(href=\\)%\\1 $4 \\2%" +} + +echo_HR_PP () +{ + echo "s%^\\($1<a\\) \\(href=\\)%\\1 $3 \\2%" + echo "s%^\\($1$2*<a\\) \\(href=\\)%\\1 $3 \\2%" + echo "s%^\\(<>$1$2*<a\\) \\(href=\\)%\\1 $3 \\2%" + echo "s%^\\($S$1$2*<a\\) \\(href=\\)%\\1 $3 \\2%" + echo "s%^\\($1<>$2*<a\\) \\(href=\\)%\\1 $3 \\2%" + echo "s%^\\($1$S$2*<a\\) \\(href=\\)%\\1 $3 \\2%" +} +echo_br_PP () +{ + echo_HR_PP "$1" "$2" "$3" + echo "s%^\\($2*<a\\) \\(href=\\)%\\1 $3 \\2%" + echo "s%^\\(<>$2*<a\\) \\(href=\\)%\\1 $3 \\2%" + echo "s%^\\($S$2*<a\\) \\(href=\\)%\\1 $3 \\2%" +} +echo_sp_PP () +{ + echo "s%^\\(<>$1*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($S$1*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\(<><>$1*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($S$S$1*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\(<>$1<>*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($S$1$S*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($1<><>*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($1$S$S*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($1<>*<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($1$S*<a\\) \\(href=\\)%\\1 $2 \\2%" +} + +echo_sp_SP () +{ + echo "s%^\\($1<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\(<>$1<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($S$1<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\(<><>$1<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($S$S$1<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\(<>$1<><a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($S$1$S<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($1<><><a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($1$S$S<a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($1<><a\\) \\(href=\\)%\\1 $2 \\2%" + echo "s%^\\($1$S<a\\) \\(href=\\)%\\1 $2 \\2%" +} + +echo_sp_sp () +{ + echo "s%^\\($1<a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\(<>$1<a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\($S$1<a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\(<><>$1<a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\($S$S$1<a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\(<>$1<><a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\($S$1$S<a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\($1<><><a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\($1$S$S<a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\($1<><a\\) \\(name=\\)%\\1 $2 \\2%" + echo "s%^\\($1$S<a\\) \\(name=\\)%\\1 $2 \\2%" +} + +make_sitemap_init() +{ + # build a list of detectors that map site.htm entries to a section table + # note that the resulting .gets.tmp / .puts.tmp are real sed-script + h1="[-$AP$AK]" + b1="[*=]" + b2="[-$AP$AK]" + b3="[:/]" + q3="[:/,$AK]" + echo_HR_PP "<hr>" "$h1" "sect=\"1\"" > "$MK_GETS" + echo_HR_EM_PP "<hr>" "<em>" "$h1" "sect=\"1\"" >> "$MK_GETS" + echo_HR_EM_PP "<hr>" "<strong>" "$h1" "sect=\"1\"" >> "$MK_GETS" + echo_HR_PP "<br>" "$b1$b1" "sect=\"1\"" >> "$MK_GETS" + echo_HR_PP "<br>" "$b2$b2" "sect=\"2\"" >> "$MK_GETS" + echo_HR_PP "<br>" "$b3$b3" "sect=\"3\"" >> "$MK_GETS" + echo_br_PP "<br>" "$b2$b2" "sect=\"2\"" >> "$MK_GETS" + echo_br_PP "<br>" "$b3$b3" "sect=\"3\"" >> "$MK_GETS" + echo_br_EM_PP "<br>" "<small>" "$q3" "sect=\"3\"" >> "$MK_GETS" + echo_br_EM_PP "<br>" "<em>" "$q3" "sect=\"3\"" >> "$MK_GETS" + echo_br_EM_PP "<br>" "<u>" "$q3" "sect=\"3\"" >> "$MK_GETS" + echo_HR_PP "<br>" "$q3" "sect=\"3\"" >> "$MK_GETS" + echo_br_PP "<u>" "$b2" "sect=\"2\"" >> "$MK_GETS" + echo_sp_PP "$q3" "sect=\"3\"" >> "$MK_GETS" + echo_sp_SP "" "sect=\"2\"" >> "$MK_GETS" + echo_sp_sp "$q3" "sect=\"9\"" >> "$MK_GETS" + echo_sp_sp "<br>" "sect=\"9\"" >> "$MK_GETS" + $SED -e "s/\\(>\\)\\(\\[\\)/\\1 *\\2/" "$MK_GETS" > "$MK_PUTS" + # the .puts.tmp variant is used to <b><a href=..></b> some hrefs which + # shall not be used otherwise for being generated - this is nice for + # some quicklinks somewhere. The difference: a whitspace "<hr> <a...>" + echo "" > "$MK_DATA" # fresh start +} + +_uses_="<$Q'use\\1'>\\2 \\3<$QX>" +_name_="<$Q'use\\1'>name:\\2 \\3<$QX>" ; + +make_sitemap_list() +{ + _sitefile_="$1" ; test ".$_sitefile_" = "." && _sitefile_="$SITEFILE" + # scan sitefile for references pages - store as "=use+=href+ anchortext" + $SED -f "$MK_GETS" -e "/<a sect=\"[$NN]\"/!d" \ + -e "s|.*<a sect=\"\\([^\"]*\\)\" href=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)</a>.*|$_uses_|" \ + -e "s|.*<a sect=\"\\([^\"]*\\)\" name=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)</a>.*|$_name_|" \ + -e "s|.*<a sect=\"\\([^\"]*\\)\" name=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)|$_name_|" \ + -e "/^<$Q/!d" -e "/^<!/d" \ + "$_sitefile_" >> "$MK_DATA" +} + +_Uses_="<$Q'Use\\1'>\\2 \\3<$QX>" +_Name_="<$Q'Use\\1'>name:\\2 \\3<$QX>" ; + +make_subsitemap_list() +{ + _sitefile_="$1" ; test ".$_sitefile_" = "." && _sitefile_="$SITEFILE" + # scan sitefile for references pages - store as "=use+=href+ anchortext" + $SED -f "$MK_GETS" -e "/<a sect=\"[$NN]\"/!d" \ + -e "s|.*<a sect=\"\\([^\"]*\\)\" href=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)</a>.*|$_Uses_|" \ + -e "s|.*<a sect=\"\\([^\"]*\\)\" name=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)</a>.*|$_Name_|" \ + -e "s|.*<a sect=\"\\([^\"]*\\)\" name=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)|$_Name_|" \ + -e "/^<$Q/!d" -e "/^<!/d" \ + -e "s|>\\([^:./][^:./]*[./]\\)|>$2\\1|" \ + "$_sitefile_" >> "$MK_DATA" +} + +make_sitemap_sect() +{ + # scan used pages and store prime section group relation 'sect' and 'node' + # (A) each "use1" creates "'sect'>href+ href1" for all following non-"use1" + # (B) each "use1" creates "'node'>href2 href1" for all following "use2" + $SED -e "/^<$Q'use.'>/!d" \ + -e "/^<$Q'use1'>/{" \ + -e "h" -e "s|^<$Q'use1'>\\([^ ]*\\) .*|\\1|" \ + -e "x" -e "}" \ + -e "s|^<$Q'use.'>\\([^ ]*\\) .*|<$Q'sect'>\\1|" \ + -e G -e "s|\\n| |" -e "s|\$|<$QX>|" "$MK_DATA" >> "$MK_DATA" + $SED -e "/^<$Q'use.'>/!d" \ + -e "/^<$Q'use1'>/{" \ + -e "h" -e "s|^<$Q'use1'>\\([^ ]*\\) .*|\\1|" \ + -e "x" -e "}" \ + -e "/^<$Q'use[13456789]'>/d" \ + -e "s|<$Q'use.'>\\([^ ]*\\) .*|<$Q'node'>\\1|" \ + -e G -e "s|\\n| |" -e "s|\$|<$QX>|" "$MK_DATA" >> "$MK_DATA" +} + +make_sitemap_page() +{ + # scan used pages and store secondary group relation 'page' and 'node' + # the parenting 'node' for use3 is usually a use2 (or use1 if none there) + $SED -e "/^<$Q'use.'>/!d" \ + -e "/^<$Q'use1'>/{" \ + -e "h" -e "s|^<$Q'use1'>\\([^ ]*\\) .*|\\1|" \ + -e "x" -e "}" \ + -e "/^<$Q'use2'>/{" \ + -e "h" -e "s|^<$Q'use2'>\\([^ ]*\\) .*|\\1|" \ + -e "x" -e "}" \ + -e "/^<$Q'use1'>/d" \ + -e "s|^<$Q'use.'>\\([^ ]*\\) .*|<$Q'page'>\\1<$QX>|" \ + -e G -e "s|\\n| |" "$MK_DATA" >> "$MK_DATA" + $SED -e "/^<$Q'use.'>/!d" \ + -e "/^<$Q'use1'>/{" \ + -e "h" -e "s|^<$Q'use1'>\\([^ ]*\\) .*|\\1|" \ + -e "x" -e "}" \ + -e "/^<$Q'use2'>/{" \ + -e "h" -e "s|^<$Q'use2'>\\([^ ]*\\) .*|\\1|" \ + -e "x" -e "}" \ + -e "/^<$Q'use[12456789]'>/d" \ + -e "s|^<$Q'use.'>\\([^ ]*\\) .*|<$Q'node'>\\1<$QX>|" \ + -e G -e "s|\\n| |" "$MK_DATA" >> "$MK_DATA" + # and for the root sections we register ".." as the parenting group + $SED -e "/^<$Q'use1'>/!d" \ + -e "s|^<$Q'use.'>\\([^ ]*\\) .*|<$Q'node'>\\1 ..<$QX>|" "$MK_DATA" >> "$MK_DATA" +} + +echo_site_filelist() +{ + $SED -e "/^<$Q'use.'>/!d" \ + -e "s|^<$Q'use.'>||" -e "s| .*||" "$MK_DATA" +} + +# ========================================================================== +# originally this was a one-pass compiler but the more information +# we were scanning out the more slower the system ran - since we +# were rescanning files for things like section information. Now +# we scan the files first for global information. +# 1.PASS + +scan_sitefile () # $F +{ + SOURCEFILE=`html_sourcefile "$F"` + $hint "'$SOURCEFILE': scanning -> sitefile" + if test "$SOURCEFILE" != "$F" ; then + dx_init "$F" + dx_text today "`timetoday`" + short=`echo "$F" | $SED -e "s:.*/::" -e "s:[.].*::"` # basename for all exts + short="$short ~" + DC_meta title "$short" + DC_meta date.available "`timetoday`" + DC_meta subject sitemap + DC_meta DCMIType Collection + DC_VARS_Of "$SOURCEFILE" ; HTTP_VARS_Of "$SOURCEFILE" + DC_modified "$SOURCEFILE" ; DC_date "$SOURCEFILE" + DC_section "$F" + DX_text date.formatted `timetoday` + test ".$printerfriendly" != "." && \ + DX_text "printerfriendly" `fast_html_printerfile "$F"` + test ".$USER" != "." && DC_publisher "$USER" + echo "'$SOURCEFILE': $short (sitemap)" + site_map_list_title "$F" "$short" + site_map_long_title "$F" "generated sitemap index" + site_map_list_date "$F" "`timetoday`" + fi +} + +scan_htmlfile() # "$F" +{ + SOURCEFILE=`html_sourcefile "$F"` # SCAN : + $hint "'$SOURCEFILE': scanning -> $F" # HTML : + if test "$SOURCEFILE" != "$F" ; then : + if test -f "$SOURCEFILE" ; then + dx_init "$F" + dx_text today "`timetoday`" + dx_text todays "`timetodays`" + DC_VARS_Of "$SOURCEFILE" ; HTTP_VARS_Of "$SOURCEFILE" + DC_title "$SOURCEFILE" + DC_isFormatOf "$SOURCEFILE" + DC_modified "$SOURCEFILE" ; DC_date "$SOURCEFILE" ; DC_date "$SITEFILE" + DC_section "$F" ; DC_selected "$F" ; DX_alternative "$SOURCEFILE" + test ".$USER" != "." && DC_publisher "$USER" + DX_text date.formatted "`timetoday`" + test ".$printerfriendly" != "." && \ + DX_text "printerfriendly" `fast_html_printerfile "$F"` + sectn=`info_get_entry DC.relation.section` + short=`info_get_entry DC.title.selected` + site_map_list_title "$F" "$short" + info_map_list_title "$F" "$short" + title=`info_get_entry DC.title` + site_map_long_title "$F" "$title" + info_map_long_title "$F" "$title" + edate=`info_get_entry DC.date` + issue=`info_get_entry issue` + site_map_list_date "$F" "$edate" + info_map_list_date "$F" "$edate" + css_scan + echo "'$SOURCEFILE': '$title' ('$short') @ '$issue' ('$sectn')" + else + echo "'$SOURCEFILE': does not exist" + site_map_list_title "$F" "$F" + site_map_long_title "$F" "$F (no source)" + fi ; else + echo "<$F> - skipped" + fi +} + +scan_subsitemap_long () +{ + grep "<a href=\"[^\"]*\">" "$1" | { + while read _line_ ; do + _href_=`echo "$_line_" | $SED -e "s|.*<a href=\"\\([^\"]*\\)\">.*|\\1|"` + _date_=`echo "$_line_" | $SED -e "s|.*<small style=\"date\">\\([^<>]*\\)</small>.*|\\1|" -e "/<a href=\"[^\"]*\">/d"` + _long_=`echo "$_line_" | $SED -e "s|.*<!--long-->\\([^<>]*\\)<!--/long-->.*|\\1|" -e "/<a href=\"[^\"]*\">/d"` + if test ".$_href_" != "." && test ".$_date_" != "." ; then + site_map_list_date "$2$_href_" "$_date_" + fi + if test ".$_href_" != "." && test ".$_long_" != "." ; then + site_map_long_title "$2$_href_" "$_long_" + fi + done + } +} + +scan_namespec () +{ + # nothing so far + case "$1" in + name:sitemap:*) + short=`echo "$F" | $SED -e "s:.*/::" -e "s:[.].*::"` + short=`echo "$short ~" | $SED -e "s/name:sitemap://"` + site_map_list_title "$F" "$short" + site_map_long_title "$F" "external sitemap index" + site_map_list_date "$F" "`timetoday`" + echo "'$F' external sitemap index$n" + ;; + name:*.htm|name:*.html) + FF=`echo "$1" | $SED -e "s|name:||"` + FFF=`echo "$FF" | $SED -e "s|/[^/]*\$|/|"` # dirname + case "$FFF" in */*) : ;; *) FFF="" ;; esac + make_subsitemap_list "$FF" "$FFF" + scan_subsitemap_long "$FF" "$FFF" + ;; + esac +} +scan_httpspec () +{ + # nothing so far + return; +} + +skip_namespec () +{ + # nothing so far + return; +} +skip_httpspec () +{ + # nothing so far + return; +} + +# ========================================================================== +# and now generate the output pages +# 2.PASS + +head_sed_sitemap() # $filename $section +{ + FF=`sed_piped_key "$1"` + SECTION=`sed_slash_key "$2"` + SECTS="sect=\"[$NN$AZ]\"" ; SECTN="sect=\"[$NN]\"" # lines with hrefs + echo "s|\\(<a $SECTS href=\"$FF\">.*</a>\\)|<b>\\1</b>|" # $++ + test ".$sectiontab" != ".no" && \ + echo "/ href=\"$SECTION\"/s|^<td class=\"[^\"]*\"|<td |" # $++ +} + +head_sed_listsection() # $filename $section +{ + # traditional.... the sitefile is the full navigation bar + FF=`sed_piped_key "$1"` + SECTION=`sed_slash_key "$2"` + SECTS="sect=\"[$NN$AZ]\"" ; SECTN="sect=\"[$NN]\"" # lines with hrefs + echo "s|\\(<a $SECTS href=\"$FF\">.*</a>\\)|<b>\\1</b>|" # $++ + test ".$sectiontab" != ".no" && \ + echo "/ href=\"$SECTION\"/s|^<td class=\"[^\"]*\"|<td |" # $++ +} + +head_sed_multisection() # $filename $section +{ + # sitefile navigation bar is split into sections + FF=`sed_piped_key "$1"` + SECTION=`sed_slash_key "$2"` + SECTS="sect=\"[$NN$AZ]\"" ; SECTN="sect=\"[$NN]\"" # lines with hrefs + # grep all pages with a class='sect' relation to current $SECTION and + # build foreach an sed line "s|$SECTS\(<a href=$F>\)|<!--sectX-->\1|" + # after that all the (still) numeric SECTNs are deactivated / killed. + for section in $SECTION $headsection $tailsection ; do + test ".$section" = ".no" && continue + $SED -e "/^<$Q'sect'>[^ ]* $section/!d" \ + -e "s|<$Q'sect'>||" -e "s| .*||" \ + -e "s/.*/s|<a $SECTS \\\\(href=\"&\"\\\\)|<a sect=\"X\" \\\\1|/" \ + "$MK_DATA" # $++ + $SED -e "/^<$Q'sect'>name:[^ ]* $section/!d" \ + -e "s|<$Q'sect'>name:||" -e "s| .*||" \ + -e "s/.*/s|<a $SECTS \\\\(name=\"&\"\\\\)|<a sect=\"X\" \\\\1|/" \ + "$MK_DATA" # $++ + done + echo "s|.*<a \\($SECTN href=[^<>]*\\)>.*|<!-- \\1 -->|" # $++ + echo "s|.*<a \\($SECTN name=[^<>]*\\)>.*|<!-- \\1 -->|" # $++ + echo "s|\\(<a $SECTS href=\"$FF\">\\)|<b>\\1</b>|" # $++ + test ".$sectiontab" != ".no" && \ + echo "/ href=\"$SECTION\"/s|^<td class=\"[^\"]*\"|<td |" # $++ +} + +make_sitefile () # "$F" +{ + SOURCEFILE=`html_sourcefile "$F"` + if test "$SOURCEFILE" != "$F" ; then + if test -f "$SOURCEFILE" ; then + # remember that in this case "${SITEFILE}l" = "$F" = "${SOURCEFILE}l" + info2vars_sed > $MK_VARS # have <!--title--> vars substituted + info2meta_sed > $MK_META # add <meta name="DC.title"> values + F_HEAD="$tmp/$F.$HEAD" ; F_FOOT="$tmp/$F.$FOOT" + $CAT "$MK_PUTS" > "$F_HEAD" + head_sed_sitemap "$F" "`info_get_entry_section`" >> "$F_HEAD" + echo "/<head>/r $MK_META" >> "$F_HEAD" + $CAT "$MK_VARS" "$MK_TAGS" >> "$F_HEAD" + echo "/<\\/body>/d" >> "$F_HEAD" + case "$sitemaplayout" in + multi) make_multisitemap > "$F_FOOT" ;; # here we use ~foot~ to + *) make_listsitemap > "$F_FOOT" ;; # hold the main text + esac + + mkpathfile "$F" + $SED_LONGSCRIPT "$F_HEAD" "$SITEFILE" > $F # ~head~ + $CAT "$F_FOOT" >> $F # ~body~ + $SED -e "/<\\/body>/!d" -f "$MK_VARS" "$SITEFILE" >> $F #</body> + echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` ">->" `ls -s $F` "(sitemap)" + else + echo "'$SOURCEFILE': does not exist" + fi fi +} + +make_htmlfile() # "$F" +{ + SOURCEFILE=`html_sourcefile "$F"` # 2.PASS + if test "$SOURCEFILE" != "$F" ; then + if test -f "$SOURCEFILE" ; then + if grep '<meta name="formatter"' "$SOURCEFILE" > $NULL ; then + echo "'$SOURCEFILE': SKIP, this sourcefile looks like a formatted file" + echo "'$SOURCEFILE': (may be a sourcefile in place of a targetfile?)" + return + fi + info2vars_sed > $MK_VARS # have <!--$title--> vars substituted + info2meta_sed > $MK_META # add <meta name="DC.title"> values + tags2span_sed > $MK_SPAN # extern text/css -> intern css classes + tags2meta_sed >>$MK_META # extern text/css -> intern css classes + F_HEAD="$tmp/$F.$HEAD" ; F_BODY="$tmp/$F.$BODY" ; F_FOOT="$tmp/$F.$FOOT" + $CAT "$MK_PUTS" > "$F_HEAD" + case "$sectionlayout" in + multi) head_sed_multisection "$F" "`info_get_entry_section`" >> "$F_HEAD" ;; + *) head_sed_listsection "$F" "`info_get_entry_section`" >> "$F_HEAD" ;; + esac + $CAT "$MK_VARS" "$MK_TAGS" "$MK_SPAN" >> "$F_HEAD" #tag and vars + echo "/<\\/body>/d" >> "$F_HEAD" #cut lastline + echo "/<head>/r $MK_META" >> "$F_HEAD" #add metatags + echo "/<title>/d" > "$F_BODY" #not that line + $CAT "$MK_VARS" "$MK_TAGS" "$MK_SPAN" >> "$F_BODY" #tag and vars + bodymaker_for_sectioninfo >> "$F_BODY" #if sectioninfo + info2body_sed >> "$F_BODY" #cut early + info2head_sed >> "$F_HEAD" + make_back_path "$F" >> "$F_HEAD" + test ".$emailfooter" != ".no" && \ + body_for_emailfooter > "$F_FOOT" + + mkpathfile "$F" + $SED_LONGSCRIPT "$F_HEAD" $SITEFILE > $F # ~head~ + $SED_LONGSCRIPT "$F_BODY" $SOURCEFILE >> $F # ~body~ + test -f "$F_FOOT" && $CAT "$F_FOOT" >> $F # ~foot~ + $SED -e "/<\\/body>/!d" -f "$MK_VARS" "$SITEFILE" >> $F #</body> + echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` "->" `ls -s $F` + else # test -f $SOURDEFILE + echo "'$SOURCEFILE': does not exist" + fi ; else + echo "<$F> - skipped" + fi +} + +make_printerfriendly () # "$F" +{ # PRINTER + printsitefile="0" # FRIENDLY + P=`html_printerfile "$F"` + P_HEAD="$tmp/$P.$HEAD" + P_BODY="$tmp/$P.$BODY" + case "$F" in + ${SITEFILE}|${SITEFILE}l) + printsitefile=">=>" ; BODY_TXT="$tmp/$F.$FOOT" ;; + *.html) printsitefile="=>" ; BODY_TXT="$SOURCEFILE" ;; + esac + if grep '<meta name="formatter"' "$BODY_TXT" > $NULL ; then return; fi + if test ".$printsitefile" != ".0" && test -f "$SOURCEFILE" ; then + make_printerfile_fast "$FILELIST" > ./$MK_FAST + $CAT "$MK_VARS" "$MK_TAGS" "$MK_FAST" > "$P_HEAD" + $SED -e "/DC.relation.isFormatOf/s|content=\"[^\"]*\"|content=\"$F\"|" \ + "$MK_META" > "$MK_METT" + echo "/<head>/r $MK_METT" >> "$P_HEAD" # meta + echo "/<\\/body>/d" >> "$P_HEAD" + select_in_printsitefile "$F" >> "$P_HEAD" + _ext_=`print_extension "$printerfriendly"` # head- + # line_=`sed_slash_key "$printsitefile_img_2"` # back- + echo "/||topics:/s| href=\"[#][.]\"| href=\"$F\"|" >> "$P_HEAD" + echo "/|||pages:/s| href=\"[#][.]\"| href=\"$F\"|" >> "$P_HEAD" + make_back_path "$F" >> "$P_HEAD" + $CAT "$MK_VARS" "$MK_TAGS" "$MK_FAST" > "$P_BODY" + make_back_path "$F" >> "$P_BODY" + + mkpathfile "$P" + $SED_LONGSCRIPT "$P_HEAD" $PRINTSITEFILE > $P # ~head~ + $SED_LONGSCRIPT "$P_BODY" $BODY_TXT >> $P # ~body~ + $SED -e "/<\\/body>/!d" -f $MK_VARS $PRINTSITEFILE >> $P #</body> + echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` "$printsitefile" `ls -s $P` + fi +} + + +# ======================================================================== +# ======================================================================== +# ======================================================================== + +# ======================================================================== +# #### 0. INIT +make_sitemap_init +make_sitemap_list +make_sitemap_sect +make_sitemap_page + +if test -d DEBUG && test -f "$MK_DATA" +then FFFF=`echo "$F" | sed -e "s,/,:,g"` + cp "$MK_DATA" "DEBUG/$FFFF.DATA.tmp.htm" +fi + +FILELIST=`echo_site_filelist` +if test ".$opt_filelist" != "." || test ".$opt_list" = ".file"; then + for F in $FILELIST; do echo "$F" ; done ; exit # --filelist +fi +if test ".$opt_files" != "." ; then FILELIST="$opt_files" ; fi # --files +if test ".$FILELIST" = "."; then warn "nothing to do (no --filelist)" ; fi +if test ".$FILELIST" = ".SITEFILE" ; then warn "only '$SITEFILE'?!" ; fi + +for F in $FILELIST ; do case "$F" in #### 1. PASS +name:*) scan_namespec "$F" ;; +http:*|https:*|ftp:*|mailto:*|telnet:*|news:*|gopher:*|wais:*) + scan_httpspec "$F" ;; +${SITEFILE}|${SITEFILE}l) scan_sitefile "$F" ;; # ........... SCAN SITE +*@*.de) + echo "!! -> '$F' (skipping malformed mailto:-link)" + ;; +../*) + echo "!! -> '$F' (skipping topdir build)" + ;; +# */*.html) +# echo "!! -> '$F' (skipping subdir build)" +# ;; +# */*/*/|*/*/|*/|*/index.htm|*/index.html) +# echo "!! -> '$F' (skipping subdir index.html)" +# ;; +*.html) scan_htmlfile "$F" # ........... SCAN HTML + if test ".$opt_xml" != "." ; then + F=`echo "$F" | sed -e "s/\\.html$/.xml/"` + scan_xmlfile "$F" + fi ;; +*.xml) scan_xmlfile "$F" ;; +*/) echo "'$F' : directory - skipped" + site_map_list_title "$F" "`sed_slash_key $F`" + site_map_long_title "$F" "(directory)" + ;; +*) echo "?? -> '$F'" + ;; +esac done + +if test ".$printerfriendly" != "." ; then # .......... PRINT VERSION + _ext_=`print_extension "$printerfriendly" | sed -e "s/&/\\\\&/"` + PRINTSITEFILE=`echo "$SITEFILE" | sed -e "s/\\.[$AA]*\$/$_ext_&/"` + echo "NOTE: going to create printer-friendly sitefile $PRINTSITEFILE" + make_printsitefile > "$PRINTSITEFILE" +fi + +for F in $FILELIST ; do case "$F" in #### 2. PASS +name:*) skip_namespec "$F" ;; +http:*|https:*|ftp:*|mailto:*|telnet:*|news:*|gopher:*|wais:*) + skip_httpspec "$F" ;; +${SITEFILE}|${SITEFILE}l) make_sitefile "$F" # ........ SITE FILE + if test ".$printerfriendly" != "." ; then make_printerfriendly "$F" ; fi + if test ".$opt_xml" != "." ; then _old_F_="$F" + F=`echo "$F" | sed -e "s/\\.html$/.xml/"` + make_xmlmaster "$F" ;F="$_old_F_" + fi ;; +*@*.de) + echo "!! -> '$F' (skipping malformed mailto:-link)" + ;; +../*) + echo "!! -> '$F' (skipping topdir build)" + ;; +# */*.html) +# echo "!! -> '$F' (skipping subdir build)" +# ;; +# */*/*/|*/*/|*/|*/index.htm|*/index.html) +# echo "!! -> '$F' (skipping subdir index.html)" +# ;; +*.html) make_htmlfile "$F" # .................. HTML FILES + test ".$printerfriendly" != "." && make_printerfriendly "$F" + if test ".$opt_xml" != "." ; then _old_F_="$F" + F=`echo "$F" | sed -e "s/\\.html$/.xml/"` + make_xmlfile "$F" ;F="$_old_F_" + fi ;; +*.xml) make_xmlfile "$F" ;; +*/) echo "'$F' : directory - skipped" + ;; +*) echo "?? -> '$F'" + ;; +esac +# .............. debug .................... + if test -d DEBUG && test -f "./$F" ; then + FFFF=`echo "$F" | sed -e "s,/,:,g"` + test -f "$tmp/$F.$DATA" && cp "$tmp/$F.$DATA" DEBUG/$FFFF.data.tmp.htm + test -f "$tmp/$F.$HEAD" && cp "$tmp/$F.$HEAD" DEBUG/$FFFF.head.tmp.sed + test -f "$tmp/$F.$BODY" && cp "$tmp/$F.$BODY" DEBUG/$FFFF.body.tmp.sed + test -f "$tmp/$F.$FOOT" && cp "$tmp/$F.$FOOT" DEBUG/$FFFF.foot.tmp.sed + for P in tags vars span meta page date list html sect \ + data head body foot fast xmlmapping \ + gets puts site mett sect1 sect2 sect3 style ; do + test -f $tmp/$MK.$P.tmp.htm && cp $tmp/$MK.$P.tmp.htm DEBUG/$FFFF.$P.tmp.htm + test -f $tmp/$MK.$P.tmp.sed && cp $tmp/$MK.$P.tmp.sed DEBUG/$FFFF.$P.tmp.sed + done + fi +done + +if test ".$opt_keeptmpfiles" = "." ; then + for i in $tmp/$MK.*.tmp.htm $tmp/$MK.*.tmp.sed \ + $tmp/$MK.*.tmp.css $tmp/$MK.*.tmp.txt + do test -f "$i" && rm "$i" + done +fi +if test ".$tmp_dir_was_created" != ".no" ; then rm $tmp/* ; rmdir $tmp ; fi +exit 0 diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/mmapped.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/mmapped.htm new file mode 100644 index 00000000000..9ac35ece988 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/mmapped.htm @@ -0,0 +1,226 @@ +<section> <date> 2005 </date> +<H2> zzip/mmapped </H2> zip access for mmapped views + +<BLOCKQUOTE> + These routines are fully independent from the traditional zzip + implementation. They assume a readonly mmapped sharedmem block + representing a complete zip file. The functions show how to + parse the structure, find files and return a decoded bytestream. +</BLOCKQUOTE> + +<section> +<H3> zzip disk handle </H3> + +<P> + Other than with the <a href="fseeko.html">fseeko</a> alternative + interface there is no need to have an actual disk handle to the + zip archive. Instead you can use a bytewise copy of a file or + even use a mmapped view of a file. This is generally the fastest + way to get to the data contained in a zipped file. All it requires + is enough of virtual memory space but a desktop computer with a + a modern operating system will easily take care of that. +</P> + +<P> + The zzipmmapped library provides a number of calls to create a + disk handle representing a zip archive in virtual memory. Per + default we use the sys/mmap.h (or MappedView) functionality + of the operating system. The <code>zzip_disk_open</code> will + open a system file descriptor and try to <code>zzip_disk_mmap</code> + the complete zip content. When finished with the zip archive + call <code>zzip_disk_close</code> to release the mapped view + and all management data. +</P> + +<PRE> + ZZIP_DISK* zzip_disk_open(char* filename); + int zzip_disk_close(ZZIP_DISK* disk); + + ZZIP_DISK* zzip_disk_new(void); + ZZIP_DISK* zzip_disk_mmap(int fd); + int zzip_disk_munmap(ZZIP_DISK* disk); + int zzip_disk_init(ZZIP_DISK* disk, + char* buffer, zzip_size_t buflen); +</PRE> + +</section><section> +<H3> reading the central directory </H3> + +<P> + To get access to a zipped file, you need a pointer to an entry in the + mmapped zip disk known under the type <code>ZZIP_DISK_ENTRY</code>. + This is again modelled after the <code>DIR_ENTRY</code> type in being + a representation of a file name inside the zip central directory. To + get an initial zzip disk entry pointer, use <code>zzip_disk_findfirst</code>, + to move the pointer to the next entry use <code>zzip_disk_findnext</code>. +</P> +<PRE> + extern ZZIP_ENTRY* zzip_disk_findfirst(FILE* disk); + extern ZZIP_ENTRY* zzip_disk_findnext(ZZIP_ENTRY* entry); +</PRE> +<P> + These two calls will allow to walk all zip archive members in the + order listed in the zip central directory. To actually implement a + directory lister ("zzipdir"), you need to get the name string of the + zzip entry. This is not just a pointer: the zzip disk entry is not + null terminated actually. Therefore we have a helper function that + will <code>strdup</code> the entry name as a normal C string: +</P> +<PRE> + #include <zzip/mmapped.h> + void _zzip_dir(char* filename) + { + ZZIP_DISK* disk = zzip_disk_open (filename); + if (! disk) return disk; + for (ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst (disk); + entry ; entry = zzip_disk_findnext (entry)) { + char* name = zzip_disk_entry_strdup_name (entry); + puts (name); free (name); + } + } +</PRE> + +</section><section> +<H3> find a zipped file </H3> + +<P> + The central directory walk can be used to find any file in the + zip archive. The <code>zzipfseeko</code> library however provides + two convenience functions that allow to jump directly to the + zip disk entry of a given name or pattern. You are free to use + the returned <code>ZZIP_DISK_ENTRY</code> pointer for later calls + that type. There is no need to free this pointer as it is really + a pointer into the mmapped area of the <code>ZZIP_DISK</code>. + But do not forget to free that one via <code>zzip_disk_close</code>. +</P> +<PRE> + ZZIP_DISK_ENTRY* zzip_disk_findfile(ZZIP_DISK* disk, char* filename, + ZZIP_DISK_ENTRY* after, + zzip_strcmp_fn_t compare); + + ZZIP_DISK_ENTRY* zzip_disk_findmatch(ZZIP_DISK* disk, char* filespec, + ZZIP_ENTRY* after, + zzip_fnmatch_fn_t compare, int flags); +</PRE> +<P> + In general only the first two arguments are non-null pointing to the + zip disk handle and the file name to look for. The "after" argument + is an old value and allows you to walk the zip directory similar to + <code>zzip_disk_entry_findnext</code> but actually leaping forward. The + compare function can be used for alternate match behavior: the default + of <code>strcmp</code> might be changed to <code>strncmp</code> for + a caseless match. The "flags" of the second call are forwarded to the + posix <code>fnmatch</code> which we use as the default function. +</P> +<P> + If you do know a specific zzipped filename then you can just use + <code>zzip_disk_entry_findfile</code> and supply the return value to + <code>zzip_disk_entry_fopen</code>. There is a convenience function + <code>zzip_disk_fopen</code> that will do just that and therefore + only requires a disk handle and a filename to find-n-open. +</P> +<PRE> + #include <zzip/mmapped.h> + + int _zzip_read(ZZIP_DISK* disk, char* filename, void* buffer, int bytes) + { + ZZIP_DISK_FILE* file = zzip_disk_fopen (disk, filename); + if (! file) return -1; + int bytes = zzip_disk_fread (buffer, 1, bytes, file); + zzip_disk_fclose (file); + return bytes; + } +</PRE> + +</section><section> +<H3> reading bytes </H3> + +<P> + The example has shown already how to read some bytes off the head of + a zipped file. In general the zzipmmapped api is used to replace a few + system file routines that access a file. For that purpose we provide three + functions that look very similar to the stdio functions of + <code>fopen()</code>, <code>fread()</code> and <code>fclose()</code>. + These work on an active file descriptor of type <code>ZZIP_DISK_FILE</code>. +</P> + +<PRE> + ZZIP_DISK_FILE* zzip_disk_entry_fopen (ZZIP_DISK* disk, + ZZIP_DISK_ENTRY* entry); + ZZIP_DISK_FILE* zzip_disk_fopen (ZZIP_DISK* disk, char* filename); + zzip_size_t zzip_disk_fread (void* ptr, + zzip_size_t sized, zzip_size_t nmemb, + ZZIP_DISK_FILE* file); + int zzip_disk_fclose (ZZIP_DISK_FILE* file); + int zzip_disk_feof (ZZIP_DISK_FILE* file); +</PRE> + +<P> + In all of the examples you need to remember that you provide a single + <code>ZZIP_DISK</code> descriptor for a memory block which is in reality + a virtual filesystem on its own. Per default filenames are matched case + sensitive also on win32 systems. The findnext function will walk all + files on the zip virtual filesystem table and return a name entry + with the full pathname, i.e. including any directory names to the + root of the zip disk <code>FILE</code>. +</P> + +</section><section> +<H3> ZZIP_DISK_ENTRY inspection </H3> + +<P> + The <code>ZZIP_DISK_FILE</code> is a special file descriptor handle + of the <code>zzipmmapped</code> library - but the + <code>ZZIP_DISK_ENTRY</code> is not so special. It is actually a pointer + directly into the zip central directory managed by <code>ZZIP_DISK</code>. + While <code>zzip/mmapped.h</code> will not reveal the structure on its own, + you can include <code>zzip/format.h</code> to get access to the actual + structure content of a <code>ZZIP_DISK_ENTRY</code> by its definition +<br><b><code> struct zzip_disk_entry</code></b>. +</P> + +<P> + In reality however it is not a good idea to actually read the bytes + in the <code>zzip_disk_entry</code> structure unless you seriously know + the internals of a zip archive entry. That includes any byteswapping + needed on bigendian platforms. Instead you want to take advantage of + helper macros defined in <code>zzip/fetch.h</code>. These will take + care to convert any struct data member to the host native format. +</P> +<PRE> +extern uint16_t zzip_disk_entry_get_flags( zzip_disk_entry* entry); +extern uint16_t zzip_disk_entry_get_compr( zzip_disk_entry* entry); +extern uint32_t zzip_disk_entry_get_crc32( zzip_disk_entry* entry); + +extern zzip_size_t zzip_disk_entry_csize( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_usize( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_namlen( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_extras( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_comment( zzip_disk_entry* entry); +extern int zzip_disk_entry_diskstart( zzip_disk_entry* entry); +extern int zzip_disk_entry_filetype( zzip_disk_entry* entry); +extern int zzip_disk_entry_filemode( zzip_disk_entry* entry); + +extern zzip_off_t zzip_disk_entry_fileoffset( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_sizeof_tail( zzip_disk_entry* entry); +extern zzip_size_t zzip_disk_entry_sizeto_end( zzip_disk_entry* entry); +extern char* zzip_disk_entry_skipto_end( zzip_disk_entry* entry); +</PRE> + +<P> + Additionally the <code>zzipmmapped</code> library has two additional + functions that can convert a mmapped disk entry to (a) the local + file header of a compressed file and (b) the start of the data area + of the compressed file. These are used internally upon opening of + a disk entry but they may be useful too for direct inspection of the + zip data area in special applications. +</P> +<PRE> + char* zzip_disk_entry_to_data(ZZIP_DISK* disk, + struct zzip_disk_entry* entry); + struct zzip_file_header* + zzip_disk_entry_to_file_header(ZZIP_DISK* disk, + struct zzip_disk_entry* entry); +</PRE> + +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/notes.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/notes.htm new file mode 100644 index 00000000000..4b6d78177c3 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/notes.htm @@ -0,0 +1,57 @@ +<H2> Some Notes </H2> + +<dl> +<dt> ClamAV thinks it decompress zip method 9 files </dt> +<dd> + In May 2005 the ClamAV Development team detected a problem + with zlib - which knows an undocumented inflate64 that maps + to the zip compression method number 9 (implemented in files + inftree9 and infback9). However the support for that method + is not being compiled into libz.so by default, so you have + to recompile zlib to get support for it - zziplib will not do + that on its own, nor will it check the actual availability. + So, zziplib users might be handicapped if the meet a zip + compressed with that method 9, at best they will get an + error code back to the application but that is mostly not + intuitive enough to point to the actual problem related to + the last breed of zip/zlib compression methods. Effectivly + you are restricted to methods 0 and 8. +</dd> +<dt> Ogre3D + Win64/AMD64 + zziplib = ZZIP_DIR_READ error </dt> +<dd> + As of December 2005 the thread at + http://www.ogre3d.org/phpBB2/viewtopic.php?p=110707#110667 + points to a problem in the 64bit variant of zziplib with + some zip archives. The actual source of the problem is + unknown. The Ogre project uses an internal copy of the + zziplib library being statically linked. The latest + zziplib version has been tested on a number of 64bit + system in the meantime - however those are 64bit Unix + variants (LP64). While Win32 (LP32) works okay there + might be some buglet left for Win64 (LLP64) that I can't + track down (system N/A to me) in the near future. +</dd> +<dt> PHP5 does not know --with-zip </dt> +<dd> + As of January 2005 I was hinted that some of the PHP + problems might see a new show. In the past there were + numerous queries about installation of zziplib to be + useful as the PHP-ZIP module but I could not answer them. + (I don't use PHP for real work). The standard php4 + docs were obviously insufficient with saying to just + configure --with-zip... but now even that option is + gone and there is no hint anywhere telling of the + replacement. +</dd> +<dt> sourcebase.sf using modified zziplib code </dt> +<dd> + In May 2003 I did notice that the sourcebase.sf + project - providing a generic virtual filesystem + for applications - has been reusing the zziplib + code. However the code has been modified in a + number of places and it was (at first) placed + under real GPL. That library was supposed to be + put under the hood of the GNOME desktop but at + the moment it does not seem to go nowhere further. +</dd> +</dl> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/referentials.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/referentials.htm new file mode 100644 index 00000000000..8519ed3cd99 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/referentials.htm @@ -0,0 +1,68 @@ +<section><date> 15. July 2002 </date> +<h2> ZZIP Referentials </h2> Where is it used. + +<!--noborder--> + +<section> +<h3> GPL Rant </h3> + +<BLOCKQUOTE> + The GPL/LGPL do not have a clause like MPL and others to notify the + original author about certain usages of the library - that's a pity + since I do not get to know many of the areas where zziplib has come + to be used. I can only ask you to send me an e-mail, so I can put a + link from here to your project. Within thousands of downloads less + than a handful of people wrote to me - mostly for having found a bug + or having a feature request. Be nice, and write even if you have had + successfully implanted zziplib in your project... I love to hear that ;-) +</BLOCKQUOTE> + +</section><section> +<h3> opensource games </h3> + +<BLOCKQUOTE> + Although the library has not been written focusing on game data, + it has it greatest success just there. The SDL-rwops example did + further it by great amounts, people just like it to have the + thousand of small bitmaps to be assembled into one big dat file, + and put the AI scripts just next to them. +</BLOCKQUOTE> + +<ul><li> Underworld Adventures: <br> +<a href="http://uwadv.sourceforge.net"> + http://uwadv.sourceforge.net</a> +</li><li> Ogre3D Game Development <br /> +<a href="http://www.ogre3d.org/"> + http://www.ogre3d.org/</a> +</li></ul> + +</section><section> +<h3> opensource apps/libs </h3> + +<BLOCKQUOTE> + Here the most important feature has been the smalls size of this + library and the possible to use its autoconf script and even for + those who don't, it is easy to make a custom configuration. The + source code is easy to understand and therefore to customize for + the needs of the app/lib that wants to use the functionality. +</BLOCKQUOTE> + +<ul><li> PHP ZIP Module <br> +<a href="http://www.php.net/manual/en/ref.zip.php"> + http://www.php.net/manual/en/ref.zip.php</a> +</li></ul> + +</section><section> +<h3> commercial usage </h3> + +<BLOCKQUOTE> + For commercial usage, you can bind many small files into a zip + file for easier handling. Obfuscation and io-wrapping help + greatly to implant it in areas even far from posix-io grounds. +</BLOCKQUOTE> + +<ul><li> Media Portal Backside <br> +<a href="http://www.appwares.com"> + http://www.appwares.com</a> +</li></ul> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/sdocbook.css b/Build/source/libs/zziplib/zziplib-0.13.60/docs/sdocbook.css new file mode 100644 index 00000000000..95a65fb2d24 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/sdocbook.css @@ -0,0 +1,679 @@ +abbrev +{ + display: inline; +} + +abstract +{ + margin-left: 0.5in; + margin-right: 0.5in; + display: inline; +} + +acronym +{ + display: inline; +} + +address +{ + white-space: pre; + display: block; +} + +anchor +{ + display: inline; +} + +appendix +{ + display: block; +} + +articleinfo +{ + display: none; +} + +article +{ + display: block; +} + +audiodata +{ + display: none; +} + +audioobject +{ + display: none; +} + +author +{ + display: inline; +} + +authorgroup +{ + display: inline; +} + +authorinitials +{ + display: inline; +} + +bibliomisc +{ + display: inline; +} + +bibliomset +{ + display: inline; +} + +biblioset +{ + display: inline; +} + +blockquote +{ + display: block; + margin-left: 0.5in; + margin-right: 0.5in; +} + +caption +{ + display: none; +} + +citetitle +{ + display: inline; + font-style: italic; +} + +city +{ + display: inline; +} + +colspec +{ + display: none; +} + +command +{ + display: inline; + font-style: italic; +} + +computeroutput +{ + display: inline; + font-family: monospace; +} + +copyright +{ + display: inline; +} + +corpauthor +{ + display: inline; +} + +country +{ + display: inline; +} + +date +{ + display: inline; +} + +articleinfo +{ + display: none; +} + +appendixinfo +{ + display: none; +} + +edition +{ + display: inline; +} + +editor +{ + display: inline; +} + +email +{ + display: inline; + font-style: italic; +} + +emphasis +{ + display: inline; + font-style: italic; +} + +entry +{ + display: table-cell; +} + +example +{ + display: block; +} + +fax +{ + display: inline; +} + +figure +{ + display: block; +} + +filename +{ + display: inline; + font-style: italic; +} + +firstname +{ + display: inline; +} + +footnote +{ + display: inline; +} + +holder +{ + display: inline; +} + +honorific +{ + display: inline; +} + +imagedata +{ + display: inline; +} + +imageobject +{ + display: inline; +} + +informaltable +{ + display: block; +} + +inlinemediaobject +{ + display: inline; +} + +isbn +{ + display: inline; +} + +issn +{ + display: inline; +} + +issuenum +{ + display: inline; +} + +itemizedlist +{ + display: block; + list-style-type: disc; +} + +keyword +{ + display: inline; +} + +keywordset +{ + display: inline; +} + +legalnotice +{ + display: inline; +} + +lineage +{ + display: inline; +} + +lineannotation +{ + display: inline; +} + +link +{ + display: inline; +} + +listitem +{ + display: list-item; +} + +literal +{ + display: inline; +} + +literallayout +{ + display: inline; +} + +mediaobject +{ + display: inline; +} + +member +{ + display: inline; +} + +note +{ + display: inline; +} + +objectinfo +{ + display: inline; +} + +option +{ + display: inline; +} + +orderedlist +{ + display: block; + list-style-type: decimal; +} + +otheraddr +{ + display: inline; +} + +othercredit +{ + display: inline; +} + +othername +{ + display: inline; +} + +pagenums +{ + display: inline; +} + +para +{ + display: block; +} + +phone +{ + display: inline; +} + +phrase +{ + display: inline; +} + +pob +{ + display: inline; +} + +postcode +{ + display: inline; +} + +printhistory +{ + display: inline; +} + +procedure +{ + display: inline; +} + +programlisting +{ + display: inline; +} + +pubdate +{ + display: inline; +} + +publisher +{ + display: inline; +} + +publishername +{ + display: inline; +} + +quote +{ + display: inline; +} + +replaceable +{ + display: inline; +} + +revhistory +{ + display: inline; +} + +revision +{ + display: inline; +} + +revnumber +{ + display: inline; +} + +revremark +{ + display: inline; +} + +row +{ + display: table-row; +} + +section +{ + display: block; +} + +sectioninfo +{ + display: none; +} + +sidebar +{ + display: block; +} + +simplelist +{ + display: inline; +} + +state +{ + display: inline; +} + +step +{ + display: inline; +} + +street +{ + display: inline; +} + +substeps +{ + display: inline; +} + +subtitle +{ + display: inline; +} + +surname +{ + display: inline; +} + +systemitem +{ + display: inline; +} + +tbody +{ + display: table-row-group; +} + +term +{ + display: inline; +} + +textobject +{ + display: inline; +} + +tgroup +{ + display: table; +} + +thead +{ + display: table-row-group; +} + +title +{ + display: block; +} + +article title +{ + font-size: 36pt; + font-weight: bold; + display: block; +} + +section title +{ + font-size: 24pt; + font-weight: bold; + display: block; +} + +section section title +{ + font-size: 20pt; + font-weight: bold; + display: block; +} + +section section section title +{ + font-size: 18pt; + font-weight: bold; + display: block; +} + +section section section section title +{ + font-size: 16pt; + font-weight: bold; + display: block; +} + +section section section section section title +{ + font-size: 14pt; + font-weight: bold; + display: block; +} + +section section section section section section title +{ + font-size: 12pt; + font-weight: bold; + display: block; +} + +appendix title +{ + font-size: 24pt; + font-weight: bold; + display: block; +} + +appendix section title +{ + font-size: 22pt; + font-weight: bold; + display: block; +} + +appendix section section title +{ + font-size: 18pt; + font-weight: bold; + display: block; +} + +appendix section section section title +{ + font-size: 16pt; + font-weight: bold; + display: block; +} + +appendix section section section section title +{ + font-size: 14pt; + font-weight: bold; + display: block; +} + +appendix section section section section section title +{ + font-size: 12pt; + font-weight: bold; + display: block; +} + +titleabbrev +{ + display: none; +} + +trademark +{ + display: inline; +} + +ulink +{ + display: inline; +} + +userinput +{ + display: inline; +} + +variablelist +{ + display: inline; +} + +varlistentry +{ + display: inline; +} + +videodata +{ + display: inline; +} + +videoobject +{ + display: inline; +} + +volumenum +{ + display: inline; +} + +xref +{ + display: inline; +} + +year +{ + display: inline; +} + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/sfx-make.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/sfx-make.htm new file mode 100644 index 00000000000..5e092e47a11 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/sfx-make.htm @@ -0,0 +1,167 @@ +<section> <date> February 2003 </date> +<h2> SFX-Make </h2> combining an EXE with a ZIP archive + +<!--border--> + +<section> +<h3> How To </h3> +<P> + In this section we walk you through the steps of combining an EXE + with a ZIP archive. The basic scheme goes like this: the final + file will have an EXE starting at offset null, followed by the + data entries of a ZIP archive. The <em>last</em> part of the ZIP + archive is the ZIP central-directory which ends at the end of the file. +</P> +<P> + The basic problem lies in the fact that the zip central-directory + entries reference their data section with an offset from the + start-of-file so that you can not just append a zip archive after + an exe stub. The trick goes like adding the EXE as the first data + part of the ZIP archive - so that the offsets for each entry will + be correct when we are finished with it. +</P> +<P> + Again, one can not just use a zip tool to put the EXE as the first + part - since each data part is preceded with an infoblock of a + few bytes. The data of the first data part will therefore not + start at offset zero. We solve this problem with moving the data + a few bytes later - so that the final file will not start with a + "PK" magic (from the zip info header) but with an "MZ" or "ELF" + magic (from the exe info header). +</P> + +</section><section> +<h3> Step 1: Creating The Zip Combination </h3> +<P> + Choose your exe file (example.exe) and wrap that file into a + zip container - ensure that the zip tool does <em>not</em> + use any compression algorithm on the data. This is usually + done with saying "zero compression level" as an option to + the zip tool. Also note that <em>no other</em> file is + wrapped as some zip tools reorder the entries from the + order on the command line to alphabetic order. Here is an + example with infozip's `zip` (e.g. on linux): + <pre> zip -0 -j example.zip example.exe </pre> +</P> +<P> + There is no zip tool that would reorder the data entries in + an existing zip archive. This mode is used here - the real + compressed data entries can now be added to the existing + zip archive that currently just wraps the exe part. With + specifying maximum compression ("-9" = compression level 9) + and throwing away any subdirectory part ("-j" = junk path) + it might look like + <pre> zip -9 -j example.zip data/* </pre> +</P> +<P> + Now we need to move the exe part by a few bytes to the + real start of the file. This can be done as easily as + writing the exe file again on to the start of the file. + However, one can not just use a shell-direction or + copy-operation since that would truncate (!!) the zip + file to the length of the exe part. The overwrite-operation + must be done without truncation. For maximum OS independence + the zziplib ships with a little tool in "test/zzipsetstub.c" + that you can reuse for this task: + <pre> zzipsetstub example.zip example.exe </pre> +</P> +<P> + This is it - the `unzip` tool can still access all data + entries but the first EXE - the first EXE will be listed + in the central-directory of the ZIP archive but one can + not extract the data since the "PK" magic at offset null + has been overwritten with the EXE magic. The data of all + the other entries can still be extracted with a normal + `unzip` tool - or any tool from the zziplib be used for + the same task. +</P> + +</section><section> +<h3> Step 2: Accessing The Data From The Program </h3> + +<P> + There is an example in test/zzipself.c that show how to do + it. The OS will provide each program with its own name in + argv[0] of the main() routine. This program file (!!) is + also the zip archive that carries the compressed data + entries along. Therefore, we can just issue a zzip_opendir + on argv[0] to access the zip central-directory. +</P> +<P> + Likewise one can open a file within it by just prepending + the string argv[0] to the filename stem, i.e. you could + do like + <pre> ZZIP_FILE* f = zzip_fopen ("example.exe/start.gif", "rbi")</pre> +</P><P> + however you are advised to use the _ext_io cousin to be + platform independet - different Operating Systems use + different file extensions for executables, it's not always + an ".exe". +</P> +<P> + Once the file is opened, the data can be zzip_fread or + passed through an SDL_rwops structure into the inner + parts of your program. +</P> + +</section><section> +<h3> Step 3: Using Obfuscation Along </h3> + +<P> + The next level uses obfuscatation on the data part of the + application. That way there is no visible data to be seen + from outside, it looks like it had been compiled right into + the C source part. One can furthermore confuse a possible + attacker with staticlinking the zziplib into the executable + (this is possible in a limited set of conditions). +</P> +<P> + The first pass is again in creating the zip - here we must + ensure that only the ZIP archive part is obfuscated but + the EXE part must be plain data so that the operationg + system can read and relocate it into main memory. Using + xor-obfuscation this is easy - applying xor twice will + yield the original data. The steps look like this now: + <pre> + zzipxorcopy example.exe example.xor + zip -0 application.zip example.xor + zip -9 application.zip data/* + zzipsetstub application.zip example.xor + zzipxorcopy application.zip application.exe + </pre> +</P> +<P> + In the second step the open-routine in your application + needs to be modified - there are quite some examples in + the zziplib that show you how to add an xor-read routine + and passing it in the "io"-part of an zzip_open_ext_io + routine (see zzipxorcat.c). + <pre> + static int xor_value = 0x55; + + static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l) + { + zzip_ssize_t r = read(f, p, l); + zzip_ssize_t x; char* q; for (x=0, q=p; x < r; x++) q[x] ^= xor_value; + return r; + } + + static struct zzip_plugin_io xor_handlers; + static zzip_strings_t xor_fileext[] = { ".exe", ".EXE", "", 0 }; + + main(...) + { + zzip_init_io (&xor_handlers, 0); xor_handlers.read = &xor_read; + + ZZIP_FILE* fp = zzip_open_ext_io (filename, + O_RDONLY|O_BINARY, ZZIP_CASELESS|ZZIP_ONLYZIP, + xor_fileext, &xor_handlers); + .... + </pre> +</P> +<P> + You may want to pick your own xor-value instead of the default 0x55, + the zziplib-shipped tool `zzipxorcopy` does know an option to just + set the xor-value with which to obfuscate the data. +</P> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zip-php.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zip-php.htm new file mode 100644 index 00000000000..04166673f38 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zip-php.htm @@ -0,0 +1,63 @@ +<H2> PHP-ZIP Installation </H2> + +<P> + There have been many problems about the installation of the php-zip + module. Since Mid of 2006 the php-zip module does not require the + zziplib anymore - it uses its own implementation (which is a clean + approach in a double sense - there are no source code comments). + So, the following might possibly be only relevant for older + installations. +</P> + +<P> Chris Branch has been kind enough to jot down the points of a + successful php-zip installation sending it to me in May 2006. + I am quoting his text verbatim - again, I do not know whether + it works or not as I am not using any PHP for real work. +</P> + +<hr width="60%" align="center"> +<DL> +<DT> Software Packages </DT> +<dd><ul> +<li> Apache 2.4.21 (Linux) </li> +<li> PHP 4.3.9 </li> +<li> ZZIPLIB 0.10.82 </li> +<li> Special requirement: static linking +</ul></dd> +<DT> Setting up ZZIPLIB </DT> +<dd><ul> +<li> Extract files from zziplib-0.10.82.tar.bz2 to a new folder. </li> +<li> ./configure --enable-static </li> +<li> make </li> +<li> make install </li> +</ul></dd> +<DT> Rebuilding PHP to include ZIP support </DT> +<dd><ul> +<li> Modify PHP build file and add "--with-zip" +[no dir needed because default /usr/local on my machine] </li> +<li> make </li> +<li> make install </li> +</ul></dd> +<DT> Modifying the Apache Installation </DT> +<dd><ul> +<li> Change to Apache source code directory </li> +<li> Change to "src" subdirectory and edit existing Makefile. [***] +<br> Add: EXTRA_LIBS=/usr/local/lib/libzzip.a </li> +<li> Change back to parent folder (cd ..) </li> +<li> make </li> +<li> /usr/local/etc/httpd/bin/apachectl stop </li> +<li> make install </li> +<li> /usr/local/etc/httpd/bin/apachectl start </li> +</ul></dd> +</DL> + +<p><b>[***] Note:</b> +That step is the critical step that's not obvious. Apparently, +when you build PHP as a static library and include the "--with-zip" +option, it creates a static library for PHP with an external dependency on +zziplib.a. However, the Apache configure script and resulting Makefile +doesn't take this into account, so Apache won't link unless you hand-edit +the Apache Makefile. (Maybe there's a better place to make this change so +that you don't have to re-fix Apache's Makefile each time you run Apache's +./configure. However, I didn't spend the time to investigate that). +</p> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-api.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-api.htm new file mode 100644 index 00000000000..79bed1401d4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-api.htm @@ -0,0 +1,30 @@ +<section> <date> 20. July 2002 </date> +<h2> ZZIP Programmers Interface </h2> The complete API description. + +<!--border--> + +<P> + The zzip library was orginally developped by Tomi Ollila as a + set of zip decoder routines. Guido Draheim did pick it up and + wrapped them under a call synopsis matching their posix + api calls. Therefore <code>zzip_open()</code> has the same + synopsis as <code>open(2)</code> but it can open zipped files. + Later the distinction was made between magic wrappers and apis + for direct access to zip archives and the files contained + in the archive. +</P> +<P> + These (three) functional apis have little helper functions + alongside including those to get the posix filehandle out of a + zzip handle and to get some attributes about the data handle + represented by a zzip handle. Plus checking for error codes + that may have been generated from internal checks. +</P> + +<dl> +<dt> <a href="zzip-basics.html">Basics</a> </dt> +<dd> Magic Wrappers, Zip Archive Dir access, Zipped File access </dd> +<dt> <a href="zzip-extras.html">Extras</a> </dt> +<dd> ext/io init, StdC calls, Error defs, ReOpen, FileStat </dd> +</dl> +</section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-basics.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-basics.htm new file mode 100644 index 00000000000..0d0504710e7 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-basics.htm @@ -0,0 +1,163 @@ +<section> <date> 20. July 2002 </date> +<h2> ZZIP API Basics </h2> The open/close API description. + +<!--border--> + +<section> +<h3> Basics </h3> + +<P> + The naming schem of functions in this library follow a simple rule: + if you see a function with a <code>zzip_</code> prefix followed by + compact name representing otherwise a C library or posix function then + it is a magic wrapper that can automagically handle both real + files/directories or zip-contained files. This includes: +</P> +<table cellpadding=10 width=100%><tr><td><table width=100% border=1> + <tr><td width=50%> zzip_opendir </td><td width=50%> opendir </td></tr> + <tr><td width=50%> zzip_readdir </td><td width=50%> readdir </td></tr> + <tr><td width=50%> zzip_closedir </td><td width=50%> closedir </td></tr> + <tr><td width=50%> zzip_rewinddir </td><td width=50%> rewinddir </td></tr> + <tr><td width=50%> zzip_telldir </td><td width=50%> telldir </td></tr> + <tr><td width=50%> zzip_seekdir </td><td width=50%> seekdir </td></tr> +</table></td></tr></table> +<P> + The ZZIP_DIR handle can wrap both a real directory or a zip-file. + Note that you can not open a virtual directory <em>within</em> a + zip-file, the ZZIP_DIR is either a real DIR-handle of a real + directory or the reference of ZIP-file but never a DIR-handle + within a ZIP-file - there is no such schema of a SUB-DIR handle + implemented in this library. A ZZIP_DIR does actually represent + the central directory of a ZIP-file, so that each file entry in + this ZZIP-DIR can possibly have a subpath prepended. +</P> + +<P> + This form of magic has historic reasons as originally the + magic wrappers of this library were not meant to wrap a complete + subtree of a real file tree but only a single directory being + wrapped with into a zip-file and placed instead. Later proposals + and patches were coming in to support subtree wrapping by not + only making a split between the dir-part and file-part but + going recursivly up through all "/"-dirseparators of a filepath + given to <code>zzip_open</code> and looking for zip-file there. +</P> + +<P> + To open a zip-file unconditionally one should be using their + respective methods that would return a ZZIP_DIR handle being + the representant memory instance of a ZIP-DIR, the central + directory of a zip-file. From that ZZIP-DIR one can open a + compressed file entry which will be returned as a ZZIP_FILE + pointer. +</P> +<table cellpadding=10 width=100%><tr><td><table border=1 width=100%> + <tr><td width=50%> zzip_dir_open </td> + <td width=50%> open a zip-file and parse the central directory + to a memory shadow</td></tr> + <tr><td width=50%> zzip_dir_close </td> + <td width=50%> close a zip-file and free the memory shadow</td></tr> + <tr><td width=50%> zzip_dir_fdopen </td> + <td width=50%> aquire the given posix-file and try to parse it + as a zip-file.</td></tr> + <tr><td width=50%> zzip_dir_read </td> + <td width=50%> return the next info entry of a zip-file's central + directory - this would include a possible subpath </td></tr> +</table></td></tr></table> + +<P> + To unconditionally access a zipped-file (as the counter-part of a + zip-file's directory) you should be using the functions having a + <code>zzip_file_</code> prefix which are the methods working on + ZZIP_FILE pointers directly and assuming those are references of + a zipped file with a ZZIP_DIR. +</P> +<table cellpadding=10 width=100%><tr><td><table border=1 width=100%> + <tr><td width=50%> zzip_file_open </td> + <td width=50%> open a file within a zip and prepare a zlib + compressor for it - note the ZZIP_DIR argument, + multiple ZZIP_FILE's may share the same central + directory shadow.</td></tr> + <tr><td width=50%> zzip_file_close </td> + <td width=50%> close the handle of zippedfile + and free zlib compressor of it</td></tr> + <tr><td width=50%> zzip_file_read </td> + <td width=50%> decompress the next part of a compressed file + within a zip-file</td></tr> +</table></td></tr></table> +<P> + From here it is only a short step to the magic wrappers for + file-access - when being given a filepath to zzip_open then + the filepath is checked first for being possibly a real file + (we can often do that by a <code>stat</code> call) and if there is + a real file under that name then the returned ZZIP_FILE is + nothing more than a wrapper around a file-descriptor of the + underlying operating system. Any other calls like zzip_read + will see the realfd-flag in the ZZIP_FILE and forward the + execution to the read() function of the underlying operating system. +</P> + +<P> + However if that fails then the filepath is cut at last directory + separator, i.e. a filepath of "this/test/README" is cut into the + dir-part "this/test" and a file-part "README". Then the possible + zip-extensions are attached (".zip" and ".ZIP") and we check if + there is a real file under that name. If a file "this/test.zip" + does exist then it is given to zzip_dir_open which will create + a ZZIP_DIR instance of it, and when that was successul (so it + was in zip-format) then we call zzip_file_open which will see + two arguments - the just opened ZZIP_DIR and the file-part. The + resulting ZZIP_FILE has its own copy of a ZZIP_DIR, so if you + open multiple files from the same zip-file than you will also + have multiple in-memory copies of the zip's central directory + whereas otherwise multiple ZZIP_FILE's may share a common + ZZIP_DIR when being opened with zzip_file_open directly - the + zzip_file_open's first argument is the ZZIP_DIR and the second + one the file-part to be looked up within that zip-directory. +</P> + +<table cellpadding=10 width=100%><tr><td><table border=1 width=100%> + <tr><td width=50%> zzip_open </td> + <td width=50%> try the file-path as a real-file, and if not + there, look for the existance of ZZIP_DIR by + applying extensions, and open the file + contained within that one.</td></tr> + <tr><td width=50%> zzip_close </td> + <td width=50%> if the ZZIP_FILE wraps a real-file, then call + read(), otherwise call zzip_file_read() </td></tr> + <tr><td width=50%> zzip_close </td> + <td width=50%> if the ZZIP_FILE wraps a real-file, then call + close(), otherwise call zzip_file_close() </td></tr> +</table></td></tr></table> + +<P> + Up to here we have the original functionality of the zziplib + when I (Guido Draheim) created the magic functions around the work from + Tomi Ollila who wrote the routines to read and decompress files from + a zip archive - unlike other libraries it was quite readable and + intelligible source code (after many changes there is not much + left of the original zip08x source code but that's another story). + Later however some request and proposals and patches were coming in. +</P> + +<P> + Among the first extensions was the recursive zzip_open magic. In + the first instance, the library did just do as described above: + a file-path of "this/test/README" might be a zip-file known as + "this/test.zip" containing a compressed file "README". But if + there is neither a real file "this/test/README" and no real + zip-file "this/test.zip" then the call would have failed but + know the zzip_open call will recursivly check the parent + directories - so it can now find a zip-file "this.zip" which + contains a file-part "test/README". +</P> + +<P> + This dissolves the original meaning of a ZZIP_DIR and it has lead + to some confusion later on - you can not create a DIRENT-like handle + for "this/test/" being within a "test.zip" file. And actually, I did + never see a reason to implement it so far (open "this.zip" and set + an initial subpath of "test" and let zzip_readdir skip all entries + that do not start with "test/"). This is left for excercie ;-) +</P> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-crypt.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-crypt.htm new file mode 100644 index 00000000000..9d55ba97215 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-crypt.htm @@ -0,0 +1,92 @@ +<section> <date> 15. July 2002 </date> +<h2> ZIP Std Encryption </h2> Standard Zip Encryption is Weak! + +<!--border--> + +<section> +<h3> Some rationale </h3> + +<P> + Some people might ask why not adding standard zip-encryption. Well, + first of all the standard zip-encryption has not been strong enough + for modern computers, and there are hacker tools that even a + half-literate computer-user can use to crack the password of a + zip-archive. In other words: <b> every encrypted zip file can be + cracked using freely downloadable helper tools </b>. That's because + standard zip encryption is weak regarding modern personal computer + power. Furthermore, adding <em>real</em> encryption is a heavy weight + that many people do not need, see the last argument for seeing the + standard one is useless anyway, and adding a non-standard one + should not be the case of the standard zziplib either, ye know. +</P><P> + On the other hand, obfuscation is a means to fear off half-literates + just as well - there are no <em>premade</em> tools for the obfuscation you + can invent from the xor examples. And a hacker that can de-obfuscate + such a dat-file is able to dissassemble your program as well - just to + remind you that the disassembly of a program will reveal the decryption + routine <em>and</em> the decryption key, even for a heavyweight crypt + algorithm. Although there is a difference, it just ranges on about times + and exprience, not magnitudes. Remember the old saying: you can irritate + some people for some time but not irritate all people for all the time. + As for encryption of artwork and AI scripts in games and applications, + just keep in mind that the final recipient has the decryption key on + his system anyway, just obfuscated. So each such encryption is nothing + more than just a clever form of obfuscation, nothing mathematical strong. +</P><P> + Some other people might ask why to obfuscate anyway. Well, the reason + is theft. Even people who write opensource free software generally + like to get some reward for what they do, some fame or atleast some + sweet dream to have helped the world go a bit easier in the future. + As for program text this is quite natural for the programmers who + pick up some code from somewhere else - it happens that most of them + have gone through some formation and they know how hard it is to get + even some lines of code out of your brain. This is not the case for + some artwork and AI parameters, people do not have much respect for + those - they just pick it up, put it under their umbrella, and + that's it - they even claim they could have done that themselves, + and in most cases it is that they never have been really trying to + do it and think of it as being comparable to that action-art they've + seen on TV. +</P><P> + Just be sure that there is nothing wrong with obfuscating + things for a binary distribution of your program even for the + opensource case - the program text itself is an obfuscation in its + source form when being compiled into cpu instructions. Still, the + interested people can get hold of the source code since you provide + it somewhere and actually the original programmers like to hear + from literate people who could help with modifying the project. The + same is true for you artwork and AI scripts, the interested people + can still see them in the opensource project material, but only + those will look who dare to, not just the halfwit next door. +</P><P> + Well, you do not need to that on the other hand - ID software has + shown that it can be very helpful since people will start to + write new maps and new bots, pack them and publish them. An open + data format is a form of attraction for people who can use a + graphics program and an editor but who do not know how to program. + And if you use obfuscation within an opensource program, it is + surely enought to just use the xor-format presented here, so that + it easy for third people to get involved if they want to, they + just have to rewrite their new datapacks with zzxorcopy, and + that's it. +</P><P> + As for the non-opensource projects, be aware that there are + some ways to even staticlink the zziplib into your project, so + you can even hide that you used zip tools to create your dat files. + This is well enough for anyone to do - as soon as a hacker will + get to the point to notice you used a zip format, he would have + had found any other deobfusation or decryption routine as well. + If you are frightened, just encrypt the executable with tools + you bought from somewhere else. On the other hand, should there + be problems or bugs, you have an easier time to find them when + they could be caused by your dat entries, and it is again easy + to send a fixup file to your clients, since the command line + tools are just a breeze compared with some other anti-hacking + tools you'll find on the market. +</P><P> + Well, hope this is enough rationale to tell you that I do not + see a need to implement anything more than obfuscation within + zziplib - if you need real encryption, use real encryption + software and its fileformat that supports it, not zip files. +</P> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-cryptoid.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-cryptoid.htm new file mode 100644 index 00000000000..ee6b120d7f9 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-cryptoid.htm @@ -0,0 +1,106 @@ +<section> <date> 11. May 2004 </date> +<h2> ZIP Ext Encryption </h2> ext/io used for cryptoid plugins + +<!--border--> + +<section> +<h3> Stronger Obfuscation For ZZip </h3> + +<P> + Some people feel that a simple bytewise xor is not strong enough + as an obfuscation for the data. There we have the question how to + implant a stronger obfuscation routine to protect that data of an + application from artwork theft. Perhaps there is even the idea to + use an obfuscation in the range of a real crypt routine - in which + case I want to recommend strongly to read the + <a href="zzip-crypt.html"> reasoning page </a> why it can not be + real encryption and that the resulting obfuscation has an upper + limit being <em>lower</em> than the crypt routine complexity. +</P> + +<P> + After reminding you of this fact we can go at evaluationg how to + implant a stronger obfusction routine to protect your data. The + ext/io feature uses a callback routine "read" that must read a + block of the given size - for the obfuscation case it will call + the "read()" function of the underlying operation system, and + the obfuscated block will be deobfuscated before returning it to + the caller. +</P> + +<P> + In this mechanism there is not asseration at which file-offset + the ext/io-read() callback is triggered. That is the reason we + have shown obfuscation with bytewise xor-key example - formally + this is using obfuscation blocks of 8bit width being aligned + on 8bit boundaries in the data file, and our decryption stream + is stateless being the same for each obfuscation block (of 8bit + width). +</P> +<P> + In order for a stronger obfuscation we have to break those + limitations which are directly derived from the natural way + of the handling of files by a contemporary operating system. + This is triggered as the call synopsis of the ext/io read() + callback matches <em>exactly</em> the one of posix, so that + one can use the posix read() function reference as the default + for ensuring the most minimal overhead in accessing non-obfuscated + zip files. +<br><small>And btw, the abbreviation "posix" stands for + "Portable Open System in Unix".</small> +</P> + +<P> + The trick we show here: the first argument of the ext/io read + callback is the file descriptor of the underlying operationg + system. While we can not add another argument to the ext/io + read call we can pick up additional information with the help + of that file descriptor id being globally unique even across + multiple threads. One solution would make the application map + that descriptor id to a special argument but this is often too + much overhead: the current file position is enough. +</P> +<P> + The current file position is managed by the operation system + via the file descriptor table. There is a function call to + map a file descriptor to the current read position offset + usually named "tell(fd)". Since this call is not mandated by + posix, you can emulate it with the posix lseek() call which + returns the resulting offset after the operation was performed, + so we just seek by a zero offset: <br><code> + <> <> <> <> #define tell(fd) lseek(fd,0,SEEK_CUR) +</code> +</P> + +<P> + That file offset is measured from the start of the zip archive, + not per each zipped file. Remind yourself of that fact when + creating your own "zzobfuscate.exe" which should work on the + zip archive and not per file before zipping. That is a difference + over normal zip archives where the user can atleast recognized the + dat file as a zip archive and see a list of files contained in the + archive, atleast their names and data start offset. +</P> +<P> + Now, let's use the file read offset to break the blocking + limitations of 8bit/8bit to a larger xor-key. In our example + we expand to a 32bit/32bit xor-key giving a search space of + 4<>billion keys instead of the just 256<>keys in 8bit blocking. + That is simply done by a static 4<>byte xor-key sequence and using + modulo operations for alignment. For the 2^X cases any modulo + operations shrink to a set of ultra-fast bitwise-and operations. +</P> + +<pre> + static char xor_value[4] = { 0x55, 0x63, 0x27, 0x31 }; + static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l) + { + zzip_off_t y = tell(f); + zzip_size_t r = read(f, p, l); + zzip_size_t x; char* q = p; + for (x=0; x < r; x++) q[x] ^= xor_value[(y+x)&3]; + return r; + } +</pre> + +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-extio.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-extio.htm new file mode 100644 index 00000000000..c7c47f1a37d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-extio.htm @@ -0,0 +1,188 @@ +<section> <date>15. July 2002 </date> +<h2> ZZIP-EXT/IO </h2> Customizing the file access + +<!--border--> + +<section> +<h3> The EXT/IO calls </h3> + +<P> + There were quite some requests from game developers and graphics-apps + developers who wanted various extensions to be included into the + <a href="zziplib.html">zziplib library</a>, but most of them were + only of specific usage. After some discussions we came up with a + model to customize the <a href="zziplib.html">zziplib library</a> + calls in a number of ways - and adding two or three arguments to + the zzip_* calls. The standard <a href="zziplib.html">zziplib library</a> + will actually call these *_ext_io functions with these extra arguments + to be set to zero. +</P><P> + The EXT feature describes a way to customize the extensions used in + the magic wrapper to find a .ZIP file. It turned out that there are + quite a number of applications that did chose the zip file format as + their native document format and where just the file extension had + been changed. This includes file types like Quake3 ".PK3" files from + ID Software, the Java library files called ".JAR", and lately the + OpenOffice-6 (resp. StarOffice-6) documents which carry xml-files along. + Just build a zero-termined string-list of file-extensions and submit it + to the _ext_io calls to let the <a href="zziplib.html">zziplib</a> find + parts of those zip-documents automagically. +</P><P> + In quite some of these cases, it is very benefical to make use of the + o_modes functionality that allows to submit extra bit-options into + the <a href="zziplib.html">zziplib</a> - this includes options like + <code>ZZIP_PREFERZIP</code> or even <code>ZZIP_ONLYZIP</code> which + modifies the default behaviour of looking for real files first instead + of some within a zipped directory tree. Other bit-options include + <code>ZZIP_CASELESS</code> to imitate win32-like filematching for a + zipped filetree. +</P><P> + Other wishes on <a href="zziplib.html">zziplib</a> circulated around + <a href="zzip-xor.html">obfuscation</a> or access to zip-files wrapped + in other data areas including encrpyted resources from other applications. + This has been adressed with the IO-handlers that you can explicitly + submit to the *_ext_io functions - the default will be posix-IO + open/read/write and seek/tell. An application using + <a href="zziplib.html">zziplib</a> can divert these to its own set of + these calls - and it only needs to declare them on opening a zipped file. +</P> + +</section><section> +<h3> The EXT stringlist </h3> + +<P> + Declaring an EXT stringlist is very simple as it is simply a + list of strings, the <a href="zziplib.html">zziplib</a> provides + you with a double-const <code>zzip_strings_t</code> type to help + you move a global declaration into the writeonly segment of your + app - it turned out that about all developers wanted just some + extensions on the default and they were fine with having them + global-const for their application, nothing like dynamically + modifying them. Well, you are still allowed to make it fully + dynamic... if you find a use case for that. +</P><P> + Extending the magic zip-extensions is just done by adding the + additional extensions to be recognized - just remember to add + the uppercased variants too since those will be needed on + (unx-like) filesystems that are case-sensitive. In the internet + age, quite some downloaded will appear in uppercased format since + the other side declared it as that and that other end was happy + with it as being a (w32-like) case-insensitive server. Therefore, + it should look like <pre> + static zzip_strings_t my_ext[] = { ".zip", ".ZIP", ".jar", ".JAR", 0 }; + </pre> +</P><P> + There is one frequently asked question in this area - how to open + a zipped file as "test.zip/README" instead of "test/README". Other + than some people might expect, the library will not find it - if + you want to have that one needs a fileext list that contains the + empty string - not the zero string, an empty string that is. It + looks like <pre> + static zzip_strings_t my_ext[] = { ".zip", ".ZIP", "", 0 }; + </pre> +</P><P> + And last not least, people want to tell the libary to not try to + open a real file that lives side by side with the same path as the + file path that can be matched by the zziplib. Actually, the magic + wrappers were never meant to be used like - the developer should + have used zzip_dir_* functions to open a zip-file and the + zzip_file_* functions to read entries from that zip-file. However, + the magic-wrappers look rather more familiar, and so you will find + now a bit-option ZZIP_ONLYZIP that can be passed down to the _ext_io + variants of the magic-wrapper calls, and a real-file will never get + tested for existance. Actually, I would rather recommend that for + application data the option ZZIP_PREFERZIP, so that one can enter + debugging mode by unpacking the zip-file as a real directory tree + in the place of the original zip. +</P> + +</section><section> +<h3> The IO handlers </h3> + +<P> + While you will find the zzip_plugin_io_t declared in the zziplib + headers, you are not advised to make much assumptions about their + structure. Still we gone the path of simplicity, so you can use + a global static for this struct too just like one can do for the + EXT-list. This again mimics the internals of zziplib. There is + even a helper function zzip_init_io that will copy the zziplib + internal handlers to your own handlers-set. Actually, this is + barely needed since the zziplib library will not check for nulls + in the plugin_io structure, all handlers must be filled, and the + zziplib routines call them unconditionally - that's simply + because a conditional-call will be ten times slower than an + unconditional call which adds mostly just one or two cpu cycles + in the place so you won't ever notice zziplib to be anywhat + slower than before adding IO-handlers. +</P><P> + However, you better instantiate your handlers in your application + and call that zzip_init_io on that instance to have everything + filled, only then modify the entry you actually wish to have + modified. For <a href="zzip-xor.html">obfuscation</a> this + will mostly be just the <code>read()</code> routine. But one can + also use IO-handlers to wrap zip-files into another data part + for which one (also) wants to modify the open/close routines + as well. +</P><P> + Therefore, you can modify your normal stdio code to start using + zipped files by exchaning the fopen/fread/fclose calls by their + magic counterparts, i.e. <pre> + // FILE* file = fopen ("test/README", "rb"); + ZZIP_FILE* file = zzip_fopen ("test/README", "rb"); + // while (0 < fread (buffer, 1, buflen, file))) + while (0 < zzip_fread (buffer, 1, buflen, file))) + { do something } + // fclose (file); + zzip_fclose (file); + </pre> +</P><P> + and you then need to prefix this code with some additional + code to support your own EXT/IO set, so the code will finally + look like <pre> + /* use .DAT extension to find some files */ + static zzip_strings_t ext[] = { ".dat", ".DAT", "", 0 }; + /* add obfuscation routine - see zzxorcat.c examples */ + static zzip_plugin_io_t io; + zzip_init_io (& io, 0); + io.read = xor_read; + /* and the rest of the code, just as above, but with ext/io */ + ZZIP_FILE* file = zzip_open_ext_io ("test/README", O_RDONLY|O_BINARY, + ZZIP_ONLYZIP|ZZIP_CASELESS, ext, io); + while (0 < zzip_fread (buffer, 1, buflen, file))) + { do something } + zzip_fclose (file); + </pre> +</P> + +</section><section> +<h3> Finally </h3> + +<P> + What's more to it? Well, if you have some ideas then please mail me + about it - don't worry, I'll probably reject it to be part of the + standard zziplib dll, but perhaps it is worth to be added as a + configure option and can help others later, and even more perhaps + it can be somehow generalized just as the ext/io features have been + generalized now. In most respects, this ext/io did not add much + code to the <a href="zziplib.html">zziplib</a> - the posix-calls + in the implemenation, like <code>"read(file)"</code> were simply + exchanged with <code>"zip->io->read(file)"</code>, and the + old <code>"zzip_open(name,mode)"</code> call is split up - the old + entry still persists but directly calls + <code>"zzip_open_ext_io(name,mode,0,0,0)"</code> which has the + old implementation code with just one addition: when the ZIP_FILE + handle is created, it uses the transferred io-handlers (or the + default ones if io==0), and initialized the io-member of that + structure for usage within the <code>zzip_read</code> calls. +</P><P> + This adds just a few bytes to the libs and just consumes additional + cpu cycles that can be rightfully called to be negligable (unlike + most commerical vendors will tell you when they indeed want to + tell you that for soooo many new features you have to pay a price). + It makes for greater variability without adding fatness to the + core in the default case, this is truly efficient I'd say. Well, + call this a German desease :-)=) ... and again, if you have another + idea, write today... or next week. +</P> + +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-extras.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-extras.htm new file mode 100644 index 00000000000..1d771160cb9 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-extras.htm @@ -0,0 +1,164 @@ +<section><date> 20. July 2002 </date> +<h2> ZZIP API extras </h2> The check/init API description. + +<!--border--> + +<section> +<h3> Extras </h3> + +<P> + The next requests circulated around other file-extensions to + automagically look inside filetypes that have zip-format too but + carry other fileextensions - most famous might be the ".PK3" + files of ID's Quake game. There have been a number of these + requests and in a lot of cases it dawned to me that those guys + may have overlooked the zzip_dir_open functions to travel + through documents of zipformat under any name - that is that the + "magic" was not actually needed but they just wanted to read + files in zipformat with the zziplib. +</P> + +<P> + Other requests circulated around encryption but I did reject + those bluntly, always. Instead there have been always examples + for doing some obfuscation around the zip-format so that the + stock zip/unzip tools do not recognize them but a game + software developer can pack/unpack his AI scripts and bitmaps + into such a zipformat-like file. +</P> + +<P> + After some dead-end patches (being shipped along with the + zziplib as configure-time compile-options - greetings to + Lutz Sammer and Andreas Schiffler), the general approach + of _ext_io came up, and finally implemented (greetings go + to Mike Nordell). The _open()-calls do now each have a + cousin of _open_ext_io() with two/three additional arguments + being a set of extensions to loop through our magic testing, + a callback-handler plugin-table for obfuscation-means, + and (often) a bit-mask for extra-options - this bitmask even + has "PREFERZIP" and "ONLYZIP" options to skip the real-file + test magic in those <code>zzip_*open</code> functions. +</P> + +<table cellpadding=10 width=100%><tr><td><table border=1 width=100%> + <tr><td width=50%> zzip_open(name,flags) </td> + <td width=50%> zzip_open_ext_io(name,flags,mode,ext,io) </td></tr> + <tr><td width=50%> zzip_opendir(name) </td> + <td width=50%> zzip_opendir_ext_io(name,mode,ext,io) </td></tr> + <tr><td width=50%> zzip_dir_open(name,errp) </td> + <td width=50%> zzip_dir_open_ext_io(name,errp,ext,io) </td></tr> + <tr><td width=50%> zzip_dir_fdopen(fd,errp) </td> + <td width=50%> zzip_dir_fdopen_ext_io(fd,errp,ext,io) </td></tr> + <tr><td width=50%> zzip_file_open(dir,name,mode) </td> + <td width=50%> zzip_file_open_ext_io(dir,name,mode,ext,io) </td></tr> +</table></td></tr></table> + +<P> + Oh, and note that the mode,ext,io extras are memorized + in the respecitive ZZIP_DIR handle attached, so each + of the other calls like <code>zzip_file_open()</code> + and <code>zzip_read()</code> will be using them. There + are a few helper routines to help setup a new io-plugin + where the init_io will currently just memcopy the + default_io entries into the user-supplied plugin-struct. +</P> + +<table cellpadding=10 width=100%><tr><td><table border=1 width=100%> + <tr><td width=50%> zzip_init_io </td> + <td width=50%> the recommended way to do things </td></tr> + <tr><td width=50%> zzip_get_default_io </td> + <td width=50%> used internally whenever you supply a null + for the io-argument of a _ext_io()-call </td></tr> + <tr><td width=50%> zzip_get_default_ext </td> + <td width=50%> used internally but not exported </td></tr> +</table></td></tr></table> + + +<P> + And last some stdio-like replacements were build but these + happen to be actually just small wrappers around the other + posix-like magic-calls. It just offers some convenience + since wrappers like "SDL_rwops" tend to use a stringised + open-mode - and I took the occasion to fold the zzip-bits + for the _ext_io-calls right in there recognized via + special extensions to the openmode-string of zzip_fopen(). +</P> + +<table cellpadding=10 width=100%><tr><td><table border=1 width=100%> + <tr><td width=50%> zzip_fopen </td> + <td width=50%> convert stringmode and call zzip_open_ext_io </td></tr> + <tr><td width=50%> zzip_fread </td> + <td width=50%> slower way to say zzip_read </td></tr> + <tr><td width=50%> zzip_fclose </td> + <td width=50%> a synonym of zzip_close </td></tr> +</table></td></tr></table> + +<P> + For some reason, people did need the full set of function-calls() + to be working on zzip-wrappers too, so here they are - if the + ZZIP_FILE instance did wrap a real file, then the real posix-call + will be used, otherwise it is simulated on the compressed stream + with a zip-contained file - especially <code>seek()</code> can be + a slow operation: + if the new point is later then just read out more bytes till we + hit that position but if it is an earlier point then rewind to the + beginning of the compressed data and start reading/decompression + until the position is met. +</P> + +<table cellpadding=10 width=100%><tr><td><table border=1 width=100%> + <tr><td width=50%> zzip_rewind </td> + <td width=50%> magic for rewind() </td></tr> + <tr><td width=50%> zzip_tell </td> + <td width=50%> magic for tell() </td></tr> + <tr><td width=50%> zzip_seek </td> + <td width=50%> magic for seek() </td></tr> +</table></td></tr></table> + +<P> + And last not least, there are few informative functions to + use function-calls to read parts of the opaque structures + of zzip-objects and their zzip-factory. +</P> + +<table cellpadding=10 width=100%><tr><td><table border=1 width=100%> + <tr><td width=50%> zzip_dir_stat </td> + <td width=50%> a stat()-like thing on a file within a ZZIP_DIR </td></tr> + <tr><td width=50%> zzip_dir_real </td> + <td width=50%> check if ZZIP_DIR wraps a stat'able posix-dirent</td></tr> + <tr><td width=50%> zzip_file_real </td> + <td width=50%> check if ZZIP_FILE wraps a stat'able posix-file </td></tr> + <tr><td width=50%> zzip_realdir </td> + <td width=50%> if zzip_dir_real then return the posix-dirent </td></tr> + <tr><td width=50%> zzip_realfd </td> + <td width=50%> if zzip_file_real then return the posix-file </td></tr> + <tr><td width=50%> zzip_dirhandle </td> + <td width=50%> the attached ZZIP_DIR of compressed ZZIP_FILE </td></tr> + <tr><td width=50%> zzip_dirfd </td> + <td width=50%> the attached posix-file of ZZIP_DIR zip-file </td></tr> + <tr><td width=50%> zzip_set_error </td> + <td width=50%> set the last ZZIP_DIR error-code </td></tr> + <tr><td width=50%> zzip_error </td> + <td width=50%> get the last ZZIP_DIR error-code </td></tr> + <tr><td width=50%> zzip_strerror </td> + <td width=50%> convert a zzip_error into a readable string </td></tr> + <tr><td width=50%> zzip_strerror_of </td> + <td width=50%> combine both above zzip_strerror of zzip_error </td></tr> + <tr><td width=50%> zzip_errno </td> + <td width=50%> helper to wrap a zzip-error to a posix-errno </td></tr> + <tr><td width=50%> zzip_compr_str </td> + <td width=50%> helper to wrap a compr-number to a readable string + </td></tr> + <tr><td width=50%> zzip_dir_free </td> + <td width=50%> internally called by zzip_dir_close if the ref-count + of the ZZIP_DIR has gone zero</td></tr> + <tr><td width=50%> zzip_freopen </td> + <td width=50%> to reuse the ZZIP_DIR from another ZZIP_FILE so it does + not need to be parsed again </td></tr> + <tr><td width=50%> zzip_open_shared_io </td> + <td width=50%> the ext/io cousin but it does not close the old ZZIP_FILE + and instead just shares the ZZIP_DIR if possible</td></tr> +</table></td></tr></table> + +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-file.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-file.htm new file mode 100644 index 00000000000..241baef85a7 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-file.htm @@ -0,0 +1,183 @@ +<section> <date> 1. June 2000 </date> +<h2> ZIP File Access </h2> Using Zipped Files Transparently + +<!--border--> + +<section> +<h3>The Typedef</h3> + +<P> + The typedef <code>ZZIP_FILE</code> can serve as a replacement + for a normal file descriptor. As long as it is only used + for reading a file, the zzlib-user can actually replace + the posix functions <code>open/read/close</code> + by their counterparts from the + <a href="zziplib.html">zziplib library</a>: + <code>zzip_open/zzip_read/zzip_close</code>. +</P> +<P> + As long as the filename path given to <code>zzip_open</code> + refers to a real file in the filesystem, it will almost + directly forward the call to the respective posix <code>open</code> + call. The returned file descriptor is then stored in + a member-variable of the <code>ZZIP_FILE</code> structure. +</P> +<P> + Any subsequent calls to <code>zzip_read</code> will then + be forwarded to the posix <code>read</code> call on the + memorized file descriptor. The same about <code>zzip_close</code> + which will call the posix <code>close</code> function and then + <code>free</code> the <code>ZZIP_FILE</code> structure. +</P> +<P> + The real benefit of the + <a href="zziplib.html">zziplib library</a> + comes about when the filename argument does actually refer + to a file that is zipped in a zip-archive. It happens that + even both a real file and a zipped file can live under the + same pathname given to the <code>zzip_open</code> call, + whereas the real file is used in preference. +</P> + +</section><section> +<h3>Zipped File</h3> + +<P> + Suppose you have subdirectory called '<tt>test/</tt>'. In + this directory is just one file, called '<tt>README</tt>'. + Calling the <code>zzip_open</code> function with an + argument of '<i>optional-path/</i> <tt>test/README</tt>', + then it will open that file for subsequent reading with + <code>zzip_read</code>. In this case the real (<i>stat'able</i>) + file is opened. +</P> +<P> + Now you can go to the '<tt>test/</tt>' directory and zip up + the files in there by calling + <nobr><tt>`zip ../test.zip *`</tt></nobr>. + After this, you can delete the '<tt>test/</tt>' directory and + the call to <code>zzip_open</code> will still succeed. + The reason is that the part of the path saying + '<tt>test/README</tt>' will be replaced by sth. like + '<tt>test.zip:README</tt>' - that is the real file '<tt>test.zip</tt>' + is opened and searched for a contained file '<tt>README</tt>'. +</P> +<P> + Calling <code>zzip_read</code> on the zipped '<tt>README</tt>' file + will return the very same data as if it is a real file in a + real directory. If the zipped file is compressed it will be + decompressed on the fly. +</P> + +</section><section> +<h3>Zip Directory</h3> + +<P> + The same applies to the use of <code>opendir/readdir/closedir</code> + which can safely be replaced with their counterparts from the + <a href="zziplib.html">zziplib library</a> - again their prototype + follows the scheme of the original calls, just prepend <tt>zzip_</tt> + to the function calls and <tt>ZZIP_</tt> to the struct-typedefs. +</P> +<P> + To call <code>zzip_opendir</code> on a real directory will then + return a <code>ZZIP_DIR</code> whose member-variable + <code>realdir</code> points to the actual <code>DIR</code>-structure + returned by the underlying posix <code>opendir</code>-call. +</P> +<P> + If a real directory '<tt>test</tt>' does not exist, then the + <code>zzip_opendir</code> will try to open a file '<tt>test.zip</tt>' + with a call to <code>zzip_dir_open</code>. + Subsequent calls to <code>zzip_readdir</code> will then return + information as being obtained from the central archive directory + of the zip-file. +</P> + +</section><section> +<h3>Differences</h3> + +<P> + There are no differences between the posix calls and their counterparts + from the <a href="zziplib.html">zziplib library</a> - well, just + as long as the zip-file contains just the plain files from a directory. +</P> +<P> + If the zip-file contains directory entries you may be prompted with + some awkward behaviour, since in zip-file a directory happens to be + just an empty file. Note that the posix function <code>open</code> + may also open a directory for reading - it will only return + <code>EISDIR</code> if the <code>open</code> mode-argument included + write-access. +</P> +<P> + What the current of version of the + <a href="zziplib.html">zziplib library</a> + can definitly not do: calling zzip_opendir on a directory zippend + <em>inside</em> a zip-file. +</P> +<P> + To prevent the enrollment of directories into the zip-archive, you + can use the <tt>-D</tt> option of the <tt>zip</tt> program. That + is in any <tt>Makefile</tt> you may want to use + <nobr><tt>`cd $(dir) && zip -D ../$(dir).zip *`</tt></nobr>. +</P> + +</section><section> +<h3>Advantages</h3> + +<P> + Distribution of a set of files is much easier if it just means + to wrap up a group of files into a zip-archive - and copy that + zip-archive to the respective destination directory. + Even more the files can be compressed and unlike a <tt>tar.gz</tt> + archive there is no need to decompress the archive in temporary + location before accessing a member-file. +</P> +<P> + On the other hand, there is no chance to scatter files around + on the disk like it could easily happen with a set of gzip'ed + man-pages in a single `<tt>man</tt>`-directory. The reader + application does not specifically need to know that the file + is compressed, so that reading a script like + `<tt>share/guile/x.x.x/ice-9/popen.scm</tt>` is done by simple + calls to <code>zzip_read</code> which works on zip-file named + `<tt>share/guile/x.x.x/ice-9.zip</tt>`. +</P> +<P> + A version mismatch between different files in a group is now + obvious: either the opened file belongs to the distribution + archive, or otherwise in resides in a real directory <em>just + next to the zip-archive that contains the original</em>. +</P> + +</section><section> +<h3>Issues</h3> + +<P> + The <a href="zziplib.html">zziplib library</a> does not + use any code piece from the <code>zip</code> programs, neither + <em>pkzip</em> nor <em>infozip</em>, so there is no license + issue here. The decompression is done by using the free + <a href="http://www.gzip.org/zlib">zlib library</a> which has no special + issues with respect to licensing. + The rights to the <a href="zziplib.html">zziplib library</a> + are reserved to the copyright holders, there is a public + license that puts most the sources themselves under + <a href="COPYING.LIB">the GNU Lesser General Public License</a>, + so that the use of a shared library instance of the + <a href="zziplib.html">zziplib library</a> + has no restrictions of interest to application programmers. + For more details and hints about static linking, check + the <a href="copying.html">COPYING</a> information. +</P> +<P> + The only issue you have with the + <a href="zziplib.html">zziplib library</a> + is the fact that you can only <em>read</em> the contained files. + Writing/Compression is not implemented. Even more, a compressed + file is not seekable at the moment although I hope that someone + will stand up to implement that functionality someday. +</P> + +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-index.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-index.htm new file mode 100644 index 00000000000..8b7a9bb6637 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-index.htm @@ -0,0 +1,55 @@ +<section> <date> created 1.Jun.2000, last updated 09.Feb.2003 </date> +<h2> The Library </h2> Overview + +<!--border--> + +<!-- 1. section of zzip-zip.html --> + +<P> + The <a href="zziplib.html">zziplib library</a> is intentionally + lightweight, it offers the ability to easily extract data from + files archived in a single zip file. Applications can bundle + files into a single zip archive and access them. + The implementation is based only on the (free) subset of + compression with the <a href="http://www.gzip.org/zlib"> + zlib algorithm</a> which is actually used by the <tt>zip/unzip</tt> tools. +</P> + +<center> + The library allows reading zip archives in a number of ways, +</center><dl> +<dt>archive mode:</dt> +<dd> reading the zip directory and extracting files from it. + This is the traditional mode as seen with unzip-utilities. + Some extra unzip-utiles for transparent/magic mode are + shipped as well. +</dd> +<dt>replacement mode:</dt> +<dd> Use ZZIP_FILE / ZZIP_DIR pointers provided by zziplib and + put them to work with routines originally developped to + work with real directories and file handles. The API calls + do follow traditional synopsis from posix/stdio. +</dd> +<dt>transparent mode:</dt> +<dd> Use replacement handles and allow the open()-calls to + automatically detect when a file is contained in a zip + archive or when it is a real file in the file system. + A filepath can be partly in a real filesystem and partly + within the zip archive when one is seen. +</dd> +<dt> ext magic </dt> +<dd> Use the same filepath to access either a zipped or real + file - it looks for a real file and there is none then + every subdirectory of the path is checked, a ".zip" + extension appended, and the zipped file transparently + opened. This can speed up dat-file development + dramatically. +</dd> +<dt> io/xor magic </dt> +<dd> The access to the filesystem can be hooked up - examples + are given for xor obfuscation which is great for game + artwork and AI data. A small intro for SDLrwops usage is + given as well. +</dd> +</dl> +</section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-parse.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-parse.htm new file mode 100644 index 00000000000..a3c49dcba76 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-parse.htm @@ -0,0 +1,219 @@ +<section> <date> 17. December 2002 </date> +<h2> ZIP Format </h2> About Zip Parsing Internals... + +<!--border--> + +<section> +<h3> ZIP Trailer Block </h3> + +<P> + The general ZIP file format is written sequentially - each file + being added gets a local file header and its inflated data. When + all files are written then a central directory is written - and + this central directory may even span multiple disks. And each + disk gets a descriptor block that contains a pointer to the start + of the central directory. This descriptor is always written last + and therefore we call it the "ZIP File Trailer Block". +</P> +<P> + Okay, so we know that this ZIP Trailer is always at the end of a zip + file and that is has a fixed length, and a magic four-byte value at + its block start. That should make it easy to detect zip files but in + the real world it is not that easy - it is allowed to add a zip + archive comment text <em>after</em> the Trailer block. It's rarely + used these days but it turns out that a zip reader must be ready + to search for the Trailer block starting at the end of the file + and looking upwards for the Trailer magic (it's "PK\5\6" btw). +</P> +<P> + Now that's what the internal function __zip_find_disk_trailer is + used for. It's somewhat optimized as we try to use mmap features + of the underlying operating system. The returned structure is + called zzip_disk_trailer in the library source code, and we only + need two values actually: u_rootseek and u_rootsize. The first of + these can be used to lseek to the place of the central directory + and the second value tells us the byte size of the central directory. +</P> + +</section><section> +<h3> ZIP Central Directory </h3> + +<P> + So here we are at the central directory. The disk trailer did also + tell us how many entries are there but it is not that easy to read + them. Each directory entry (zzip_root_dirent type) has again a + magic value up front followed by a few items but they all have some + dos format - consider the timestamps, and atleast size/seek values + are in intel byteorder. So we might want to parse them into a format + that is easier to handle in internal code. +</P> +<P> + That is also needed for another reason - there are three items in that + directory entry being size values of three variadic fields following + right after the directory. That's right, three of these. The first + variadic field is the filename of this directory entry. In other + words, the root directory entry does not contain a seek value of + where the filename starts off, the start of the filename is + implicitly given with the end address of the directory entry. +</P> +<P> + The size value for the filename does simply say how long the + filename is - however, and more importantly, it allows us to + compute the start of the next variadic field, called the extra + info field. Well, we do not need any value from that extra info + block (it has unix filemode bits when packed under unix) but we + can be quite sure that this field is not null either. And that + was the second variadic field. +</P> +<P> + There is a third variadic field however - it's the comment field. + That was pretty heavily used in the good old DOS days. We are not + used to it anymore since filenames are generally self-descriptive + today but in the DOS days a filename was 8+3 chars maximum - and + it was in the comment field that told users what's in there. It + turned out that many software archives used zip format for just + that purpose as their primary distribution format - for being + able to attach a comment line with each entry. +</P> +<P> + Now, these three variadic fields have each an entry in the + directory entry header telling of their size. And after these + three variadic fields the next directory entry follows right in. + Yes, again there is no seek value here - we have to take the sum + of the three field sizes and add that to the end address of the + directory entry - just to be able to get to the next entry. +</P> + +</section><section> +<h3> Internal Directory </h3> + +<P> + Now, the external ZIP format is too complicated. We cut it down + to the bare minimum we actually need. The fields in the entry + are parsed into a format directly usable, and from the variadic + fields we only keep the filename. Oh, and we ensure that the + filename gets a trailing null byte, so it can surely be passed + down into libc routines. +</P> +<P> + There is another trick by the way - we use the u_rootsize value + to malloc a block for the internal directory. That ensures the + internal root directory entries are in nearby locations, and + including the filenames themselves which we put in between the + dirent entries. That's not only similar to the external directory + format, but when calling readdir and looking for a matching + filename of an zzip_open call, this will ensure the memory is + fetched in a linear fashion. Modern cpu architectures are able + to burst through it. +</P> +<P> + One might think to use a more complicated internal directory + format - like hash tables or something. However, they all suffer + from the fact that memory access patterns will be somewhat random + which eats a lot of speed. It is hardly predictable under what + circumstances it gets us a benefit, but the problem is certainly + not off-world: there are zzip archives with 13k+ entries. In a real + filesystem people will not put 13k files into one directory, of + course - but for the zip central directory all entries are listed + in parallel with their subdirectory paths attached. So, if the + original subtree had a number of directories, they'll end up in + parallel in the zip's central directory. +</P> + +</section><section> +<h3> File Entry </h3> + +<P> + The zip directory entry has one value that is called z_off in the + zziplib sources - it's the seek value to the start of the actual + file data, or more correctly it points to the "local file header". + Each file data block is preceded/followed with a little frame. + There is not much interesting information in these framing blocks, + the values are duplicates of the ones found in the zip central + directory - however, we must skip the local file header (and a + possible duplicate of filename and extrainfo) to arrive at the + actual file data. +</P> +<P> + When the start of the actual file data, we can finally read data. + The zziplib library does only know about two choices defined by + the value in the z_compr field - a value of "0" means "stored" + and data has been stored in uncompresed format, so that we can + just copy it out of the file to the application buffer. +</P> +<P> + A value of "8" means "deflated", and here we initialize the zlib + and every file data is decompressed before copying it to the + application buffer. Care must be taken here since zlib input data + and decompressed data may differ significantly. The zlib compression + will not even obey byte boundaries - a single bit may expand to + hundreds of bytes. That's why each ZZIP_FILE has a decompression + buffer attached. +</P> +<P> + All the other z_compr values are only of historical meaning, + the infozip unix tools will only create deflated content, and + the same applies to pkzip 2.x tools. If there would be any other + value than "0" or "8" then zziplib can not decompress it, simple + as that. +</P> + +</section><section> +<h3> ZZIP_DIR / ZZIP_FILE </h3> + +<P> + The ZZIP_DIR internal structures stores a posix handle to the + zip file, and a pointer to the parsed central directory block. + One can use readdir/rewinddir to walk each entry in the central + directory and compare with the filenames attached. And that's + what will be done at a zzip_open call to find the file entry. +</P> +<P> + There are a few more fields in the ZZIP_DIR structure, where + most of these are related to the use of this struct as a + shared recource. You can use zzip_file_open to walk the + preparsed central directory and return a new ZZIP_FILE handle + for that entry. +</P> +<P> + That ZZIP_FILE handle contains a back pointer its ZZIP_DIR + that it was made from - and the back pointer also serves as flag + that the ZZIP_FILE handle points to a file within a ZIP file as + opposed to wrapping a real file in the real directory tree. + Each ZZIP_FILE will increment a shared counter, so that the + next dir_close will be deferred until all ZZIP_FILE have been + destroyed. +</P> +<P> + Another optmization is the cache-pointer in the ZZIP_DIR. It is + quite common to read data entries sequentially, as that the + zip directory is scanned for files matching a specific pattern, + and when a match is seen, that file is openened. However, each + ZZIP_FILE needs a decompression buffer, and we keep a cache of + the last one freed so that it can be picked up right away for the + next zzip_file_open. +</P> +<P> + Note that using multiple zzip_open() directly, each will open + and parse a zip directory of its own. That's bloat both in + terms of memory consumption and execution speed. One should try + to take advantage of the feature that multiple ZZIP_FILE's can + share a common ZZIP_DIR with a common preparsed copy of the + zip's central directory. That can be done directly with using + zzip_file_open to use a ZZIP_DIR as a factory for ZZIP_FILE, + but also zzip_freopen can be used to reuse the old internal + central directory, instead of parsing it again. +</P> +<P> + And while zzip_freopen would release the old ZZIP_FILE handle + only resuing the ZZIP_DIR attached, one can use another routine + directly called zzip_open_shared that will create a ZZIP_FILE + from an existing ZZIP_FILE. Oh, and not need to worry about + problems when a filepath given to zzip_freopen() happens to + be in another place, another directory, another zip archive. + In that case, the old zzip's internal directory is freed and + the others directory read - the preparsed central directory + is only used if that is actually possible. +</P> + +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-sdl-rwops.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-sdl-rwops.htm new file mode 100644 index 00000000000..38923f6f0be --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-sdl-rwops.htm @@ -0,0 +1,90 @@ +<section> <date> 19. Aug 2001 </date> +<h2> SDL rwops </h2> Example to make an SDL_rwops interface. + +<p><small> some <b>MSVC</b> help in + <a href="README.MSVC6">README.MSVC6</a> and + <a href="README.SDL">README.SDL</a> +</small></p> + +<!--border--> + +<section> +<h3> Source </h3> + +<P> + The example sources of the <a href="zziplib.html">zziplib library</a> + are usually put under the <a href="COPYING.ZLIB">ZLIB license</a> so + that you can reuse the code freely in your own projects. Here we talk + about the example that might be most useful for + <a href="http://libsdl.org">SDL</a> based programs. + Just copy the two files + <a href="SDL_rwops_zzip.h">SDL_rwops_zzip.h</a> + and + <a href="SDL_rwops_zzip.c">SDL_rwops_zzip.c</a> + to the directory with your other project sources, and make sure + to link it somehow to your programs. I did not make the effort to + create a seperate library out of it - it would just export one + single function <tt>SDL_RWFromZZIP</tt> that has the same call-synopsis + like <tt>SDL_RWFromFile</tt> (but it can not (yet) write a zip-file). +</P> + +<P> + The source file <a href="SDL_rwops_zzip.c">SDL_rwops_zzip.c</a> is + quite short - it just stores a ZZIP_FILE handle in the userdata + field of the <tt>SDL_rwops</tt> structure. The SDL'rwop calls will then + fetch that pointer and call the corresponding functions from the + <a href="zziplib.html">zziplib library</a>. Most of the glue code + is in the <tt>SDL_RWFromZZIP</tt> function that allocates an + <tt>SDL_rwops</tt> structure and fills the handler-functions + into the callback fields. +</P> + +</section><section> +<h3> Usage </h3> + +<P> + If you link this file to your project, remember that your executables + do now have additional dependencies - not only -lzzip to link with + the <a href="zziplib.html">zziplib library</a> - do not forget to + link with zlib library via -lz. Of course, there is a lib-config + script that you can use: `zzip-config --libs` will return these + linker-infos (unless you have a native-windows system - it is + shell-script). +</P> + +<P> + As an example, replace that <tt>SDL_RWFromFile</tt> that accesses your + game-graphic files - these files are stored in shared/myapp + of course where they belong. When you've done that + then go to X/share/myapp and +<br><code> + `(cd graphics/ && zip -9r ../graphics.zip .)` </code><br> + and rename the graphics/ subfolder - and still all your files + are found: a filepath like X/shared/graphics/game/greetings.bmp + will open X/shared/graphics.zip and return the zipped file + game/greetings.bmp in the zip-archive (for reading that is). +</P> + +</section><section> +<h3> Test </h3> + +<P> + The <a href="zziplib.html">zziplib</a> configure script does not + look for <a href="http://libsdl.org">SDL</a>. If you know that + you have <a href="http://libsdl.org">SDL</a> installed + then you can check this <tt>SDL_rwops</tt> example by using + <code><nobr>`make testsdl`</nobr></code>. This will compile the + two source files <a href="SDL_rwops_zzip.c">SDL_rwops_zzip.c</a> + and <a href="SDL_rwops_zzcat.c">SDL_rwops_zzcat.c</a> to be linked + together into an executable called <code>zzcatsdl</code>. The test + will continue with a <code><nobr>`zzcatsdl test/README`</nobr></code> + - just like it is done for <code><nobr>`make test3`</nobr></code>. +</P> +<P> + The corresponding section in the <a href="Makefile.am">Makefile.am</a> + is also an example how to use lib-config scripts to build files. Here + there is no build-processing that had been tweaked much by automake/autoconf. + Just use sdl-config and zzip-config to add the needed flags. +</P> +</section></section> + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-xor.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-xor.htm new file mode 100644 index 00000000000..2434c2974a9 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-xor.htm @@ -0,0 +1,77 @@ +<section> <date> 15. July 2002 </date> +<h2> ZIP Obfuscation </h2> Using obfuscations like XOR. + +<!--border--> + +<section> +<h3> The EXT/IO calls </h3> + +<P> + You really should read the section about the + <a href="zzip-extio.html">EXT/IO feature</a> of the zziplib since the + obfuscation routines are built on top of it. In order to use obfuscation, + you will generally need to use all the three additional argument that + can be passsed to _open_ext_io functions. For the XOR-example, only one + IO-handler is modified being the read()-call that will simply xor each + data byte upon read with a specific value. It two advantages - doing an + xor twice does yield the same data, so as a developer you do not have + to wonder about the encryption/decryption pair, and it is a stateless + obfuscation that does not need to know about the current position + within the zip-datafile or zippedfile-datatream. +</P><P> + The examples provided just use a simple routine for xoring data that + is defined in all the three of the example programs: <pre> + static int xor_value = 0x55; + static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l) + { + zzip_size_t r = read(f, p, l); + zzip_size_t x; char* q = p; + for (x=0; x < r; x++) q[x] ^= xor_value; + return r; + } + </pre> +</P><P> + and place this routine into the io-handlers after initializing + the structure: <pre> + zzip_init_io (&xor_handlers, 0); xor_handlers.read = &xor_read; + </pre> +</P> + +</section><section> +<h3> The examples </h3> + +<P> + There are three example programs. The first one is + <a href="zzxorcopy.c">zzxorcopy.c</a> which actually is not a zziplib + based program. It just opens a file via stdio, loops through all data bytes + it can read thereby xor'ing it, and writes it out to the output file. A + call like <code><nobr>"zzxorcopy file.zip file.dat"</nobr></code> will + create an obfuscated dat-file from a zip-file that has been possibly + create with the normal infozip tools or any other archive program to + generate a zip-file. The output dat-file is not recognized by normal + zip-enabled apps - the filemagic is obfuscated too. This output + dat-file however is subject to the other two example programs. +</P><P> + The <a href="zzxordir.c">zzxordir.c</a> program will open such an obfuscated + zip file and decode the central directory of that zip. Everything is + still there in just the way it can be shown with the normal unzip + programs and routines. And the <a href="zzxorcat.c">zzxorcat.c</a> program + can extract data from this obfuscated zip - and print it un-obfuscated + to the screen. These example programs can help you jumpstart with + your own set of obfuscator routines, possibly more complex ones. +</P><P> + By the way, just compare those with their non-xor counterparts that + you can find in <a href="zzdir.c">zzdir.c</a> and + <a href="zzxorcat.c">zzxorcat.c</a>. Notice that the difference is + in the setup part until the _open_ call after which one can just + use the normal zzip_ routines on that obfuscated file. This is + great for developing since you can start of with the magic-wrappers + working on real-files then slowly turning to pack-files that hold + most of the data and finally ending with a zip-only and obfuscated + dat-file for your project. +</P> + +<p align="right"><small><small> +<a href="copying.html">staticlinking?</a> +</small></small></p> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-zip.htm b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-zip.htm new file mode 100644 index 00000000000..141700044a5 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzip-zip.htm @@ -0,0 +1,146 @@ +<section><date> 1. June 2000 </date> +<h2> ZIP Access </h2> Accessing Zip Archives with ZLib Decompression + +<!--border--> + +<section> +<h3> The Library </h3> + +<P> + The <a href="zziplib.html">zziplib library</a> offers users the + ability to easily extract data from files archived in a single + zip file. This way, programs that use many "read-only" files from + a program specific source directory can have a single zip + archive +</P> +<P> + This library offers only a (free) subset of compression methods + provided in a full implementation but that is well enough. The + idea here is that <tt>zip/unzip</tt> utilities can be used + to create archives that will later be read by using this library. + Yet those programmes (or a library with their functionality) + is not needed in that final operation. +</P> + +</section><section> +<h3> Using A Zip-File </h3> + +<P> + Before a file in the zip-archive is accessed, the application + must first get a handle to the central directory contained in the + zip-file. This is achived by calling + <a href="zziplib.html#zzip_dir_open"> zzip_dir_open </a> + or + <a href="zziplib.html#zzip_dir_fdopen"> zzip_dir_fdopen </a>. + The directory entries in the zip-archives can be obtained + with + <a href="zziplib.html#zzip_dir_read"> zzip_dir_read </a>. + After being done, the zip-dir handle should be closed with + <a href="zziplib.html#zzip_dir_close"> zzip_dir_close </a>. +</P> +<p><pre> ZZIP_DIR* dir = zzip_dir_open("test.zip",0); + if (dir) { + ZZIP_DIRENT dirent; + if (zzip_dir_read(dir,&dirent) { + /* show info for first file */ + print("%s %i/%i", dirent.d_name, dirent.d_csize, dirent.st_size); + } + zzip_dir_close(dir); + } +</pre></p> +<P> + From the zip-dir handle a compressed file can be opened + for reading. This is achieved by using + <a href="zziplib.html#zzip_file_open"> zzip_file_open </a> + and providing it with the dir-handle and a name of the file. + The function + <a href="zziplib.html#zzip_file_read"> zzip_file_read </a> + is used to get pieces of uncompressed data from the file, and + the file-handle should be closed with + <a href="zziplib.html#zzip_file_close"> zzip_file_close </a> +</P> +<p><pre> ZZIP_FILE* fp = zzip_file_open(dir,"README",0); + if (fp) { + char buf[10]; + zzip_ssize_t len = zzip_file_read(fp, buf, 10); + if (len) { + /* show head of README */ + write(1, buf, len); + } + zzip_file_close(fp); + } +</pre></p> + +</section><section> +<h3> Magic Zipped Files </h3> + +<P> + There is actually no need to directly use the zip-centric functions + as described above. Instead there are magic replacements for the + posix calls <code>open/read/close</code> and + <code>opendir/readdir/closedir</code>. The prototypes of these + functions had been the guideline for the design of their magic + counterparts of the + <a href="zziplib.html">zziplib library</a>. +</P> +<P> + The magic functions are described in a seperated document on + <a href="zzip-file.html"> Using Zipped Files </a>. In general, + the functions have a prefix <tt>zzip_</tt> and their argument + types have a prefix <tt>ZZIP_</tt> where appropriate. Calls + to the magic functions and the direct functions above can + be mixed as long as the magic functions have not been opening + a real file. +</P> +<P> + To detect a real file (or directory), the info functions + <a href="zziplib.html#zzip_file_real"> zzip_file_real </a> + and + <a href="zziplib.html#zzip_dir_real"> zzip_dir_real </a> + can be used. + If these return a true value, the standard posix functions + are more apropriate. The posix handles can be obtained with + a call to + <a href="zziplib.html#zzip_realdir"> zzip_realdir </a> and + <a href="zziplib.html#zzip_realfd"> zzip_realfd </a> respectivly. +</P> + +</section><section> +<h3> Errors & Infos </h3> + +<P> + There are a set of error and info functions available. To handle + error conditions specific to the + <a href="zziplib.html">zziplib library</a> + there are these functions: + <a href="zziplib.html#zzip_error"> zzip_error </a>, + <a href="zziplib.html#zzip_seterror"> zzip_seterror </a> + and their string representations with + <a href="zziplib.html#zzip_strerror"> zzip_strerror </a>, + <a href="zziplib.html#zzip_strerror_of"> zzip_strerror_of </a>. + The magic functions will map any of these specific library + error conditions to the more generic system <code>errno</code> + codes with + <a href="zziplib.html#zzip_errno"> zzip_errno </a>. +</P> +<P> + More information on stream can be obtained with + <a href="zziplib.html#zzip_dir_stat"> zzip_dir_stat </a> and + <a href="zziplib.html#zzip_dirhandle"> zzip_dirhandle. </a> + The latter is used to obtain the dir-handle that every zipped file + handle has even if not explicitly opened. +</P> +<P> + The usage of many functions are shown in the example programs + that come along with the + <a href="zziplib.html">zziplib library</a>. See the files + <a href="zzcat.c"> zzcat.c </a> and + <a href="zzdir.c"> zzdir.c </a>. The + <a href="zziptest.c"> zziptest.c </a> program needs the + private header file + <a href="zzip.h"> zzip.h </a> whereas the library installer + will only copy the public include file + <a href="zziplib.h"> zziplib.h </a> to your system's + <tt>include</tt> directory. +</P> +</section></section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/__init__.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/__init__.py new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/__init__.py diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/commentmarkup.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/commentmarkup.py new file mode 100644 index 00000000000..3f605a72d6c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/commentmarkup.py @@ -0,0 +1,85 @@ +from match import Match + +def markup_link_syntax(text): + """ markup the link-syntax ` => somewhere ` in the text block """ + return (text + & Match(r"(?m)(^|\s)\=\>\"([^\"]*)\"") + >> r"\1<link>\2</link>" + & Match(r"(?m)(^|\s)\=\>\'([^\']*)\'") + >> r"\1<link>\2</link>" + & Match(r"(?m)(^|\s)\=\>\s(\w[\w.]*\w\(\d+\))") + >> r"\1<link>\2</link>" + & Match(r"(?m)(^|\s)\=\>\s([^\s\,\.\!\?]+)") + >> r"\1<link>\2</link>") + +class CommentMarkup: + """ using a structure having a '.comment' item - it does pick it up + and enhances its text with new markups so that they can be represented + in xml. Use self.xml_text() to get markup text (knows 'this function') """ + def __init__(self, header = None): + self.header = header + self.text = None # xml'text + def get_filename(self): + if self.header is None: + return None + return self.header.get_filename() + def parse(self, header = None): + if header is not None: + self.header = header + if self.header is None: + return False + comment = self.header.comment + try: + comment = self.header.get_otherlines() + except Exception, e: + pass + mode = "" + text = "" + for line in comment.split("\n"): + check = Match() + if line & check(r"^\s?\s?\s?[*]\s+[*]\s(.*)"): + if mode != "ul": + if mode: text += "</"+mode+">" + mode = "ul" ; text += "<"+mode+">" + line = check.group(1) + text += "<li><p> "+self.markup_para_line(line)+" </p></li>\n" + elif line & check(r"^\s?\s?\s?[*](.*)"): + if mode != "para": + if mode: text += "</"+mode+">" + mode = "para" ; text += "<"+mode+">" + line = check.group(1) + if line.strip() == "": + text += "</para><para>"+"\n" + else: + text += " "+self.markup_para_line(line)+"\n" + else: + if mode != "screen": + if mode: text += "</"+mode+">" + mode = "screen" ; text += "<"+mode+">" + text += " "+self.markup_screen_line(line)+"\n" + if mode: text += "</"+mode+">"+"\n" + self.text = (text + & Match(r"(<para>)(\s*[R]eturns)") >>r"\1This function\2" + & Match(r"(?s)<para>\s*</para><para>") >> "<para>" + & Match(r"(?s)<screen>\s*</screen>") >> "") + return True + def markup_screen_line(self, line): + return self.markup_line(line.replace("&","&") + .replace("<","<") + .replace(">",">")) + def markup_para_line(self, line): + return markup_link_syntax(self.markup_line(line)) + def markup_line(self, line): + return (line + .replace("<c>","<code>") + .replace("</c>","</code>")) + def xml_text(self, functionname = None): + if self.text is None: + if not self.parse(): return None + text = self.text + if functionname is not None: + def function(text): return "<function>"+text+"</function> function" + text = (text + .replace("this function", "the "+function(functionname)) + .replace("This function", "The "+function(functionname))) + return text diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/dbk2htm.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/dbk2htm.py new file mode 100644 index 00000000000..f8593e697b0 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/dbk2htm.py @@ -0,0 +1,26 @@ +from match import Match +import string + +class dbk2htm_conversion: + mapping = { "<screen>" : "<pre>", "</screen>" : "</pre>", + "<para>" : "<p>", "</para>" : "</p>" , + "<function>" : "<link>", "</function>" : "</link>" } + def __init__(self): + pass + def section2html(self, text): + for str in self.mapping: + text = string.replace(text, str, self.mapping[str]) + return text + def paramdef2html(self, text): + s = Match() + txt = text & s(r"\s+<paramdef>") >> r"\n<nobr>" + txt &= s(r"<paramdef>") >> r"<nobr>" + txt &= s(r"</paramdef>") >> r"</nobr>" + txt &= s(r"<parameters>") >> r"\n <code>" + txt &= s(r"</parameters>") >> r"</code>\n" + return txt + +def section2html(text): + return dbk2htm_conversion().section2html(text) +def paramdef2html(text): + return dbk2htm_conversion().paramdef2html(text) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/docbookdocument.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/docbookdocument.py new file mode 100644 index 00000000000..c4602ad64d3 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/docbookdocument.py @@ -0,0 +1,95 @@ +#! /usr/bin/env python +# -*- coding: UTF-8 -*- +from match import Match + +class DocbookDocument: + """ binds some xml content page with additional markup - in this + variant we set the rootnode container to 'reference' and the DTD + to the Docbook 4.1.2 version. Modify as you like.""" + has_title_child = [ "book", "chapter", "section", "reference" ] + docbook_dtd = ( + ' PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"'+"\n"+ + ' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"') + def __init__(self, o, filename = None): + self.o = o + self.rootnode = "reference" + self.filename = filename + self.title = "" + self.text = [] + def add(self, text): + """ add some content """ + self.text += [ text ] + return self + def get_title(self): + if self.title: return title + try: return self.text[0].get_title() + except Exception, e: pass + return self.title + def _xml_doctype(self, rootnode): + return "<!DOCTYPE "+rootnode+self.docbook_dtd+">" + def _xml_text(self, xml): + """ accepts adapter objects with .xml_text() """ + try: return xml.xml_text() + except Exception, e: print "DocbookDocument/text", e; pass + return str(xml) + def _fetch_rootnode(self, text): + fetch = Match(r"^[^<>]*<(\w+)\b") + if text & fetch: return fetch[1] + return self.rootnode + def _filename(self, filename): + if filename is not None: + self.filename = filename + filename = self.filename + if not filename & Match(r"\.\w+$"): + ext = self.o.docbook + if not ext: ext = "docbook" + filename += "."+ext + return filename + def save(self, filename = None): + filename = self._filename(filename) + print "writing '"+filename+"'" + if len(self.text) > 1: + self.save_all(filename) + else: + self.save_text(filename, self.text[0]) + def save_text(self, filename, text): + try: + fd = open(filename, "w") + xml_text = self._xml_text(text) + rootnode = self._fetch_rootnode(xml_text) + doctype = self._xml_doctype(rootnode) + print >>fd, doctype + print >>fd, xml_text + fd.close() + return True + except IOError, e: + print "could not open '"+filename+"'file", e + return False + def save_all(self, filename): + assert len(self.text) > 1 + try: + fd = open(filename, "w") + xml_text = self._xml_text(self.text[0]) + rootnode = self._fetch_rootnode(xml_text) + if rootnode == self.rootnode: + rootnode = "book" + else: + rootnode = self.rootnode + doctype = self._xml_doctype(rootnode) + print >>fd, doctype + title = self.get_title() + if title and self.rootnode in self.has_title_child: + print >>fd, "<"+self.rootnode+'><title>'+title+'</title>' + elif title: + print >>fd, "<"+self.rootnode+' id="'+title+'">' + else: + print >>fd, "<"+self.rootnode+'>' + for text in self.text: + text = self._xml_text(text) + print >>fd, text + print >>fd, "</"+self.rootnode+">" + fd.close() + return True + except IOError, e: + print "could not open '"+filename+"'file", e + return False diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionheader.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionheader.py new file mode 100644 index 00000000000..81bb385c408 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionheader.py @@ -0,0 +1,96 @@ +from match import Match + +class FunctionHeader: + """ parsing the comment block that is usually presented before + a function prototype - the prototype part is passed along + for further parsing through => FunctionPrototype """ + def __init__(self, functionheaderlist, comment, prototype): + self.parent = functionheaderlist + self.comment = comment + self.prototype = prototype + self.firstline = None + self.otherlines = None + self.titleline = None + self.alsolist = [] + def get_filename(self): + return self.parent.get_filename() + def parse_firstline(self): + if not self.comment: return False + x = self.comment.find("\n") + if x > 0: + self.firstline = self.comment[:x] + self.otherlines = self.comment[x:] + elif x == 0: + self.firstline = "..." + self.otherlines = self.comment[1:x] + else: + self.firstline = self.comment + self.otherlines = "" + return True + def get_firstline(self): + if self.firstline is None: + if not self.parse_firstline(): return "" + return self.firstline + def get_otherlines(self): + if self.firstline is None: + if not self.parse_firstline(): return "" + return self.otherlines + def parse_titleline(self): + """ split extra-notes from the firstline - keep only titleline """ + line = self.get_firstline() + if line is None: return False + self.titleline = line + self.alsolist = [] + x = line.find("also:") + if x > 0: + self.titleline = line[:x] + for also in line[x+5:].split(","): + self.alsolist += [ also.strip() ] + self._alsolist = self.alsolist + return True + def get_alsolist(self): + """ gets the see-also notes from the firstline """ + if self.titleline is None: + if not self.parse_titleline(): return None + return self.alsolist + def get_titleline(self): + """ gets firstline with see-also notes removed """ + if self.titleline is None: + if not self.parse_titleline(): return False + return self.titleline + def get_title(self): + """ gets titleline unless that is a redirect """ + titleline = self.get_titleline() + if titleline & Match(r"^\s*=>"): return "" + if titleline & Match(r"^\s*<link>"): return "" + return titleline + def get_prototype(self): + return self.prototype + +class FunctionHeaderList: + """ scan for comment blocks in the source file that are followed by + something quite like a C definition (probably a function definition). + Unpack the occurrences and fill self.comment and self.prototype. """ + def __init__(self, textfile = None): + self.textfile = textfile # TextFile + self.children = None # src'style + def parse(self, textfile = None): + if textfile is not None: + self.textfile = textfile + if self.textfile is None: + return False + text = self.textfile.get_src_text() + m = Match(r"(?s)\/\*[*]+(?=\s)" + r"((?:.(?!\*\/))*.)\*\/" + r"([^/\{\}\;\#]+)[\{\;]") + self.children = [] + for found in m.finditer(text): + child = FunctionHeader(self, found.group(1), found.group(2)) + self.children += [ child ] + return len(self.children) > 0 + def get_filename(self): + return self.textfile.get_filename() + def get_children(self): + if self.children is None: + if not self.parse(): return [] + return self.children diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionlisthtmlpage.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionlisthtmlpage.py new file mode 100644 index 00000000000..4ec9178ca10 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionlisthtmlpage.py @@ -0,0 +1,127 @@ +from options import * +from match import Match + +class FunctionListHtmlPage: + """ The main part here is to create a TOC (table of contents) at the + start of the page - linking down to the descriptions of the functions. + Sure we need to generate anchors on the fly. Additionally, all the + non-html (docbook-like) markup needs to be converted for ouput. - + each element to be added should implement get_name(), get_head() and + get_body() with the latter two having a xml_text() method.""" + _null_table100 = '<table border="0" width="100%"' \ + ' cellpadding="0" cellspacing="0">' + _ul_start = '<table width="100%">' + _ul_end = '</table>' + _li_start = '<tr><td valign="top">' + _li_end = '</td></tr>' + http_opengroup = "http://www.opengroup.org/onlinepubs/000095399/functions/" + http_zlib = "http://www.zlib.net/manual.html" + def __init__(self, o = None): + self.toc = "" + self.text = "" + self.head = "" + self.body = "" + self.anchors = [] + self.o = o + if self.o is None: self.o = Options() + self.not_found_in_anchors = [] + def cut(self): + self.text += ("<dt>"+self._ul_start+self.head+self._ul_end+"</dt>"+ + "<dd>"+self._ul_start+self.body+self._ul_end+"</dd>") + self.head = "" + self.body = "" + def add(self, entry): + name = entry.get_name() + head_text = entry.head_xml_text() + body_text = entry.body_xml_text(name) + if not head_text: + print "no head_text for", name + return + try: + prespec = entry.head_get_prespec() + namespec = entry.head_get_namespec() + callspec = entry.head_get_callspec() + head_text = ("<code><b><function>"+namespec+"</function></b>" + +callspec+" : "+prespec+"</code>") + except Exception, e: + pass + try: + extraline = "" + title = entry.get_title() + filename = entry.get_filename().replace("../","") + if title: + subtitle = ' <em>'+title+'</em>' + extraline = (self._null_table100+'<td> '+subtitle+' </td>'+ + '<td align="right"> '+ + '<em><small>'+filename+'</small></em>'+ + '</td></table>') + body_text = extraline + body_text + except Exception, e: + pass + def link(text): + return (text & Match("<function>(\w*)</function>") + >> "<link>\\1</link>") + def here(text): + has_function = Match("<function>(\w*)</function>") + if text & has_function: + func = has_function[1] + self.anchors += [ func ] + return (text & has_function + >> '<a name="'+"\\1"+'">'+"\\1"+'</a>') + else: + return text + self.toc += self._li_start+self.sane(link(head_text))+self._li_end + self.head += self._li_start+self.sane(here(head_text))+self._li_end + self.body += self._li_start+self.sane(body_text)+self._li_end + def get_title(self): + return self.o.package+" Library Functions" + def xml_text(self): + self.cut() + return ("<h2>"+self.get_title()+"</h2>"+ + self.version_line()+ + self.mainheader_line()+ + self._ul_start+ + self.resolve_links(self.toc)+ + self._ul_end+ + "<h3>Documentation</h3>"+ + "<dl>"+ + self.resolve_links(self.text)+ + "</dl>") + def version_line(self): + if self.o.version: + return "<p>Version "+self.o.version+"</p>" + return "" + def mainheader_line(self): + if self.o.onlymainheader: + include = "#include <"+self.o.onlymainheader+">" + return "<p><big><b><code>"+include+"</code></b></big></p>" + return "" + def resolve_links(self, text): + text &= (Match("(?s)<link>([^<>]*)(\(\d\))</link>") + >> (lambda x: self.resolve_external(x.group(1), x.group(2)))) + text &= (Match("(?s)<link>(\w+)</link>") + >> (lambda x: self.resolve_internal(x.group(1)))) + if len(self.not_found_in_anchors): + print "not found in anchors: ", self.not_found_in_anchors + return (text & Match("(?s)<link>([^<>]*)</link>") + >> "<code>\\1</code>") + def resolve_external(self, func, sect): + x = Match() + if func & x("^zlib(.*)"): + return ('<a href="'+self.http_zlib+x[1]+'">'+ + "<code>"+func+sect+"</code>"+'</a>') + if sect & x("[23]"): + return ('<a href="'+self.http_opengroup+func+'.html">'+ + "<code>"+func+sect+"</code>"+'</a>') + return "<code>"+func+"<em>"+sect+"</em></sect>" + def resolve_internal(self, func): + if func in self.anchors: + return '<code><a href="#'+func+'">'+func+"</a></code>" + if func not in self.not_found_in_anchors: + self.not_found_in_anchors += [ func ] + return "<code><u>"+func+"</u></code>" + def sane(self, text): + return (text + .replace("<function>", "<code>") + .replace("</function>", "</code>")) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionlistreference.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionlistreference.py new file mode 100644 index 00000000000..944d005c6fb --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionlistreference.py @@ -0,0 +1,270 @@ +#! /usr/bin/env python +# -*- coding: UTF-8 -*- +from match import Match +from htm2dbk import * + +class FunctionListReference: + """ Creating a docbook-style <reference> list of <refentry> parts + that will each be translated into a unix manual page in a second step """ + def __init__(self, o = None): + self.o = o + self.pages = [] + self.entry = None + def cut(self): + if not self.entry: return + self.pages += [ self.entry ] + self.entry = None + def add(self, entry): + name = entry.get_name() + description = entry.body_xml_text(name) + funcsynopsis = entry.head_xml_text() + if not funcsynopsis: + print "no funcsynopsis for", name + return + if self.entry is None: + self.entry = FunctionListRefEntry(entry, self.o) + self.entry.funcsynopsisinfo = entry.get_mainheader() + self.entry.refpurpose = entry.get_title() + self.entry.refentrytitle = entry.get_name() + # self.entry.refname = entry.get_name() + self.entry.funcsynopsis_list += [ funcsynopsis ] + self.entry.description_list += [ description ] + self.entry.refname_list += [ name ] + if entry.list_seealso(): + for item in entry.list_seealso(): + if item not in self.entry.seealso_list: + self.entry.seealso_list += [ item ] + def get_title(self): + return self.o.package+" Function List" + def xml_text(self): + T = "<reference><title>"+self.get_title()+"</title>\n" + for item in self.pages: + text = item.refentry_text() + if not text: "OOPS, no text for", item.name ; continue + T += self.sane(text) + T += "</reference>\n" + return T + def sane(self, text): + return (html2docbook(text) + .replace("<link>","<function>") + .replace("</link>","</function>") + .replace("<fu:protospec>","<funcprototype>") + .replace("</fu:protospec>","</funcprototype>") + .replace("<fu:prespec>","<funcdef>") + .replace("</fu:prespec>","") + .replace("<fu:namespec>","") + .replace("</fu:namespec>","</funcdef>") + .replace("</fu:callspec>","</paramdef>") + .replace("<fu:callspec>","<paramdef>")) + + +class FunctionListRefEntry: + def __init__(self, func, o): + """ initialize the fields needed for a man page entry - the fields are + named after the docbook-markup that encloses (!!) the text we store + the entries like X.refhint = "hello" will be printed therefore as + <refhint>hello</refhint>. Names with underscores are only used as + temporaries but they are memorized, perhaps for later usage. """ + self.name = func.get_name() + self.refhint = "\n<!--========= "+self.name+" (3) ============-->\n" + self.refentry = None + self.refentry_date = o.version.strip() #! //refentryinfo/date + self.refentry_productname = o.package.strip() #! //refentryinfo/prod* + self.refentry_title = None #! //refentryinfo/title + self.refentryinfo = None #! override + self.manvolnum = "3" # //refmeta/manvolnum + self.refentrytitle = None # //refmeta/refentrytitle + self.refmeta = None # override + self.refpurpose = None # //refnamediv/refpurpose + self.refname = None # //refnamediv/refname + self.refname_list = [] + self.refnamediv = None # override + self.mainheader = func.get_mainheader() + self.includes = func.get_includes() + self.funcsynopsisinfo = "" # //funcsynopsisdiv/funcsynopsisinfo + self.funcsynopsis = None # //funcsynopsisdiv/funcsynopsis + self.funcsynopsis_list = [] + self.description = None + self.description_list = [] + # optional sections + self.authors_list = [] # //sect1[authors]/listitem + self.authors = None # override + self.copyright = None + self.copyright_list = [] + self.seealso = None + self.seealso_list = [] + if func.list_seealso(): + for item in func.list_seealso(): + self.seealso_list += [ item ] + self.file_authors = None + if func.get_authors(): + self.file_authors = func.get_authors() + self.authors_list += [ self.file_authors ] + self.file_copyright = None + if func.get_copyright(): + self.file_copyright = func.get_copyright() + self.copyright_list += [ self.file_copyright ] + #fu + def refentryinfo_text(self): + """ the manvol formatter wants to render a footer line and header line + on each manpage and such info is set in <refentryinfo> """ + if self.refentryinfo: + return self.refentryinfo + if self.refentry_date and \ + self.refentry_productname and \ + self.refentry_title: return ( + "\n <date>"+self.refentry_date+"</date>"+ + "\n <productname>"+self.refentry_productname+"</productname>"+ + "\n <title>"+self.refentry_title+"</title>") + if self.refentry_date and \ + self.refentry_productname: return ( + "\n <date>"+self.refentry_date+"</date>"+ + "\n <productname>"+self.refentry_productname+"</productname>") + return "" + def refmeta_text(self): + """ the manvol formatter needs to know the filename of the manpage to + be made up and these parts are set in <refmeta> actually """ + if self.refmeta: + return self.refmeta + if self.manvolnum and self.refentrytitle: + return ( + "\n <refentrytitle>"+self.refentrytitle+"</refentrytitle>"+ + "\n <manvolnum>"+self.manvolnum+"</manvolnum>") + if self.manvolnum and self.name: + return ( + "\n <refentrytitle>"+self.name+"</refentrytitle>"+ + "\n <manvolnum>"+self.manvolnum+"</manvolnum>") + return "" + def refnamediv_text(self): + """ the manvol formatter prints a header line with a <refpurpose> line + and <refname>'d functions that are described later. For each of + the <refname>s listed here, a mangpage is generated, and for each + of the <refname>!=<refentrytitle> then a symlink is created """ + if self.refnamediv: + return self.refnamediv + if self.refpurpose and self.refname: + return ("\n <refname>"+self.refname+'</refname>'+ + "\n <refpurpose>"+self.refpurpose+" </refpurpose>") + if self.refpurpose and self.refname_list: + T = "" + for refname in self.refname_list: + T += "\n <refname>"+refname+'</refname>' + T += "\n <refpurpose>"+self.refpurpose+" </refpurpose>" + return T + return "" + def funcsynopsisdiv_text(self): + """ refsynopsisdiv shall be between the manvol mangemaent information + and the reference page description blocks """ + T="" + if self.funcsynopsis: + T += "\n<funcsynopsis>" + if self.funcsynopsisinfo: + T += "\n<funcsynopsisinfo>"+ self.funcsynopsisinfo + \ + "\n</funcsynopsisinfo>\n" + T += self.funcsynopsis + \ + "\n</funcsynopsis>\n" + if self.funcsynopsis_list: + T += "\n<funcsynopsis>" + if self.funcsynopsisinfo: + T += "\n<funcsynopsisinfo>"+ self.funcsynopsisinfo + \ + "\n</funcsynopsisinfo>\n" + for funcsynopsis in self.funcsynopsis_list: + T += funcsynopsis + T += "\n</funcsynopsis>\n" + #fi + return T + def description_text(self): + """ the description section on a manpage is the main part. Here + it is generated from the per-function comment area. """ + if self.description: + return self.description + if self.description_list: + T = "" + for description in self.description_list: + if not description: continue + T += description + if T.strip() != "": return T + return "<para>(missing description)</para>" + def authors_text(self): + """ part of the footer sections on a manpage and a description of + original authors. We prever an itimizedlist to let the manvol + show a nice vertical aligment of authors of this ref item """ + if self.authors: + return self.authors + if self.authors_list: + T = "<itemizedlist>" + previous="" + for authors in self.authors_list: + if not authors: continue + if previous == authors: continue + T += "\n <listitem><para>"+authors+"</para></listitem>" + previous = authors + T += "</itemizedlist>" + return T + if self.authors: + return self.authors + return "" + def copyright_text(self): + """ the copyright section is almost last on a manpage and purely + optional. We list the part of the per-file copyright info """ + if self.copyright: + return self.copyright + """ we only return the first valid instead of merging them """ + if self.copyright_list: + T = "" + for copyright in self.copyright_list: + if not copyright: continue + return copyright # !!! + return "" + def seealso_text(self): + """ the last section on a manpage is called 'SEE ALSO' usally and + contains a comma-separated list of references. Some manpage + viewers can parse these and convert them into hyperlinks """ + if self.seealso: + return self.seealso + if self.seealso_list: + T = "" + for seealso in self.seealso_list: + if not seealso: continue + if T: T += ", " + T += seealso + if T: return T + return "" + def refentry_text(self, id=None): + """ combine fields into a proper docbook refentry """ + if id is None: + id = self.refentry + if id: + T = '<refentry id="'+id+'">' + else: + T = '<refentry>' # this is an error + + if self.refentryinfo_text(): + T += "\n<refentryinfo>"+ self.refentryinfo_text()+ \ + "\n</refentryinfo>\n" + if self.refmeta_text(): + T += "\n<refmeta>"+ self.refmeta_text() + \ + "\n</refmeta>\n" + if self.refnamediv_text(): + T += "\n<refnamediv>"+ self.refnamediv_text() + \ + "\n</refnamediv>\n" + if self.funcsynopsisdiv_text(): + T += "\n<refsynopsisdiv>\n"+ self.funcsynopsisdiv_text()+ \ + "\n</refsynopsisdiv>\n" + if self.description_text(): + T += "\n<refsect1><title>Description</title> " + \ + self.description_text() + "\n</refsect1>" + if self.authors_text(): + T += "\n<refsect1><title>Author</title> " + \ + self.authors_text() + "\n</refsect1>" + if self.copyright_text(): + T += "\n<refsect1><title>Copyright</title> " + \ + self.copyright_text() + "\n</refsect1>\n" + if self.seealso_text(): + T += "\n<refsect1><title>See Also</title><para> " + \ + self.seealso_text() + "\n</para></refsect1>\n" + + T += "\n</refentry>\n" + return T + #fu +#end diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionprototype.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionprototype.py new file mode 100644 index 00000000000..fda85bb3117 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/functionprototype.py @@ -0,0 +1,60 @@ +from match import Match + +class FunctionPrototype: + """ takes a single function prototype line (cut from some source file) + and parses it into the relevant portions 'prespec', 'namespec' and + 'callspec'. Additionally we present 'name' from the namespec that is + usually used as the filename stem for a manual page """ + def __init__(self, functionheader = None): + self.functionheader = functionheader + self.prespec = None + self.namespec = None + self.callspec = None + self.name = None + def get_functionheader(self): + return self.functionheader + def get_prototype(self): + if self.functionheader is None: + return None + return self.functionheader.get_prototype() + def get_filename(self): + if self.functionheader is None: + return None + return self.functionheader.get_filename() + def parse(self, functionheader = None): + if functionheader is not None: + self.functionheader = functionheader + if self.functionheader is None: + return False + found = Match() + prototype = self.get_prototype() + if prototype & found(r"(?s)^(.*[^.])" + r"\b(\w[\w.]*\w)\b" + r"(\s*\(.*)$"): + self.prespec = found.group(1).lstrip() + self.namespec = found.group(2) + self.callspec = found.group(3).lstrip() + self.name = self.namespec.strip() + return True + return False + def _assert_parsed(self): + if self.name is None: + return self.parse() + return True + def get_prespec(self): + if not self._assert_parsed(): return None + return self.prespec + def get_namespec(self): + if not self._assert_parsed(): return None + return self.namespec + def get_callspec(self): + if not self._assert_parsed(): return None + return self.callspec + def get_name(self): + if not self._assert_parsed(): return None + return self.name + def xml_text(self): + if not self.namespec: return self.namespec + return ("<fu:protospec><fu:prespec>"+self.prespec+"</fu:prespec>"+ + "<fu:namespec>"+self.namespec+"</fu:namespec>"+ + "<fu:callspec>"+self.callspec+"</fu:callspec></fu:protospec>") diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/htm2dbk.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/htm2dbk.py new file mode 100644 index 00000000000..ec9685bfd3e --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/htm2dbk.py @@ -0,0 +1,158 @@ +#! /usr/bin/env python + +""" +this file converts simple html text into a docbook xml variant. +The mapping of markups and links is far from perfect. But all we +want is the docbook-to-pdf converter and similar technology being +present in the world of docbook-to-anything converters. """ + +from datetime import date +import match +import sys + +m = match.Match + +class htm2dbk_conversion_base: + regexlist = [ + m()("</[hH]2>(.*)", "m") >> "</title>\n<subtitle>\\1</subtitle>", + m()("<[hH]2>") >> "<sect1 id=\"--filename--\"><title>", + m()("<[Pp]([> ])","m") >> "<para\\1", + m()("</[Pp]>") >> "</para>", + m()("<(pre|PRE)>") >> "<screen>", + m()("</(pre|PRE)>") >> "</screen>", + m()("<[hH]3>") >> "<sect2><title>", + m()("</[hH]3>((?:.(?!<sect2>))*.?)", "s") >> "</title>\\1</sect2>", + m()("<!doctype [^<>]*>","s") >> "", + m()("<!DOCTYPE [^<>]*>","s") >> "", + m()("(<\w+\b[^<>]*\swidth=)(\d+\%)","s") >> "\\1\"\\2\"", + m()("(<\w+\b[^<>]*\s\w+=)(\d+)","s") >> "\\1\"\\2\"", + m()("&&") >> "\&\;\&\;", + m()("\$\<") >> "\$\<\;", + m()("&(\w+[\),])") >> "\&\;\\1", + m()("(</?)span(\s[^<>]*)?>","s") >> "\\1phrase\\2>", + m()("(</?)small(\s[^<>]*)?>","s") >> "\\1note\\2>", + m()("(</?)(b|em|i)>")>> "\\1emphasis>", + m()("(</?)(li)>") >> "\\1listitem>", + m()("(</?)(ul)>") >> "\\1itemizedlist>", + m()("(</?)(ol)>") >> "\\1orderedlist>", + m()("(</?)(dl)>") >> "\\1variablelist>", + m()("<dt\b([^<>]*)>","s") >> "<varlistentry\\1><term>", + m()("</dt\b([^<>]*)>","s") >> "</term>", + m()("<dd\b([^<>]*)>","s") >> "<listitem\\1>", + m()("</dd\b([^<>]*)>","s") >> "</listitem></varlistentry>", + m()("<table\b([^<>]*)>","s") + >> "<informaltable\\1><tgroup cols=\"2\"><tbody>", + m()("</table\b([^<>]*)>","s") >> "</tbody></tgroup></informaltable>", + m()("(</?)tr(\s[^<>]*)?>","s") >> "\\1row\\2>", + m()("(</?)td(\s[^<>]*)?>","s") >> "\\1entry\\2>", + m()("<informaltable\b[^<>]*>\s*<tgroup\b[^<>]*>\s*<tbody>"+ + "\s*<row\b[^<>]*>\s*<entry\b[^<>]*>\s*<informaltable\b","s") + >> "<informaltable", + m()("</informaltable>\s*</entry>\s*</row>"+ + "\s*</tbody>\s*</tgroup>\s*</informaltable>", "s") + >> "</informaltable>", + m()("(<informaltable[^<>]*\swidth=\"100\%\")","s") >> "\\1 pgwide=\"1\"", + m()("(<tbody>\s*<row[^<>]*>\s*<entry[^<>]*\s)(width=\"50\%\")","s") + >> "<colspec colwidth=\"1*\" /><colspec colwidth=\"1*\" />\n\\1\\2", + m()("<nobr>([\'\`]*)<tt>") >> "<cmdsynopsis>\\1", + m()("</tt>([\'\`]*)</nobr>") >> "\\1</cmdsynopsis>", + m()("<nobr><(?:tt|code)>([\`\"\'])") >> "<cmdsynopsis>\\1", + m()("<(?:tt|code)><nobr>([\`\"\'])") >> "<cmdsynopsis>\\1", + m()("([\`\"\'])</(?:tt|code)></nobr>") >> "\\1</cmdsynopsis>", + m()("([\`\"\'])</nobr></(?:tt|code)>") >> "\\1</cmdsynopsis>", + m()("(</?)tt>") >> "\\1constant>", + m()("(</?)code>") >> "\\1literal>", + m()(">([^<>]+)<br>","s") >> "><highlights>\\1</highlights>", + m()("<br>") >> "<br />", + # m()("<date>") >> "<sect1info><date>", + # m()("</date>") >> "</date></sect1info>", + m()("<reference>") >> "<reference id=\"reference\">" >> 1, + m()("<a\s+href=\"((?:http|ftp|mailto):[^<>]+)\"\s*>((?:.(?!</a>))*.)</a>" + ,"s") >> "<ulink url=\"\\1\">\\2</ulink>", + m()("<a\s+href=\"zziplib.html\#([\w_]+)\"\s*>((?:.(?!</a>))*.)</a>","s") + >> "<link linkend=\"$1\">$2</link>", + m()("<a\s+href=\"(zziplib.html)\"\s*>((?:.(?!</a>))*.)</a>","s") + >> "<link linkend=\"reference\">$2</link>", + m()("<a\s+href=\"([\w-]+[.]html)\"\s*>((?:.(?!</a>))*.)</a>","s") + >> "<link linkend=\"\\1\">\\2</link>", + m()("<a\s+href=\"([\w-]+[.](?:h|c|am|txt))\"\s*>((?:.(?!</a>))*.)</a>" + ,"s") >> "<ulink url=\"file:\\1\">\\2</ulink>", + m()("<a\s+href=\"([A-Z0-9]+[.][A-Z0-9]+)\"\s*>((?:.(?!</a>))*.)</a>","s") + >> "<ulink url=\"file:\\1\">\\2</ulink>" + # m()("(</?)subtitle>") >> "\\1para>" + # $_ .= "</sect1>" if /<sect1[> ]/ + ] + regexlist2 = [ + m()(r"<br\s*/?>") >> "", + m()(r"(</?)em>") >> r"\1emphasis>", + m()(r"<code>") >> "<userinput>", + m()(r"</code>") >> "</userinput>", + m()(r"<link>") >> "<function>", + m()(r"</link>") >> "</function>", + m()(r"(?s)\s*</screen>") >> "</screen>", + # m()(r"<ul>") >> "</para><programlisting>\n", + # m()(r"</ul>") >> "</programlisting><para>", + m()(r"<ul>") >> "<itemizedlist>", + m()(r"</ul>") >> "</itemizedlist>", + # m()(r"<li>") >> "", + # m()(r"</li>") >> "" + m()(r"<li>") >> "<listitem><para>", + m()(r"</li>") >> "</para></listitem>\n", + ] +class htm2dbk_conversion(htm2dbk_conversion_base): + def __init__(self): + self.version = "" # str(date.today) + self.filename = "." + def convert(self,text): # $text + txt = text.replace("<!--VERSION-->", self.version) + for conv in self.regexlist: + txt &= conv + return txt.replace("--filename--", self.filename) + def convert2(self,text): # $text + txt = text.replace("<!--VERSION-->", self.version) + for conv in self.regexlist: + txt &= conv + return txt + +class htm2dbk_document(htm2dbk_conversion): + """ create document, add(text) and get the value() """ + doctype = ( + '<!DOCTYPE book PUBLIC "-//OASIS//DTD'+ + ' DocBook XML V4.1.2//EN"'+"\n"+ + ' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">'+ + "\n") + book_start = '<book><chapter><title>Documentation</title>'+"\n" + book_end_chapters = '</chapter>'+"\n" + book_end = '</book>'+"\n" + def __init__(self): + htm2dbk_conversion.__init__(self) + self.text = self.doctype + self.book_start + def add(self,text): + if self.text & m()("<reference"): + self.text += self.book_end_chapters ; self.book_end_chapters = "" + self.text += self.convert(text).replace( + "<br />","") & ( + m()("<link>([^<>]*)</link>") >> "<function>\\1</function>") & ( + m()("(?s)(<refentryinfo>\s*)<sect1info>" + + "(<date>[^<>]*</date>)</sect1info>") >> "\\1\\2") + def value(self): + return self.text + self.book_end_chapters + self.book_end + +def htm2dbk_files(args): + doc = htm2dbk_document() + for filename in args: + try: + f = open(filename, "r") + doc.filename = filename + doc.add(f.read()) + f.close() + except IOError, e: + print >> sys.stderr, "can not open "+filename + return doc.value() + +def html2docbook(text): + """ the C comment may contain html markup - simulate with docbook tags """ + return htm2dbk_conversion().convert2(text) + +if __name__ == "__main__": + print htm2dbk_files(sys.argv[1:]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/htmldocument.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/htmldocument.py new file mode 100644 index 00000000000..47d58dc6ad2 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/htmldocument.py @@ -0,0 +1,117 @@ +#! /usr/bin/env python +# -*- coding: UTF-8 -*- +from match import Match + +class HtmlDocument: + """ binds some html content page with additional markup - in this + base version it is just the header information while other variants + might add navigation items around the content block elements """ + def __init__(self, o, filename = None): + self.o = o + self.filename = filename + self.title = "" + self.meta = [] + self.style = [] + self.text = [] + self.navi = None + def meta(self, style): + """ add some header meta entry """ + self.meta += [ meta ] + return self + def style(self, style): + """ add a style block """ + self.style += [ style ] + return self + def add(self, text): + """ add some content """ + self.text += [ text ] + return self + def get_title(self): + if self.title: return self.title + try: return self.text[0].get_title() + except Exception, e: pass + return self.title + def _html_meta(self, meta): + """ accepts adapter objects with .html_meta() """ + try: return meta.html_meta() + except Exception, e: pass + return str(meta) + def _html_style(self, style): + """ accepts adapter objects with .html_style() and .xml_style() """ + ee = None + try: return style.html_style() + except Exception, e: ee = e; pass + try: return style.xml_style() + except Exception, e: print "HtmlDocument/style", ee, e; pass + try: return str(style) + except Exception, e: print "HtmlDocument/style", e; return "" + def _html_text(self, html): + """ accepts adapter objects with .html_text() and .xml_text() """ + ee = None + try: return html.html_text() + except Exception, e: ee = e; pass + try: return html.xml_text() + except Exception, e: print "HtmlDocument/text", ee, e; pass + try: return str(html) + except Exception, e: print "HtmlDocument/text", e; return " " + def navigation(self): + if self.navi: + return self.navi + if self.o.body: + try: + fd = open(self.o.body, "r") + self.navi = fd.read() + fd.close() + return self.navi + except Exception, e: + pass + return None + def html_header(self): + navi = self.navigation() + if not navi: + T = "<html><head>" + title = self.get_title() + if title: + T += "<title>"+title+"</title>" + T += "\n" + for style in self.style: + T += self._html_style(style) + T += "\n" + return T+"</head><body>" + else: + title = self.get_title() + return navi & ( + Match(r"<!--title-->") >> " - "+title) & ( + Match(r"<!--VERSION-->") >> self.o.version) & ( + Match(r"(?m).*</body></html>") >> "") + def html_footer(self): + navi = self.navigation() + if not navi: + return "</body></html>" + else: + return navi & ( + Match(r"(?m)(.*</body></html>)") >> "%&%&%&%\\1") & ( + Match(r"(?s).*%&%&%&%") >> "") + def _filename(self, filename): + if filename is not None: + self.filename = filename + filename = self.filename + if not filename & Match(r"\.\w+$"): + ext = self.o.html + if not ext: ext = "html" + filename += "."+ext + return filename + def save(self, filename = None): + filename = self._filename(filename) + print "writing '"+filename+"'" + try: + fd = open(filename, "w") + print >>fd, self.html_header() + for text in self.text: + print >>fd, self._html_text(text) + print >>fd, self.html_footer() + fd.close() + return True + except IOError, e: + print "could not open '"+filename+"'file", e + return False diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/match.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/match.py new file mode 100644 index 00000000000..a089ec399c9 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/match.py @@ -0,0 +1,103 @@ +#! /usr/bin/python +# -*- coding: utf-8 -*- +# @creator (C) 2003 Guido U. Draheim +# @license http://creativecommons.org/licenses/by-nc-sa/2.0/de/ + +import re + +# ---------------------------------------------------------- Regex Match() +# beware, stupid python interprets backslashes in replace-parts only partially! +class MatchReplace: + """ A MatchReplace is a mix of a Python Pattern and a Replace-Template """ + def __init__(self, matching, template, count = 0, flags = None): + """ setup a substition from regex 'matching' into 'template', + the replacement count default of 0 will replace all occurrences. + The first argument may be a Match object or it is a string that + will be turned into one by using Match(matching, flags). """ + self.template = template + MatchReplace.__call__(self, matching, template, count, flags) + def __call__(self, matching, template = None, count = 0, flags = None): + """ other than __init__ the template may be left off to be unchanged""" + if isinstance(count, basestring): # count/flags swapped over? + flags = count; count = 0 + if isinstance(matching, Match): + self.matching = matching + else: + self.matching = Match()(matching, flags) ## python 2.4.2 bug + if template is not None: + self.template = template + self.count = count + def __and__(self, string): + """ z = MatchReplace('foo', 'bar') & 'foo'; assert z = 'bar' """ + text, self.matching.replaced = \ + self.matching.regex.subn(self.template, string, self.count) + return text + def __rand__(self, string): + """ z = 'foo' & Match('foo') >> 'bar'; assert z = 'bar' """ + text, self.matching.replaced = \ + self.matching.regex.subn(self.template, string, self.count) + return text + def __iand__(self, string): + """ x = 'foo' ; x &= Match('foo') >> 'bar'; assert x == 'bar' """ + string, self.matching.replaced = \ + self.matching.regex.subn(self.template, string, self.count) + return string + def __rshift__(self, count): + " shorthand to set the replacement count: Match('foo') >> 'bar' >> 1 " + self.count = count ; return self + def __rlshift__(self, count): + self.count = count ; return self + +class Match(str): + """ A Match is actually a mix of a Python Pattern and MatchObject """ + def __init__(self, pattern = None, flags = None): + """ flags is a string: 'i' for case-insensitive etc.; it is just + short for a regex prefix: Match('foo','i') == Match('(?i)foo') """ + Match.__call__(self, pattern, flags) + def __call__(self, pattern, flags = None): + assert isinstance(pattern, str) or pattern is None + assert isinstance(flags, str) or flags is None + str.__init__(self, pattern) + self.replaced = 0 # set by subn() inside MatchReplace + self.found = None # set by search() to a MatchObject + self.pattern = pattern + if pattern is not None: + if flags: + self.regex = re.compile("(?"+flags+")"+self.pattern) + else: + self.regex = re.compile(self.pattern) + return self + def __truth__(self): + return self.found is not None + def __and__(self, string): + self.found = self.regex.search(string) + return self.__truth__() + def __rand__(self, string): + self.found = self.regex.search(string) + return self.__truth__() + def __rshift__(self, template): + return MatchReplace(self, template) + def __rlshift__(self, template): + return MatchReplace(self, template) + def __getitem__(self, index): + return self.group(index) + def group(self, index): + assert self.found is not None + return self.found.group(index) + def finditer(self, string): + return self.regex.finditer(string) + +if __name__ == "__main__": + # matching: + if "foo" & Match("oo"): + print "oo" + x = Match() + if "foo" & x("(o+)"): + print x[1] + # replacing: + y = "fooboo" & Match("oo") >> "ee" + print y + r = Match("oo") >> "ee" + print "fooboo" & r + s = MatchReplace("oo", "ee") + print "fooboo" & s diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/options.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/options.py new file mode 100644 index 00000000000..c6758d5fabf --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/options.py @@ -0,0 +1,31 @@ +#! /usr/bin/python +# -*- coding: utf-8 -*- +# @creator (C) 2003 Guido U. Draheim +# @license http://creativecommons.org/licenses/by-nc-sa/2.0/de/ + +from match import Match + +# use as o.optionname to check for commandline options. +class Options: + var = {} + def __getattr__(self, name): + if not self.var.has_key(name): return None + return self.var[name] + def __setattr__(self, name, value): + self.var[name] = value + def scan(self, optionstring): # option-name or None + x = Match() + if optionstring & x(r"^--?(\w+)=(.*)"): + self.var[x[1]] = x[2] ; return x[1] + if optionstring & x(r"^--?no-(\w+)$"): + self.var[x[1]] = "" ; return x[1] + if optionstring & x(r"^--?(\w+)$"): + self.var[x[1]] = "*"; return x[1] + return None +#end Options + +if False: + o = Options() + o.help = """ + scans for options + """ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/textfile.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/textfile.py new file mode 100644 index 00000000000..bfaff8dbdfa --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/textfile.py @@ -0,0 +1,49 @@ + +def _src_to_xml(text): + return text.replace("&", "&").replace("<", "<").replace(">", ">") + +class TextFile: + def __init__(self, filename = None): + self.filename = filename + self.src_text = None + self.xml_text = None + def parse(self, filename = None): + if filename is not None: + self.filename = filename + if self.filename is None: + return False + try: + fd = open(self.filename, "r") + self.src_text = fd.read() + fd.close() + return True + except IOError, e: + pass + return False + def assert_src_text(self): + if self.src_text: return True + return self.parse() + def assert_xml_text(self): + if self.xml_text: return True + if not self.assert_src_text(): return False + self.xml_text = _src_to_xml(self.src_text) + def get_src_text(self): + self.assert_src_text() + return self.src_text + def get_xml_text(self): + self.assert_xml_text() + return self.xml_text + def get_filename(self): + return self.filename + def line_xml_text(self, offset): + self._line(self.xml_text, offset) + def line_src_text(self, offset): + self._line(self.src_text, offset) + def _line(self, text, offset): + line = 1 + for x in xrange(0,offset): + if x == "\n": + line += 1 + return line + + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/textfileheader.py b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/textfileheader.py new file mode 100644 index 00000000000..2ac0896e5fd --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipdoc/textfileheader.py @@ -0,0 +1,47 @@ +from match import Match + +class TextFileHeader: + """ scan for a comment block at the source file start and fill the + inner text into self.comment - additionally scan for the first + #include statement and put the includename into self.mainheader + (TextFileHeader re-exports all => TextFile methods for processing)""" + def __init__(self, textfile = None): + self.textfile = textfile # TextFile + self.comment = "" # src'style + self.mainheader = "" # src'style + def parse(self, textfile = None): + if textfile is not None: + self.textfile = textfile + if self.textfile is None: + return False + x = Match() + text = self.textfile.get_src_text() + if not text: + print "nonexistant file:", self.textfile.get_filename() + return False + if text & x(r"(?s)[/][*]+(\s(?:.(?!\*\/))*.)\*\/" + r"(?:\s*\#(?:define|ifdef|endif)[ ]*\S*[ ]*\S*)*" + r"(\s*\#include\s*<[^<>]*>(?:\s*//[^\n]*)?)"): + self.comment = x[1] + self.mainheader = x[2].strip() + elif text & x(r"(?s)[/][*]+(\s(?:.(?!\*\/))*.)\*\/"): + self.comment = x[1] + elif text & x(r"(?s)(?:\s*\#(?:define|ifdef|endif)[ ]*\S*[ ]*\S*)*" + r"(\s*\#include\s*<[^<>]*>(?:\s*//[^\n]*)?)"): + self.mainheader = x[1].strip() + return True + def src_mainheader(self): + return self.mainheader + def src_filecomment(self): + return self.comment + # re-export textfile functions - allows textfileheader to be used instead + def get_filename(self): + return self.textfile.get_filename() + def get_src_text(self): + return self.textfile.get_src_text() + def get_xml_text(self): + return self.textfile.get_src_text() + def line_src__text(self, offset): + return self.textfile.line_src_text(offset) + def line_xml__text(self, offset): + return self.textfile.line_xml_text(offset) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipfseeko.html b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipfseeko.html new file mode 100644 index 00000000000..1f103b9a7dd --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipfseeko.html @@ -0,0 +1,176 @@ +<html><head><title>zziplib Library Functions</title> +</head><body> +<h2>zziplib Library Functions</h2><p>Version 0.13.60</p><p><big><b><code>#include <zzip/fseeko.h></code></b></big></p><table width="100%"><tr><td valign="top"><code><b><code><a href="#zzip_entry_fopen">zzip_entry_fopen</a></code></b>(ZZIP_ENTRY * entry, int takeover) + : zzip__new__ ZZIP_ENTRY_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_ffile">zzip_entry_ffile</a></code></b>(FILE * disk, char *filename) + : zzip__new__ ZZIP_ENTRY_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_fread">zzip_entry_fread</a></code></b>(void *ptr, zzip_size_t sized, zzip_size_t nmemb, + ZZIP_ENTRY_FILE * file) + : zzip_size_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_fclose">zzip_entry_fclose</a></code></b>(ZZIP_ENTRY_FILE * file) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_feof">zzip_entry_feof</a></code></b>(ZZIP_ENTRY_FILE * file) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_data_offset">zzip_entry_data_offset</a></code></b>(ZZIP_ENTRY * entry) + : zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_fread_file_header">zzip_entry_fread_file_header</a></code></b>(ZZIP_ENTRY * entry, + struct zzip_file_header *file_header) + : static zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_strdup_name">zzip_entry_strdup_name</a></code></b>(ZZIP_ENTRY * entry) + : zzip__new__ char * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_findfile">zzip_entry_findfile</a></code></b>(FILE * disk, char *filename, + ZZIP_ENTRY * _zzip_restrict entry, zzip_strcmp_fn_t compare) + : zzip__new__ ZZIP_ENTRY * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_findfirst">zzip_entry_findfirst</a></code></b>(FILE * disk) + : zzip__new__ ZZIP_ENTRY * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_findnext">zzip_entry_findnext</a></code></b>(ZZIP_ENTRY * _zzip_restrict entry) + : zzip__new__ ZZIP_ENTRY * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_free">zzip_entry_free</a></code></b>(ZZIP_ENTRY * entry) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_findmatch">zzip_entry_findmatch</a></code></b>(FILE * disk, char *filespec, + ZZIP_ENTRY * _zzip_restrict entry, + zzip_fnmatch_fn_t compare, int flags) + : zzip__new__ ZZIP_ENTRY * +</code></td></tr></table><h3>Documentation</h3><dl><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_entry_fopen">zzip_entry_fopen</a></b>(ZZIP_ENTRY * entry, int takeover) + : zzip__new__ ZZIP_ENTRY_FILE * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_ffile">zzip_entry_ffile</a></b>(FILE * disk, char *filename) + : zzip__new__ ZZIP_ENTRY_FILE * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_fread">zzip_entry_fread</a></b>(void *ptr, zzip_size_t sized, zzip_size_t nmemb, + ZZIP_ENTRY_FILE * file) + : zzip_size_t +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_fclose">zzip_entry_fclose</a></b>(ZZIP_ENTRY_FILE * file) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_feof">zzip_entry_feof</a></b>(ZZIP_ENTRY_FILE * file) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> open a file within a zip disk for reading</em> </td><td align="right"> <em><small>zzip/fseeko.c</small></em></td></table><p> + The <code>zzip_entry_fopen</code> function does take an "entry" argument and copies it (or just takes + it over as owner) to a new ZZIP_ENTRY_FILE handle structure. That + structure contains also a zlib buffer for decoding. The <code>zzip_entry_fopen</code> function does + seek to the file_header of the given "entry" and validates it for the + data buffer following it. We do also prefetch some data from the data + buffer thereby trying to match the disk pagesize for faster access later. + The <code><a href="#zzip_entry_fread">zzip_entry_fread</a></code> will then read in chunks of pagesizes which is + the size of the internal readahead buffer. If an error occurs then null + is returned. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_entry_ffile</code> function opens a file found by name, so it does a search into + the zip central directory with <code><a href="#zzip_entry_findfile">zzip_entry_findfile</a></code> and whatever + is found first is given to <code><a href="#zzip_entry_fopen">zzip_entry_fopen</a></code> +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_entry_fread</code> function reads more bytes into the output buffer specified as + arguments. The return value is null on eof or error, the stdio-like + interface can not distinguish between these so you need to check + with <code><a href="#zzip_entry_feof">zzip_entry_feof</a></code> for the difference. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_entry_fclose</code> function releases any zlib decoder info needed for decompression + and dumps the ZZIP_ENTRY_FILE struct then. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_entry_feof</code> function allows to distinguish an error from an eof condition. + Actually, if we found an error but we did already reach eof then we + just keep on saying that it was an eof, so the app can just continue. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_entry_data_offset">zzip_entry_data_offset</a></b>(ZZIP_ENTRY * entry) + : zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_fread_file_header">zzip_entry_fread_file_header</a></b>(ZZIP_ENTRY * entry, + struct zzip_file_header *file_header) + : static zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_strdup_name">zzip_entry_strdup_name</a></b>(ZZIP_ENTRY * entry) + : zzip__new__ char * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> helper functions for (fseeko) zip access api</em> </td><td align="right"> <em><small>zzip/fseeko.c</small></em></td></table><p> + The <code>zzip_entry_data_offset</code> functions returns the seekval offset of the data portion of the + file referenced by the given zzip_entry. It requires an intermediate + check of the file_header structure (i.e. it reads it from disk). After + this call, the contained diskfile readposition is already set to the + data_offset returned here. On error -1 is returned. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_entry_fread_file_header</code> functions read the correspoding struct zzip_file_header from + the zip disk of the given "entry". The returned off_t points to the + end of the file_header where the current fseek pointer has stopped. + This is used to immediatly parse out any filename/extras block following + the file_header. The return value is null on error. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_entry_strdup_name</code> function is a big helper despite its little name: in a zip file the + encoded filenames are usually NOT zero-terminated but for common usage + with libc we need it that way. Secondly, the filename SHOULD be present + in the zip central directory but if not then we fallback to the filename + given in the file_header of each compressed data portion. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_entry_findfile">zzip_entry_findfile</a></b>(FILE * disk, char *filename, + ZZIP_ENTRY * _zzip_restrict entry, zzip_strcmp_fn_t compare) + : zzip__new__ ZZIP_ENTRY * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_findfirst">zzip_entry_findfirst</a></b>(FILE * disk) + : zzip__new__ ZZIP_ENTRY * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_findnext">zzip_entry_findnext</a></b>(ZZIP_ENTRY * _zzip_restrict entry) + : zzip__new__ ZZIP_ENTRY * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_free">zzip_entry_free</a></b>(ZZIP_ENTRY * entry) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_findmatch">zzip_entry_findmatch</a></b>(FILE * disk, char *filespec, + ZZIP_ENTRY * _zzip_restrict entry, + zzip_fnmatch_fn_t compare, int flags) + : zzip__new__ ZZIP_ENTRY * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> search for files in the (fseeko) zip central directory</em> </td><td align="right"> <em><small>zzip/fseeko.c</small></em></td></table><p> + The <code>zzip_entry_findfile</code> function is given a filename as an additional argument, to find the + disk_entry matching a given filename. The compare-function is usually + strcmp or strcasecmp or perhaps strcoll, if null then strcmp is used. + - use null as argument for "old"-entry when searching the first + matching entry, otherwise the last returned value if you look for other + entries with a special "compare" function (if null then a doubled search + is rather useless with this variant of _findfile). If no further entry is + found then null is returned and any "old"-entry gets already free()d. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_entry_findfirst</code> function is the first call of all the zip access functions here. + It contains the code to find the first entry of the zip central directory. + Here we require the stdio handle to represent a real zip file where the + disk_trailer is _last_ in the file area, so that its position would be at + a fixed offset from the end of the file area if not for the comment field + allowed to be of variable length (which needs us to do a little search + for the disk_tailer). However, in this simple implementation we disregard + any disk_trailer info telling about multidisk archives, so we just return + a pointer to the first entry in the zip central directory of that file. +</p><p> + For an actual means, we are going to search backwards from the end + of the mmaped block looking for the PK-magic signature of a + disk_trailer. If we see one then we check the rootseek value to + find the first disk_entry of the root central directory. If we find + the correct PK-magic signature of a disk_entry over there then we + assume we are done and we are going to return a pointer to that label. +</p><p> + The return value is a pointer to the first zzip_disk_entry being checked + to be within the bounds of the file area specified by the arguments. If + no disk_trailer was found then null is returned, and likewise we only + accept a disk_trailer with a seekvalue that points to a disk_entry and + both parts have valid PK-magic parts. Beyond some sanity check we try to + catch a common brokeness with zip archives that still allows us to find + the start of the zip central directory. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_entry_findnext</code> function takes an existing "entry" in the central root directory + (e.g. from zzip_entry_findfirst) and moves it to point to the next entry. + On error it returns 0, otherwise the old entry. If no further match is + found then null is returned and the entry already free()d. If you want + to stop searching for matches before that case then please call + <code><a href="#zzip_entry_free">zzip_entry_free</a></code> on the cursor struct ZZIP_ENTRY. +</p> +</td></tr><tr><td valign="top"><p> the <code>zzip_entry_free</code> function releases the malloc()ed areas needed for zzip_entry, the + pointer is invalid afterwards. The <code>zzip_entry_free</code> function has #define synonyms of + zzip_entry_findlast(), zzip_entry_findlastfile(), zzip_entry_findlastmatch() +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_entry_findmatch</code> function uses a compare-function with an additional argument + and it is called just like fnmatch(3) from POSIX.2 AD:1993), i.e. + the argument filespec first and the ziplocal filename second with + the integer-flags put in as third to the indirect call. If the + platform has fnmatch available then null-compare will use that one + and otherwise we fall back to mere strcmp, so if you need fnmatch + searching then please provide an implementation somewhere else. + - use null as argument for "after"-entry when searching the first + matching entry, or the last disk_entry return-value to find the + next entry matching the given filespec. If no further entry is + found then null is returned and any "old"-entry gets already free()d. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd></dl> +</body></html> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-manpages.dbk b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-manpages.dbk new file mode 100644 index 00000000000..d3c8998bea7 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-manpages.dbk @@ -0,0 +1,12 @@ +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> +<!-- using <chapter> allows to append a <reference> with manpages --> +<book><title> ZZIPlib Manual Pages </title> + +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zziplib.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzipmmapped.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzipfseeko.xml" /> +</book> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-manpages.tar b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-manpages.tar Binary files differnew file mode 100644 index 00000000000..d200b2b80cf --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-manpages.tar diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-master.dbk b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-master.dbk new file mode 100644 index 00000000000..8384c282428 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib-master.dbk @@ -0,0 +1,59 @@ +<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> +<!-- using <chapter> allows to append a <reference> with manpages --> +<section> +<sectioninfo> +<date> 2006-01-01</date> +<authorblurb><simpara> Guido Draheim </simpara></authorblurb> +</sectioninfo> +<title> ZZIPlib Documentation </title> + +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-index.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-zip.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-file.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-sdl-rwops.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-extio.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-xor.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-crypt.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-cryptoid.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-api.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-basics.xml" /> +<!-- +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-extras.xml" /> +--> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="zzip-parse.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="64on32.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="future.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="fseeko.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="mmapped.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="memdisk.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="configs.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="sfx-make.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="history.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="referentials.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="copying.xml" /> +<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" + href="faq.xml" /> +</section> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib.html b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib.html new file mode 100644 index 00000000000..89336cc12d6 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zziplib.html @@ -0,0 +1,464 @@ +<html><head><title>zziplib Library Functions</title> +</head><body> +<h2>zziplib Library Functions</h2><p>Version 0.13.60</p><p><big><b><code>#include <zzip/lib.h></code></b></big></p><table width="100%"><tr><td valign="top"><code><b><code><a href="#zzip_error">zzip_error</a></code></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seterror">zzip_seterror</a></code></b>(ZZIP_DIR * dir, int errcode) : void +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_open">zzip_open</a></code></b>(zzip_char_t * filename, int o_flags) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_open_ext_io">zzip_open_ext_io</a></code></b>(zzip_char_t * filename, int o_flags, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_open_shared_io">zzip_open_shared_io</a></code></b>(ZZIP_FILE * stream, + zzip_char_t * filename, int o_flags, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_opendir">zzip_opendir</a></code></b>(zzip_char_t * filename) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_opendir_ext_io">zzip_opendir_ext_io</a></code></b>(zzip_char_t * filename, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_real">zzip_file_real</a></code></b>(ZZIP_FILE * fp) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_real">zzip_dir_real</a></code></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_realdir">zzip_realdir</a></code></b>(ZZIP_DIR * dir) + : void * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_realfd">zzip_realfd</a></code></b>(ZZIP_FILE * fp) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_tell">zzip_tell</a></code></b>(ZZIP_FILE * fp) + : zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_tell32">zzip_tell32</a></code></b>(ZZIP_FILE * fp) + : long +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_stat">zzip_dir_stat</a></code></b>(ZZIP_DIR * dir, zzip_char_t * name, ZZIP_STAT * zs, int flags) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_stat">zzip_file_stat</a></code></b>(ZZIP_FILE * file, ZZIP_STAT * zs) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_fstat">zzip_fstat</a></code></b>(ZZIP_FILE * file, ZZIP_STAT * zs) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_strerror">zzip_strerror</a></code></b>(int errcode) + : zzip_char_t * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_strerror_of">zzip_strerror_of</a></code></b>(ZZIP_DIR * dir) + : zzip_char_t * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_open">zzip_dir_open</a></code></b>(zzip_char_t * filename, zzip_error_t * e) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_open_ext_io">zzip_dir_open_ext_io</a></code></b>(zzip_char_t * filename, zzip_error_t * e, + zzip_strings_t * ext, zzip_plugin_io_t io) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_read">zzip_dir_read</a></code></b>(ZZIP_DIR * dir, ZZIP_DIRENT * d) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_init_io">zzip_init_io</a></code></b>(zzip_plugin_io_handlers_t io, int flags) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_get_default_io">zzip_get_default_io</a></code></b>(void) + : zzip_plugin_io_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_rewinddir">zzip_rewinddir</a></code></b>(ZZIP_DIR * dir) + : void +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_telldir">zzip_telldir</a></code></b>(ZZIP_DIR * dir) + : zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seekdir">zzip_seekdir</a></code></b>(ZZIP_DIR * dir, zzip_off_t offset) + : void +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_telldir32">zzip_telldir32</a></code></b>(ZZIP_DIR * dir) + : long +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seekdir32">zzip_seekdir32</a></code></b>(ZZIP_DIR * dir, long offset) + : void +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_fopen">zzip_fopen</a></code></b>(zzip_char_t * filename, zzip_char_t * mode) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_freopen">zzip_freopen</a></code></b>(zzip_char_t * filename, zzip_char_t * mode, ZZIP_FILE * stream) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dirhandle">zzip_dirhandle</a></code></b>(ZZIP_FILE * fp) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dirfd">zzip_dirfd</a></code></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seek">zzip_seek</a></code></b>(ZZIP_FILE * fp, zzip_off_t offset, int whence) + : zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seek32">zzip_seek32</a></code></b>(ZZIP_FILE * fp, long offset, int whence) + : long +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_read">zzip_read</a></code></b>(ZZIP_FILE * fp, void *buf, zzip_size_t len) + : zzip_ssize_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_fread">zzip_fread</a></code></b>(void *ptr, zzip_size_t size, zzip_size_t nmemb, ZZIP_FILE * file) + : zzip_size_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_free">zzip_dir_free</a></code></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_close">zzip_dir_close</a></code></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_fclose">zzip_fclose</a></code></b>(ZZIP_FILE * fp) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_close">zzip_close</a></code></b>(ZZIP_FILE * fp) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_fdopen">zzip_dir_fdopen</a></code></b>(int fd, zzip_error_t * errcode_p) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_fdopen_ext_io">zzip_dir_fdopen_ext_io</a></code></b>(int fd, zzip_error_t * errcode_p, + zzip_strings_t * ext, const zzip_plugin_io_t io) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_alloc_ext_io">zzip_dir_alloc_ext_io</a></code></b>(zzip_strings_t * ext, const zzip_plugin_io_t io) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_alloc">zzip_dir_alloc</a></code></b>(zzip_strings_t * fileext) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_readdir">zzip_readdir</a></code></b>(ZZIP_DIR * dir) + : ZZIP_DIRENT * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_closedir">zzip_closedir</a></code></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_errno">zzip_errno</a></code></b>(int errcode) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_close">zzip_file_close</a></code></b>(ZZIP_FILE * fp) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_open">zzip_file_open</a></code></b>(ZZIP_DIR * dir, zzip_char_t * name, int o_mode) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_inflate_init">zzip_inflate_init</a></code></b>(ZZIP_FILE * fp, struct zzip_dir_hdr *hdr) + : static int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_read">zzip_file_read</a></code></b>(ZZIP_FILE * fp, void *buf, zzip_size_t len) + : zzip_ssize_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_rewind">zzip_rewind</a></code></b>(ZZIP_FILE * fp) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_compr_str">zzip_compr_str</a></code></b>(int compr) + : zzip_char_t * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#__zzip_fetch_disk_trailer">__zzip_fetch_disk_trailer</a></code></b>(int fd, zzip_off_t filesize, + struct _disk_trailer *_zzip_restrict trailer, + zzip_plugin_io_t io) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#__zzip_parse_root_directory">__zzip_parse_root_directory</a></code></b>(int fd, + struct _disk_trailer *trailer, + struct zzip_dir_hdr **hdr_return, + zzip_plugin_io_t io) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#__zzip_try_open">__zzip_try_open</a></code></b>(zzip_char_t * filename, int filemode, + zzip_strings_t * ext, zzip_plugin_io_t io) + : int +</code></td></tr></table><h3>Documentation</h3><dl><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_error">zzip_error</a></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_seterror">zzip_seterror</a></b>(ZZIP_DIR * dir, int errcode) : void +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/info.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_seterror</code> function just does dir->errcode = errcode +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_open">zzip_open</a></b>(zzip_char_t * filename, int o_flags) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_open_ext_io">zzip_open_ext_io</a></b>(zzip_char_t * filename, int o_flags, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_open_shared_io">zzip_open_shared_io</a></b>(ZZIP_FILE * stream, + zzip_char_t * filename, int o_flags, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) + : ZZIP_FILE * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> + The <code>zzip_open_ext_io</code> function uses explicit ext and io instead of the internal + defaults, setting them to zero is equivalent to <code><a href="#zzip_open">zzip_open</a></code> +</p><p> + note that the two flag types have been split into an o_flags + (for fcntl-like openflags) and o_modes where the latter shall + carry the zzip_flags and possibly accessmodes for unix filesystems. + Since this version of zziplib can not write zipfiles, it is not + yet used for anything else than zzip-specific modeflags. +</p><p> + The <code>zzip_open_ext_io</code> function returns a new zzip-handle (use <code><a href="#zzip_close">zzip_close</a></code> to return + it). On error the <code>zzip_open_ext_io</code> function will return null setting <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>. +</p><p> + If any ext_io handlers were used then the referenced structure + should be static as the allocated ZZIP_FILE does not copy them. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_open_shared_io</code> function takes an extra stream argument - if a handle has been + then ext/io can be left null and the new stream handle will pick up + the ext/io. This should be used only in specific environment however + since <code><a href="#zzip_file_real">zzip_file_real</a></code> does not store any ext-sequence. +</p><p> + The benefit for the <code>zzip_open_shared_io</code> function comes in when the old file handle + was openened from a file within a zip archive. When the new file + is in the same zip archive then the internal zzip_dir structures + will be shared. It is even quicker, as no check needs to be done + anymore trying to guess the zip archive place in the filesystem, + here we just check whether the zip archive's filepath is a prefix + part of the filename to be opened. +</p><p> + Note that the <code>zzip_open_shared_io</code> function is also used by <code><a href="#zzip_freopen">zzip_freopen</a></code> that + will unshare the old handle, thereby possibly closing the handle. +</p><p> + The <code>zzip_open_shared_io</code> function returns a new zzip-handle (use <code><a href="#zzip_close">zzip_close</a></code> to return + it). On error the <code>zzip_open_shared_io</code> function will return null setting <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>. +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_opendir">zzip_opendir</a></b>(zzip_char_t * filename) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_opendir_ext_io">zzip_opendir_ext_io</a></b>(zzip_char_t * filename, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) + : ZZIP_DIR * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/dir.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_opendir_ext_io</code> function uses explicit ext and io instead of the internal + defaults, setting them to zero is equivalent to <code><a href="#zzip_opendir">zzip_opendir</a></code> +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_file_real">zzip_file_real</a></b>(ZZIP_FILE * fp) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_real">zzip_dir_real</a></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_realdir">zzip_realdir</a></b>(ZZIP_DIR * dir) + : void * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_realfd">zzip_realfd</a></b>(ZZIP_FILE * fp) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/info.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_dir_real</code> function checks if the ZZIP_DIR-handle is wrapping + a real directory or a zip-archive. + Returns 1 for a stat'able directory, and 0 for a handle to zip-archive. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_realdir</code> function returns the posix DIR* handle (if one exists). + Check before with <code><a href="#zzip_dir_real">zzip_dir_real</a></code> if the + the ZZIP_DIR points to a real directory. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_realfd</code> function returns the posix file descriptor (if one exists). + Check before with <code><a href="#zzip_file_real">zzip_file_real</a></code> if the + the ZZIP_FILE points to a real file. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_tell">zzip_tell</a></b>(ZZIP_FILE * fp) + : zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_tell32">zzip_tell32</a></b>(ZZIP_FILE * fp) + : long +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_tell32</code> function is provided for users who can not use any largefile-mode. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_stat">zzip_dir_stat</a></b>(ZZIP_DIR * dir, zzip_char_t * name, ZZIP_STAT * zs, int flags) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_file_stat">zzip_file_stat</a></b>(ZZIP_FILE * file, ZZIP_STAT * zs) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_fstat">zzip_fstat</a></b>(ZZIP_FILE * file, ZZIP_STAT * zs) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/stat.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_file_stat</code> function will obtain information about a opened file _within_ a + zip-archive. The file is supposed to be open (otherwise -1 is returned). + The st_size stat-member contains the uncompressed size. The optional + d_name is never set here. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_fstat</code> function will obtain information about a opened file which may be + either real/zipped. The file is supposed to be open (otherwise -1 is + returned). The st_size stat-member contains the uncompressed size. + The optional d_name is never set here. For a real file, we do set the + d_csize := st_size and d_compr := 0 for meaningful defaults. +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_strerror">zzip_strerror</a></b>(int errcode) + : zzip_char_t * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_strerror_of">zzip_strerror_of</a></b>(ZZIP_DIR * dir) + : zzip_char_t * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/err.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_strerror_of</code> function fetches the errorcode from the <code>DIR-handle</code> and + runs it through <code><a href="#zzip_strerror">zzip_strerror</a></code> to obtain the static string + describing the error. +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_open">zzip_dir_open</a></b>(zzip_char_t * filename, zzip_error_t * e) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_open_ext_io">zzip_dir_open_ext_io</a></b>(zzip_char_t * filename, zzip_error_t * e, + zzip_strings_t * ext, zzip_plugin_io_t io) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_read">zzip_dir_read</a></b>(ZZIP_DIR * dir, ZZIP_DIRENT * d) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> the <code>zzip_dir_open_ext_io</code> function uses explicit ext and io instead of the internal + defaults. Setting these to zero is equivalent to <code><a href="#zzip_dir_open">zzip_dir_open</a></code> + Note that the referenced ext_io plugin handlers structure must be + static as it is not copied to the returned ZZIP_DIR structure. +</p> +</td></tr><tr><td valign="top"><p> fills the dirent-argument with the values and + increments the read-pointer of the dir-argument. +</p><p> + returns 0 if there no entry (anymore). +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_init_io">zzip_init_io</a></b>(zzip_plugin_io_handlers_t io, int flags) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_get_default_io">zzip_get_default_io</a></b>(void) + : zzip_plugin_io_t +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/plugin.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_get_default_io</code> function returns a zzip_plugin_io_t handle to static defaults + wrapping the posix io file functions for actual file access. The + returned structure is shared by all threads in the system. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_rewinddir">zzip_rewinddir</a></b>(ZZIP_DIR * dir) + : void +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_telldir">zzip_telldir</a></b>(ZZIP_DIR * dir) + : zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_seekdir">zzip_seekdir</a></b>(ZZIP_DIR * dir, zzip_off_t offset) + : void +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_telldir32">zzip_telldir32</a></b>(ZZIP_DIR * dir) + : long +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_seekdir32">zzip_seekdir32</a></b>(ZZIP_DIR * dir, long offset) + : void +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> </em> </td><td align="right"> <em><small>zzip/dir.c</small></em></td></table><p> The <code>zzip_rewinddir</code> function is the equivalent of a <a href="http://www.opengroup.org/onlinepubs/000095399/functions/rewinddir.html"><code>rewinddir(2)</code></a> for a realdir or + the zipfile in place of a directory. The ZZIP_DIR handle returned from + <code><a href="#zzip_opendir">zzip_opendir</a></code> has a flag saying realdir or zipfile. As for a zipfile, + the filenames will include the filesubpath, so take care. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_telldir</code> function is the equivalent of <a href="http://www.opengroup.org/onlinepubs/000095399/functions/telldir.html"><code>telldir(2)</code></a> for a realdir or zipfile. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_seekdir</code> function is the equivalent of <a href="http://www.opengroup.org/onlinepubs/000095399/functions/seekdir.html"><code>seekdir(2)</code></a> for a realdir or zipfile. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_telldir32</code> function is provided for users who can not use any largefile-mode. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_seekdir32</code> function is provided for users who can not use any largefile-mode. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_fopen">zzip_fopen</a></b>(zzip_char_t * filename, zzip_char_t * mode) + : ZZIP_FILE * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_freopen">zzip_freopen</a></b>(zzip_char_t * filename, zzip_char_t * mode, ZZIP_FILE * stream) + : ZZIP_FILE * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> </em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table><p> The <code>zzip_fopen</code> function will <a href="http://www.opengroup.org/onlinepubs/000095399/functions/fopen.html"><code>fopen(3)</code></a> a real/zipped file. +</p><p> + It has some magic functionality builtin - it will first try to open + the given <em>filename</em> as a normal file. If it does not + exist, the given path to the filename (if any) is split into + its directory-part and the file-part. A ".zip" extension is + then added to the directory-part to create the name of a + zip-archive. That zip-archive (if it exists) is being searched + for the file-part, and if found a zzip-handle is returned. +</p><p> + Note that if the file is found in the normal fs-directory the + returned structure is mostly empty and the <code><a href="#zzip_read">zzip_read</a></code> call will + use the libc <a href="http://www.opengroup.org/onlinepubs/000095399/functions/read.html"><code>read(2)</code></a> to obtain data. Otherwise a <code><a href="#zzip_file_open">zzip_file_open</a></code> + is performed and any error mapped to <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>. +</p><p> + unlike the posix-wrapper <code><a href="#zzip_open">zzip_open</a></code> the mode-argument is + a string which allows for more freedom to support the extra + zzip modes called ZZIP_CASEINSENSITIVE and ZZIP_IGNOREPATH. + Currently, this <code><a href="#zzip_fopen">zzip_fopen</a></code> call will convert the following + characters in the mode-string into their corrsponding mode-bits: +</p><ul><li><p> <code> "r" : O_RDONLY : </code> read-only </p></li> +<li><p> <code> "b" : O_BINARY : </code> binary (win32 specific) </p></li> +<li><p> <code> "f" : O_NOCTTY : </code> no char device (unix) </p></li> +<li><p> <code> "i" : ZZIP_CASELESS : </code> inside zip file </p></li> +<li><p> <code> "*" : ZZIP_NOPATHS : </code> inside zip file only </p></li> +</ul><p> all other modes will be ignored for zip-contained entries + but they are transferred for compatibility and portability, + including these extra sugar bits: +</p><ul><li><p> <code> "x" : O_EXCL :</code> fail if file did exist </p></li> +<li><p> <code> "s" : O_SYNC :</code> synchronized access </p></li> +<li><p> <code> "n" : O_NONBLOCK :</code> nonblocking access </p></li> +<li><p> <code> "z#" : compression level :</code> for zlib </p></li> +<li><p> <code> "g#" : group access :</code> unix access bits </p></li> +<li><p> <code> "u#" : owner access :</code> unix access bits </p></li> +<li><p> <code> "o#" : world access :</code> unix access bits </p></li> +</ul><p> ... the access bits are in traditional unix bit format + with 7 = read/write/execute, 6 = read/write, 4 = read-only. +</p><p> + The default access mode is 0664, and the compression level + is ignored since the lib can not yet write zip files, otherwise + it would be the initialisation value for the zlib deflateInit + where 0 = no-compression, 1 = best-speed, 9 = best-compression. +</p><p> + The <code>zzip_fopen</code> function returns a new zzip-handle (use <code><a href="#zzip_close">zzip_close</a></code> to return + it). On error the <code>zzip_fopen</code> function will return null setting <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_freopen</code> function receives an additional argument pointing to + a ZZIP_FILE* being already in use. If this extra argument is + null then the <code>zzip_freopen</code> function is identical with calling <code><a href="#zzip_fopen">zzip_fopen</a></code> +</p><p> + Per default, the old file stream is closed and only the internal + structures associated with it are kept. These internal structures + may be reused for the return value, and this is a lot quicker when + the filename matches a zipped file that is incidently in the very + same zip arch as the old filename wrapped in the stream struct. +</p><p> + That's simply because the zip arch's central directory does not + need to be read again. As an extension for the <code>zzip_freopen</code> function, if the + mode-string contains a "q" then the old stream is not closed but + left untouched, instead it is only given as a hint that a new + file handle may share/copy the zip arch structures of the old file + handle if that is possible, i.e when they are in the same zip arch. +</p><p> + The <code>zzip_freopen</code> function returns a new zzip-handle (use <code><a href="#zzip_close">zzip_close</a></code> to return + it). On error the <code>zzip_freopen</code> function will return null setting <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>. +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dirhandle">zzip_dirhandle</a></b>(ZZIP_FILE * fp) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dirfd">zzip_dirfd</a></b>(ZZIP_DIR * dir) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/info.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_dirfd</code> function will just return dir->fd +</p><p> + If a ZZIP_DIR does point to a zipfile then the file-descriptor of that + zipfile is returned, otherwise a NULL is returned and the ZZIP_DIR wraps + a real directory DIR (if you have dirent on your system). +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_seek">zzip_seek</a></b>(ZZIP_FILE * fp, zzip_off_t offset, int whence) + : zzip_off_t +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_seek32">zzip_seek32</a></b>(ZZIP_FILE * fp, long offset, int whence) + : long +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> The <code>zzip_seek32</code> function is provided for users who can not use any largefile-mode. +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_read">zzip_read</a></b>(ZZIP_FILE * fp, void *buf, zzip_size_t len) + : zzip_ssize_t +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_fread">zzip_fread</a></b>(void *ptr, zzip_size_t size, zzip_size_t nmemb, ZZIP_FILE * file) + : zzip_size_t +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr><tr><td valign="top"> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_free">zzip_dir_free</a></b>(ZZIP_DIR * dir) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_close">zzip_dir_close</a></b>(ZZIP_DIR * dir) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> It will also <a href="http://www.opengroup.org/onlinepubs/000095399/functions/free.html"><code>free(2)</code></a> the <code>ZZIP_DIR-handle</code> given. + the counterpart for <code><a href="#zzip_dir_open">zzip_dir_open</a></code> + see also <code><a href="#zzip_dir_free">zzip_dir_free</a></code> +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_fclose">zzip_fclose</a></b>(ZZIP_FILE * fp) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_close">zzip_close</a></b>(ZZIP_FILE * fp) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr><tr><td valign="top"> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_fdopen">zzip_dir_fdopen</a></b>(int fd, zzip_error_t * errcode_p) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_fdopen_ext_io">zzip_dir_fdopen_ext_io</a></b>(int fd, zzip_error_t * errcode_p, + zzip_strings_t * ext, const zzip_plugin_io_t io) + : ZZIP_DIR * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> the <code>zzip_dir_fdopen_ext_io</code> function uses explicit ext and io instead of the internal + defaults, setting these to zero is equivalent to <code><a href="#zzip_dir_fdopen">zzip_dir_fdopen</a></code> +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_alloc_ext_io">zzip_dir_alloc_ext_io</a></b>(zzip_strings_t * ext, const zzip_plugin_io_t io) + : ZZIP_DIR * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_alloc">zzip_dir_alloc</a></b>(zzip_strings_t * fileext) + : ZZIP_DIR * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table> +</td></tr><tr><td valign="top"><p> the <code>zzip_dir_alloc</code> function is obsolete - it was generally used for implementation + and exported to let other code build on it. It is now advised to + use <code><a href="#zzip_dir_alloc_ext_io">zzip_dir_alloc_ext_io</a></code> now on explicitly, just set that second + argument to zero to achieve the same functionality as the old style. +</p> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_readdir">zzip_readdir</a></b>(ZZIP_DIR * dir) + : ZZIP_DIRENT * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/dir.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_closedir">zzip_closedir</a></b>(ZZIP_DIR * dir) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/dir.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_errno">zzip_errno</a></b>(int errcode) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/err.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_file_close">zzip_file_close</a></b>(ZZIP_FILE * fp) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_file_open">zzip_file_open</a></b>(ZZIP_DIR * dir, zzip_char_t * name, int o_mode) + : ZZIP_FILE * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_inflate_init">zzip_inflate_init</a></b>(ZZIP_FILE * fp, struct zzip_dir_hdr *hdr) + : static int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_file_read">zzip_file_read</a></b>(ZZIP_FILE * fp, void *buf, zzip_size_t len) + : zzip_ssize_t +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_rewind">zzip_rewind</a></b>(ZZIP_FILE * fp) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_compr_str">zzip_compr_str</a></b>(int compr) + : zzip_char_t * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/info.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="__zzip_fetch_disk_trailer">__zzip_fetch_disk_trailer</a></b>(int fd, zzip_off_t filesize, + struct _disk_trailer *_zzip_restrict trailer, + zzip_plugin_io_t io) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="__zzip_parse_root_directory">__zzip_parse_root_directory</a></b>(int fd, + struct _disk_trailer *trailer, + struct zzip_dir_hdr **hdr_return, + zzip_plugin_io_t io) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="__zzip_try_open">__zzip_try_open</a></b>(zzip_char_t * filename, int filemode, + zzip_strings_t * ext, zzip_plugin_io_t io) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd></dl> +</body></html> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipmmapped.html b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipmmapped.html new file mode 100644 index 00000000000..d5b82aea8ad --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/docs/zzipmmapped.html @@ -0,0 +1,222 @@ +<html><head><title>zziplib Library Functions</title> +</head><body> +<h2>zziplib Library Functions</h2><p>Version 0.13.60</p><p><big><b><code>#include <zzip/mmapped.h></code></b></big></p><table width="100%"><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_to_data">zzip_disk_entry_to_data</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry * entry) + : zzip_byte_t * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_to_file_header">zzip_disk_entry_to_file_header</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry) + : struct zzip_file_header * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_strdup_name">zzip_disk_entry_strdup_name</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry) + : zzip__new__ char * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_strdup_comment">zzip_disk_entry_strdup_comment</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry) + : zzip__new__ char * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_findfile">zzip_disk_findfile</a></code></b>(ZZIP_DISK * disk, char *filename, + struct zzip_disk_entry *after, zzip_strcmp_fn_t compare) + : struct zzip_disk_entry * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_findfirst">zzip_disk_findfirst</a></code></b>(ZZIP_DISK * disk) + : struct zzip_disk_entry * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_findnext">zzip_disk_findnext</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry) + : struct zzip_disk_entry * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_findmatch">zzip_disk_findmatch</a></code></b>(ZZIP_DISK * disk, char *filespec, + struct zzip_disk_entry *after, + zzip_fnmatch_fn_t compare, int flags) + : struct zzip_disk_entry * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_fopen">zzip_disk_fopen</a></code></b>(ZZIP_DISK * disk, char *filename) + : zzip__new__ ZZIP_DISK_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_fopen">zzip_disk_entry_fopen</a></code></b>(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry) + : zzip__new__ ZZIP_DISK_FILE * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_fread">zzip_disk_fread</a></code></b>(void *ptr, zzip_size_t sized, zzip_size_t nmemb, + ZZIP_DISK_FILE * file) + : zzip_size_t +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_fclose">zzip_disk_fclose</a></code></b>(ZZIP_DISK_FILE * file) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_feof">zzip_disk_feof</a></code></b>(ZZIP_DISK_FILE * file) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_mmap">zzip_disk_mmap</a></code></b>(int fd) + : zzip__new__ ZZIP_DISK * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_init">zzip_disk_init</a></code></b>(ZZIP_DISK * disk, void *buffer, zzip_size_t buflen) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_new">zzip_disk_new</a></code></b>(void) + : zzip__new__ ZZIP_DISK * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_munmap">zzip_disk_munmap</a></code></b>(ZZIP_DISK * disk) + : int +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_open">zzip_disk_open</a></code></b>(char *filename) + : zzip__new__ ZZIP_DISK * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_buffer">zzip_disk_buffer</a></code></b>(void *buffer, size_t buflen) : zzip__new__ ZZIP_DISK * +</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_close">zzip_disk_close</a></code></b>(ZZIP_DISK * disk) + : int +</code></td></tr></table><h3>Documentation</h3><dl><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_disk_entry_to_data">zzip_disk_entry_to_data</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry * entry) + : zzip_byte_t * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_entry_to_file_header">zzip_disk_entry_to_file_header</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry) + : struct zzip_file_header * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_entry_strdup_name">zzip_disk_entry_strdup_name</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry) + : zzip__new__ char * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_entry_strdup_comment">zzip_disk_entry_strdup_comment</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry) + : zzip__new__ char * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> helper functions for (mmapped) zip access api</em> </td><td align="right"> <em><small>zzip/mmapped.c</small></em></td></table><p> + The <code>zzip_disk_entry_to_data</code> function augments the other zzip_disk_entry_* helpers: here we move + a disk_entry pointer (as returned by _find* functions) into a pointer to + the data block right after the file_header. Only disk->buffer would be + needed to perform the seek but we check the mmapped range end as well. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_disk_entry_to_file_header</code> function does half the job of <code><a href="#zzip_disk_entry_to_data">zzip_disk_entry_to_data</a></code> where it + can augment with <code><u>zzip_file_header_to_data</u></code> helper from format/fetch.h +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_disk_entry_strdup_name</code> function is a big helper despite its little name: in a zip file the + encoded filenames are usually NOT zero-terminated but for common usage + with libc we need it that way. Secondly, the filename SHOULD be present + in the zip central directory but if not then we fallback to the filename + given in the file_header of each compressed data portion. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_disk_entry_strdup_comment</code> function is similar creating a reference to a zero terminated + string but it can only exist in the zip central directory entry. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_disk_findfile">zzip_disk_findfile</a></b>(ZZIP_DISK * disk, char *filename, + struct zzip_disk_entry *after, zzip_strcmp_fn_t compare) + : struct zzip_disk_entry * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_findfirst">zzip_disk_findfirst</a></b>(ZZIP_DISK * disk) + : struct zzip_disk_entry * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_findnext">zzip_disk_findnext</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry) + : struct zzip_disk_entry * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_findmatch">zzip_disk_findmatch</a></b>(ZZIP_DISK * disk, char *filespec, + struct zzip_disk_entry *after, + zzip_fnmatch_fn_t compare, int flags) + : struct zzip_disk_entry * +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> search for files in the (mmapped) zip central directory</em> </td><td align="right"> <em><small>zzip/mmapped.c</small></em></td></table><p> + The <code>zzip_disk_findfile</code> function is given a filename as an additional argument, to find the + disk_entry matching a given filename. The compare-function is usually + strcmp or strcasecmp or perhaps strcoll, if null then strcmp is used. + - use null as argument for "after"-entry when searching the first + matching entry, otherwise the last returned value if you look for other + entries with a special "compare" function (if null then a doubled search + is rather useless with this variant of _findfile). +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_disk_findfirst</code> function is the first call of all the zip access functions here. + It contains the code to find the first entry of the zip central directory. + Here we require the mmapped block to represent a real zip file where the + disk_trailer is _last_ in the file area, so that its position would be at + a fixed offset from the end of the file area if not for the comment field + allowed to be of variable length (which needs us to do a little search + for the disk_tailer). However, in this simple implementation we disregard + any disk_trailer info telling about multidisk archives, so we just return + a pointer to the zip central directory. +</p><p> + For an actual means, we are going to search backwards from the end + of the mmaped block looking for the PK-magic signature of a + disk_trailer. If we see one then we check the rootseek value to + find the first disk_entry of the root central directory. If we find + the correct PK-magic signature of a disk_entry over there then we + assume we are done and we are going to return a pointer to that label. +</p><p> + The return value is a pointer to the first zzip_disk_entry being checked + to be within the bounds of the file area specified by the arguments. If + no disk_trailer was found then null is returned, and likewise we only + accept a disk_trailer with a seekvalue that points to a disk_entry and + both parts have valid PK-magic parts. Beyond some sanity check we try to + catch a common brokeness with zip archives that still allows us to find + the start of the zip central directory. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_disk_findnext</code> function takes an existing disk_entry in the central root directory + (e.g. from zzip_disk_findfirst) and returns the next entry within in + the given bounds of the mmapped file area. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_disk_findmatch</code> function uses a compare-function with an additional argument + and it is called just like fnmatch(3) from POSIX.2 AD:1993), i.e. + the argument filespec first and the ziplocal filename second with + the integer-flags put in as third to the indirect call. If the + platform has fnmatch available then null-compare will use that one + and otherwise we fall back to mere strcmp, so if you need fnmatch + searching then please provide an implementation somewhere else. + - use null as argument for "after"-entry when searching the first + matching entry, or the last disk_entry return-value to find the + next entry matching the given filespec. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_disk_fopen">zzip_disk_fopen</a></b>(ZZIP_DISK * disk, char *filename) + : zzip__new__ ZZIP_DISK_FILE * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_entry_fopen">zzip_disk_entry_fopen</a></b>(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry) + : zzip__new__ ZZIP_DISK_FILE * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_fread">zzip_disk_fread</a></b>(void *ptr, zzip_size_t sized, zzip_size_t nmemb, + ZZIP_DISK_FILE * file) + : zzip_size_t +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_fclose">zzip_disk_fclose</a></b>(ZZIP_DISK_FILE * file) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_feof">zzip_disk_feof</a></b>(ZZIP_DISK_FILE * file) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> openening a file part wrapped within a (mmapped) zip archive</em> </td><td align="right"> <em><small>zzip/mmapped.c</small></em></td></table><p> + The <code>zzip_disk_fopen</code> function opens a file found by name, so it does a search into + the zip central directory with <code><a href="#zzip_disk_findfile">zzip_disk_findfile</a></code> and whatever + is found first is given to <code><a href="#zzip_disk_entry_fopen">zzip_disk_entry_fopen</a></code> +</p> +</td></tr><tr><td valign="top"><p> + the ZZIP_DISK_FILE* is rather simple in just encapsulating the + arguments given to the <code>zzip_disk_entry_fopen</code> function plus a zlib deflate buffer. + Note that the ZZIP_DISK pointer does already contain the full + mmapped file area of a zip disk, so open()ing a file part within + that area happens to be a lookup of its bounds and encoding. That + information is memorized on the ZZIP_DISK_FILE so that subsequent + _read() operations will be able to get the next data portion or + return an eof condition for that file part wrapped in the zip archive. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_disk_fread</code> function reads more bytes into the output buffer specified as + arguments. The return value is null on eof or error, the stdio-like + interface can not distinguish between these so you need to check + with <code><a href="#zzip_disk_feof">zzip_disk_feof</a></code> for the difference. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_disk_fclose</code> function releases any zlib decoder info needed for decompression + and dumps the ZZIP_DISK_FILE* then. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_disk_feof</code> function allows to distinguish an error from an eof condition. + Actually, if we found an error but we did already reach eof then we + just keep on saying that it was an eof, so the app can just continue. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_disk_mmap">zzip_disk_mmap</a></b>(int fd) + : zzip__new__ ZZIP_DISK * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_init">zzip_disk_init</a></b>(ZZIP_DISK * disk, void *buffer, zzip_size_t buflen) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_new">zzip_disk_new</a></b>(void) + : zzip__new__ ZZIP_DISK * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_munmap">zzip_disk_munmap</a></b>(ZZIP_DISK * disk) + : int +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_open">zzip_disk_open</a></b>(char *filename) + : zzip__new__ ZZIP_DISK * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_buffer">zzip_disk_buffer</a></b>(void *buffer, size_t buflen) : zzip__new__ ZZIP_DISK * +</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_close">zzip_disk_close</a></b>(ZZIP_DISK * disk) + : int +</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td> <em> turn a filehandle into a mmapped zip disk archive handle</em> </td><td align="right"> <em><small>zzip/mmapped.c</small></em></td></table><p> + The <code>zzip_disk_mmap</code> function uses the given file-descriptor to detect the length of the + file and calls the system <a href="http://www.opengroup.org/onlinepubs/000095399/functions/mmap.html"><code>mmap(2)</code></a> to put it in main memory. If it is + successful then a newly allocated ZZIP_DISK* is returned with + disk->buffer pointing to the mapview of the zipdisk content. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_disk_init</code> function does primary initialization of a disk-buffer struct. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_disk_new</code> function allocates a new disk-buffer with <a href="http://www.opengroup.org/onlinepubs/000095399/functions/malloc.html"><code>malloc(3)</code></a> +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_disk_munmap</code> function is the inverse of <code><a href="#zzip_disk_mmap">zzip_disk_mmap</a></code> and using the system + munmap(2) on the buffer area and <a href="http://www.opengroup.org/onlinepubs/000095399/functions/free.html"><code>free(3)</code></a> on the ZZIP_DISK structure. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_disk_open</code> function opens the given archive by name and turn the filehandle + to <code><a href="#zzip_disk_mmap">zzip_disk_mmap</a></code> for bringing it to main memory. If it can not + be <a href="http://www.opengroup.org/onlinepubs/000095399/functions/mmap.html"><code>mmap(2)</code></a>'ed then we slurp the whole file into a newly <a href="http://www.opengroup.org/onlinepubs/000095399/functions/malloc.html"><code>malloc(2)</code></a>'ed + memory block. Only if that fails too then we return null. Since handling + of disk->buffer is ambigous it should not be snatched away please. +</p> +</td></tr><tr><td valign="top"><p> The <code>zzip_disk_buffer</code> function will attach a buffer with a zip image + that was acquired from another source than a file. + Note that if zzip_disk_mmap fails then zzip_disk_open + will fall back and try to read the full file to memory + wrapping a ZZIP_DISK around the memory buffer just as + the <code>zzip_disk_buffer</code> function will do. Note that the <code>zzip_disk_buffer</code> function will not + own the buffer, it will neither be written nor free()d. +</p> +</td></tr><tr><td valign="top"><p> + The <code>zzip_disk_close</code> function will release all data needed to access a (mmapped) + zip archive, including any malloc()ed blocks, sharedmem mappings + and it dumps the handle struct as well. +</p> +</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd></dl> +</body></html> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_compile_check_sizeof.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_compile_check_sizeof.m4 new file mode 100644 index 00000000000..a1cdb402636 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_compile_check_sizeof.m4 @@ -0,0 +1,80 @@ +dnl /usr/share/aclocal/ac-archive-cvs/ac_compile_check_sizeof.m4 +dnl @synopsis AC_COMPILE_CHECK_SIZEOF(TYPE [, HEADERS [, EXTRA_SIZES...]]) +dnl +dnl This macro checks for the size of TYPE using compile checks, not +dnl run checks. You can supply extra HEADERS to look into. the check +dnl will cycle through 1 2 4 8 16 and any EXTRA_SIZES the user +dnl supplies. If a match is found, it will #define SIZEOF_`TYPE' to +dnl that value. Otherwise it will emit a configure time error +dnl indicating the size of the type could not be determined. +dnl +dnl The trick is that C will not allow duplicate case labels. While +dnl this is valid C code: +dnl +dnl switch (0) case 0: case 1:; +dnl +dnl The following is not: +dnl +dnl switch (0) case 0: case 0:; +dnl +dnl Thus, the AC_TRY_COMPILE will fail if the currently tried size does +dnl not match. +dnl +dnl Here is an example skeleton configure.in script, demonstrating the +dnl macro's usage: +dnl +dnl AC_PROG_CC +dnl AC_CHECK_HEADERS(stddef.h unistd.h) +dnl AC_TYPE_SIZE_T +dnl AC_CHECK_TYPE(ssize_t, int) +dnl +dnl headers='#ifdef HAVE_STDDEF_H +dnl #include <stddef.h> +dnl #endif +dnl #ifdef HAVE_UNISTD_H +dnl #include <unistd.h> +dnl #endif +dnl ' +dnl +dnl AC_COMPILE_CHECK_SIZEOF(char) +dnl AC_COMPILE_CHECK_SIZEOF(short) +dnl AC_COMPILE_CHECK_SIZEOF(int) +dnl AC_COMPILE_CHECK_SIZEOF(long) +dnl AC_COMPILE_CHECK_SIZEOF(unsigned char *) +dnl AC_COMPILE_CHECK_SIZEOF(void *) +dnl AC_COMPILE_CHECK_SIZEOF(size_t, $headers) +dnl AC_COMPILE_CHECK_SIZEOF(ssize_t, $headers) +dnl AC_COMPILE_CHECK_SIZEOF(ptrdiff_t, $headers) +dnl AC_COMPILE_CHECK_SIZEOF(off_t, $headers) +dnl +dnl @category Misc +dnl @author Kaveh Ghazi <ghazi@caip.rutgers.edu> +dnl @version 2000-07-19 +dnl @license GPLWithACException + +AC_DEFUN([AC_COMPILE_CHECK_SIZEOF], +[changequote(<<, >>)dnl +dnl The name to #define. +define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl +dnl The cache variable name. +define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl +changequote([, ])dnl +AC_MSG_CHECKING(size of $1) +AC_CACHE_VAL(AC_CV_NAME, +[for ac_size in 4 8 1 2 16 $2 ; do # List sizes in rough order of prevalence. + AC_TRY_COMPILE([#include "confdefs.h" +#include <sys/types.h> +$2 +], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size) + if test x$AC_CV_NAME != x ; then break; fi +done +]) +if test x$AC_CV_NAME = x ; then + AC_MSG_ERROR([cannot determine a size for $1]) +fi +AC_MSG_RESULT($AC_CV_NAME) +AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1]) +undefine([AC_TYPE_NAME])dnl +undefine([AC_CV_NAME])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_set_default_paths_system.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_set_default_paths_system.m4 new file mode 100644 index 00000000000..e2cc5aa9faa --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_set_default_paths_system.m4 @@ -0,0 +1,106 @@ +dnl /usr/share/aclocal/guidod-cvs/ac_set_default_paths_system.m4 +dnl @synopsis AC_SET_DEFAULT_PATHS_SYSTEM +dnl +dnl the most interesting changes go about windows-targets - where the +dnl default_prefix is set to /programs, and quite some directories are +dnl aliased: sbindir := libdir := bindir and the docprefix-defaults are +dnl also a bit different, even on FHS2-compliant systems where the +dnl mandir is going to $prefix/man only if prefix=/usr, otherwise they +dnl shall go to $datadir/man. We use an extra docprefix to express it +dnl which is either defined as being prefix or datadir. not SUBSTed +dnl here. +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2001-08-25 +dnl @license GPLWithACException + +AC_DEFUN([AC_SET_DEFAULT_PATHS_SYSTEM], +[AC_REQUIRE([AC_CANONICAL_HOST]) # -------------------------------------------- +case "$prefix:$ac_default_prefix" in + NONE:/usr/local) + result="" + AC_MSG_CHECKING(default prefix path) + case "${target_os}" in + *cygwin* | *mingw* | *uwin* | *djgpp | *emx* ) + if test "${host_os}" = "${target_os}" ; then + ac_default_prefix="/programs" + result="(win/dos target)" + else + case "$PATH" in + *:/usr/local/cross-tools/$target_alias/bin:*) + ac_default_prefix="/usr/local/cross-tools/$target_alias" ;; + *:/usr/local/$target_alias/bin:*) + ac_default_prefix="/usr/local/$target_alias" ;; + *:/usr/local/$target_cpu-$target_os/bin:*) + ac_default_prefix="/usr/local/$target_cpu-$target_os" ;; + *) + ac_default_prefix="/programs" ;; + esac + result="(win/dos cross-compiler)" + fi + ;; + esac + AC_MSG_RESULT($ac_default_prefix $result) + ;; +esac +AC_MSG_CHECKING(default prefix system) +result="$prefix" ; test "$result" = "NONE" && result="$ac_default_prefix" +case ${result} in + /programs | /programs/*) result="is win-/programs" + # on win/dos, .exe .dll and .cfg live in the same directory + libdir=`echo $libdir |sed -e 's:^..exec_prefix./lib$:${bindir}:'` + sbindir=`echo $sbindir |sed -e 's:^..exec_prefix./sbin$:${libdir}:'` + sysconfdir=`echo $sysconfdir |sed -e 's:^..prefix./etc$:${sbindir}:'` + libexecdir=`echo $libexecdir |sed -e 's:/libexec$:/system:'` + # help-files shall be set with --infodir, docprefix is datadir + docprefix="${datadir}" + mandir=`echo $mandir \ + |sed -e 's:^..prefix./man$:${datadir}/info:'` + includedir=`echo $includedir \ + |sed -e 's:^..prefix./include$:${datadir}/include:'` + # other state files (but /etc) are moved to datadir + sharedstatedir=`echo $sharedstatedir \ + |sed -e 's:^..prefix./com$:${datadir}/default:'` + localstatedir=`echo $localstatedir \ + |sed -e 's:^..prefix./var$:${datadir}/current:'` + ;; + /usr) result="is /usr-shipped" + # doc files are left at prefix + docprefix="${prefix}" + # state files go under /top + sysconfdir=`echo $sysconfdir |sed -e 's:^..prefix./etc$:/etc:'` + sharedstatedir=`echo $sharedstatedir \ + |sed -e 's:^..prefix./com$:/etc/default:'` + # $prefix/var is going to end up in /var/lib + localstatedir=`echo $localstatedir \ + |sed -e 's:^..prefix./var$:/var/lib:'` + ;; + /opt | /opt/*) result="is /opt-package" + # state files go under /top/prefix + sysconfdir=`echo $sysconfdir \ + |sed -e 's:^..prefix./etc$:/etc${prefix}:'` + sharedstatedir=`echo $sharedstatedir \ + |sed -e 's:^..prefix./com$:/etc/default${prefix}:'` + # $prefix/var is going to to be /var$prefix... once again + localstatedir=`echo $localstatedir \ + |sed -e 's:^..prefix./var$:/var${prefix}:'` + # doc files are left at prefix + docprefix="${prefix}" + ;; + *) result="is /local-package" + # doc files are moved from prefix down to datadir + docprefix="${datadir}" + mandir=`echo $mandir \ + |sed -e 's:^..prefix./man$:${datadir}/man:'` + infodir=`echo $infodir \ + |sed -e 's:^..prefix./infodir$:${datadir}/info:'` + # never use $prefix/com - that is no good idea + sharedstatedir=`echo $sharedstatedir \ + |sed -e 's:^..prefix./com$:${sysconfdir}/default:'` + ;; +esac +AC_MSG_RESULT($result) +# -------------------------------------------------------- +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_sys_largefile_sensitive.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_sys_largefile_sensitive.m4 new file mode 100644 index 00000000000..235c7f9acaa --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ac_sys_largefile_sensitive.m4 @@ -0,0 +1,46 @@ +dnl @synopsis AC_SYS_LARGEFILE_SENSITIVE +dnl +dnl checker whether the current system is sensitive to -Ddefines making +dnl off_t having different types/sizes. Automatically define a config.h +dnl symbol LARGEFILE_SENSITIVE if that is the case, otherwise leave +dnl everything as is. +dnl +dnl This macro builds on top of AC_SYS_LARGEFILE to detect whether +dnl special options are neede to make the code use 64bit off_t - in +dnl many setups this will also make the code use 64bit off_t +dnl immediatly. +dnl +dnl The common use of a LARGEFILE_SENSITIVE config.h-define is to +dnl rename exported functions, usually adding a 64 to the original +dnl function name. Such renamings are only needed on systems being both +dnl (a) 32bit off_t by default and (b) implementing large.file +dnl extensions (as for unix98). +dnl +dnl a renaming section could look like this: +dnl +dnl #if defined LARGEFILE_SENSITIVE && _FILE_OFFSET_BITS+0 == 64 +dnl #define zzip_open zzip_open64 +dnl #define zzip_seek zzip_seek64 +dnl #endif +dnl +dnl for libraries, it is best to take advantage of the prefix-config.h +dnl macro, otherwise you want to export a renamed LARGEFILE_SENSITIVE +dnl in an installed header file. -> see AX_PREFIX_CONFIG_H +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2009-07-27 +dnl @license GPLWithACException + +AC_DEFUN([AC_SYS_LARGEFILE_SENSITIVE],[dnl +AC_REQUIRE([AC_SYS_LARGEFILE])dnl +# we know about some internals of ac_sys_largefile here... +AC_MSG_CHECKING(whether system differentiates 64bit off_t by defines) +ac_cv_sys_largefile_sensitive="no" +if test ".${ac_cv_sys_file_offset_bits-no}${ac_cv_sys_large_files-no}" != ".nono" +then ac_cv_sys_largefile_sensitive="yes" + AC_DEFINE(LARGEFILE_SENSITIVE, 1, + [whether the system defaults to 32bit off_t but can do 64bit when requested]) +fi +AC_MSG_RESULT([$ac_cv_sys_largefile_sensitive]) +]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/acx_restrict.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/acx_restrict.m4 new file mode 100644 index 00000000000..d5a9562ea0d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/acx_restrict.m4 @@ -0,0 +1,38 @@ +dnl /usr/share/aclocal/ac-archive-cvs/acx_restrict.m4 +dnl @synopsis ACX_C_RESTRICT +dnl +dnl @obsoleted Replaced by AC_C_RESTRICT in Autoconf 2.58 +dnl +dnl This macro determines whether the C compiler supports the +dnl "restrict" keyword introduced in ANSI C99, or an equivalent. Does +dnl nothing if the compiler accepts the keyword. Otherwise, if the +dnl compiler supports an equivalent (like gcc's __restrict__) defines +dnl "restrict" to be that. Otherwise, defines "restrict" to be empty. +dnl +dnl @category Obsolete +dnl @author Steven G. Johnson <stevenj@alum.mit.edu> +dnl @version 2005-05-31 +dnl @license GPLWithACException + +AC_DEFUN([ACX_C_RESTRICT], +[AC_CACHE_CHECK([for C restrict keyword], acx_cv_c_restrict, +[acx_cv_c_restrict=unsupported + AC_LANG_SAVE + AC_LANG_C + # Try the official restrict keyword, then gcc's __restrict__, then + # SGI's __restrict. __restrict has slightly different semantics than + # restrict (it's a bit stronger, in that __restrict pointers can't + # overlap even with non __restrict pointers), but I think it should be + # okay under the circumstances where restrict is normally used. + for acx_kw in restrict __restrict__ __restrict; do + AC_TRY_COMPILE([], [float * $acx_kw x;], [acx_cv_c_restrict=$acx_kw; break]) + done + AC_LANG_RESTORE +]) + if test "$acx_cv_c_restrict" != "restrict"; then + acx_kw="$acx_cv_c_restrict" + if test "$acx_kw" = unsupported; then acx_kw=""; fi + AC_DEFINE_UNQUOTED(restrict, $acx_kw, [Define to equivalent of C99 restrict keyword, or to nothing if this is not supported. Do not define if restrict is supported directly.]) + fi +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_gcc_option.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_gcc_option.m4 new file mode 100644 index 00000000000..c8a6411f81d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_gcc_option.m4 @@ -0,0 +1,193 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_cflags_gcc_option.m4 +dnl @synopsis AX_CFLAGS_GCC_OPTION (optionflag [,[shellvar][,[A][,[NA]]]) +dnl +dnl AX_CFLAGS_GCC_OPTION(-fvomit-frame) would show a message as like +dnl "checking CFLAGS for gcc -fvomit-frame ... yes" and adds the +dnl optionflag to CFLAGS if it is understood. You can override the +dnl shellvar-default of CFLAGS of course. The order of arguments stems +dnl from the explicit macros like AX_CFLAGS_WARN_ALL. +dnl +dnl The cousin AX_CXXFLAGS_GCC_OPTION would check for an option to add +dnl to CXXFLAGS - and it uses the autoconf setup for C++ instead of C +dnl (since it is possible to use different compilers for C and C++). +dnl +dnl The macro is a lot simpler than any special AX_CFLAGS_* macro (or +dnl ac_cxx_rtti.m4 macro) but allows to check for arbitrary options. +dnl However, if you use this macro in a few places, it would be great +dnl if you would make up a new function-macro and submit it to the +dnl ac-archive. +dnl +dnl - $1 option-to-check-for : required ("-option" as non-value) +dnl - $2 shell-variable-to-add-to : CFLAGS (or CXXFLAGS in the other case) +dnl - $3 action-if-found : add value to shellvariable +dnl - $4 action-if-not-found : nothing +dnl +dnl note: in earlier versions, $1-$2 were swapped. We try to detect the +dnl situation and accept a $2=~/-/ as being the old +dnl option-to-check-for. +dnl +dnl also: there are other variants that emerged from the original macro +dnl variant which did just test an option to be possibly added. +dnl However, some compilers accept an option silently, or possibly for +dnl just another option that was not intended. Therefore, we have to do +dnl a generic test for a compiler family. For gcc we check "-pedantic" +dnl being accepted which is also understood by compilers who just want +dnl to be compatible with gcc even when not being made from gcc +dnl sources. +dnl +dnl see also: +dnl +dnl AX_CFLAGS_SUN_OPTION AX_CFLAGS_HPUX_OPTION +dnl AX_CFLAGS_AIX_OPTION AX_CFLAGS_IRIX_OPTION +dnl +dnl @category C +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2006-12-12 +dnl @license GPLWithACException + +AC_DEFUN([AX_CFLAGS_GCC_OPTION_OLD], [dnl +AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_gcc_option_$2])dnl +AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_C + ac_save_[]FLAGS="$[]FLAGS" +for ac_arg dnl +in "-pedantic -Werror % m4_ifval($2,$2,-option)" dnl GCC + "-pedantic % m4_ifval($2,$2,-option) %% no, obsolete" dnl new GCC + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + + +dnl the only difference - the LANG selection... and the default FLAGS + +AC_DEFUN([AX_CXXFLAGS_GCC_OPTION_OLD], [dnl +AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_gcc_option_$2])dnl +AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_[]FLAGS="$[]FLAGS" +for ac_arg dnl +in "-pedantic -Werror % m4_ifval($2,$2,-option)" dnl GCC + "-pedantic % m4_ifval($2,$2,-option) %% no, obsolete" dnl new GCC + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + +dnl ------------------------------------------------------------------------- + +AC_DEFUN([AX_CFLAGS_GCC_OPTION_NEW], [dnl +AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_gcc_option_$1])dnl +AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_C + ac_save_[]FLAGS="$[]FLAGS" +for ac_arg dnl +in "-pedantic -Werror % m4_ifval($1,$1,-option)" dnl GCC + "-pedantic % m4_ifval($1,$1,-option) %% no, obsolete" dnl new GCC + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"]) + m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + + +dnl the only difference - the LANG selection... and the default FLAGS + +AC_DEFUN([AX_CXXFLAGS_GCC_OPTION_NEW], [dnl +AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_gcc_option_$1])dnl +AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_[]FLAGS="$[]FLAGS" +for ac_arg dnl +in "-pedantic -Werror % m4_ifval($1,$1,-option)" dnl GCC + "-pedantic % m4_ifval($1,$1,-option) %% no, obsolete" dnl new GCC + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"]) + m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + +AC_DEFUN([AX_CFLAGS_GCC_OPTION],[ifelse(m4_bregexp([$2],[-]),-1, +[AX_CFLAGS_GCC_OPTION_NEW($@)],[AX_CFLAGS_GCC_OPTION_OLD($@)])]) + +AC_DEFUN([AX_CXXFLAGS_GCC_OPTION],[ifelse(m4_bregexp([$2],[-]),-1, +[AX_CXXFLAGS_GCC_OPTION_NEW($@)],[AX_CXXFLAGS_GCC_OPTION_OLD($@)])]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_no_writable_strings.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_no_writable_strings.m4 new file mode 100644 index 00000000000..db9997ea6fd --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_no_writable_strings.m4 @@ -0,0 +1,145 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_cflags_no_writable_strings.m4 +dnl @synopsis AX_CFLAGS_NO_WRITABLE_STRINGS [(shellvar [,default, [A/NA]])] +dnl +dnl Try to find a compiler option that makes all stringliteral +dnl readonly. +dnl +dnl The sanity check is done by looking at string.h which has a set of +dnl strcpy definitions that should be defined with const-modifiers to +dnl not emit a warning in all so many places. +dnl +dnl For the GNU CC compiler it will be -fno-writable-strings +dnl -Wwrite-strings The result is added to the shellvar being CFLAGS by +dnl default. +dnl +dnl DEFAULTS: +dnl +dnl - $1 shell-variable-to-add-to : CFLAGS +dnl - $2 add-value-if-not-found : nothing +dnl - $3 action-if-found : add value to shellvariable +dnl - $4 action-if-not-found : nothing +dnl +dnl @category C +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2006-12-12 +dnl @license GPLWithACException + +AC_DEFUN([AX_CFLAGS_NO_WRITABLE_STRINGS],[dnl +AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_no_writable_strings])dnl +AC_CACHE_CHECK([m4_ifval([$1],[$1],FLAGS) making strings readonly], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_C + ac_save_[]FLAGS="$[]FLAGS" +# IRIX C compiler: +# -use_readonly_const is the default for IRIX C, +# puts them into .rodata, but they are copied later. +# need to be "-G0 -rdatashared" for strictmode but +# I am not sure what effect that has really. - guidod +for ac_arg dnl +in "-pedantic % -fno-writable-strings -Wwrite-strings" dnl GCC + "-pedantic % -fconst-strings -Wwrite-strings" dnl newer GCC + "-v -Xc % -xstrconst" dnl Solaris C - strings go into readonly segment + "+w1 -Aa % +ESlit" dnl HP-UX C - strings go into readonly segment + "-w0 -std1 % -readonly_strings" dnl Digital Unix - again readonly segment + "-fullwarn -use_readonly_const %% ok, its the default" dnl IRIX C + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done +case ".$VAR" in + .|.no|.no,*) ;; + *) # sanity check - testing strcpy() from string.h + cp config.log config.tmp + AC_TRY_COMPILE([#include <string.h>],[ + char test[16]; + if (strcpy (test, "test")) return 1;], + dnl the original did use test -n `$CC testprogram.c` + [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 + then VAR="no, suppressed, string.h," ; fi], + [VAR="no, suppressed, string.h"]) + rm config.tmp + ;; +esac + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ + AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + +dnl the only difference - the LANG selection... and the default FLAGS + +AC_DEFUN([AX_CXXFLAGS_NO_WRITABLE_STRINGS],[dnl +AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_no_writable_strings])dnl +AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) making strings readonly], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_[]FLAGS="$[]FLAGS" +# IRIX C compiler: +# -use_readonly_const is the default for IRIX C, +# puts them into .rodata, but they are copied later. +# need to be "-G0 -rdatashared" for strictmode but +# I am not sure what effect that has really. - guidod +for ac_arg dnl +in "-pedantic -Werror % -fno-writable-strings -Wwrite-strings" dnl GCC + "-pedantic -Werror % -fconst-strings -Wwrite-strings" dnl newer GCC + "-pedantic % -fconst-strings %% no, const-strings is default" dnl newer GCC + "-v -Xc % -xstrconst" dnl Solaris C - strings go into readonly segment + "+w1 -Aa % +ESlit" dnl HP-UX C - strings go into readonly segment + "-w0 -std1 % -readonly_strings" dnl Digital Unix - again readonly segment + "-fullwarn -use_readonly_const %% ok, its the default" dnl IRIX C + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done +case ".$VAR" in + .|.no|.no,*) ;; + *) # sanity check - testing strcpy() from string.h + cp config.log config.tmp + AC_TRY_COMPILE([#include <string.h>],[ + char test[16]; + if (strcpy (test, "test")) return 1;], + dnl the original did use test -n `$CC testprogram.c` + [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 + then VAR="no, suppressed, string.h," ; fi], + [VAR="no, suppressed, string.h"]) + rm config.tmp + ;; +esac + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ + AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_strict_prototypes.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_strict_prototypes.m4 new file mode 100644 index 00000000000..bd19c17962b --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_strict_prototypes.m4 @@ -0,0 +1,136 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_cflags_strict_prototypes.m4 +dnl @synopsis AX_CFLAGS_STRICT_PROTOTYPES [(shellvar [,default, [A/NA]] +dnl +dnl Try to find a compiler option that requires strict prototypes. +dnl +dnl The sanity check is done by looking at sys/signal.h which has a set +dnl of macro-definitions SIG_DFL and SIG_IGN that are cast to the local +dnl signal-handler type. If that signal-handler type is not fully +dnl qualified then the system headers are not seen as strictly +dnl prototype clean. +dnl +dnl For the GNU CC compiler it will be -fstrict-prototypes +dnl -Wstrict-prototypes The result is added to the shellvar being +dnl CFLAGS by default. +dnl +dnl DEFAULTS: +dnl +dnl - $1 shell-variable-to-add-to : CFLAGS +dnl - $2 add-value-if-not-found : nothing +dnl - $3 action-if-found : add value to shellvariable +dnl - $4 action-if-not-found : nothing +dnl +dnl @category C +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2006-12-12 +dnl @license GPLWithACException + +AC_DEFUN([AX_CFLAGS_STRICT_PROTOTYPES],[dnl +AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_strict_prototypes])dnl +AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for strict prototypes], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_C + ac_save_[]FLAGS="$[]FLAGS" +for ac_arg dnl +in "-pedantic % -fstrict-prototypes -Wstrict-prototypes" dnl GCC + "-pedantic % -Wstrict-prototypes" dnl try to warn atleast + "-pedantic % -Wmissing-prototypes" dnl or another warning + "-pedantic % -Werror-implicit-function-declaration" dnl + "-pedantic % -Wimplicit-function-declaration" dnl + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done +case ".$VAR" in + .|.no|.no,*) ;; + *) # sanity check with signal() from sys/signal.h + cp config.log config.tmp + AC_TRY_COMPILE([#include <signal.h>],[ + if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1; + if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;], + dnl the original did use test -n `$CC testprogram.c` + [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 +then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1 +then VAR="no, suppressed, signal.h," ; fi ; fi], + [VAR="no, suppressed, signal.h"]) + rm config.tmp + ;; +esac + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ + AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + +dnl the only difference - the LANG selection... and the default FLAGS + +AC_DEFUN([AX_CXXFLAGS_STRICT_PROTOTYPES],[dnl +AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_strict_prototypes])dnl +AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for strict prototypes], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_[]FLAGS="$[]FLAGS" +for ac_arg dnl +in "-pedantic -Werror % -fstrict-prototypes -Wstrict-prototypes" dnl GCC + "-pedantic -Werror % -Wstrict-prototypes" dnl try to warn atleast + "-pedantic -Werror % -Wmissing-prototypes" dnl try to warn atleast + "-pedantic -Werror % -Werror-implicit-function-declaration" dnl + "-pedantic -Werror % -Wimplicit-function-declaration" dnl + "-pedantic % -Wstrict-prototypes %% no, unsupported in C++" dnl oops + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done +case ".$VAR" in + .|.no|.no,*) ;; + *) # sanity check with signal() from sys/signal.h + cp config.log config.tmp + AC_TRY_COMPILE([#include <signal.h>],[ + if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1; + if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;], + dnl the original did use test -n `$CC testprogram.c` + [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 +then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1 +then VAR="no, suppressed, signal.h," ; fi ; fi], + [VAR="no, suppressed, signal.h"]) + rm config.tmp + ;; +esac + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ + AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_warn_all.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_warn_all.m4 new file mode 100644 index 00000000000..15b3f394814 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_cflags_warn_all.m4 @@ -0,0 +1,121 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_cflags_warn_all.m4 +dnl @synopsis AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] +dnl +dnl Try to find a compiler option that enables most reasonable +dnl warnings. This macro is directly derived from VL_PROG_CC_WARNINGS +dnl which is split up into two AX_CFLAGS_WARN_ALL and +dnl AX_CFLAGS_WARN_ALL_ANSI +dnl +dnl For the GNU CC compiler it will be -Wall (and -ansi -pedantic) The +dnl result is added to the shellvar being CFLAGS by default. +dnl +dnl Currently this macro knows about GCC, Solaris C compiler, Digital +dnl Unix C compiler, C for AIX Compiler, HP-UX C compiler, IRIX C +dnl compiler, NEC SX-5 (Super-UX 10) C compiler, and Cray J90 (Unicos +dnl 10.0.0.8) C compiler. +dnl +dnl - $1 shell-variable-to-add-to : CFLAGS +dnl - $2 add-value-if-not-found : nothing +dnl - $3 action-if-found : add value to shellvariable +dnl - $4 action-if-not-found : nothing +dnl +dnl @category C +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2006-12-12 +dnl @license GPLWithACException + +AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl +AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_warn_all])dnl +AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_C + ac_save_[]FLAGS="$[]FLAGS" +for ac_arg dnl +in "-pedantic % -Wall" dnl GCC + "-xstrconst % -v" dnl Solaris C + "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix + "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX + "-ansi -ansiE % -fullwarn" dnl IRIX + "+ESlit % +w1" dnl HP-UX C + "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) + "-h conform % -h msglevel 2" dnl Cray C (Unicos) + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ + AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + +dnl the only difference - the LANG selection... and the default FLAGS + +AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl +AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_warn_all])dnl +AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], +VAR,[VAR="no, unknown" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_[]FLAGS="$[]FLAGS" +for ac_arg dnl +in "-pedantic % -Wall" dnl GCC + "-xstrconst % -v" dnl Solaris C + "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix + "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX + "-ansi -ansiE % -fullwarn" dnl IRIX + "+ESlit % +w1" dnl HP-UX C + "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) + "-h conform % -h msglevel 2" dnl Cray C (Unicos) + # +do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` + AC_TRY_COMPILE([],[return 0;], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) +done + FLAGS="$ac_save_[]FLAGS" + AC_LANG_RESTORE +]) +case ".$VAR" in + .ok|.ok,*) m4_ifvaln($3,$3) ;; + .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ + AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; + *) m4_ifvaln($3,$3,[ + if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null + then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) + else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) + m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" + fi ]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +AS_VAR_POPDEF([FLAGS])dnl +]) + +dnl implementation tactics: +dnl the for-argument contains a list of options. The first part of +dnl these does only exist to detect the compiler - usually it is +dnl a global option to enable -ansi or -extrawarnings. All other +dnl compilers will fail about it. That was needed since a lot of +dnl compilers will give false positives for some option-syntax +dnl like -Woption or -Xoption as they think of it is a pass-through +dnl to later compile stages or something. The "%" is used as a +dnl delimimiter. A non-option comment can be given after "%%" marks +dnl which will be shown but not added to the respective C/CXXFLAGS. + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_check_aligned_access_required.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_check_aligned_access_required.m4 new file mode 100644 index 00000000000..3f0872679bc --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_check_aligned_access_required.m4 @@ -0,0 +1,64 @@ +dnl @synopsis AX_CHECK_ALIGNED_ACCESS_REQUIRED +dnl +dnl Copyright (C) 2006, 2009 Guido U. Draheim <guidod@gmx.de> +dnl Copyright (C) 2010 Peter Breitenlohner <tex-live@tug.org> +dnl +dnl This file is free software; the copyright holders +dnl give unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl While the x86 CPUs allow access to memory objects to be unaligned +dnl it happens that most of the modern designs require objects to be +dnl aligned - or they will fail with a buserror. That mode is quite known +dnl by big-endian machines (sparc, etc) however the alpha cpu is little- +dnl endian. +dnl +dnl The following function will test for aligned access to be required and +dnl set a config.h define HAVE_ALIGNED_ACCESS_REQUIRED (name derived by +dnl standard usage). Structures loaded from a file (or mmapped to memory) +dnl should be accessed per-byte in that case to avoid segfault type errors. +dnl +dnl @category C +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @author Peter Breitenlohner <tex-live@tug.org> +dnl @version 2010-02-01 +dnl @license GPLWithACException +dnl @license BSD + +AC_DEFUN([AX_CHECK_ALIGNED_ACCESS_REQUIRED], +[AC_CACHE_CHECK([if pointers to integers require aligned access], + [ax_cv_have_aligned_access_required], +[if test "$cross_compiling" = "yes"; then + case "$host_cpu" in alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1) + ax_cv_have_aligned_access_required="yes" + ;; esac +else + AC_TRY_RUN([ +#include <stdio.h> +#include <stdlib.h> + +int main() +{ + char* string = malloc(40); + int i; + for (i=0; i < 40; i++) string[[i]] = i; + { + void* s = string; + int* p = s+1; + int* q = s+2; + + if (*p == *q) { return 1; } + } + return 0; +} + ], + [ax_cv_have_aligned_access_required=yes], + [ax_cv_have_aligned_access_required=no], + [ax_cv_have_aligned_access_required=no]) + ]) +fi +if test "$ax_cv_have_aligned_access_required" = yes ; then + AC_DEFINE([HAVE_ALIGNED_ACCESS_REQUIRED], [1], + [Define if pointers to integers require aligned access]) +fi +]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_configure_args.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_configure_args.m4 new file mode 100644 index 00000000000..597b6b079f4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_configure_args.m4 @@ -0,0 +1,36 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_configure_args.m4 +dnl @synopsis AX_CONFIGURE_ARGS +dnl +dnl Helper macro for AX_ENABLE_BUILDDIR and AX_ENABLE_BUILDDIR_UNAME +dnl +dnl The traditional way of starting a subdir-configure is running the +dnl script with ${1+"$@"} but since autoconf 2.60 this is broken. +dnl Instead we have to rely on eval'ing $ac_configure_args however +dnl some old autoconf versions do not provide that. To ensure maximum +dnl portability of autoconf extension macros this helper can be +dnl AC_REQUIRE'd so that $ac_configure_args will alsways be present. +dnl +dnl Sadly, the traditional "exec $SHELL" of the enable_builddir macros +dnl is spoiled now and must be replaced by eval + exit $? +dnl +dnl example: +dnl AC_DEFUN([AX_ENABLE_SUBDIR],[dnl +dnl AC_REQUIRE([AX_CONFIGURE_ARGS])dnl +dnl eval $SHELL $ac_configure_args || exit $? +dnl ...]) +dnl +dnl @category Misc +dnl @author Guido Draheim +dnl @version 2007-02-01 +dnl @license GPLWithACException + +AC_DEFUN([AX_CONFIGURE_ARGS],[ + # [$]@ is unsable in 2.60+ but earlier autoconf had no ac_configure_args + if test "${ac_configure_args+set}" != "set" ; then + ac_configure_args= + for ac_arg in ${1+"[$]@"}; do + ac_configure_args="$ac_configure_args '$ac_arg'" + done + fi +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_create_pkgconfig_info.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_create_pkgconfig_info.m4 new file mode 100644 index 00000000000..9af0bbf5d5c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_create_pkgconfig_info.m4 @@ -0,0 +1,319 @@ +dnl ______ /usr/share/aclocal/guidod-cvs/ax_create_pkgconfig_info.m4 ______ +dnl @synopsis AX_CREATE_PKGCONFIG_INFO [(outputfile, [requires [,libs [,summary [,cflags [, ldflags]]]]])] +dnl +dnl defaults: +dnl +dnl $1 = $PACKAGE_NAME.pc +dnl $2 = (empty) +dnl $3 = $PACKAGE_LIBS $LIBS (as set at that point in configure.ac) +dnl $4 = $PACKAGE_SUMMARY (or $1 Library) +dnl $5 = $CPPFLAGS $PACKAGE_CFLAGS (as set at the point in configure.ac) +dnl $6 = $LDFLAGS $PACKAGE_LDFLAGS (as set at the point in configure.ac) +dnl +dnl PACKAGE_NAME defaults to $PACKAGE if not set. +dnl PACKAGE_LIBS defaults to -l$PACKAGE_NAME if not set. +dnl +dnl the resulting file is called $PACKAGE.pc.in / $PACKAGE.pc +dnl +dnl You will find this macro most useful in conjunction with +dnl ax_spec_defaults that can read good initializers from the .spec +dnl file. In consequencd, most of the generatable installable stuff can +dnl be made from information being updated in a single place for the +dnl whole project. +dnl +dnl @category InstalledPackages +dnl @author Sven Verdoolaege <skimo*liacs.nl> +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2003-10-19 +dnl @license GPLWithACException + +AC_DEFUN([AX_CREATE_PKGCONFIG_INFO],[dnl +AS_VAR_PUSHDEF([PKGCONFIG_suffix],[ax_create_pkgconfig_suffix])dnl +AS_VAR_PUSHDEF([PKGCONFIG_libdir],[ax_create_pkgconfig_libdir])dnl +AS_VAR_PUSHDEF([PKGCONFIG_libfile],[ax_create_pkgconfig_libfile])dnl +AS_VAR_PUSHDEF([PKGCONFIG_libname],[ax_create_pkgconfig_libname])dnl +AS_VAR_PUSHDEF([PKGCONFIG_version],[ax_create_pkgconfig_version])dnl +AS_VAR_PUSHDEF([PKGCONFIG_description],[ax_create_pkgconfig_description])dnl +AS_VAR_PUSHDEF([PKGCONFIG_requires],[ax_create_pkgconfig_requires])dnl +AS_VAR_PUSHDEF([PKGCONFIG_pkglibs],[ax_create_pkgconfig_pkglibs])dnl +AS_VAR_PUSHDEF([PKGCONFIG_libs],[ax_create_pkgconfig_libs])dnl +AS_VAR_PUSHDEF([PKGCONFIG_ldflags],[ax_create_pkgconfig_ldflags])dnl +AS_VAR_PUSHDEF([PKGCONFIG_cppflags],[ax_create_pkgconfig_cppflags])dnl +AS_VAR_PUSHDEF([PKGCONFIG_generate],[ax_create_pkgconfig_generate])dnl +AS_VAR_PUSHDEF([PKGCONFIG_src_libdir],[ax_create_pkgconfig_src_libdir])dnl +AS_VAR_PUSHDEF([PKGCONFIG_src_headers],[ax_create_pkgconfig_src_headers])dnl + +# we need the expanded forms... +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +AC_MSG_CHECKING(our pkgconfig libname) +test ".$PKGCONFIG_libname" != "." || \ +PKGCONFIG_libname="ifelse($1,,${PACKAGE_NAME},`basename $1 .pc`)" +test ".$PKGCONFIG_libname" != "." || \ +PKGCONFIG_libname="$PACKAGE" +PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"` +PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"` +AC_MSG_RESULT($PKGCONFIG_libname) + +AC_MSG_CHECKING(our pkgconfig version) +test ".$PKGCONFIG_version" != "." || \ +PKGCONFIG_version="${PACKAGE_VERSION}" +test ".$PKGCONFIG_version" != "." || \ +PKGCONFIG_version="$VERSION" +PKGCONFIG_version=`eval echo "$PKGCONFIG_version"` +PKGCONFIG_version=`eval echo "$PKGCONFIG_version"` +AC_MSG_RESULT($PKGCONFIG_version) + +AC_MSG_CHECKING(our pkgconfig_libdir) +test ".$pkgconfig_libdir" = "." && \ +pkgconfig_libdir='${libdir}/pkgconfig' +PKGCONFIG_libdir=`eval echo "$pkgconfig_libdir"` +PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"` +PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"` +AC_MSG_RESULT($pkgconfig_libdir) +test "$pkgconfig_libdir" != "$PKGCONFIG_libdir" && ( +AC_MSG_RESULT(expanded our pkgconfig_libdir... $PKGCONFIG_libdir)) +AC_SUBST([pkgconfig_libdir]) + +AC_MSG_CHECKING(our pkgconfig_libfile) +test ".$pkgconfig_libfile" != "." || \ +pkgconfig_libfile="ifelse($1,,$PKGCONFIG_libname.pc,`basename $1`)" +PKGCONFIG_libfile=`eval echo "$pkgconfig_libfile"` +PKGCONFIG_libfile=`eval echo "$PKGCONFIG_libfile"` +AC_MSG_RESULT($pkgconfig_libfile) +test "$pkgconfig_libfile" != "$PKGCONFIG_libfile" && ( +AC_MSG_RESULT(expanded our pkgconfig_libfile... $PKGCONFIG_libfile)) +AC_SUBST([pkgconfig_libfile]) + +AC_MSG_CHECKING(our package / suffix) +PKGCONFIG_suffix="$program_suffix" +test ".$PKGCONFIG_suffix" != .NONE || PKGCONFIG_suffix="" +AC_MSG_RESULT(${PACKAGE_NAME} / ${PKGCONFIG_suffix}) + +AC_MSG_CHECKING(our pkgconfig description) +PKGCONFIG_description="ifelse($4,,$PACKAGE_SUMMARY,$4)" +test ".$PKGCONFIG_description" != "." || \ +PKGCONFIG_description="$PKGCONFIG_libname Library" +PKGCONFIG_description=`eval echo "$PKGCONFIG_description"` +PKGCONFIG_description=`eval echo "$PKGCONFIG_description"` +AC_MSG_RESULT($PKGCONFIG_description) + +AC_MSG_CHECKING(our pkgconfig requires) +PKGCONFIG_requires="ifelse($2,,$PACKAGE_REQUIRES,$2)" +PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"` +PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"` +AC_MSG_RESULT($PKGCONFIG_requires) + +AC_MSG_CHECKING(our pkgconfig ext libs) +PKGCONFIG_pkglibs="$PACKAGE_LIBS" +test ".$PKGCONFIG_pkglibs" != "." || PKGCONFIG_pkglibs="-l$PKGCONFIG_libname" +PKGCONFIG_libs="ifelse($3,,$PKGCONFIG_pkglibs $LIBS,$3)" +PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"` +PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"` +AC_MSG_RESULT($PKGCONFIG_libs) + +AC_MSG_CHECKING(our pkgconfig cppflags) +PKGCONFIG_cppflags="ifelse($5,,$CPPFLAGS $PACKAGE_CFLAGS,$5)" +PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"` +PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"` +AC_MSG_RESULT($PKGCONFIG_cppflags) + +AC_MSG_CHECKING(our pkgconfig ldflags) +PKGCONFIG_ldflags="ifelse($6,,$LDFLAGS $PACKAGE_LDFLAGS,$5)" +PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"` +PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"` +AC_MSG_RESULT($PKGCONFIG_ldflags) + +test ".$PKGCONFIG_generate" != "." || \ +PKGCONFIG_generate="ifelse($1,,$PKGCONFIG_libname.pc,$1)" +PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"` +PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"` +test "$pkgconfig_libfile" != "$PKGCONFIG_generate" && ( +AC_MSG_RESULT(generate the pkgconfig later... $PKGCONFIG_generate)) + +if test ".$PKGCONFIG_src_libdir" = "." ; then +PKGCONFIG_src_libdir=`pwd` +PKGCONFIG_src_libdir=`AS_DIRNAME("$PKGCONFIG_src_libdir/$PKGCONFIG_generate")` +test ! -d $PKGCONFIG_src_libdir/src || \ +PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/src" +case ".$objdir" in +*libs) PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/$objdir" ;; esac +AC_MSG_RESULT(noninstalled pkgconfig -L $PKGCONFIG_src_libdir) +fi + +if test ".$PKGCONFIG_src_headers" = "." ; then +PKGCONFIG_src_headers=`pwd` +v="$ac_top_srcdir" ; +test ".$v" != "." || v="$ax_spec_dir" +test ".$v" != "." || v="$srcdir" +case "$v" in /*) PKGCONFIG_src_headers="" ;; esac +PKGCONFIG_src_headers=`AS_DIRNAME("$PKGCONFIG_src_headers/$v/x")` +test ! -d $PKGCONFIG_src_headers/incl[]ude || \ +PKGCONFIG_src_headers="$PKGCONFIG_src_headers/incl[]ude" +AC_MSG_RESULT(noninstalled pkgconfig -I $PKGCONFIG_src_headers) +fi + + +dnl AC_CONFIG_COMMANDS crap disallows to use $PKGCONFIG_libfile here... +AC_CONFIG_COMMANDS([$ax_create_pkgconfig_generate],[ +pkgconfig_generate="$ax_create_pkgconfig_generate" +if test ! -f "$pkgconfig_generate.in" +then generate="true" +elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null +then generate="true" +else generate="false"; +fi +if $generate ; then +AC_MSG_NOTICE(creating $pkgconfig_generate.in) +cat > $pkgconfig_generate.in <<AXEOF +# generated by configure / remove this line to disable regeneration +prefix=@prefix@ +exec_prefix=@exec_prefix@ +bindir=@bindir@ +libdir=@libdir@ +datarootdir=@datarootdir@ +datadir=@datadir@ +sysconfdir=@sysconfdir@ +includedir=@includedir@ +package=@PACKAGE@ +suffix=@suffix@ + +Name: @PACKAGE_NAME@ +Description: @PACKAGE_DESCRIPTION@ +Version: @PACKAGE_VERSION@ +Requires: @PACKAGE_REQUIRES@ +Libs: -L\${libdir} @LDFLAGS@ @LIBS@ +Cflags: -I\${includedir} @CPPFLAGS@ +AXEOF +fi # DONE generate $pkgconfig_generate.in +AC_MSG_NOTICE(creating $pkgconfig_generate) +cat >conftest.sed <<AXEOF +s|@prefix@|${pkgconfig_prefix}| +s|@exec_prefix@|${pkgconfig_execprefix}| +s|@bindir@|${pkgconfig_bindir}| +s|@libdir@|${pkgconfig_libdir}| +s|@datarootdir@|${pkgconfig_datarootdir}| +s|@datadir@|${pkgconfig_datadir}| +s|@sysconfdir@|${pkgconfig_sysconfdir}| +s|@includedir@|${pkgconfig_includedir}| +s|@suffix@|${pkgconfig_suffix}| +s|@PACKAGE@|${pkgconfig_package}| +s|@PACKAGE_NAME@|${pkgconfig_libname}| +s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}| +s|@PACKAGE_VERSION@|${pkgconfig_version}| +s|@PACKAGE_REQUIRES@|${pkgconfig_requires}| +s|@LIBS@|${pkgconfig_libs}| +s|@LDFLAGS@|${pkgconfig_ldflags}| +s|@CPPFLAGS@|${pkgconfig_cppflags}| +AXEOF +sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_generate +if test ! -s $pkgconfig_generate ; then + AC_MSG_ERROR([$pkgconfig_generate is empty]) +fi ; rm conftest.sed # DONE generate $pkgconfig_generate +pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'` +AC_MSG_NOTICE(creating $pkgconfig_uninstalled) +cat >conftest.sed <<AXEOF +s|@prefix@|${pkgconfig_prefix}| +s|@exec_prefix@|${pkgconfig_execprefix}| +s|@bindir@|${pkgconfig_bindir}| +s|@libdir@|${pkgconfig_src_libdir}| +s|@datarootdir@|${pkgconfig_datarootdir}| +s|@datadir@|${pkgconfig_datadir}| +s|@sysconfdir@|${pkgconfig_sysconfdir}| +s|@includedir@|${pkgconfig_src_headers}| +s|@suffix@|${pkgconfig_suffix}| +s|@PACKAGE@|${pkgconfig_package}| +s|@PACKAGE_NAME@|${pkgconfig_libname}| +s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}| +s|@PACKAGE_VERSION@|${pkgconfig_version}| +s|@PACKAGE_REQUIRES@|${pkgconfig_requires}| +s|@LIBS@|${pkgconfig_libs}| +s|@LDFLAGS@|${pkgconfig_ldflags}| +s|@CPPFLAGS@|${pkgconfig_cppflags}| +AXEOF +sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled +if test ! -s $pkgconfig_uninstalled ; then + AC_MSG_ERROR([$pkgconfig_uninstalled is empty]) +fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled + pkgconfig_requires_add=`echo ${pkgconfig_requires}` +if test ".$pkgconfig_requires_add" != "." ; then + pkgconfig_requires_add="pkg-config $pkgconfig_requires_add" + else pkgconfig_requires_add=":" ; fi +pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'` +AC_MSG_NOTICE(creating $pkgconfig_uninstalled) +cat >conftest.sed <<AXEOF +s|@prefix@|\"${pkgconfig_prefix}\"| +s|@exec_prefix@|\"${pkgconfig_execprefix}\"| +s|@bindir@|\"${pkgconfig_bindir}\"| +s|@libdir@|\"${pkgconfig_src_libdir}\"| +s|@datarootdir@|\"${pkgconfig_datarootdir}\"| +s|@datadir@|\"${pkgconfig_datadir}\"| +s|@sysconfdir@|\"${pkgconfig_sysconfdir}\"| +s|@includedir@|\"${pkgconfig_src_headers}\"| +s|@suffix@|\"${pkgconfig_suffix}\"| +s|@PACKAGE@|\"${pkgconfig_package}\"| +s|@PACKAGE_NAME@|\"${pkgconfig_libname}\"| +s|@PACKAGE_DESCRIPTION@|\"${pkgconfig_description}\"| +s|@PACKAGE_VERSION@|\"${pkgconfig_version}\"| +s|@PACKAGE_REQUIRES@|\"${pkgconfig_requires}\"| +s|@LIBS@|\"${pkgconfig_libs}\"| +s|@LDFLAGS@|\"${pkgconfig_ldflags}\"| +s|@CPPFLAGS@|\"${pkgconfig_cppflags}\"| +s>Name:>for option\\; do case \"\$option\" in --list-all|--name) echo > +s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of > +s>Version: *>\\;\\; --modversion|--version) echo > +s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add> +s>Libs: *>\\;\\; --libs) echo > +s>Cflags: *>\\;\\; --cflags) echo > +/--libs)/a\\ + $pkgconfig_requires_add +/--cflags)/a\\ + $pkgconfig_requires_add\\ +;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\ +;; --uninstalled) exit 0 \\ +;; *) ;; esac done +AXEOF +sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled +if test ! -s $pkgconfig_uninstalled ; then + AC_MSG_ERROR([$pkgconfig_uninstalled is empty]) +fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled +],[ +dnl AC_CONFIG_COMMANDS crap, the AS_PUSHVAR defines are invalid here... +ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate" +pkgconfig_prefix='$prefix' +pkgconfig_execprefix='$exec_prefix' +pkgconfig_bindir='$bindir' +pkgconfig_libdir='$libdir' +pkgconfig_includedir='$includedir' +pkgconfig_datarootdir='$datarootdir' +pkgconfig_datadir='$datadir' +pkgconfig_sysconfdir='$sysconfdir' +pkgconfig_suffix='$ax_create_pkgconfig_suffix' +pkgconfig_package='$PACKAGE_NAME' +pkgconfig_libname='$ax_create_pkgconfig_libname' +pkgconfig_description='$ax_create_pkgconfig_description' +pkgconfig_version='$ax_create_pkgconfig_version' +pkgconfig_requires='$ax_create_pkgconfig_requires' +pkgconfig_libs='$ax_create_pkgconfig_libs' +pkgconfig_ldflags='$ax_create_pkgconfig_ldflags' +pkgconfig_cppflags='$ax_create_pkgconfig_cppflags' +pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir' +pkgconfig_src_headers='$ax_create_pkgconfig_src_headers' +])dnl +AS_VAR_POPDEF([PKGCONFIG_suffix])dnl +AS_VAR_POPDEF([PKGCONFIG_libdir])dnl +AS_VAR_POPDEF([PKGCONFIG_libfile])dnl +AS_VAR_POPDEF([PKGCONFIG_libname])dnl +AS_VAR_POPDEF([PKGCONFIG_version])dnl +AS_VAR_POPDEF([PKGCONFIG_description])dnl +AS_VAR_POPDEF([PKGCONFIG_requires])dnl +AS_VAR_POPDEF([PKGCONFIG_pkglibs])dnl +AS_VAR_POPDEF([PKGCONFIG_libs])dnl +AS_VAR_POPDEF([PKGCONFIG_ldflags])dnl +AS_VAR_POPDEF([PKGCONFIG_cppflags])dnl +AS_VAR_POPDEF([PKGCONFIG_generate])dnl +AS_VAR_POPDEF([PKGCONFIG_src_libdir])dnl +AS_VAR_POPDEF([PKGCONFIG_src_headers])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_enable_builddir_uname.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_enable_builddir_uname.m4 new file mode 100644 index 00000000000..df5e2639c17 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_enable_builddir_uname.m4 @@ -0,0 +1,164 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_enable_builddir_uname.m4 +dnl @synopsis AX_ENABLE_BUILDDIR_UNAME [(dirstring-or-command [,Makefile.mk])] +dnl +dnl if the current configure was run within the srcdir then we move all +dnl configure-files into a subdir and let the configure steps continue +dnl there. We provide an option --disable-builddir to suppress the move +dnl into a separate builddir. +dnl +dnl Defaults: +dnl +dnl $1 = $build (defaults to `uname -msr`.d) +dnl $2 = Makefile.mk +dnl $3 = -all +dnl +dnl This macro must be called before AM_INIT_AUTOMAKE. +dnl +dnl it creates a default toplevel srcdir Makefile from the information +dnl found in the created toplevel builddir Makefile. It just copies the +dnl variables and rule-targets, each extended with a default +dnl rule-execution that recurses into the build directory of the +dnl current "BUILD". You can override the auto-dection through +dnl `uname -msr | tr " /" "__"`.d at build-time of course, as in +dnl +dnl make BUILD=i386-mingw-cross +dnl +dnl After the default has been created, additional rules can be +dnl appended that will not just recurse into the subdirectories and +dnl only ever exist in the srcdir toplevel makefile - these parts are +dnl read from the $2 = Makefile.mk file +dnl +dnl The automatic rules are usually scanning the toplevel Makefile for +dnl lines like '#### $build |$builddir' to recognize the place where to +dnl recurse into. Usually, the last one is the only one used. However, +dnl almost all targets have an additional "*-all" rule which makes the +dnl script to recurse into _all_ variants of the current BUILD (!!) +dnl setting. The "-all" suffix can be overriden for the macro as well. +dnl +dnl a special rule is only given for things like "dist" that will copy +dnl the tarball from the builddir to the sourcedir (or $(PUB)) for +dnl reason of convenience. +dnl +dnl @category Misc +dnl @author Guido U. Draheim +dnl @version 2005-12-03 +dnl @license GPLWithACException + +AC_DEFUN([AX_ENABLE_BUILDDIR_UNAME],[ +AC_REQUIRE([AC_CANONICAL_HOST])[]dnl +AC_REQUIRE([AX_CONFIGURE_ARGS])[]dnl +AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl +AS_VAR_PUSHDEF([SUB],[ax_enable_builddir])dnl +AS_VAR_PUSHDEF([SED],[ax_enable_builddir_sed])dnl +SUB="." +AC_ARG_ENABLE([builddir], AC_HELP_STRING( + [--disable-builddir],[disable automatic build in subdir of sources]) + ,[SUB="$enableval"], [SUB="yes"]) +if test ".$ac_srcdir_defaulted" != ".no" ; then +if test ".$srcdir" = ".." ; then + if test -f config.status ; then + AC_MSG_NOTICE(toplevel srcdir already configured... skipping subdir build) + else + test ".$SUB" = "." && SUB="." + test ".$SUB" = ".no" && SUB="." + test ".$BUILD" = "." && BUILD=`uname -msr | tr " /" "__"`.d + test ".$SUB" = ".yes" && SUB="m4_ifval([$1], [$1],[$BUILD])" + if test ".$SUB" != ".." ; then # we know where to go and + AS_MKDIR_P([$SUB]) + echo __.$SUB.__ > $SUB/conftest.tmp + cd $SUB + if grep __.$SUB.__ conftest.tmp >/dev/null 2>/dev/null ; then + rm conftest.tmp + AC_MSG_RESULT([continue configure in default builddir "./$SUB"]) + else + AC_MSG_ERROR([could not change to default builddir "./$SUB"]) + fi + srcdir=`echo "$SUB" | + sed -e 's,^\./,,;s,[[^/]]$,&/,;s,[[^/]]*/,../,g;s,[[/]]$,,;'` + # going to restart from subdirectory location + test -f $srcdir/config.log && mv $srcdir/config.log . + test -f $srcdir/confdefs.h && mv $srcdir/confdefs.h . + test -f $srcdir/conftest.log && mv $srcdir/conftest.log . + test -f $srcdir/$cache_file && mv $srcdir/$cache_file . + AC_MSG_RESULT(....exec $SHELL "$srcdir/[$]0" "--srcdir=$srcdir" "--enable-builddir=$SUB" $ac_configure_args) + case "[$]0" in # restart + [/\\]*) eval $SHELL "'[$]0'" "'--srcdir=$srcdir'" "'--enable-builddir=$SUB'" $ac_configure_args ;; + *) eval $SHELL "'$srcdir/[$]0'" "'--srcdir=$srcdir'" "'--enable-builddir=$SUB'" $ac_configure_args ;; + esac ; exit $? + fi + fi +fi fi +dnl ac_path_prog uses "set dummy" to override $@ which would defeat the "exec" +AC_PATH_PROG(SED,gsed sed, sed) +AS_VAR_POPDEF([SED])dnl +AS_VAR_POPDEF([SUB])dnl +AC_CONFIG_COMMANDS([buildir],[dnl .............. config.status .............. +AS_VAR_PUSHDEF([SUB],[ax_enable_builddir])dnl +AS_VAR_PUSHDEF([TOP],[top_srcdir])dnl +AS_VAR_PUSHDEF([SRC],[ac_top_srcdir])dnl +AS_VAR_PUSHDEF([SED],[ax_enable_builddir_sed])dnl +pushdef([END],[Makefile.mk])dnl + SRC="$ax_enable_builddir_srcdir" + if test ".$SUB" = "." ; then + if test -f "$TOP/Makefile" ; then + AC_MSG_NOTICE([skipping TOP/Makefile - left untouched]) + else + AC_MSG_NOTICE([skipping TOP/Makefile - not created]) + fi + else + AC_MSG_NOTICE([create TOP/Makefile guessed from local Makefile]) + x='`' ; cat >$tmp/conftemp.sed <<_EOF +/^\$/n +x +/^\$/bS +x +/\\\\\$/{H;d;} +{H;s/.*//;x;} +bM +:S +x +/\\\\\$/{h;d;} +{h;s/.*//;x;} +:M +s/\\(\\n\\) /\\1 /g +/^ /d +/^[[ ]]*[[\\#]]/d +/^VPATH *=/d +s/^srcdir *=.*/srcdir = ./ +s/^top_srcdir *=.*/top_srcdir = ./ +/[[:=]]/!d +/^\\./d +s/:.*/:/ +/:\$/s/ / /g +/:\$/s/ / /g +/^.*[[=]]/!s%\$% ; (cd \$(BUILD) \\&\\& \$(ISNOTSRCDIR) \\&\\& \$(MAKE) "\$\@") || exit ; \$(MAKE) done "RULE=\$\@"% +_EOF + test ".$USE_MAINTAINER_MODE" = ".no" || \ + cp "$tmp/conftemp.sed" "$SRC/makefile.sed~" ## DEBUGGING + echo 'BUILD=`uname -msr | tr " /" "__"`.d' >$SRC/Makefile + echo 'ISNOTSRCDIR=test ! -f configure' >>$SRC/Makefile + $SED -f $tmp/conftemp.sed Makefile >>$SRC/Makefile + echo 'done: ;@ if grep "$(RULE)-done .*:" Makefile > /dev/null; then dnl + echo $(MAKE) $(RULE)-done ; $(MAKE) $(RULE)-done ; else true ; fi' dnl + >> $SRC/Makefile + if test -f "$SRC/m4_ifval([$2],[$2],[END])" ; then + AC_MSG_NOTICE([extend TOP/Makefile with TOP/m4_ifval([$2],[$2],[END])]) + cat $SRC/END >>$SRC/Makefile + fi + AC_MSG_NOTICE([make uses BUILD=$SUB (on $ax_enable_builddir_host:)]) + fi +popdef([END])dnl +AS_VAR_POPDEF([SED])dnl +AS_VAR_POPDEF([SRC])dnl +AS_VAR_POPDEF([TOP])dnl +AS_VAR_POPDEF([SUB])dnl +],[dnl +ax_enable_builddir_srcdir="$srcdir" # $srcdir +ax_enable_builddir_host="$HOST" # $HOST / $host +ax_enable_builddir_version="$VERSION" # $VERSION +ax_enable_builddir_package="$PACKAGE" # $PACKAGE +ax_enable_builddir_sed="$ax_enable_builddir_sed" # $SED +ax_enable_builddir="$ax_enable_builddir" # $SUB +])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_expand_prefix.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_expand_prefix.m4 new file mode 100644 index 00000000000..2d6b39d06c9 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_expand_prefix.m4 @@ -0,0 +1,35 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_expand_prefix.m4 +dnl @synopsis AX_EXPAND_PREFIX +dnl +dnl when $prefix and $exec_prefix are still set to NONE then set them +dnl to the usual default values - being based on $ac_default_prefix. - +dnl this macro can be AC_REQUIREd by other macros that need to compute +dnl values for installation directories. It has been observed that it +dnl was done wrong over and over again, so this is a bit more safe to +dnl do. +dnl +dnl remember - setting exec_prefix='${prefix}' needs you interpolate +dnl directories multiple times, it is not sufficient to just say +dnl MYVAR="${datadir}/putter" but you do have to run `eval` a few +dnl times, sth. like MYVAR=`eval "echo \"$MYVAR\""` done atleast two +dnl times. +dnl +dnl The implementation of this macro simply picks up the lines that +dnl would be run at the start of AC_OUTPUT anyway to set the +dnl prefix/exec_prefix defaults. Between AC_INIT and the first command +dnl to AC_REQUIRE this macro you can set the two variables to something +dnl explicit instead. Probably, any command to compute installation +dnl directories should be run _after_ AM_INIT_AUTOMAKE +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([AX_EXPAND_PREFIX],[dnl + # The prefix default can be set in configure.ac (otherwise it is /usr/local) + test "x$prefix" = xNONE && prefix=$ac_default_prefix + # Let make expand exec_prefix. Allows to override the makevar 'prefix' later + test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_maintainer_mode_auto_silent.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_maintainer_mode_auto_silent.m4 new file mode 100644 index 00000000000..3f4123b5162 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_maintainer_mode_auto_silent.m4 @@ -0,0 +1,40 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_maintainer_mode_auto_silent.m4 +dnl @synopsis AX_MAINTAINER_MODE_AUTO_SILENT +dnl +dnl Set autotools to error/sleep settings so that they are not run when +dnl being errornously triggered. Likewise make libtool-silent when +dnl libtool has been used. +dnl +dnl I am using the macro quite a lot since some automake versions had +dnl the tendency to try to rerun some autotools on a mere make even +dnl when not quite in --maintainer-mode. That is very annoying. +dnl Likewise, a user who installs from source does not want to see +dnl doubled compiler messages. +dnl +dnl I did not put an AC-REQUIRE(MAINTAINER_MODE) in here - should I? +dnl +dnl @category Misc +dnl @category Automake +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([AX_MAINTAINER_MODE_AUTO_SILENT],[dnl +dnl ac_REQUIRE([am_MAINTAINER_MODE])dn +AC_MSG_CHECKING(auto silent in maintainer mode) +if test "$USE_MAINTAINER_MODE" = "no" ; then + test ".$TIMEOUT" = "." && TIMEOUT="9" + AUTOHEADER="sleep $TIMEOUT ; true || autoheader || skipped" + AUTOMAKE="sleep $TIMEOUT ; true || automake || skipped" + AUTOCONF="sleep $TIMEOUT ; true || autoconf || skipped" + if test ".$LIBTOOL" != "." ; then + LIBTOOL="$LIBTOOL --silent" + AC_MSG_RESULT([libtool-silent, auto-sleep-9]) + else + AC_MSG_RESULT([auto-sleep-9]) + fi +else + AC_MSG_RESULT([no]) +fi +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_not_enable_frame_pointer.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_not_enable_frame_pointer.m4 new file mode 100644 index 00000000000..7499962f07c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_not_enable_frame_pointer.m4 @@ -0,0 +1,33 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_not_enable_frame_pointer.m4 +dnl @synopsis AX_NOT_ENABLE_FRAME_POINTER ([shellvar]) +dnl +dnl add --enable-frame-pointer option, the default will add the gcc +dnl --fomit-frame-pointer option to the shellvar (per default CFLAGS) +dnl and remove the " -g " debuginfo option from it. In other words, the +dnl default is "--disable-frame-pointer" +dnl +dnl @category C +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-22 +dnl @license GPLWithACException + +AC_DEFUN([AX_NOT_ENABLE_FRAME_POINTER],[dnl +AS_VAR_PUSHDEF([VAR],[enable_frame_pointer])dnl +AC_MSG_CHECKING([m4_ifval($1,$1,CFLAGS) frame-pointer]) +AC_ARG_ENABLE([frame-pointer], AC_HELP_STRING( + [--enable-frame-pointer],[enable callframe generation for debugging])) +case ".$VAR" in + .|.no|.no,*) test ".$VAR" = "." && VAR="no" + m4_ifval($1,$1,CFLAGS)=`echo dnl + " $m4_ifval($1,$1,CFLAGS) " | sed -e 's/ -g / /'` + if test ".$GCC" = ".yes" ; then + m4_ifval($1,$1,CFLAGS)="$m4_ifval($1,$1,CFLAGS) -fomit-frame-pointer" + AC_MSG_RESULT([$VAR, -fomit-frame-pointer added]) + else + AC_MSG_RESULT([$VAR, -g removed]) + fi ;; + *) AC_MSG_RESULT([$VAR, kept]) ;; +esac +AS_VAR_POPDEF([VAR])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_pax_tar.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_pax_tar.m4 new file mode 100644 index 00000000000..588f9e0093a --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_pax_tar.m4 @@ -0,0 +1,134 @@ +dnl @synopsis AX_PAX_TAR +dnl +dnl Most people will not know about the "tar"-wars a long while back. +dnl In the end the proponents of cpio lost just as all the oldish +dnl tar formats were dumped in favor of a new format that based on +dnl the successful "ustar" format. The extensions did mostly cover +dnl a portable definition of filenames and such stuff. + +dnl The most interesting thing however is that the opengroup (the. +dnl UNIX standardization body) did not document the tool for the +dnl portable tar format under the name of "tar" but instead it did +dnl use the name "pax" which stands for "portable archiver". Even +dnl more so, the "pax" utitility is required to understand the old +dnl tar and cpio formats but it will default to a "tar"-like variant. +dnl The "pax" tool has been in the Unix standard ever since UNIX92. +dnl +dnl Interestingly gnu-tar will use the pax features as soon as they +dnl are required - but you can not be sure if gnu-tar is available, +dnl and it is quite likely that the system tar will default to the +dnl old format of the system in whatever it was. On any currrent +dnl Unix system however one should be able to find "pax", so one +dnl should prefer that one as the most portable tool. + +dnl The downside is however that the commandline options of "pax" +dnl are different from "tar"/"gtar". That's why we define two +dnl subst'ed names here - PAX_TAR_CREATE and PAX_TAR_EXTRACT, For +dnl extra portability the first argument should be "*.tar" file +dnl name but you should be aware that in most cases the "pax" tool +dnl is invoked. Nota bene: do not use "*.pax" as the file name +dnl extension because some file managers interpret it as a TeX file. +dnl +dnl @category C +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2009-05-22 +dnl @license GPLWithACException + +AC_DEFUN([_AX_PAX_TAR_TOOL],[ +if test -z "$ac_cv_pax_tar_tool"; then + AC_PATH_PROG([PAX],[pax], :) + if test "$ac_cv_path_PAX" != ":"; then + ac_cv_pax_tar_tool="pax" + else #3 + AC_PATH_PROG([GNUTAR],[gnutar], :) + if test "$ac_cv_path_GNUTAR" != ":"; then + ac_cv_pax_tar_tool="gnutar" + else #1 + AC_PATH_PROG([GTAR],[gtar], :) + if test "$ac_cv_path_GTAR" != ":"; then + ac_cv_pax_tar_tool="gtar" + else #2 + AC_PATH_PROG([TAR],[tar], :) + if test "$ac_cv_path_TAR" != ":"; then + ac_cv_pax_tar_tool="tar" + fi + fi fi fi #3 #2 #1 + AC_MSG_CHECKING([for portable tar tool]) + AC_MSG_RESULT([$ac_cv_pax_tar_tool]) +fi +]) + +dnl TODO: on MacOsX the "--help" documentation of the tool differs +dnl from the capabilities of the installed pax tool. So test reality. +AC_DEFUN([_AX_PAX_SINGLE_ARCHIVE],[ + if test "$ac_cv_pax_tar_tool$ax_pax_single_archive" = "pax"; then + AC_MSG_CHECKING([for pax single archive option]) + echo foo > conftest.txt ; rm -f conftest.tar + AC_RUN_LOG(["$ac_cv_path_PAX" -w -O -f conftest.tar conftest.txt]) + if test -s conftest.tar; then + ax_pax_single_archive="-O" ; ac_hint="(probably a BSD pax)" + else + ax_pax_single_archive=" " ; ac_hint="(the -O option did not work)" + fi + AC_MSG_RESULT([$ax_pax_single_archive $ac_hint]) + fi +]) + +AC_DEFUN([_AX_PAX_TAR_CREATE],[ + _AX_PAX_TAR_TOOL + _AX_PAX_SINGLE_ARCHIVE + AC_MSG_CHECKING([for command to create portable tar archives]) + if test "$ac_cv_pax_tar_tool" = "gnutar"; then + ax_pax_tar_create="'$ac_cv_path_GNUTAR' cf" + elif test "$ac_cv_pax_tar_tool" = "gtar"; then + ax_pax_tar_create="'$ac_cv_path_GTAR' cf" + elif test "$ac_cv_pax_tar_tool" = "pax"; then + ax_pax_tar_create="'$ac_cv_path_PAX' -w $ax_pax_single_archive -f" + elif test "$ac_cv_pax_tar_tool" = "tar"; then + ax_pax_tar_create="'$ac_cv_path_TAR' cf" + else + ax_pax_tar_create=": 'unknown pax tar tool $ac_cv_pax_tar_tool'" + fi + AC_MSG_RESULT([$ax_pax_tar_create]) +]) + +AC_DEFUN([_AX_PAX_TAR_EXTRACT],[ + _AX_PAX_TAR_TOOL + _AX_PAX_SINGLE_ARCHIVE + AC_MSG_CHECKING([for command to extract portable tar archives]) + if test "$ac_cv_pax_tar_tool" = "gnutar"; then + ax_pax_tar_extract="'$ac_cv_path_GNUTAR' xf" + elif test "$ac_cv_pax_tar_tool" = "gtar"; then + ax_pax_tar_extract="'$ac_cv_path_GTAR' xf" + elif test "$ac_cv_pax_tar_tool" = "pax"; then + ax_pax_tar_extract="'$ac_cv_path_PAX' -r $ax_pax_single_archive -f" + elif test "$ac_cv_pax_tar_tool" = "tar"; then + ax_pax_tar_extract="'$ac_cv_path_TAR' xf" + else + ax_pax_tar_extract=": 'unknown pax tar tool $ac_cv_pax_tar_tool'" + fi + AC_MSG_RESULT([$ax_pax_tar_extract]) +]) + +AC_DEFUN([AX_PAX_TAR_CREATE],[dnl +_AX_PAX_TAR_CREATE +m4_ifval([$1],[dnl +$1="$ax_pax_tar_create" +AC_SUBST([$1]) +],[dnl +PAX_TAR_CREATE="$ax_pax_tar_create" +AC_SUBST([PAX_TAR_CREATE]) +]) +]) + +AC_DEFUN([AX_PAX_TAR_EXTRACT],[dnl +_AX_PAX_TAR_EXTRACT +m4_ifval([$1],[dnl +$1="$ax_pax_tar_extract" +AC_SUBST([$1]) +],[dnl +PAX_TAR_EXTRACT="$ax_pax_tar_extract" +AC_SUBST([PAX_TAR_EXTRACT]) +]) +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_prefix_config_h.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_prefix_config_h.m4 new file mode 100644 index 00000000000..70dee8fb4ec --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_prefix_config_h.m4 @@ -0,0 +1,183 @@ +dnl @synopsis AX_PREFIX_CONFIG_H [(OUTPUT-HEADER [,PREFIX [,ORIG-HEADER]])] +dnl +dnl This is a new variant from ac_prefix_config_ this one will use a +dnl lowercase-prefix if the config-define was starting with a +dnl lowercase-char, e.g. "#define const", "#define restrict", or +dnl "#define off_t", (and this one can live in another directory, e.g. +dnl testpkg/config.h therefore I decided to move the output-header to +dnl be the first arg) +dnl +dnl takes the usual config.h generated header file; looks for each of +dnl the generated "#define SOMEDEF" lines, and prefixes the defined +dnl name (ie. makes it "#define PREFIX_SOMEDEF". The result is written +dnl to the output config.header file. The PREFIX is converted to +dnl uppercase for the conversions. +dnl +dnl Defaults: +dnl +dnl OUTPUT-HEADER = $PACKAGE-config.h +dnl PREFIX = $PACKAGE +dnl ORIG-HEADER, from AM_CONFIG_HEADER(config.h) +dnl +dnl Your configure.ac script should contain both macros in this order, +dnl and unlike the earlier variations of this prefix-macro it is okay +dnl to place the AX_PREFIX_CONFIG_H call before the AC_OUTPUT +dnl invokation. +dnl +dnl Example: +dnl +dnl AC_INIT(config.h.in) # config.h.in as created by "autoheader" +dnl AM_INIT_AUTOMAKE(testpkg, 0.1.1) # makes #undef VERSION and PACKAGE +dnl AM_CONFIG_HEADER(config.h) # prep config.h from config.h.in +dnl AX_PREFIX_CONFIG_H(mylib/_config.h) # prep mylib/_config.h from it.. +dnl AC_MEMORY_H # makes "#undef NEED_MEMORY_H" +dnl AC_C_CONST_H # makes "#undef const" +dnl AC_OUTPUT(Makefile) # creates the "config.h" now +dnl # and also mylib/_config.h +dnl +dnl if the argument to AX_PREFIX_CONFIG_H would have been omitted then +dnl the default outputfile would have been called simply +dnl "testpkg-config.h", but even under the name "mylib/_config.h" it +dnl contains prefix-defines like +dnl +dnl #ifndef TESTPKG_VERSION +dnl #define TESTPKG_VERSION "0.1.1" +dnl #endif +dnl #ifndef TESTPKG_NEED_MEMORY_H +dnl #define TESTPKG_NEED_MEMORY_H 1 +dnl #endif +dnl #ifndef _testpkg_const +dnl #define _testpkg_const _const +dnl #endif +dnl +dnl and this "mylib/_config.h" can be installed along with other +dnl header-files, which is most convenient when creating a shared +dnl library (that has some headers) where some functionality is +dnl dependent on the OS-features detected at compile-time. No need to +dnl invent some "mylib-confdefs.h.in" manually. :-) +dnl +dnl Note that some AC_DEFINEs that end up in the config.h file are +dnl actually self-referential - e.g. AC_C_INLINE, AC_C_CONST, and the +dnl AC_TYPE_OFF_T say that they "will define inline|const|off_t if the +dnl system does not do it by itself". You might want to clean up about +dnl these - consider an extra mylib/conf.h that reads something like: +dnl +dnl #include <mylib/_config.h> +dnl #ifndef _testpkg_const +dnl #define _testpkg_const const +dnl #endif +dnl +dnl and then start using _testpkg_const in the header files. That is +dnl also a good thing to differentiate whether some library-user has +dnl starting to take up with a different compiler, so perhaps it could +dnl read something like this: +dnl +dnl #ifdef _MSC_VER +dnl #include <mylib/_msvc.h> +dnl #else +dnl #include <mylib/_config.h> +dnl #endif +dnl #ifndef _testpkg_const +dnl #define _testpkg_const const +dnl #endif +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2003-07-03 +dnl @license GPLWithACException +AC_DEFUN([AX_PREFIX_CONFIG_H],[dnl +AC_PROVIDE_IFELSE([AC_CONFIG_HEADERS], dnl + ,[warning if no AC_CONFIG_HEADERS precedes $ ])dnl +AC_CONFIG_COMMANDS([ifelse($1,,$PACKAGE-config.h,$1)],[dnl +AS_VAR_PUSHDEF([_OUT],[ac_prefix_conf_OUT])dnl +AS_VAR_PUSHDEF([_DEF],[ac_prefix_conf_DEF])dnl +AS_VAR_PUSHDEF([_PKG],[ac_prefix_conf_PKG])dnl +AS_VAR_PUSHDEF([_LOW],[ac_prefix_conf_LOW])dnl +AS_VAR_PUSHDEF([_UPP],[ac_prefix_conf_UPP])dnl +AS_VAR_PUSHDEF([_INP],[ac_prefix_conf_INP])dnl +m4_pushdef([_script],[conftest.prefix])dnl +m4_pushdef([_symbol],[m4_cr_Letters[]m4_cr_digits[]_])dnl +_OUT=`echo ifelse($1, , $PACKAGE-config.h, $1)` +_DEF=`echo _$_OUT | sed -e "y:m4_cr_letters:m4_cr_LETTERS[]:" -e "s/@<:@^m4_cr_Letters@:>@/_/g"` +_PKG=`echo ifelse($2, , $PACKAGE, $2)` +_LOW=`echo _$_PKG | sed -e "y:m4_cr_LETTERS-:m4_cr_letters[]_:"` +_UPP=`echo $_PKG | sed -e "y:m4_cr_letters-:m4_cr_LETTERS[]_:" -e "/^@<:@m4_cr_digits@:>@/s/^/_/"` +_INP=`echo "ifelse($3,,,$3)" | sed -e 's/ *//'` +if test ".$_INP" = "."; then + for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue + case "$ac_file" in + *.h) _INP=$ac_file ;; + *) + esac + test ".$_INP" != "." && break + done +fi +if test ".$_INP" = "."; then + case "$_OUT" in + */*) _INP=`basename "$_OUT"` + ;; + *-*) _INP=`echo "$_OUT" | sed -e "s/@<:@_symbol@:>@*-//"` + ;; + *) _INP=config.h + ;; + esac +fi +if test -z "$_PKG" ; then + AC_MSG_ERROR([no prefix for _PREFIX_PKG_CONFIG_H]) +else + if test ! -f "$_INP" ; then if test -f "$srcdir/$_INP" ; then + _INP="$srcdir/$_INP" + fi fi + AC_MSG_NOTICE(creating $_OUT - prefix $_UPP for $_INP defines) + if test -f $_INP ; then + echo "s/^@%:@undef *\\(@<:@m4_cr_LETTERS[]_@:>@\\)/@%:@undef $_UPP""_\\1/" > _script + echo "s/^@%:@undef *\\(@<:@m4_cr_letters@:>@\\)/@%:@undef $_LOW""_\\1/" >> _script + echo "s/^@%:@def[]ine *\\(@<:@m4_cr_LETTERS[]_@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_UPP""_\\1 \\" >> _script + echo "@%:@def[]ine $_UPP""_\\1 \\2 \\" >> _script + echo "@%:@endif/" >>_script + echo "s/^@%:@def[]ine *\\(@<:@m4_cr_letters@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_LOW""_\\1 \\" >> _script + echo "@%:@define $_LOW""_\\1 \\2 \\" >> _script + echo "@%:@endif/" >> _script + # now executing _script on _DEF input to create _OUT output file + echo "@%:@ifndef $_DEF" >$tmp/pconfig.h + echo "@%:@def[]ine $_DEF 1" >>$tmp/pconfig.h + echo ' ' >>$tmp/pconfig.h + echo /'*' $_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h + + sed -f _script $_INP >>$tmp/pconfig.h + echo ' ' >>$tmp/pconfig.h + echo '/* once:' $_DEF '*/' >>$tmp/pconfig.h + echo "@%:@endif" >>$tmp/pconfig.h + if cmp -s $_OUT $tmp/pconfig.h 2>/dev/null; then + AC_MSG_NOTICE([$_OUT is unchanged]) + else + ac_dir=`AS_DIRNAME(["$_OUT"])` + AS_MKDIR_P(["$ac_dir"]) + rm -f "$_OUT" + mv $tmp/pconfig.h "$_OUT" + fi + cp _script _configs.sed + else + AC_MSG_ERROR([input file $_INP does not exist - skip generating $_OUT]) + fi + rm -f conftest.* +fi +m4_popdef([_symbol])dnl +m4_popdef([_script])dnl +AS_VAR_POPDEF([_INP])dnl +AS_VAR_POPDEF([_UPP])dnl +AS_VAR_POPDEF([_LOW])dnl +AS_VAR_POPDEF([_PKG])dnl +AS_VAR_POPDEF([_DEF])dnl +AS_VAR_POPDEF([_OUT])dnl +],[PACKAGE="$PACKAGE"])]) + +dnl implementation note: a bug report (31.5.2005) from Marten Svantesson points +dnl out a problem where `echo "\1"` results in a Control-A. The unix standard +dnl http://www.opengroup.org/onlinepubs/000095399/utilities/echo.html +dnl defines all backslash-sequences to be inherently non-portable asking +dnl for replacement mit printf. Some old systems had problems with that +dnl one either. However, the latest libtool (!) release does export an $ECHO +dnl (and $echo) that does the right thing - just one question is left: what +dnl was the first version to have it? Is it greater 2.58 ? + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_set_version_info.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_set_version_info.m4 new file mode 100644 index 00000000000..83c5fa73f21 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_set_version_info.m4 @@ -0,0 +1,180 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_set_version_info.m4 +dnl @synopsis AX_SET_VERSION_INFO [(VERSION [,PREFIX])] +dnl @synopsis default $1 = $PACKAGE_VERSION +dnl @synopsis default $2 = <none> +dnl +dnl This macro is the successor of AC_SET_RELEASEINFO_VERSIONINFO but +dnl it can be used in parallel because it uses all different variables. +dnl +dnl check the $VERSION number and cut the two last digit-sequences off +dnl which will form a -version-info in a @VERSION_INFO@ ac_subst while +dnl the rest is going to the -release name in a @RELEASE_INFO@ +dnl ac_subst. +dnl +dnl you should keep these two seperate - the release-name may contain +dnl alpha-characters and can be modified later with extra release-hints +dnl e.g. RELEASE_INFO="$RELEASE_INFO-debug" for a debug version of your +dnl lib. The $VERSION_INFO however should not be touched. +dnl +dnl example: a VERSION="2.4.18" will be transformed into +dnl +dnl RELEASE_INFO = -release 2 +dnl VERSION_INFO = -versioninfo 4:18 +dnl +dnl then use these two variables and push them to your libtool linker +dnl +dnl libtest_la_LIBADD = @RELEASE_INFO@ @VERSION_INFO@ +dnl +dnl and for a linux-target this will tell libtool to install the lib as +dnl +dnl libmy.so libmy.la libmy.a libmy-2.so.4 libmy-2.so.4.0.18 +dnl +dnl and executables will get link-resolve-infos for libmy-2.so.4 - +dnl therefore the patch-level is ignored during ldso linking, and ldso +dnl will use the one with the highest patchlevel. Using just "-release +dnl $(VERSION)" during libtool-linking would not do that - omitting the +dnl -version-info will libtool install libmy.so libmy.la libmy.a +dnl libmy-2.4.18.so and executables would get hardlinked with the +dnl 2.4.18 version of your lib. +dnl +dnl This background does also explain the default dll name for a win32 +dnl target : libtool will choose to make up libmy-2-4.dll for this +dnl version spec. +dnl +dnl this macro does also set the usual three parts of a version spec +dnl $MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION but does not ac_subst +dnl for the plain AX_SET_VERSION_INFO macro. Use instead one of the +dnl numbered macros AX_SET_VERSION_INFO1 (use first number for release +dnl part) or that AX_SET_VERSION_INFO2 (use the first two numbers for +dnl release part). +dnl +dnl You may add sublevel parts like "1.4.2-ac5" where the sublevel is +dnl just killed from these version/release substvars. That allows to +dnl grab the version off a .spec file like with AX_SPEC_PACKAGE_VERSION +dnl where the $VERSION is used to name a tarball or distpack like +dnl mylib-2.2.9pre4 +dnl +dnl Unlike earlier macros, you can use this one to break up different +dnl VERSIONs and put them into different variables, just hint with +dnl PREFIX-setting - i.e. _VERSION(2.4.5,TEST) will set variables named +dnl TEST_MAJOR_VERSION=2... and of course $TEST_RELEASE_INFO etc. (for +dnl the moment, it needs to be a literal prefix *sigh*) +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([AX_SET_VERSION_INFO1],[dnl +AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl +AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl +AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl +AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl +AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl +AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl +test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION" +AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl +ifelse($1,,$PACKAGE_VERSION,$1) ) + MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )` + MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'` + MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'` + MICRO="$MINOR" + MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'` + MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'` + PATCH="$MICRO" + MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'` + PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/^[[-.]]//'` + if test "_$MICRO" = "_" ; then MICRO="0" ; fi + if test "_$MINOR" = "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi + MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'` + LTREL="-release $MAJOR" + LTVER="-version-info $MINOR:$MICRO" +AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)]) +AC_SUBST(MAJOR) +AC_SUBST(MINOR) +AC_SUBST(MICRO) +AC_SUBST(PATCH) +AC_SUBST(LTREL) +AC_SUBST(LTVER) +AS_VAR_POPDEF([LTVER])dnl +AS_VAR_POPDEF([LTREL])dnl +AS_VAR_POPDEF([PATCH])dnl +AS_VAR_POPDEF([MICRO])dnl +AS_VAR_POPDEF([MINOR])dnl +AS_VAR_POPDEF([MAJOR])dnl +]) + +AC_DEFUN([AX_SET_VERSION_INFO2],[dnl +AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl +AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl +AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl +AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl +AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl +AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl +test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION" +AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl +ifelse($1,,$PACKAGE_VERSION,$1) ) + MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )` + MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'` + MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'` + MICRO="$MINOR" + MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'` + MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'` + PATCH="$MICRO" + MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'` + PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/^[[-.]]//'` + test "_$MICRO" != "_" || MICRO="0" + if test "_$MINOR" != "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi + MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'` + LTREL="-release $MAJOR.$MINOR" + LTVER="-version-info 0:$MICRO" +AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)]) +AC_SUBST(MAJOR) +AC_SUBST(MINOR) +AC_SUBST(MICRO) +AC_SUBST(PATCH) +AC_SUBST(LTREL) +AC_SUBST(LTVER) +AS_VAR_POPDEF([LTVER])dnl +AS_VAR_POPDEF([LTREL])dnl +AS_VAR_POPDEF([PATCH])dnl +AS_VAR_POPDEF([MICRO])dnl +AS_VAR_POPDEF([MINOR])dnl +AS_VAR_POPDEF([MAJOR])dnl +]) + +AC_DEFUN([AX_SET_VERSION_INFO],[dnl +AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl +AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl +AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl +AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl +AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl +AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl +test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION" +AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl +ifelse($1,,$PACKAGE_VERSION,$1) ) + MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )` + MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'` + MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'` + MICRO="$MINOR" + MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'` + MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'` + PATCH="$MICRO" + MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'` + PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/[[-.]]//'` + if test "_$MICRO" = "_" ; then MICRO="0" ; fi + if test "_$MINOR" = "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi + MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'` + LTREL="-release $MAJOR" + LTVER="-version-info $MINOR:$MICRO" +AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)]) +AC_SUBST(LTREL) +AC_SUBST(LTVER) +AS_VAR_POPDEF([LTVER])dnl +AS_VAR_POPDEF([LTREL])dnl +AS_VAR_POPDEF([PATCH])dnl +AS_VAR_POPDEF([MICRO])dnl +AS_VAR_POPDEF([MINOR])dnl +AS_VAR_POPDEF([MAJOR])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_spec_file.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_spec_file.m4 new file mode 100644 index 00000000000..c80a75a4e04 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_spec_file.m4 @@ -0,0 +1,100 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_spec_file.m4 +dnl @synopsis AX_SPEC_FILE [(rpmspecfile [,subdirpath])] +dnl +dnl set the specfile - if no argument has been given then check whether +dnl the ac_unique_file looks like a .spec file and use it. This macro +dnl is ac_REQUIRED by many AX_SPEC_ routines. +dnl +dnl the AX_SPEC_EXTRACT macro is a helper used by many AX_SPEC_ +dnl routines and therefore placed here to be automatically included in +dnl the macro set of (older) aclocal/acinclude. +dnl +dnl AX_SPEC_EXTRACT(shellvar [,specvar [,defaultvalue]]) +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([AX_SPEC_FILE], +[ AC_MSG_CHECKING([rpm spec file]) + if test ".$1" != "." ; then + ax_spec_file_="$1" + ax_spec_file=`basename $1` + else + case ".$ac_unique_file" in + *.spec) ax_spec_file="$ac_unique_file" + ax_spec_file_="$ac_unique_file" ;; + *) ax_spec_file="TODO" + if test ".$PACKAGE" != "." + then ax_spec_file_="$PACKAGE.spec" + else ax_spec_file_="README" + fi + cat m4_ifset([AS_MESSAGE_LOG_FD],[>&AS_MESSAGE_LOG_FD],[>>config.log]) <<EOF + no ax_spec_file argument has been given, using defaults of + (1) $ax_spec_file_ + (2) $ax_spec_file +EOF + ;; + esac + fi + # find specfile + for i in ifelse($2,,,$2) . $srcdir $srcdir/.. .. ; do + if test -f "$i/$ax_spec_file_" ; then + ax_spec_dir="$i" + ax_spec_file="$ax_spec_dir/$ax_spec_file_" + break + fi + if test -f "$i/$ax_spec_file" ; then + ax_spec_dir="$i" + ax_spec_file="$ax_spec_dir/$ax_spec_file" + break + fi + done + case "$ax_spec_file" in + ./*) if test "$ax_spec_file" = "./$ax_spec_file_" ; then + ax_spec_file="$ax_spec_file_" + fi + AC_MSG_RESULT([$ax_spec_file]) ;; + */*) AC_MSG_RESULT([$ax_spec_file]) ;; + *) AC_MSG_ERROR([no rpm spec file found]) ;; + esac + m4_define([m4_ax_spec_file],[ax_spec_file]) +]) + +dnl AX_SPEC_EXTRACT(shellvar [,specvar [,defaultvalue]]) + +AC_DEFUN([AX_SPEC_EXTRACT], +[ + if test ".$[]$1" = "." ; then + $1=`grep -i '^[[ ]]*m4_ifval([$2],[$2],[$1])[[ ]]*:' dnl + "$ax_spec_file" | sed -e 's/.*:[[ ]]*//' dnl + -e 's/[[ ]][[ ]]*/ /g' -e 's/^ //' -e 's/ $[]//' -e 'q'` + if test ".$[]$1" = "." ; then + for $1 in $2 $1 m4_tolower([$1]) ; do + $1=`echo "$[]$1" | sed -e 's/^%//g'` + $1=`sed dnl + -e "/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]/!d" dnl + -e "s/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]*//" dnl + -e 's/[[ ]][[ ]]*/ /' -e 's/ $[]//' -e 'q' $ax_spec_file` + test ".$1" != "." && break + done + fi + case ".$[]$1" in + .%{*) + $1=`echo "$[]$1" | sed -e 's/%{//' -e 's/}$[]//'` + $1=`sed dnl + -e "/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]/!d" dnl + -e "s/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]*//" dnl + -e 's/[[ ]][[ ]]*/ /' -e 's/ $[]//' -e 'q' $ax_spec_file` ;; + .%*) + $1=`echo "$[]$1" | sed -e 's/%//'` + $1=`sed dnl + -e "/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]/!d" dnl + -e "s/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]*//" dnl + -e 's/[[ ]][[ ]]*/ /' -e 's/ $[]//' -e 'q' $ax_spec_file` ;; + esac + m4_ifval([$3],[test ".$[]$1" = "." && $1="$3"]) + fi # test ".$[]$1" = "." +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_spec_package_version.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_spec_package_version.m4 new file mode 100644 index 00000000000..f13b247bacf --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_spec_package_version.m4 @@ -0,0 +1,229 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_spec_package_version.m4 +dnl @synopsis AX_SPEC_PACKAGE_AND_VERSION ([specfile]) +dnl @synopsis AX_SPEC_PACKAGE_NAME ([shellvar],[defaultvalue]) +dnl @synopsis AX_SPEC_PACKAGE_VERSION ([shellvar],[defaultvalue]) +dnl @synopsis AX_SPEC_PACKAGE_SUMMARY ([shellvar],[defaultvalue]) +dnl @synopsis AX_SPEC_PACKAGE_LICENSE ([shellvar],[defaultvalue]) +dnl @synopsis AX_SPEC_PACKAGE_CATEGORY ([shellvar],[defaultvalue]) +dnl @synopsis AX_SPEC_PACKAGE_ICON ([shellvar],[defaultvalue]) +dnl @synopsis AX_SPEC_DEFAULTS([specfile]) +dnl +dnl set PACKAGE from the given specfile - default to basename of the +dnl rpmspecfile if no "name:" could be found in the spec file. +dnl +dnl set VERSION from the given specfile - default to a date-derived +dnl value if no "version:" could be found in the spec file. +dnl +dnl this macro builds on top of AX_SPEC_FILE / AX_SPEC_EXTRACT +dnl +dnl more specific: if not "name:" or "%define name" was found in the +dnl myproject.spec file then the PACKAGE var is set to the basename +dnl "myproject". When no spec file was present then it will usually +dnl default to "TODO". +dnl +dnl The version spec looks for "version:" or "%define version" in the +dnl spec file. When no such value was seen or no spec file had been +dnl present then the value is set to `date +0.%y.%W%w`. +dnl +dnl the version value itself is sanitized somewhat with making it to +dnl always carry atleast three digits (1.2.3) and clensing superflous +dnl "0" chars around from generating numbers elsewhere. +dnl +dnl additional macros are provided that extract a specific value from +dnl the spec file, among these: +dnl +dnl set PACKAGE_SUMMARY from the given specfile - default to package +dnl and try to detect a type suffix if "summary:" was not in the spec +dnl file +dnl +dnl set PACKAGE_LICENSE from the given specfile - if no "license:" tag +dnl was given in the spec file then various COPYING files are grepped +dnl to have a guess and the final fallback will be GNU GPL (or GNU +dnl LGPL). +dnl +dnl set PACKAGE_ICON from the given specfile - if no "icon:" tag was +dnl given in the spec file then we default to $PACKAGE-icon.png +dnl +dnl the final AX_SPEC_INIT(specfile) will initialize all variables to +dnl its defaults according to the spec file given. +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([AX_SPEC_PACKAGE_LICENSE],[AC_REQUIRE([AX_SPEC_FILE])dnl + AS_VAR_PUSHDEF([VAR],[PACKAGE_LICENSE])dnl + AC_MSG_CHECKING([for spec license type]) + if test ".$VAR" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + AX_SPEC_EXTRACT(VAR,[license],m4_ifval($1,$1)) + VAR=`echo $VAR | sed -e 's/ *License//g'` + fi fi + test ".$VAR" = "." && k="(fallback)" + ifelse($2,,[dnl here the defaults for LICENSE / COPYRIGHT + if test ".$VAR" = "." ; then + for ac_file in "$srcdir/COPYING" "$srcdir/COPYING" "$srcdir/LICENSE" ; do + test -f "$ac_file" || continue +dnl http://www.ibiblio.org/osrt/omf/omf_elements "16. Rights" + if grep "GNU LESSER GENERAL PUBLIC LICENSE" "$ac_file" >/dev/null + then VAR="GNU LGPL" ; break + elif grep "GNU GENERAL PUBLIC LICENSE" "$ac_file" >/dev/null + then VAR="GNU GPL" ; break + elif grep "MOZILLA PUBLIC LICENSE" "$ac_file" >/dev/null + then VAR="MPL" ; break + elif grep "Mozilla Public License" "$ac_file" >/dev/null + then VAR="MPL" ; break + elif grep -i "artistic license" "$ac_file" >/dev/null + then VAR="Artistic" ; break + elif grep -i "artistic control" "$ac_file" >/dev/null + then VAR="Artistic" ; break + elif grep -i "semblance of artistic" "$ac_file" >/dev/null + then VAR="Artistic" ; break + elif grep -i "above copyright notice" "$ac_file" >/dev/null + then VAR="BSD" ; break + fi + done + if test ".$VAR" = "." ; then + if test "$srcdir/COPYING.LIB" ; then VAR="GNU LGPL" + elif test ".$ltmain" != "." ; then VAR="GNU LGPL" + else VAR="GNU GPL" + fi + fi + fi + ],[test ".$VAR" = "." && VAR="$2"]) + test "$VAR" = "GPL" && VAR="GNU GPL" + test "$VAR" = "LGPL" && VAR="GNU LGPL" + AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k]) + AS_VAR_POPDEF([VAR])dnl +]) + +AC_DEFUN([AX_SPEC_PACKAGE_SUMMARY],[AC_REQUIRE([AX_SPEC_FILE])dnl + AS_VAR_PUSHDEF([VAR],[PACKAGE_SUMMARY])dnl + AC_MSG_CHECKING([for spec summary]) + if test ".$VAR" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + AX_SPEC_EXTRACT(VAR,[summary],m4_ifval($1,$1)) + fi fi + test ".$VAR" = "." && k="(fallback)" + ifelse($2,,[dnl here the defaults for SUMMARY + if test ".$VAR" = "." ; then VAR="$PACKAGE" + test ".$VAR" = "." && VAR="foo" + test ".$ltmain" != "." && VAR="$VAR library" + fi + ],[test ".$VAR" = "." && VAR="$2"]) + AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k]) + AS_VAR_POPDEF([VAR])dnl +]) + +AC_DEFUN([AX_SPEC_PACKAGE_ICON],[AC_REQUIRE([AX_SPEC_FILE])dnl + AS_VAR_PUSHDEF([VAR],[PACKAGE_ICON])dnl + AC_MSG_CHECKING([for spec icon]) + if test ".$VAR" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + AX_SPEC_EXTRACT(VAR,[icon],m4_ifval($1,$1)) + fi fi + test ".$VAR" = "." && k="(fallback)" + ifelse($2,,[dnl here the defaults for ICON + if test ".$VAR" = "." ; then VAR="$PACKAGE-icon.png" ; fi + ],[test ".$VAR" = "." && VAR="$2"]) + AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k]) + AS_VAR_POPDEF([VAR])dnl +]) + +AC_DEFUN([AX_SPEC_PACKAGE_CATEGORY],[AC_REQUIRE([AX_SPEC_FILE])dnl + AS_VAR_PUSHDEF([VAR],[PACKAGE_CATEGORY])dnl + AC_MSG_CHECKING([for spec category]) + if test ".$VAR" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + AX_SPEC_EXTRACT(VAR,[group],m4_ifval($1,$1)) + VAR=`echo $VAR | sed -e 's/ /-/g'` + fi fi + test ".$VAR" = "." && k="(fallback)" + ifelse($2,,[dnl here the defaults for CATEGORY + if test ".$VAR" = "." ; then if test ".$ltmain" != "." + then VAR="Development/Library" + else VAR="Development/Other" + fi fi + ],[test ".$VAR" = "." && VAR="$2"]) + AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k]) + AS_VAR_POPDEF([VAR])dnl +]) + +AC_DEFUN([AX_SPEC_PACKAGE_NAME],[AC_REQUIRE([AX_SPEC_FILE])dnl + AS_VAR_PUSHDEF([VAR],[PACKAGE_NAME])dnl + AC_MSG_CHECKING([for spec package]) + if test ".$VAR" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + AX_SPEC_EXTRACT(VAR,[name],m4_ifval($1,$1)) + VAR=`echo $VAR | sed -e 's/ /-/g'` + fi fi + test ".$VAR" = "." && k="(fallback)" + ifelse($2,,[dnl here the defaults for PACKAGE + test ".$VAR" = "." && VAR=`basename $ax_spec_file .spec` + test ".$VAR" = ".README" && VAR="TODO" + test ".$VAR" = ".TODO" && VAR="foo" + ],[test ".$VAR" = "." && VAR="$2"]) + test "VAR" = "PACKAGE_NAME" && test ".$PACKAGE" = "." && PACKAGE="$VAR" + AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k]) + AS_VAR_POPDEF([VAR])dnl +]) + +AC_DEFUN([AX_SPEC_PACKAGE_VERSION_],[AC_REQUIRE([AX_SPEC_FILE])dnl + AS_VAR_PUSHDEF([VAR],[PACKAGE_VERSION])dnl + AC_MSG_CHECKING([for spec version]) + if test ".$VAR" = "." ; then if test ! -f $ax_spec_file + then k="(w/o spec)" + else k="" + AX_SPEC_EXTRACT(VAR,[version],m4_ifval($1,$1)) + VAR=`echo $VAR | sed -e 's/ /-/g'` + fi fi + test ".$VAR" = "." && k="(fallback)" + ifelse($2,,[dnl here the defaults for VERSION + test ".$VAR" = "." && VAR=`date +0.%y.%W%w` + ],[test ".$VAR" = "." && VAR="$2"]) + test "VAR" = "PACKAGE_VERSION" && test ".$VERSION" = "." && VERSION="$VAR" + case "$VAR" in # note we set traditional VERSION before cleaning things up + *.*.) VAR="$VAR"`date +%W%w` ;; + *.*.*) ;; + *.) VAR="$VAR"`date +%y.%W%w` ;; + *.*) VAR="$VAR.0" ;; + *) VAR=AS_TR_SH([$VAR]) ; VAR="$VAR.`date +%y.%W%w`" ;; + esac + VAR=`echo $VAR | sed -e "s/[[.]][0]\\([0-9]\\)/.\\1/g"` + AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k]) + AS_VAR_POPDEF([VAR])dnl +]) + +dnl for compatibility, we define ax_spec_package_version +dnl to do all of ax_spec_package_name as well. +AC_DEFUN([AX_SPEC_PACKAGE_VERSION],[AC_REQUIRE([AX_SPEC_FILE])dnl + ifelse($1,, + AC_MSG_WARN([please use ax_spec_package_AND_version now!]), + AC_MSG_ERROR([please use ax_spec_package_AND_version now!])) + AX_SPEC_PACKAGE_NAME + AX_SPEC_PACKAGE_VERSION_ + +]) + +AC_DEFUN([AX_SPEC_PACKAGE_AND_VERSION],[ + m4_ifset([m4_ax_spec_file],,[AX_SPEC_FILE($1)]) + AX_SPEC_PACKAGE_NAME + AX_SPEC_PACKAGE_VERSION_ +]) + +AC_DEFUN([AX_SPEC_DEFAULTS],[ + m4_ifset([m4_ax_spec_file],,[AX_SPEC_FILE($1)]) + AX_SPEC_PACKAGE_NAME + AX_SPEC_PACKAGE_VERSION_ + AX_SPEC_PACKAGE_LICENSE + AX_SPEC_PACKAGE_SUMMARY + AX_SPEC_PACKAGE_CATEGORY + AX_SPEC_PACKAGE_ICON +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_warning_default_aclocaldir.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_warning_default_aclocaldir.m4 new file mode 100644 index 00000000000..c4cb4aaa7e4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_warning_default_aclocaldir.m4 @@ -0,0 +1,115 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_warning_default_aclocaldir.m4 +dnl @synopsis AX_WARNING_DEFAULT_ACLOCALDIR [(dirvariable [,[defsetting][,[A][,[N/A]]]])] +dnl @synopsis AX_ENABLE_DEFAULT_ACLOCALDIR [(dirvariable [,defsetting])] +dnl +dnl print a warning message if the $(datadir)/aclocal directory is not +dnl in the dirlist searched by the aclocal tool. This macro is useful +dnl if some `make install` would target $(datadir)/aclocal to install +dnl an autoconf m4 file of your project to be picked up by other +dnl projects. +dnl +dnl default $1 dirvariable = aclocaldir +dnl default $2 defsetting = ${datadir}/aclocal +dnl default $3 action = nothing to do +dnl default $4 action = warn the user about mismatch +dnl +dnl In the _WARNING_ variant, the defsetting is not placed in +dnl dirvariable nor is it ac_subst'ed in any way. The default +dnl fail-action $4 is to send a warning message to the user, and the +dnl default accept-action $3 is nothing. It is expected that a Makefile +dnl is generated with aclocaldir=${datadir}/aclocal +dnl +dnl The _ENABLE_ variant however will set not only the $aclocaldir +dnl shell var of the script, but it is also AC-SUBST'ed on default - +dnl and furthermore a configure option "--enable-default-aclocaldir" is +dnl provided. Only if that option is set then $2 default is not set to +dnl the canonic default in the a $prefix subpath but instead $2 default +dnl is set to the primary path where `aclocal` looks for macros. The +dnl user may also override the default on the command line. +dnl +dnl @category Misc +dnl @category Automake +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([AX_WARNING_DEFAULT_ACLOCALDIR],[dnl +AC_REQUIRE([AX_EXPAND_PREFIX])dnl +AS_VAR_PUSHDEF([DIR],[ax_warning_default_aclocal_dir])dnl +AS_VAR_PUSHDEF([BIN],[ax_warning_default_aclocal_bin])dnl +AS_VAR_PUSHDEF([LOC],[ax_warning_default_aclocal_loc])dnl +LOC='m4_if([$2],,[${datadir}/aclocal],[$2])' +m4_ifval([$1],[test ".$[]$1" != "." && LOC="$[]$1"]) + if test ".$ACLOCAL" = "." ; then + AC_PATH_PROG([ACLOCAL],[aclocal],[:]) + fi + BIN="$ACLOCAL" + test ".$BIN" = "." && BIN="aclocal" + DIR=`test ".$SHELL" = "." && SHELL="'sh'" ; eval "$BIN --print-ac-dir"` + test ".$DIR" = "." && test -d "/usr/share/aclocal" && DIR="/usr/share/aclocal" + test ".$DIR" = "." && DIR="/tmp" +DIR=`eval "echo $DIR"` # we need to expand +DIR=`eval "echo $DIR"` +LOC=`eval "echo $LOC"` +LOC=`eval "echo $LOC"` +LOC=`eval "echo $LOC"` +LOC=`eval "echo $LOC"` +AC_RUN_LOG([: test "$LOC" = "$DIR"]) +if test "$LOC" != "$DIR" ; then + if test -f "$DIR/dirlist" ; then + for DIR in `cat $DIR/dirlist` $DIR ; do + AC_RUN_LOG([: test "$LOC" = "$DIR"]) + test "$LOC" = "$DIR" && break + done + fi + if test "$LOC" != "$DIR" ; then + m4_ifval([$4],[$4],[dnl + AC_MSG_NOTICE([warning: m4_if([$1],,[aclocaldir],[$1])=$LOC dnl +(see config.log)]) + AC_MSG_NOTICE([perhaps: make install m4_if([$1],,[aclocaldir],[$1])=$DIR]) + cat m4_ifset([AS_MESSAGE_LOG_FD],[>&AS_MESSAGE_LOG_FD],[>>config.log]) <<EOF + aclocaldir: the m4_if([$1],,[default aclocaldir],[$1 value]) of $LOC + aclocaldir: is not listed in the dirlist where aclocal will look + aclocaldir: for macros - you can override the install-path using + aclocaldir: make install aclocaldir=$DIR + aclocaldir: or append the directory to aclocal reconfigures later as + aclocaldir: aclocal -I $LOC + aclocaldir: when an autoconf macro is needed from that directory +EOF + m4_ifvaln([$5],[$5])])dnl + m4_ifvaln([$3],[else $3])dnl + fi +fi +AS_VAR_POPDEF([LOC])dnl +AS_VAR_POPDEF([BIN])dnl +AS_VAR_POPDEF([DIR])dnl +]) + +AC_DEFUN([AX_ENABLE_DEFAULT_ACLOCALDIR],[dnl +AS_VAR_PUSHDEF([BIN],[ax_warning_default_aclocal_bin])dnl +AS_VAR_PUSHDEF([DIR],[ax_warning_default_aclocal_def])dnl +AS_VAR_PUSHDEF([DEF],[ax_warning_default_aclocal_def])dnl +AC_ARG_ENABLE([enable-default-aclocaldir], +[ --enable-default-aclocaldir(=PATH) override the datadir/aclocal default]) +test ".$enable_default_aclocaldir" = "." && enable_default_aclocaldir="no" +case ".$enable_default_aclocaldir" in + .no) DIR='m4_if([$2],,[${datadir}/aclocal],[$2])' ;; + .yes) # autodetect + if test ".$ACLOCAL" = "." ; then + AC_PATH_PROG([ACLOCAL],[aclocal],[:]) + fi + BIN="$ACLOCAL" + test ".$BIN" = "." && BIN="aclocal" + DIR=`test ".$SHELL" = "." && SHELL="'sh'" ; eval "$BIN --print-ac-dir"` + test ".$DIR" = "." && test -d "/usr/share/aclocal" && DIR="/usr/share/aclocal" + test ".$DIR" = "." && DIR="/tmp" ;; + *) DIR="$enable_default_aclocaldir" ;; +esac +AX_WARNING_DEFAULT_ACLOCALDIR([$1],[$DEF],[$3],[$4],[$5]) +m4_if([$1],,[aclocaldir],[$1])="$ax_warning_default_aclocal_dir" +AC_SUBST(m4_if([$1],,[aclocaldir],[$1])) +AS_VAR_POPDEF([DEF])dnl +AS_VAR_POPDEF([DIR])dnl +AS_VAR_POPDEF([BIN])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_warning_default_pkgconfig.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_warning_default_pkgconfig.m4 new file mode 100644 index 00000000000..f5cdfb3c255 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ax_warning_default_pkgconfig.m4 @@ -0,0 +1,129 @@ +dnl /usr/share/aclocal/guidod-cvs/ax_warning_default_pkgconfig.m4 +dnl @synopsis AX_WARNING_DEFAULT_PKGCONFIGDIR [(dirvariable [,[defsetting][,[A][,[N/A]]]])] +dnl @synopsis AX_ENABLE_DEFAULT_PKGCONFIGDIR [(dirvariable [,defsetting])] +dnl +dnl print a warning message if the $(datadir)/aclocal directory is not +dnl in the dirlist searched by the aclocal tool. This macro is useful +dnl if some `make install` would target $(datadir)/aclocal to install +dnl an autoconf m4 file of your project to be picked up by other +dnl projects. +dnl +dnl default $1 dirvariable = pkgconfigdir +dnl default $2 defsetting = ${libdir}/pkgconfig +dnl default $3 action = nothing to do +dnl default $4 action = warn the user about mismatch +dnl +dnl In the _WARNING_ variant, the defsetting is not placed in +dnl dirvariable nor is it ac_subst'ed in any way. The default +dnl fail-action $4 is to send a warning message to the user, and the +dnl default accept-action $3 is nothing. It is expected that a Makefile +dnl is generated with pkgconfigdir=${libdir}/pkgconfig +dnl +dnl The _ENABLE_ variant however will set not only the $pkgconfigdir +dnl shell var of the script, but it is also AC-SUBST'ed on default - +dnl and furthermore a configure option "--enable-default-pkgconfigdir" +dnl is provided. Only if that option is set then $2 default is not set +dnl to the canonic default in the a $prefix subpath but instead $2 +dnl default is set to the primary path where `pkg-config` looks for .pc +dnl files. The user may also override the default on the command line. +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([AX_WARNING_DEFAULT_PKGCONFIGDIR],[dnl +AC_REQUIRE([AX_EXPAND_PREFIX])dnl +AS_VAR_PUSHDEF([DIR],[ax_warning_default_pkgconfig_dir])dnl +AS_VAR_PUSHDEF([BIN],[ax_warning_default_pkgconfig_bin])dnl +AS_VAR_PUSHDEF([LOC],[ax_warning_default_pkgconfig_loc])dnl +LOC='m4_if([$2],,[${libdir}/pkgconfig],[$2])' +m4_ifval([$1],[test ".$[]$1" != "." && LOC="$[]$1"]) + if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4 + AC_PATH_PROG([PKG_CONFIG],[pkg-config],[no]) + fi + if test "$PKG_CONFIG" = "no" + then DIR="/" ; test -d "/usr/lib/pkgconfig" && DIR="/usr/lib/pkgconfig" + else BIN=`AS_DIRNAME(["$DIR"])` ; + if test -d "$BIN/lib/pkgconfig" ; then + DIR="$BIN/lib/pkgconfig" + else BIN=`AS_DIRNAME(["$DIR"])` + if test -d "$BIN/lib/pkgconfig" ; then + DIR="$BIN/lib/pkgconfig" + else + if test -d "/usr/lib/pkgconfig" ; then + DIR="/usr/lib/pkgconfig" + else + DIR="/" + fi fi fi + fi +AC_RUN_LOG([: last pkgconfig dir is assumed as "$DIR"]) +DIR=`eval "echo $DIR"` +DIR=`eval "echo $DIR"` +LOC=`eval "echo $LOC"` +LOC=`eval "echo $LOC"` +LOC=`eval "echo $LOC"` +LOC=`eval "echo $LOC"` +for DIR in `echo "$PKG_CONFIG_PATH:$DIR" | sed -e 's,:, ,g'` ; do + AC_RUN_LOG([: test ".$LOC" = ".$DIR"]) + test ".$LOC" = ".$DIR" && break +done +if test "$LOC" != "$DIR" ; then + m4_ifval([$4],[$4],[dnl + AC_MSG_NOTICE([warning: m4_if([$1],,[pkgconfigdir],[$1])=$LOC dnl +(see config.log)]) + AC_MSG_NOTICE([perhaps: make install m4_if([$1],,[pkgconfigdir],[$1])=$DIR]) + cat m4_ifset([AS_MESSAGE_LOG_FD],[>&AS_MESSAGE_LOG_FD],[>>config.log]) <<EOF + pkgconfigdir: the m4_if([$1],,[default pkgconfigdir],[$1 value]) of $LOC + pkgconfigdir: is not listed in the dirlist where pkg-config will look for + pkgconfigdir: package-configs - you can override the install-path using + pkgconfigdir: make install m4_if([$1],,[pkgconfigdir],[$1])=$DIR + pkgconfigdir: or set/append the directory to the environment variable + pkgconfigdir: PKG_CONFIG_PATH="$LOC" +EOF + m4_ifvaln([$5],[$5])])dnl + m4_ifvaln([$3],[else $3])dnl +fi +AS_VAR_POPDEF([LOC])dnl +AS_VAR_POPDEF([BIN])dnl +AS_VAR_POPDEF([DIR])dnl +]) + +AC_DEFUN([AX_ENABLE_DEFAULT_PKGCONFIGDIR],[dnl +AS_VAR_PUSHDEF([BIN],[ax_warning_default_pkgconfig_bin])dnl +AS_VAR_PUSHDEF([DIR],[ax_warning_default_pkgconfig_def])dnl +AS_VAR_PUSHDEF([DEF],[ax_warning_default_pkgconfig_def])dnl +AC_ARG_ENABLE([enable-default-pkgconfigdir], +[ --enable-default-pkgconfigdir(=PATH) override the libdir/pkgconfig default]) +test ".$enable_default_pkgconfigdir" = "." && enable_default_pkgconfigdir="no" +case ".$enable_default_pkgconfigdir" in + .no) DIR='m4_if([$2],,[${libdir}/pkgconfig],[$2])' ;; + .yes) # autodetect + if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4 + AC_PATH_PROG([PKG_CONFIG],[pkg-config],[no]) + fi + if test "$PKG_CONFIG" = "no" + then DIR="/tmp" ; test -d "/usr/lib/pkgconfig" && DIR="/usr/lib/pkgconfig" + else BIN=`AS_DIRNAME(["$DIR"])` ; + if test -d "$BIN/lib/pkgconfig" ; then + DIR="$BIN/lib/pkgconfig" + else BIN=`AS_DIRNAME(["$DIR"])` + if test -d "$BIN/lib/pkgconfig" ; then + DIR="$BIN/lib/pkgconfig" + else + if test -d "/usr/lib/pkgconfig" ; then + DIR="/usr/lib/pkgconfig" + else + DIR="/tmp" + fi fi fi + fi ;; + *) DIR="$enable_default_pkgconfigdir" ;; +esac +AX_WARNING_DEFAULT_PKGCONFIGDIR([$1],[$DEF],[$3],[$4],[$5]) +m4_if([$1],,[pkgconfigdir],[$1])="$ax_warning_default_pkgconfig_dir" +AC_SUBST(m4_if([$1],,[pkgconfigdir],[$1])) +AS_VAR_POPDEF([DEF])dnl +AS_VAR_POPDEF([DIR])dnl +AS_VAR_POPDEF([BIN])dnl +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/libtool.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/libtool.m4 new file mode 100644 index 00000000000..39ba996cb96 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/libtool.m4 @@ -0,0 +1,7357 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 56 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl +_LT_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\[$]0 --fallback-echo"')dnl " + lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` + ;; +esac + +_LT_OUTPUT_LIBTOOL_INIT +]) + + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +cat >"$CONFIG_LT" <<_LTEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate a libtool stub with the current configuration. + +lt_cl_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AS_SHELL_SANITIZE +_AS_PREPARE + +exec AS_MESSAGE_FD>&1 +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to <bug-libtool@gnu.org>." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +if test "$no_create" != yes; then + lt_cl_success=: + test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" + exec AS_MESSAGE_LOG_FD>/dev/null + $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false + exec AS_MESSAGE_LOG_FD>>config.log + $lt_cl_success || AS_EXIT(1) +fi +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_XSI_SHELLFNS + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES +# -------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX +# ----------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_SHELL_INIT + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[_LT_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +[$]* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(lt_ECHO) +]) +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], + [An echo program that does not interpret backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[AC_CHECK_TOOL(AR, ar, false) +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1]) + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line __oline__ "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +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 $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$lt_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +_LT_PATH_LD_GNU +AC_SUBST([LD]) + +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) +])# LT_PATH_LD + +# Old names: +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_LD], []) +dnl AC_DEFUN([AC_PROG_LD], []) + + +# _LT_PATH_LD_GNU +#- -------------- +m4_defun([_LT_PATH_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$lt_cv_prog_gnu_ld +])# _LT_PATH_LD_GNU + + +# _LT_CMD_RELOAD +# -------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +m4_defun([_LT_CMD_RELOAD], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac +_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_DECL([], [reload_cmds], [2])dnl +])# _LT_CMD_RELOAD + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method == "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac +AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ 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 + + _LT_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$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 + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE(int foo(void) {}, + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + ) + LDFLAGS="$save_LDFLAGS" + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], + [[If ld is used when linking, flag to hardcode $libdir into a binary + during linking. This must work even if $libdir does not exist]]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [fix_srcfile_path], [1], + [Fix the shell variable $srcfile for the compiler]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_PROG_CXX +# ------------ +# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ +# compiler, we have our own version here. +m4_defun([_LT_PROG_CXX], +[ +pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) +AC_PROG_CXX +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_CXX + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_CXX], []) + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[AC_REQUIRE([_LT_PROG_CXX])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$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 + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_PROG_F77 +# ------------ +# Since AC_PROG_F77 is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_F77], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) +AC_PROG_F77 +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_F77 + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_F77], []) + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_REQUIRE([_LT_PROG_F77])dnl +AC_LANG_PUSH(Fortran 77) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${F77-"f77"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_PROG_FC +# ----------- +# Since AC_PROG_FC is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_FC], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) +AC_PROG_FC +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_FC + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_FC], []) + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_REQUIRE([_LT_PROG_FC])dnl +AC_LANG_PUSH(Fortran) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${FC-"f95"} + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC="$lt_save_CC" +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC="$lt_save_CC" +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_XSI_SHELLFNS +# --------------------- +# Bourne and XSI compatible variants of some useful shell functions. +m4_defun([_LT_PROG_XSI_SHELLFNS], +[case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $[*] )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +dnl func_dirname_and_basename +dnl A portable version of this function is already defined in general.m4sh +dnl so there is no need for it here. + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[[^=]]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$[@]"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]+=\$[2]" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]=\$$[1]\$[2]" +} + +_LT_EOF + ;; + esac +]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltoptions.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltoptions.m4 new file mode 100644 index 00000000000..34151a3ba62 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltoptions.m4 @@ -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])]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltsugar.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltsugar.m4 new file mode 100644 index 00000000000..9000a057d31 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltsugar.m4 @@ -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 +]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltversion.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltversion.m4 new file mode 100644 index 00000000000..b8e154fe6e1 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/ltversion.m4 @@ -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) +]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/lt~obsolete.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/lt~obsolete.m4 new file mode 100644 index 00000000000..637bb2066c4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/lt~obsolete.m4 @@ -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])]) diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_on_darwin_zsh_overquoting.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_on_darwin_zsh_overquoting.m4 new file mode 100644 index 00000000000..ecbfc5ef2ea --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_on_darwin_zsh_overquoting.m4 @@ -0,0 +1,38 @@ +dnl /usr/share/aclocal/guidod-cvs/patch_libtool_on_darwin_zsh_overquoting.m4 +dnl @synopsis PATCH_LIBTOOL_ON_DARWIN_ZSH_OVERQUOTING +dnl +dnl libtool 1.4.x has a bug on darwin where the "zsh" is installed as +dnl the bourne shell replacement. Of course, the zsh is called in a +dnl compatibility mode but there is a common problem with it, probably +dnl a bug of zsh. Newer darwin systems have a "bash" installed now, but +dnl the configure-default will be "zsh" in most systems still. +dnl +dnl The bug revelas itself as an overquoted statement in the libtool +dnl cmds-spec for sharedlib creation on testing for "module" builds. +dnl Later libtool has gone rid of it by simply removing the quotes at +dnl that point . Here we maintain the original style and simply remove +dnl the extra escape character, i.e. we look for "archive_cmds" and +dnl replace a sequence of triple-backslash-and-doublequote with +dnl single-backslash-and-doublequote. +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2003-03-23 +dnl @license GPLWithACException + +AC_DEFUN([PATCH_LIBTOOL_ON_DARWIN_ZSH_OVERQUOTING], +[# libtool-1.4 specific, on zsh target the final requoting does one too much +case "$host_os" in + darwin*) + if grep "1.92" libtool >/dev/null ; then +AC_MSG_RESULT(patching libtool on .so-sharedlib creation (zsh overquoting)) + test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool) + sed -e '/archive_cmds=/s:[[\\]][[\\]][[\\]]*":\\":g' libtool >libtool.new + (test -s libtool.new || rm libtool.new) 2>/dev/null + test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !! + test -f libtool || mv libtool.old libtool + fi + ;; +esac +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_sys_lib_search_path_spec.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_sys_lib_search_path_spec.m4 new file mode 100644 index 00000000000..1eadedf3075 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_sys_lib_search_path_spec.m4 @@ -0,0 +1,41 @@ +dnl /usr/share/aclocal/guidod-cvs/patch_libtool_sys_lib_search_path_spec.m4 +dnl ______ /usr/share/aclocal/guidod-cvs/patch_libtool_sys_lib_search_path_spec.m4 ______ +dnl @synopsis PATCH_LIBTOOL_SYS_LIB_SEARCH_PATH_SPEC +dnl +dnl Cross-compiling to win32 from a unix system reveals a bug - the +dnl path-separator has been set to ";" depending on the target system. +dnl However, the crossgcc search_path_spec works in a unix-environment +dnl with unix-style directories and unix-stylish path_separator. The +dnl result: the search_path_spec is a single word still containing the +dnl ":" separators. +dnl +dnl This macro fixes the situation: when we see the libtool PATH_SEP to +dnl be ":" and search_path_spec to contain ":" characters, then these +dnl are replaced with spaces to let the resulting string work as a +dnl for-loop argument in libtool scripts that resolve -no-undefined +dnl libraries. +dnl +dnl Later libtool generations have fixed the situation with using +dnl $PATH_SEPARATOR in the first place as the original path delimiter +dnl that will be scanned for and replaced into spaces. +dnl +dnl @category Misc +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([PATCH_LIBTOOL_SYS_LIB_SEARCH_PATH_SPEC], +[# patch libtool to fix sys_lib_search_path (e.g. crosscompiling a win32 dll) +if test "_$PATH_SEPARATOR" = "_:" ; then + if grep "^sys_lib_search_path_spec.*:" libtool >/dev/null ; then +AC_MSG_RESULT(patching libtool to fix sys_lib_search_path_spec) + test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool) + sed -e "/^sys_lib_search_path_spec/s/:/ /g" libtool >libtool.new + (test -s libtool.new || rm libtool.new) 2>/dev/null + test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !! + test -f libtool || mv libtool.old libtool + fi +fi +]) + + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_to_add_host_cc.m4 b/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_to_add_host_cc.m4 new file mode 100644 index 00000000000..04c06e337bf --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/m4/patch_libtool_to_add_host_cc.m4 @@ -0,0 +1,66 @@ +dnl /usr/share/aclocal/guidod-cvs/patch_libtool_to_add_host_cc.m4 +dnl @synopsis PATCH_LIBTOOL_TO_ADD_HOST_CC +dnl +dnl The libtool 1.4.x processing (and patched 1.3.5) uses a little +dnl "impgen" tool to turn a "*.dll" into an import "*.lib" as it is +dnl needed for win32 targets. However, this little tool is not shipped +dnl by binutils, it is not even a command option of dlltool or dllwrap. +dnl It happens to be a C source snippet implanted into the libtool +dnl sources - it gets written to ".libs", compiled into a binary +dnl on-the-fly, and executed right away on the "dll" file to create the +dnl import-lib (dll.a files in gcc-speak). +dnl +dnl This mode works fine for a native build within mingw or cygwin, but +dnl it does not work in cross-compile mode since CC is a crosscompiler +dnl - it will create an .exe file on a non-win32 system, and as a +dnl result an impgen.exe is created on-the-fly that can not be executed +dnl on-the-fly. Luckily, the actual libtool snippet uses HOST_CC to +dnl compile the sources which has a fallback to CC when the HOST_CC +dnl variable was not set. +dnl +dnl this ac-macro is trying to detect a valid HOST_CC which is not a +dnl cross-compiler. This is done by looking into the $PATH for a "cc" +dnl and the result is patched into libtool a HOST_CC, iow it adds +dnl another configured variable at the top of the libtool script. +dnl +dnl In discussions on the libtool mailinglist it occurred that later +dnl gcc/binutils generations are able to link with dlls directly, i.e. +dnl there is no import-lib needed anymore. The import-table is created +dnl within the linker itself (in-memory) and bound to the .exe/.dll +dnl currently in the making. The whole stuff of impgen exe and +dnl compiling it on-the-fly, well, it is superflouos then. +dnl +dnl Since mingw crosscompilers tend to be quite a fresh development it +dnl was agreed to remove the impgen stuff completly from libtool +dnl sources. Still however, this macro does not hurt since it does not +dnl patch impgen cmds but it just adds HOST_CC which might be useful in +dnl other cross-compiling cases as well. Therefore, you can leave it in +dnl for maximum compatibility and portability. +dnl +dnl @category Misc +dnl @category C +dnl @author Guido U. Draheim <guidod@gmx.de> +dnl @version 2005-01-21 +dnl @license GPLWithACException + +AC_DEFUN([PATCH_LIBTOOL_TO_ADD_HOST_CC], +[# patch libtool to add HOST_CC sometimes needed in crosscompiling a win32 dll +if grep "HOST_CC" libtool >/dev/null; then + if test "$build" != "$host" ; then + if test "_$HOST_CC" = "_" ; then + HOST_CC="false" + for i in `echo $PATH | sed 's,:, ,g'` ; do + test -x $i/cc && HOST_CC=$i/cc + done + fi +AC_MSG_RESULT(patching libtool to add HOST_CC=$HOST_CC) + test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool) + sed -e "/BEGIN.*LIBTOOL.*CONFIG/a\\ +HOST_CC=$HOST_CC" libtool >libtool.new + (test -s libtool.new || rm libtool.new) 2>/dev/null + test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !! + test -f libtool || mv libtool.old libtool + fi +fi +]) + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzcat.dsp b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzcat.dsp new file mode 100644 index 00000000000..861c81b5d44 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzcat.dsp @@ -0,0 +1,98 @@ +# Microsoft Developer Studio Project File - Name="zzcat" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=zzcat - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "zzcat.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "zzcat.mak" CFG="zzcat - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "zzcat - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "zzcat - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "zzcat - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release/zzcat" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release" + +!ELSEIF "$(CFG)" == "zzcat - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug/zzcat" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug" + +!ENDIF + +# Begin Target + +# Name "zzcat - Win32 Release" +# Name "zzcat - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "c;cpp" +# Begin Source File + +SOURCE=..\bins\zzcat.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h" +# End Group +# End Target +# End Project diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzdir.dsp b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzdir.dsp new file mode 100644 index 00000000000..37431dc6c84 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzdir.dsp @@ -0,0 +1,98 @@ +# Microsoft Developer Studio Project File - Name="zzdir" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=zzdir - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "zzdir.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "zzdir.mak" CFG="zzdir - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "zzdir - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "zzdir - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "zzdir - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release/zzdir" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release" + +!ELSEIF "$(CFG)" == "zzdir - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug/zzdir" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug" + +!ENDIF + +# Begin Target + +# Name "zzdir - Win32 Release" +# Name "zzdir - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "c;cpp" +# Begin Source File + +SOURCE=..\bins\zzdir.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h" +# End Group +# End Target +# End Project diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzip.dsp b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzip.dsp new file mode 100644 index 00000000000..09ce2566a14 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzip.dsp @@ -0,0 +1,183 @@ +# Microsoft Developer Studio Project File - Name="zzip" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=zzip - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "zzip.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "zzip.mak" CFG="zzip - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "zzip - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "zzip - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "zzip - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release/zzip" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZZIP_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "d:\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZZIP_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib libz.lib /nologo /version:10 /dll /machine:I386 /out:"Release/zzip-1.dll" /libpath:"d:\lib" + +!ELSEIF "$(CFG)" == "zzip - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug/zzip" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZZIP_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".." /I "D:\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZZIP_EXPORTS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib libz.lib /nologo /version:10 /dll /debug /machine:I386 /out:"Debug/zzip-1.dll" /pdbtype:sept /libpath:"d:\lib" + +!ENDIF + +# Begin Target + +# Name "zzip - Win32 Release" +# Name "zzip - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\zzip\dir.c +# End Source File +# Begin Source File + +SOURCE=..\zzip\err.c +# End Source File +# Begin Source File + +SOURCE=..\zzip\file.c +# End Source File +# Begin Source File + +SOURCE=..\zzip\info.c +# End Source File +# Begin Source File + +SOURCE=..\zzip\plugin.c +# End Source File +# Begin Source File + +SOURCE=..\zzip\stat.c +# End Source File +# Begin Source File + +SOURCE=..\zzip\write.c +# End Source File +# Begin Source File + +SOURCE=..\zzip\zip.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\zzip\__dirent.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\__mmap.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\_config.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\_msvc.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\conf.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\file.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\format.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\lib.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\plugin.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\stdint.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\zzip.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=..\docs\README.MSVC6 +# End Source File +# End Target +# End Project diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziplib.dsp b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziplib.dsp new file mode 100644 index 00000000000..ac5b7eab754 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziplib.dsp @@ -0,0 +1,172 @@ +# Microsoft Developer Studio Project File - Name="zziplib" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=zziplib - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "zziplib.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "zziplib.mak" CFG="zziplib - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "zziplib - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "zziplib - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "zziplib - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release/zziplib" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I ".." /I "d:\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "zziplib - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug/zziplib" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /I "d:\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "zziplib - Win32 Release" +# Name "zziplib - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "c;cpp" +# Begin Source File + +SOURCE="..\zzip\dir.c" +# End Source File +# Begin Source File + +SOURCE="..\zzip\err.c" +# End Source File +# Begin Source File + +SOURCE="..\zzip\file.c" +# End Source File +# Begin Source File + +SOURCE="..\zzip\info.c" +# End Source File +# Begin Source File + +SOURCE="..\zzip\plugin.c" +# End Source File +# Begin Source File + +SOURCE="..\zzip\stat.c" +# End Source File +# Begin Source File + +SOURCE="..\zzip\write.c" +# End Source File +# Begin Source File + +SOURCE="..\zzip\zip.c" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h" +# Begin Source File + +SOURCE="..\zzip\__dirent.h" +# End Source File +# Begin Source File + +SOURCE="..\zzip\__mmap.h" +# End Source File +# Begin Source File + +SOURCE="..\zzip\_config.h" +# End Source File +# Begin Source File + +SOURCE="..\zzip\_msvc.h" +# End Source File +# Begin Source File + +SOURCE="..\zzip\conf.h" +# End Source File +# Begin Source File + +SOURCE="..\zzip\file.h" +# End Source File +# Begin Source File + +SOURCE=..\zzip\format.h +# End Source File +# Begin Source File + +SOURCE=..\zzip\lib.h +# End Source File +# Begin Source File + +SOURCE="..\zzip\plugin.h" +# End Source File +# Begin Source File + +SOURCE="..\zzip\stdint.h" +# End Source File +# Begin Source File + +SOURCE=..\zzip\zzip.h +# End Source File +# End Group +# Begin Source File + +SOURCE=..\docs\README.MSVC6 +# End Source File +# End Target +# End Project diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziplib.dsw b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziplib.dsw new file mode 100644 index 00000000000..5c7e1766bca --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziplib.dsw @@ -0,0 +1,116 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "zzcat"=".\zzcat.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name zziplib + End Project Dependency +}}} + +############################################################################### + +Project: "zzdir"=".\zzdir.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name zziplib + End Project Dependency +}}} + +############################################################################### + +Project: "zzip"=".\zzip.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "zziplib"=".\zziplib.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "zziptest"=".\zziptest.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name zziplib + End Project Dependency +}}} + +############################################################################### + +Project: "zzipwrap"=".\zzipwrap.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name zziplib + End Project Dependency +}}} + +############################################################################### + +Project: "zzobfuscated"=".\zzobfuscated.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name zziplib + End Project Dependency +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziptest.dsp b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziptest.dsp new file mode 100644 index 00000000000..605265be925 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zziptest.dsp @@ -0,0 +1,98 @@ +# Microsoft Developer Studio Project File - Name="zziptest" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=zziptest - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "zziptest.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "zziptest.mak" CFG="zziptest - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "zziptest - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "zziptest - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "zziptest - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release/zziptest" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release" + +!ELSEIF "$(CFG)" == "zziptest - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug/zziptest" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug" + +!ENDIF + +# Begin Target + +# Name "zziptest - Win32 Release" +# Name "zziptest - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "c;cpp" +# Begin Source File + +SOURCE=..\bins\zziptest.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h" +# End Group +# End Target +# End Project diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzipwrap.dsp b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzipwrap.dsp new file mode 100644 index 00000000000..4f6a328aac8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzipwrap.dsp @@ -0,0 +1,106 @@ +# Microsoft Developer Studio Project File - Name="zzipwrap" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=zzipwrap - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "zzipwrap.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "zzipwrap.mak" CFG="zzipwrap - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "zzipwrap - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "zzipwrap - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "zzipwrap - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release/zzipwrap" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release" + +!ELSEIF "$(CFG)" == "zzipwrap - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug/zzipwrap" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug" + +!ENDIF + +# Begin Target + +# Name "zzipwrap - Win32 Release" +# Name "zzipwrap - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "c;cpp" +# Begin Source File + +SOURCE=..\zzipwrap\wrap.c +# End Source File +# Begin Source File + +SOURCE="..\zzipwrap\zzipwrap.c" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h" +# Begin Source File + +SOURCE=..\zzipwrap\wrap.h +# End Source File +# End Group +# End Target +# End Project diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzobfuscated.dsp b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzobfuscated.dsp new file mode 100644 index 00000000000..566365cf4ac --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc6/zzobfuscated.dsp @@ -0,0 +1,98 @@ +# Microsoft Developer Studio Project File - Name="zzobfuscated" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=zzobfuscated - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "zzobfuscated.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "zzobfuscated.mak" CFG="zzobfuscated - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "zzobfuscated - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "zzobfuscated - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "zzobfuscated - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release/zzobfuscated" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release" + +!ELSEIF "$(CFG)" == "zzobfuscated - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug/zzobfuscated" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug" + +!ENDIF + +# Begin Target + +# Name "zzobfuscated - Win32 Release" +# Name "zzobfuscated - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "c;cpp" +# Begin Source File + +SOURCE=..\bins\zzobfuscated.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h" +# End Group +# End Target +# End Project diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/pkzip.exe b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/pkzip.exe Binary files differnew file mode 100755 index 00000000000..eb0d2673922 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/pkzip.exe diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/test.zip b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/test.zip Binary files differnew file mode 100644 index 00000000000..ce4770015f4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/test.zip diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/test1.zip b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/test1.zip Binary files differnew file mode 100644 index 00000000000..c46015d9431 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/test1.zip diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzcat.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzcat.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzcat.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzcat.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzcat.vcproj new file mode 100644 index 00000000000..a9d4809e91e --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzcat.vcproj @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zziptest" + ProjectGUID="{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zziptest-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zziptest-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\bins\zziptest.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzdir.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzdir.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzdir.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzdir.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzdir.vcproj new file mode 100644 index 00000000000..a6c40e2a8fa --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzdir.vcproj @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzdir" + ProjectGUID="{C118D86C-06E2-4949-B4F1-DB05C823C8E1}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzdir-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzdir-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\bins\zzdir.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzip.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzip.sln new file mode 100644 index 00000000000..33ffa4d9e36 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzip.sln @@ -0,0 +1,69 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zzcat.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzcat", "zzipself.vcproj", "{0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipsetstub", "zzipsetstub.vcproj", "{D15BE737-CF23-4243-A8C4-DB5EE3F5689D}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzdir", "zzdir.vcproj", "{C118D86C-06E2-4949-B4F1-DB05C823C8E1}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziplib", "zziplib.vcproj", "{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipself", "zziptest.vcproj", "{8D0233CC-F821-4853-BE2A-B55B680A49E9}" + ProjectSection(ProjectDependencies) = postProject + {D15BE737-CF23-4243-A8C4-DB5EE3F5689D} = {D15BE737-CF23-4243-A8C4-DB5EE3F5689D} + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipobfuscated", "zzobfuscated.vcproj", "{3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug|Win32.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug|Win32.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release|Win32.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release|Win32.Build.0 = Release|Win32 + {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Debug|Win32.ActiveCfg = Debug|Win32 + {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Release|Win32.ActiveCfg = Release|Win32 + {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Release|Win32.Build.0 = Release|Win32 + {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Debug|Win32.ActiveCfg = Debug|Win32 + {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Release|Win32.ActiveCfg = Release|Win32 + {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Release|Win32.Build.0 = Release|Win32 + {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Debug|Win32.ActiveCfg = Debug|Win32 + {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Release|Win32.ActiveCfg = Release|Win32 + {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Release|Win32.Build.0 = Release|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.Build.0 = Debug|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.ActiveCfg = Release|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.Build.0 = Release|Win32 + {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Debug|Win32.ActiveCfg = Debug|Win32 + {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Release|Win32.ActiveCfg = Release|Win32 + {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Release|Win32.Build.0 = Release|Win32 + {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Debug|Win32.ActiveCfg = Debug|Win32 + {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Release|Win32.ActiveCfg = Release|Win32 + {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzip.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzip.vcproj new file mode 100644 index 00000000000..77c4646d077 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzip.vcproj @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding = "Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.00" + Name="zzip" + ProjectGUID="{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="4" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="lib/zziplibd.lib"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + AdditionalIncludeDirectories="C:\lib\zziplib"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="4" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="TRUE" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB" + StringPooling="TRUE" + RuntimeLibrary="0" + EnableFunctionLevelLinking="TRUE" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="lib/zziplib.lib"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + </Configuration> + </Configurations> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"> + <File + RelativePath="..\zzip\dir.c"> + </File> + <File + RelativePath="..\zzip\err.c"> + </File> + <File + RelativePath="..\zzip\file.c"> + </File> + <File + RelativePath="..\zzip\info.c"> + </File> + <File + RelativePath="..\zzip\plugin.c"> + </File> + <File + RelativePath="..\zzip\stat.c"> + </File> + <File + RelativePath="..\zzip\zip.c"> + </File> + </Filter> + <Filter + Name="Headerdateien" + Filter="h;hpp;hxx;hm;inl;inc"> + <File + RelativePath="..\zzip\__debug.h"> + </File> + <File + RelativePath="..\zzip\__dirent.h"> + </File> + <File + RelativePath="..\zzip\__hints.h"> + </File> + <File + RelativePath="..\zzip\__mmap.h"> + </File> + <File + RelativePath="..\zzip\_config.h"> + </File> + <File + RelativePath="..\zzip\_msvc.h"> + </File> + <File + RelativePath="..\zzip\conf.h"> + </File> + <File + RelativePath="..\zzip\file.h"> + </File> + <File + RelativePath="..\zzip\format.h"> + </File> + <File + RelativePath="..\zzip\lib.h"> + </File> + <File + RelativePath="..\zzip\plugin.h"> + </File> + <File + RelativePath="..\zzip\stdint.h"> + </File> + <File + RelativePath="..\zzip\zzip.h"> + </File> + </Filter> + <Filter + Name="Ressourcendateien" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> + </Filter> + <File + RelativePath="ReadMe.txt"> + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziplib.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziplib.sln new file mode 100644 index 00000000000..9515ef61985 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziplib.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziplib", "zziplib.vcproj", "{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.Build.0 = Debug|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.ActiveCfg = Release|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziplib.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziplib.vcproj new file mode 100644 index 00000000000..6c5f71c06c5 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziplib.vcproj @@ -0,0 +1,260 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zziplib" + ProjectGUID="{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="4" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../zlib/include" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + AdditionalIncludeDirectories="C:\lib\zziplib" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + AdditionalDependencies="zdll.lib" + OutputFile="zziplib-$(ConfigurationName).lib" + AdditionalLibraryDirectories="../zlib/lib" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="4" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../zlib/include" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + AdditionalDependencies="zdll.lib" + OutputFile="zziplib-$(ConfigurationName).lib" + AdditionalLibraryDirectories="../zlib/lib" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\zzip\dir.c" + > + </File> + <File + RelativePath="..\zzip\err.c" + > + </File> + <File + RelativePath="..\zzip\file.c" + > + </File> + <File + RelativePath="..\zzip\info.c" + > + </File> + <File + RelativePath="..\zzip\plugin.c" + > + </File> + <File + RelativePath="..\zzip\stat.c" + > + </File> + <File + RelativePath="..\zzip\zip.c" + > + </File> + </Filter> + <Filter + Name="Headerdateien" + Filter="h;hpp;hxx;hm;inl;inc" + > + <File + RelativePath="..\zzip\__debug.h" + > + </File> + <File + RelativePath="..\zzip\__dirent.h" + > + </File> + <File + RelativePath="..\zzip\__hints.h" + > + </File> + <File + RelativePath="..\zzip\__mmap.h" + > + </File> + <File + RelativePath="..\zzip\_config.h" + > + </File> + <File + RelativePath="..\zzip\_msvc.h" + > + </File> + <File + RelativePath="..\zzip\conf.h" + > + </File> + <File + RelativePath="..\zzip\file.h" + > + </File> + <File + RelativePath="..\zzip\format.h" + > + </File> + <File + RelativePath="..\zzip\lib.h" + > + </File> + <File + RelativePath="..\zzip\plugin.h" + > + </File> + <File + RelativePath="..\zzip\stdint.h" + > + </File> + <File + RelativePath="..\zzip\zzip.h" + > + </File> + </Filter> + <Filter + Name="Ressourcendateien" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + </Filter> + <File + RelativePath="ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.bat b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.bat new file mode 100755 index 00000000000..b0bc8688def --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.bat @@ -0,0 +1,18 @@ +@echo off +rem DOS pkzip.exe does not work under WinXP ! +rem instead using infozip zip.exe + +IF EXIST zzipselftest%1.zip del zzipselftest%1.zip +echo zip -0 zzipselftest%1.zip zzipself%1.exe + zip -0 zzipselftest%1.zip zzipself%1.exe +echo zip -9 zzipselftest%1.zip zzipself.txt + zip -9 zzipselftest%1.zip zzipself.txt +echo zzipsetstub%1.exe zzipselftest%1.zip zzipself%1.exe + zzipsetstub%1.exe zzipselftest%1.zip zzipself%1.exe +echo rename zzipselftest%1.zip zzipselftest%1.exe +IF EXIST zzipselftest%1.exe del zzipselftest%1.exe + ren zzipselftest%1.zip zzipselftest%1.exe + +REM testrun: +echo now testing zzipselftest%1.exe +zzipselftest%1.exe zzipself.txt diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.txt b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.txt new file mode 100644 index 00000000000..f423a018e29 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.txt @@ -0,0 +1,9 @@ +HOWTO create an exe-file with an appended zip-resource - file + +we assume an imaginary game called "tetris.exe" +1. create a zip-archive "tetris.zip" and store "tetris.exe" with NO COMPRESSION (-e0 option in pkzip) +2. add your data-files, images and sounds to "tetris.zip" with arbitrary compression +3. call "setstub tetris.zip tetris.exe" +4. rename tetris.zip into tetris.exe + +now your app should be able read data from itself.
\ No newline at end of file diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.vcproj new file mode 100644 index 00000000000..a2ecfa151c4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipself.vcproj @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzcat" + ProjectGUID="{0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzcat-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzcat-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\bins\zzcat.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipsetstub.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipsetstub.sln new file mode 100644 index 00000000000..bf4bbb5001d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipsetstub.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipsetstub", "zzipsetstub.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipsetstub.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipsetstub.vcproj new file mode 100644 index 00000000000..a2d58135ca2 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzipsetstub.vcproj @@ -0,0 +1,201 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzipsetstub" + ProjectGUID="{D15BE737-CF23-4243-A8C4-DB5EE3F5689D}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipsetstub-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zzipsetstub.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipsetstub-$(ConfigurationName).exe" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\test\zzipsetstub.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziptest.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziptest.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziptest.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziptest.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziptest.vcproj new file mode 100644 index 00000000000..b34253efbda --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zziptest.vcproj @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzipself" + ProjectGUID="{8D0233CC-F821-4853-BE2A-B55B680A49E9}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipself-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + CommandLine="zzipself.bat -$(ConfigurationName)" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipself-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + CommandLine="zzipself.bat -$(ConfigurationName)" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\test\zzipself.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzobfuscated.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzobfuscated.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzobfuscated.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzobfuscated.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzobfuscated.vcproj new file mode 100644 index 00000000000..e2de1c1008b --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc7/zzobfuscated.vcproj @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzipobfuscated" + ProjectGUID="{3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipobfuscated-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipobfuscated-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\bins\zzobfuscated.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/README.TXT b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/README.TXT new file mode 100644 index 00000000000..4767a06787e --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/README.TXT @@ -0,0 +1,61 @@ +These project files were tested with the +free Microsoft Visual C++ 2005 Express Edition. + +Visual C++ Express does NOT include the Win32 SDK Headers. +They must be downloaded separately as documented in the +installation instructions at Microsoft - consequently that +extra installation must be referenced via a system variable: +Set MSSdk=C:\Program Files\Microsoft Platform SDK + +In order to compile you need a valid Zlib SDK - you can +download it from zlib.org in the archive zlib123-dll.zip - +I had unpacked them to $(zziplibdir)/zlib inside the +toplevel of the zziplib source tree. That SDK does ship +with a "zlib1.dll" runtime and "zdll.lib" import library. + +The new Visual Studio has depracated most of the Win32 API +just as well as most of the Posix API. That provokes a lot +of warning message in surplus of the many warning message +that occur on every implicit conversion between signed and +unsigned types. Other compilers are more clever about +detecting real conversion issues, therefore they are not +going to be "patched away" with an explicit conversion in +the source files (I expect Microsoft to get it right somewhen). + +== Download Places == +http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ += central place referenced a lot in the MSDN but the link is broken + +http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-x86.exe +http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-amd64.exe +http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-ia64.exe += Windows Server 2003 SP1 Platform SDK Web Install (win32/win64/.. - but SDK for all CPU types) + +http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-x86.exe +http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-ia64.exe +http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-amd64.exe += Windows Server 2003 R2 Platform SDK Web Install (win32/win64/.. - but SDK for all CPU types) + +http://download.microsoft.com/download/A/9/1/A91D6B2B-A798-47DF-9C7E-A97854B7DD18/VC.iso += Visual C++ Express CD-image +http://download.microsoft.com/download/C/6/F/C6F4733B-67C7-4C15-9F21-61F7A3167505/VCS.iso += Visual C# Express CD-image + +http://zlib.net/zlib123-dll.zip (broken) +http://zlib.net/zlib125-dll.zip += unpack one of them into zzip-0/zlib (if using the subversion checkout) + +== Environment Variables == +On Windows-7 the environment variables can be found in the +control panel > system information > change name settings > extras tab > click button + +== Debug Variables == +To run the zziptest for debugging the solution file has now a setting +in Properties > Debugging > Environment > PATH=$(InputDir)\..\zlib\ +so that the zlib1.dll can be found. This needs to be adapted if the +zlib123-dll.zip was unpackaged somewhere else. + +== Compiling Error == +'can not delete debug/*.idb' - occurs when running MSVC in a VMWare box +pointing to a Unix drive; create a symlink `ln -s Debug debug` to fix it. +There are Pre/Post-Build Rules to remove *.idb but sometimes its left over. diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/test.zip b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/test.zip Binary files differnew file mode 100644 index 00000000000..ce4770015f4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/test.zip diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/test1.zip b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/test1.zip Binary files differnew file mode 100644 index 00000000000..c46015d9431 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/test1.zip diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zip.exe b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zip.exe Binary files differnew file mode 100755 index 00000000000..b6240d89380 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zip.exe diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzcat.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzcat.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzcat.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzcat.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzcat.vcproj new file mode 100644 index 00000000000..e75f3281f46 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzcat.vcproj @@ -0,0 +1,213 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zziptest" + ProjectGUID="{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="false" + AdditionalOptions="/NODEFAULTLIB:library" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zziptest-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalOptions="/NODEFAULTLIB:library" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zziptest-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\bins\zziptest.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzdir.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzdir.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzdir.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzdir.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzdir.vcproj new file mode 100644 index 00000000000..8053aae1187 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzdir.vcproj @@ -0,0 +1,210 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzdir" + ProjectGUID="{C118D86C-06E2-4949-B4F1-DB05C823C8E1}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzdir-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzdir-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\bins\zzdir.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzip.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzip.sln new file mode 100644 index 00000000000..9580f58e46b --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzip.sln @@ -0,0 +1,81 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zzcat.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzcat", "zzipself.vcproj", "{0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipsetstub", "zzipsetstub.vcproj", "{D15BE737-CF23-4243-A8C4-DB5EE3F5689D}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzdir", "zzdir.vcproj", "{C118D86C-06E2-4949-B4F1-DB05C823C8E1}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziplib", "zziplib.vcproj", "{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipself", "zziptest.vcproj", "{8D0233CC-F821-4853-BE2A-B55B680A49E9}" + ProjectSection(ProjectDependencies) = postProject + {D15BE737-CF23-4243-A8C4-DB5EE3F5689D} = {D15BE737-CF23-4243-A8C4-DB5EE3F5689D} + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipobfuscated", "zzobfuscated.vcproj", "{3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}" + ProjectSection(ProjectDependencies) = postProject + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipmmapped", "zzipmmapped.vcproj", "{E7474EF2-BF27-4482-B347-2075BEC6A0D4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipfseeko", "zzipfseeko.vcproj", "{33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug|Win32.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug|Win32.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release|Win32.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release|Win32.Build.0 = Release|Win32 + {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Debug|Win32.ActiveCfg = Debug|Win32 + {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Release|Win32.ActiveCfg = Release|Win32 + {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Release|Win32.Build.0 = Release|Win32 + {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Debug|Win32.ActiveCfg = Debug|Win32 + {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Release|Win32.ActiveCfg = Release|Win32 + {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Release|Win32.Build.0 = Release|Win32 + {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Debug|Win32.ActiveCfg = Debug|Win32 + {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Release|Win32.ActiveCfg = Release|Win32 + {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Release|Win32.Build.0 = Release|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.Build.0 = Debug|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.ActiveCfg = Release|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.Build.0 = Release|Win32 + {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Debug|Win32.ActiveCfg = Debug|Win32 + {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Release|Win32.ActiveCfg = Release|Win32 + {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Release|Win32.Build.0 = Release|Win32 + {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Debug|Win32.ActiveCfg = Debug|Win32 + {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Release|Win32.ActiveCfg = Release|Win32 + {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Release|Win32.Build.0 = Release|Win32 + {E7474EF2-BF27-4482-B347-2075BEC6A0D4}.Debug|Win32.ActiveCfg = Debug|Win32 + {E7474EF2-BF27-4482-B347-2075BEC6A0D4}.Debug|Win32.Build.0 = Debug|Win32 + {E7474EF2-BF27-4482-B347-2075BEC6A0D4}.Release|Win32.ActiveCfg = Release|Win32 + {E7474EF2-BF27-4482-B347-2075BEC6A0D4}.Release|Win32.Build.0 = Release|Win32 + {33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}.Debug|Win32.ActiveCfg = Debug|Win32 + {33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}.Debug|Win32.Build.0 = Debug|Win32 + {33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}.Release|Win32.ActiveCfg = Release|Win32 + {33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzip.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzip.vcproj new file mode 100644 index 00000000000..77c4646d077 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzip.vcproj @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding = "Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.00" + Name="zzip" + ProjectGUID="{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="4" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="lib/zziplibd.lib"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + AdditionalIncludeDirectories="C:\lib\zziplib"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="4" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="TRUE" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB" + StringPooling="TRUE" + RuntimeLibrary="0" + EnableFunctionLevelLinking="TRUE" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLibrarianTool" + OutputFile="lib/zziplib.lib"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + </Configuration> + </Configurations> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"> + <File + RelativePath="..\zzip\dir.c"> + </File> + <File + RelativePath="..\zzip\err.c"> + </File> + <File + RelativePath="..\zzip\file.c"> + </File> + <File + RelativePath="..\zzip\info.c"> + </File> + <File + RelativePath="..\zzip\plugin.c"> + </File> + <File + RelativePath="..\zzip\stat.c"> + </File> + <File + RelativePath="..\zzip\zip.c"> + </File> + </Filter> + <Filter + Name="Headerdateien" + Filter="h;hpp;hxx;hm;inl;inc"> + <File + RelativePath="..\zzip\__debug.h"> + </File> + <File + RelativePath="..\zzip\__dirent.h"> + </File> + <File + RelativePath="..\zzip\__hints.h"> + </File> + <File + RelativePath="..\zzip\__mmap.h"> + </File> + <File + RelativePath="..\zzip\_config.h"> + </File> + <File + RelativePath="..\zzip\_msvc.h"> + </File> + <File + RelativePath="..\zzip\conf.h"> + </File> + <File + RelativePath="..\zzip\file.h"> + </File> + <File + RelativePath="..\zzip\format.h"> + </File> + <File + RelativePath="..\zzip\lib.h"> + </File> + <File + RelativePath="..\zzip\plugin.h"> + </File> + <File + RelativePath="..\zzip\stdint.h"> + </File> + <File + RelativePath="..\zzip\zzip.h"> + </File> + </Filter> + <Filter + Name="Ressourcendateien" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> + </Filter> + <File + RelativePath="ReadMe.txt"> + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipfseeko.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipfseeko.vcproj new file mode 100755 index 00000000000..34924fde00e --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipfseeko.vcproj @@ -0,0 +1,209 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzipfseeko" + ProjectGUID="{33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}" + RootNamespace="zzipfseeko" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + AdditionalDependencies="zdll.lib" + AdditionalLibraryDirectories="../msvc/zlib/lib" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..;../msvc/zlib/include" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zlib.dll" + AdditionalLibraryDirectories="../msvc/zlib/lib" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath="..\zzip\fetch.c" + > + </File> + <File + RelativePath="..\zzip\fseeko.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath="..\zzip\fetch.h" + > + </File> + <File + RelativePath="..\zzip\fseeko.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziplib.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziplib.sln new file mode 100644 index 00000000000..9515ef61985 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziplib.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziplib", "zziplib.vcproj", "{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.Build.0 = Debug|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.ActiveCfg = Release|Win32 + {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziplib.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziplib.vcproj new file mode 100644 index 00000000000..f9570848dda --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziplib.vcproj @@ -0,0 +1,276 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zziplib" + ProjectGUID="{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="4" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + AdditionalIncludeDirectories="C:\lib\zziplib" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + AdditionalDependencies="zdll.lib" + OutputFile="zziplib-$(ConfigurationName).lib" + AdditionalLibraryDirectories="../msvc/zlib/lib" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="4" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../msvc/zlib/include" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + AdditionalDependencies="zdll.lib" + OutputFile="zziplib-$(ConfigurationName).lib" + AdditionalLibraryDirectories="../msvc/zlib/lib" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\zzip\dir.c" + > + </File> + <File + RelativePath="..\zzip\err.c" + > + </File> + <File + RelativePath="..\zzip\fetch.c" + > + </File> + <File + RelativePath="..\zzip\file.c" + > + </File> + <File + RelativePath="..\zzip\info.c" + > + </File> + <File + RelativePath="..\zzip\plugin.c" + > + </File> + <File + RelativePath="..\zzip\stat.c" + > + </File> + <File + RelativePath="..\zzip\zip.c" + > + </File> + </Filter> + <Filter + Name="Headerdateien" + Filter="h;hpp;hxx;hm;inl;inc" + > + <File + RelativePath="..\zzip\__debug.h" + > + </File> + <File + RelativePath="..\zzip\__dirent.h" + > + </File> + <File + RelativePath="..\zzip\__hints.h" + > + </File> + <File + RelativePath="..\zzip\__mmap.h" + > + </File> + <File + RelativePath="..\zzip\_config.h" + > + </File> + <File + RelativePath="..\zzip\_msvc.h" + > + </File> + <File + RelativePath="..\zzip\conf.h" + > + </File> + <File + RelativePath="..\zzip\fetch.h" + > + </File> + <File + RelativePath="..\zzip\file.h" + > + </File> + <File + RelativePath="..\zzip\format.h" + > + </File> + <File + RelativePath="..\zzip\lib.h" + > + </File> + <File + RelativePath="..\zzip\plugin.h" + > + </File> + <File + RelativePath="..\zzip\stdint.h" + > + </File> + <File + RelativePath="..\zzip\zzip.h" + > + </File> + </Filter> + <Filter + Name="Ressourcendateien" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + </Filter> + <File + RelativePath="ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipmmapped.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipmmapped.vcproj new file mode 100755 index 00000000000..3edd7835c81 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipmmapped.vcproj @@ -0,0 +1,227 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzipmmapped" + ProjectGUID="{E7474EF2-BF27-4482-B347-2075BEC6A0D4}" + RootNamespace="zzipmmapped" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include" + PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zdll.lib" + LinkIncremental="2" + AdditionalLibraryDirectories="../msvc/zlib/lib" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="kernel32.lib $(NoInherit)" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath="..\zzip\fetch.c" + > + </File> + <File + RelativePath="..\zzip\memdisk.c" + > + </File> + <File + RelativePath="..\zzip\mmapped.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath="..\zzip\fetch.h" + > + </File> + <File + RelativePath="..\zzip\memdisk.h" + > + </File> + <File + RelativePath="..\zzip\mmapped.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.bat b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.bat new file mode 100755 index 00000000000..b0bc8688def --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.bat @@ -0,0 +1,18 @@ +@echo off +rem DOS pkzip.exe does not work under WinXP ! +rem instead using infozip zip.exe + +IF EXIST zzipselftest%1.zip del zzipselftest%1.zip +echo zip -0 zzipselftest%1.zip zzipself%1.exe + zip -0 zzipselftest%1.zip zzipself%1.exe +echo zip -9 zzipselftest%1.zip zzipself.txt + zip -9 zzipselftest%1.zip zzipself.txt +echo zzipsetstub%1.exe zzipselftest%1.zip zzipself%1.exe + zzipsetstub%1.exe zzipselftest%1.zip zzipself%1.exe +echo rename zzipselftest%1.zip zzipselftest%1.exe +IF EXIST zzipselftest%1.exe del zzipselftest%1.exe + ren zzipselftest%1.zip zzipselftest%1.exe + +REM testrun: +echo now testing zzipselftest%1.exe +zzipselftest%1.exe zzipself.txt diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.txt b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.txt new file mode 100644 index 00000000000..f423a018e29 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.txt @@ -0,0 +1,9 @@ +HOWTO create an exe-file with an appended zip-resource - file + +we assume an imaginary game called "tetris.exe" +1. create a zip-archive "tetris.zip" and store "tetris.exe" with NO COMPRESSION (-e0 option in pkzip) +2. add your data-files, images and sounds to "tetris.zip" with arbitrary compression +3. call "setstub tetris.zip tetris.exe" +4. rename tetris.zip into tetris.exe + +now your app should be able read data from itself.
\ No newline at end of file diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.vcproj new file mode 100644 index 00000000000..ef6be9edaea --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipself.vcproj @@ -0,0 +1,210 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzcat" + ProjectGUID="{0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzcat-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzcat-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\bins\zzcat.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipsetstub.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipsetstub.sln new file mode 100644 index 00000000000..bf4bbb5001d --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipsetstub.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipsetstub", "zzipsetstub.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipsetstub.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipsetstub.vcproj new file mode 100644 index 00000000000..d255f56d4d6 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzipsetstub.vcproj @@ -0,0 +1,209 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzipsetstub" + ProjectGUID="{D15BE737-CF23-4243-A8C4-DB5EE3F5689D}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipsetstub-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zzipsetstub.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipsetstub-$(ConfigurationName).exe" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\test\zzipsetstub.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziptest.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziptest.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziptest.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziptest.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziptest.vcproj new file mode 100644 index 00000000000..7dc3123374a --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zziptest.vcproj @@ -0,0 +1,208 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzipself" + ProjectGUID="{8D0233CC-F821-4853-BE2A-B55B680A49E9}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipself-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + CommandLine="zzipself.bat -$(ConfigurationName)" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipself-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + CommandLine="zzipself.bat -$(ConfigurationName)" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\test\zzipself.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzobfuscated.sln b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzobfuscated.sln new file mode 100644 index 00000000000..b959f0c92f8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzobfuscated.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32 + {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzobfuscated.vcproj b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzobfuscated.vcproj new file mode 100644 index 00000000000..cd08dd227d8 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/msvc8/zzobfuscated.vcproj @@ -0,0 +1,210 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="zzipobfuscated" + ProjectGUID="{3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipobfuscated-$(ConfigurationName).exe" + LinkIncremental="2" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/zziptest.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + OmitFramePointers="true" + AdditionalIncludeDirectories="..;../msvc/zlib/include;"$(MSSdk)/Include"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="zziplib-$(ConfigurationName).lib" + OutputFile="zzipobfuscated-$(ConfigurationName).exe" + LinkIncremental="1" + AdditionalLibraryDirectories="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + Description="del $(ConfigurationName)\vc80.idb" + CommandLine="del $(ConfigurationName)\vc80.idb" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Quelldateien" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm" + > + <File + RelativePath="..\bins\zzobfuscated.c" + > + </File> + </Filter> + <File + RelativePath="zziplib.sln" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/test/Makefile.am b/Build/source/libs/zziplib/zziplib-0.13.60/test/Makefile.am new file mode 100644 index 00000000000..418e0178e22 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/test/Makefile.am @@ -0,0 +1,277 @@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2 +DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir) +DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4 + +EXTRA_DIST = test.zip test1.zip +DISTCLEANFILES = test*.dat test2.zip test3.zip + +zzcat = ../bins/zzcat$(EXEEXT) +zzdir = ../bins/zzdir$(EXEEXT) +zziptest = ../bins/zziptest$(EXEEXT) +zzxorcat = ../bins/zzxorcat$(EXEEXT) +zzxordir = ../bins/zzxordir$(EXEEXT) +zzxorcopy = ../bins/zzxorcopy$(EXEEXT) + +$(zzcat) $(zzdir) $(zziptest) $(zzxorcat) $(zzxordir) $(xorcopy) : \ + @top_srcdir@/bins/*.c @top_srcdir@/zzip/*.c + (cd ../bins && $(MAKE)) + +# ------------------------------------------------------------------- +NULL=/dev/null +README = $(top_srcdir)/README +testdatadir = $(top_builddir)/testdata.d + +testzip testzips : test.zip test1.zip test2.zip test3.zip + +test.zip tmp/../test.zip : $(README) + - test -d tmp || mkdir tmp + - $(MAKE) test0.zip && mv test0.zip $@ + - test -s $@ || cp $(srcdir)/test.zip $@ +test0.zip : $(README) + test -f README || ln -s $(README) . + - $(MKZIP) test_.zip README + @ if test -s test_.zip ;then echo mv test_.zip $@ ; mv test_.zip $@ ;fi + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test1.zip : + @ echo $(MKZIP) $@ ... "(10 files)" \ + ; mkdir test.tmp \ + ; for i in 1 2 3 4 5 6 8 9 \ + ; do echo "file-$i" >test.tmp/file.$$i ; done \ + ; echo " a plain text file here" >test.tmp/README \ + ; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \ + ; rm -rf test.tmp + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test2.zip : # will not be shipped in source tarball + @ echo $(MKZIP) $@ ... "(100 files)" \ + ; mkdir test.tmp \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \ + ; do echo "file-$i" >test.tmp/file.$$j$$i ; done done \ + ; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \ + ; rm -rf test.tmp + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test3.zip : # will not be shipped in source tarball + @ echo $(MKZIP) $@ ... "(1000 files)" \ + ; mkdir test.tmp ; for h in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \ + ; do echo "file-$i" >test.tmp/file.$$h$$j$$i ; done done done \ + ; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \ + ; rm -rf test.tmp + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test4.zip : # will not be shipped in source tarball + @ echo $(MKZIP) $@ ... "(1000 files)" \ + ; mkdir test.tmp ; for h in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \ + ; do echo "file-$i" >test.tmp/file.$$h$$j$$i ; done done done \ + ; (cd test.tmp && $(MKZIP) -n : ../$@ file.* >$(NULL)) \ + ; rm -rf test.tmp + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test.dat : test.zip + $(zzxorcopy) $? $@ +test1.dat : test1.zip + $(zzxorcopy) $? $@ +test2.dat : test2.zip + $(zzxorcopy) $? $@ +test3.dat : test3.zip + $(zzxorcopy) $? $@ + +# ------------------------------------------------------------------- + +stdtests = @ZIPTESTS@ check-test0 check-test1 check-zzdir check-zzcat +xortests = @ZIPTESTS@ check-zzxor check-zzxordir check-zzxorcat +sfxtests = @ZIPTESTS@ check-sfx + +check-local: check-readme $(stdtests) $(xortests) $(sfxtests) + +check-readme : $(zzcat) test.zip + @ test -f test.zip || $(MAKE) tmp/../test.zip + test -s test.zip + @ echo :$@: checking $(zzcat) test/README + @ $(zzcat) test/README >test.out + @ if diff test.out $(README) >$(NULL) \ + ; then rm test.out ; echo check OK ; true \ + ; else rm test.out ; echo check FAIL ; false ; fi + +check-zzxor : $(zzxorcat) test.dat + @ echo :$@: checking $(zzxorcat) test.dat/README + @ $(zzxorcat) test.dat/README >test.out + @ if diff test.out $(README) >$(NULL) \ + ; then rm test.out ; echo check OK ; true \ + ; else rm test.out ; echo check FAIL ; false ; fi + +test: test0 test1 test2 test3 +test0: $(zziptest) + $(zziptest) test.zip +test1: $(zziptest) + $(zziptest) test1.zip +test2: $(zzcat) + $(zzcat) test/README +test3: $(zzdir) + $(zzdir) test1.zip +test4: $(zzdir) test4.zip + $(zzcat) test4/file.113 + +check-test0 : $(zziptest) + @ echo :$@: quick selftest + $(zziptest) test.zip >test.out + rm test.out +check-test1 : $(zziptest) + @ test -f test1.zip || ln -s $(srcdir)/test1.zip test1.zip + @ echo :$@: longer selftest "(about ten seconds)" + $(zziptest) test1.zip >test.out + rm test.out + +check-zzdir : test1.zip test2.zip test3.zip $(zzdir) + @ echo :$@: zip directory access + ./$(zzdir) test1 > test.out + @ X="$(zzdir) test1 "\ + ; if grep file.1 test.out >$(NULL) ; then : \ + ; if grep file.9 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzdir) test2 > test.out + @ X="$(zzdir) test2 "\ + ; if grep file.11 test.out >$(NULL) ; then : \ + ; if grep file.99 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzdir) test3 > test.out + @ X="$(zzdir) test3 "\ + ; if grep file.111 test.out >$(NULL) ; then : \ + ; if grep file.999 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + @ X="$(zzdir) test000" ; echo ./$$X "(negative test)" \ + ; if ./$(zzdir) test000 >test.out ; then : \ + ; echo ..$$X.. FAIL ; false ; else echo ..$$X.. OK ; true ; fi + rm test.out + +check-zzcat : test1.zip test2.zip test3.zip $(zzcat) + @ echo ___ $@ ___ + ./$(zzcat) test1/file.1 test1/file.9 > test.out + @ X="$(zzcat) test1/file.1 test1/file.9 "\ + ; if grep file-1 test.out >$(NULL) ; then : \ + ; if grep file-9 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzcat) test2/file.11 test2/file.99 > test.out + @ X="$(zzcat) test2/file.10 test2/file.99 "\ + ; if grep file-10 test.out >$(NULL) ; then : \ + ; if grep file-99 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzcat) test3/file.111 test3/file.999 > test.out + @ X="$(zzcat) test3/file.111 test3/file.999 "\ + ; if grep file-100 test.out >$(NULL) ; then : \ + ; if grep file-999 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + @ X="$(zzcat) test1/file.999" ; echo ./$$X "(negative test)" \ + ; if ./$(zzdir) test1/file.999 >test.out ; then : \ + ; echo ..$$X.. FAIL ; false ; else echo ..$$X.. OK ; true ; fi + rm test.out + +check-zzxordir : test1.dat test2.dat $(zzxordir) + @ echo ___ $@ ___ + ./$(zzxordir) test1 > test.out + @ X="$(zzxordir) test1 "\ + ; if grep file.1 test.out >$(NULL) ; then : \ + ; if grep file.9 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzxordir) test2.dat > test.out + @ X="$(zzxordir) test2.dat "\ + ; if grep file.11 test.out >$(NULL) ; then : \ + ; if grep file.99 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + rm test.out + +check-zzxorcat : test1.dat test2.dat $(zzxorcat) + @ echo ___ $@ ___ + ./$(zzxorcat) test1/file.1 test1/file.9 > test.out + @ X="$(zzxorcat) test1/file.1 test1/file.9 "\ + ; if grep file-1 test.out >$(NULL) ; then : \ + ; if grep file-9 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzxorcat) test2.dat/file.11 test2/file.99 > test.out + @ X="$(zzxorcat) test2.dat/file.10 test2/file.99 "\ + ; if grep file-10 test.out >$(NULL) ; then : \ + ; if grep file-99 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + rm test.out + +# ------------------------------------------------------------------- +ECHON = echo -n +BRUTE = 0 # default is less than a thousand tests +brute : # which is still a brute force selftest + @ echo $(MKZIP) $@: \ + ; for u in 1 2 3 4 5 6 8 9 ; do for v in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for w in 1 2 3 4 5 6 8 9 ; do for x in $(BRUTE) ; do : \ + ; $(ECHON) $$u$$v$$w$$x: \ + ; rm -rf test.tmp ; mkdir test.tmp \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for m in 1 2 3 4 5 6 8 9 ; do for n in $(BRUTE) ; do : \ + ; echo "file-$$i$$j$$m$$n" >test.tmp/file$$i$$j$$m$$n.txt \ + ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test -f test.tmp/file$$i$$j$$m$$n.txt || exit 2 \ + ; (cd test.tmp && $(MKZIP) ../test$$u$$v$$w$$x.zip file*.* >$(NULL)) \ + ; rm -rf test.tmp \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for m in 1 2 3 4 5 6 8 9 ; do for n in $(BRUTE) ; do : \ + ; ./$(zzcat) test$$u$$v$$w$$x/file$$i$$j$$m$$n.txt >test.out \ + ; if grep file-$$i$$j$$m$$n test.out >$(NULL) ; then rm test.out \ + ; else echo ERROR file-$$i$$j$$m$$n diff in test$$u$$v$$w$$x \ + ; exit 1 ; fi \ + ; ./$(zzdir) test$$u$$v$$w$$x >test.out \ + ; if grep file$$i$$j$$m$$n.txt test.out >$(NULL) ; then rm test.out \ + ; else echo ERROR file$$i$$j$$m$$n.txt not in test$$u$$v$$w$$x \ + ; exit 1 ; fi \ + ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; rm test$$u$$v$$w$$x.zip \ + ; done ; done ; done ; done ; true + +# ------------------------------------------------------------------- + +noinst_PROGRAMS = zzipself zzipsetstub + +zzipself_LDFLAGS = @ZZIPLIB_LDFLAGS@ +zzipself_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz + +../zzip/libzzip.la : @top_srcdir@/zzip/*.c + (cd ../zzip && $(MAKE) `basename $@`) + +zzshowme$(EXEEXT) : zzipself$(EXEEXT) zzipsetstub$(EXEEXT) + $(MKZIP) -0 -j $@ .libs/zzipself$(EXEEXT) + $(MKZIP) -9 -j $@ $(README) + - test -s $@ || cp test2.zip $@ + test ! -f $@.zip || mv $@.zip $@ + ./zzipsetstub $@ .libs/zzipself$(EXEEXT) + - chmod +x $@ + +check-sfx : zzshowme$(EXEEXT) + echo :$@: "./zzshowme readme >readme.out 2>readme.err" + export LD_LIBRARY_PATH="../zzip/.libs:$$LD_LIBRARY_PATH" \ + ; ./zzshowme readme >readme.out 2>readme.err ; true + @ echo 'diff readme.out $(README) || grep "libzzip-" readme.err' \ + ; if test -s readme.out ; then diff readme.out $(README) \ + ; else grep "libzzip-" readme.err || echo "readme.out is empty!" ; fi + rm readme.out readme.err diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/test/Makefile.in b/Build/source/libs/zziplib/zziplib-0.13.60/test/Makefile.in new file mode 100644 index 00000000000..5bd4eb40b26 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/test/Makefile.in @@ -0,0 +1,808 @@ +# Makefile.in generated by automake 1.11.1 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@ +target_triplet = @target@ +noinst_PROGRAMS = zzipself$(EXEEXT) zzipsetstub$(EXEEXT) +subdir = test +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \ + $(top_srcdir)/m4/ac_set_default_paths_system.m4 \ + $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \ + $(top_srcdir)/m4/acx_restrict.m4 \ + $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ + $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \ + $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \ + $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ + $(top_srcdir)/m4/ax_configure_args.m4 \ + $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ + $(top_srcdir)/m4/ax_enable_builddir_uname.m4 \ + $(top_srcdir)/m4/ax_expand_prefix.m4 \ + $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \ + $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \ + $(top_srcdir)/m4/ax_pax_tar.m4 \ + $(top_srcdir)/m4/ax_prefix_config_h.m4 \ + $(top_srcdir)/m4/ax_set_version_info.m4 \ + $(top_srcdir)/m4/ax_spec_file.m4 \ + $(top_srcdir)/m4/ax_spec_package_version.m4 \ + $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \ + $(top_srcdir)/m4/ax_warning_default_pkgconfig.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/patch_libtool_on_darwin_zsh_overquoting.m4 \ + $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \ + $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +PROGRAMS = $(noinst_PROGRAMS) +zzipself_SOURCES = zzipself.c +zzipself_OBJECTS = zzipself.$(OBJEXT) +zzipself_DEPENDENCIES = ../zzip/libzzip.la +zzipself_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(zzipself_LDFLAGS) \ + $(LDFLAGS) -o $@ +zzipsetstub_SOURCES = zzipsetstub.c +zzipsetstub_OBJECTS = zzipsetstub.$(OBJEXT) +zzipsetstub_LDADD = $(LDADD) +depcomp = $(SHELL) $(top_srcdir)/uses/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 = zzipself.c zzipsetstub.c +DIST_SOURCES = zzipself.c zzipsetstub.c +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CONFIG_FILES = @CONFIG_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4 +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTAR = @GNUTAR@ +GREP = @GREP@ +GTAR = @GTAR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKZIP = @MKZIP@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PAX = @PAX@ +PAX_TAR_CREATE = @PAX_TAR_CREATE@ +PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELEASE_INFO = @RELEASE_INFO@ +RESOLVES = @RESOLVES@ +SDL = @SDL@ +SDL_GENERATE = @SDL_GENERATE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +THREAD_SAFE = @THREAD_SAFE@ +VERSION = @VERSION@ +VERSION_INFO = @VERSION_INFO@ +XMLTO = @XMLTO@ +ZIPTESTS = @ZIPTESTS@ +ZLIB_INCL = @ZLIB_INCL@ +ZLIB_LDIR = @ZLIB_LDIR@ +ZLIB_VERSION = @ZLIB_VERSION@ +ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@ +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@ +aclocaldir = @aclocaldir@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_enable_builddir_sed = @ax_enable_builddir_sed@ +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@ +pkgconfig_libdir = @pkgconfig_libdir@ +pkgconfig_libfile = @pkgconfig_libfile@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2 +DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir) +EXTRA_DIST = test.zip test1.zip +DISTCLEANFILES = test*.dat test2.zip test3.zip +zzcat = ../bins/zzcat$(EXEEXT) +zzdir = ../bins/zzdir$(EXEEXT) +zziptest = ../bins/zziptest$(EXEEXT) +zzxorcat = ../bins/zzxorcat$(EXEEXT) +zzxordir = ../bins/zzxordir$(EXEEXT) +zzxorcopy = ../bins/zzxorcopy$(EXEEXT) + +# ------------------------------------------------------------------- +NULL = /dev/null +README = $(top_srcdir)/README +testdatadir = $(top_builddir)/testdata.d + +# ------------------------------------------------------------------- +stdtests = @ZIPTESTS@ check-test0 check-test1 check-zzdir check-zzcat +xortests = @ZIPTESTS@ check-zzxor check-zzxordir check-zzxorcat +sfxtests = @ZIPTESTS@ check-sfx + +# ------------------------------------------------------------------- +ECHON = echo -n +BRUTE = 0 # default is less than a thousand tests +zzipself_LDFLAGS = @ZZIPLIB_LDFLAGS@ +zzipself_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 test/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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 +zzipself$(EXEEXT): $(zzipself_OBJECTS) $(zzipself_DEPENDENCIES) + @rm -f zzipself$(EXEEXT) + $(zzipself_LINK) $(zzipself_OBJECTS) $(zzipself_LDADD) $(LIBS) +zzipsetstub$(EXEEXT): $(zzipsetstub_OBJECTS) $(zzipsetstub_DEPENDENCIES) + @rm -f zzipsetstub$(EXEEXT) + $(LINK) $(zzipsetstub_OBJECTS) $(zzipsetstub_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzipself.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzipsetstub.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 + $(MAKE) $(AM_MAKEFLAGS) check-local +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) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +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: check-am install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am check-local 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 + + +$(zzcat) $(zzdir) $(zziptest) $(zzxorcat) $(zzxordir) $(xorcopy) : \ + @top_srcdir@/bins/*.c @top_srcdir@/zzip/*.c + (cd ../bins && $(MAKE)) + +testzip testzips : test.zip test1.zip test2.zip test3.zip + +test.zip tmp/../test.zip : $(README) + - test -d tmp || mkdir tmp + - $(MAKE) test0.zip && mv test0.zip $@ + - test -s $@ || cp $(srcdir)/test.zip $@ +test0.zip : $(README) + test -f README || ln -s $(README) . + - $(MKZIP) test_.zip README + @ if test -s test_.zip ;then echo mv test_.zip $@ ; mv test_.zip $@ ;fi + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test1.zip : + @ echo $(MKZIP) $@ ... "(10 files)" \ + ; mkdir test.tmp \ + ; for i in 1 2 3 4 5 6 8 9 \ + ; do echo "file-$i" >test.tmp/file.$$i ; done \ + ; echo " a plain text file here" >test.tmp/README \ + ; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \ + ; rm -rf test.tmp + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test2.zip : # will not be shipped in source tarball + @ echo $(MKZIP) $@ ... "(100 files)" \ + ; mkdir test.tmp \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \ + ; do echo "file-$i" >test.tmp/file.$$j$$i ; done done \ + ; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \ + ; rm -rf test.tmp + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test3.zip : # will not be shipped in source tarball + @ echo $(MKZIP) $@ ... "(1000 files)" \ + ; mkdir test.tmp ; for h in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \ + ; do echo "file-$i" >test.tmp/file.$$h$$j$$i ; done done done \ + ; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \ + ; rm -rf test.tmp + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test4.zip : # will not be shipped in source tarball + @ echo $(MKZIP) $@ ... "(1000 files)" \ + ; mkdir test.tmp ; for h in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \ + ; do echo "file-$i" >test.tmp/file.$$h$$j$$i ; done done done \ + ; (cd test.tmp && $(MKZIP) -n : ../$@ file.* >$(NULL)) \ + ; rm -rf test.tmp + @ test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \ + ; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \ + ; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \ + ; fi ; echo test -s $@ ; test -s $@ + +test.dat : test.zip + $(zzxorcopy) $? $@ +test1.dat : test1.zip + $(zzxorcopy) $? $@ +test2.dat : test2.zip + $(zzxorcopy) $? $@ +test3.dat : test3.zip + $(zzxorcopy) $? $@ + +check-local: check-readme $(stdtests) $(xortests) $(sfxtests) + +check-readme : $(zzcat) test.zip + @ test -f test.zip || $(MAKE) tmp/../test.zip + test -s test.zip + @ echo :$@: checking $(zzcat) test/README + @ $(zzcat) test/README >test.out + @ if diff test.out $(README) >$(NULL) \ + ; then rm test.out ; echo check OK ; true \ + ; else rm test.out ; echo check FAIL ; false ; fi + +check-zzxor : $(zzxorcat) test.dat + @ echo :$@: checking $(zzxorcat) test.dat/README + @ $(zzxorcat) test.dat/README >test.out + @ if diff test.out $(README) >$(NULL) \ + ; then rm test.out ; echo check OK ; true \ + ; else rm test.out ; echo check FAIL ; false ; fi + +test: test0 test1 test2 test3 +test0: $(zziptest) + $(zziptest) test.zip +test1: $(zziptest) + $(zziptest) test1.zip +test2: $(zzcat) + $(zzcat) test/README +test3: $(zzdir) + $(zzdir) test1.zip +test4: $(zzdir) test4.zip + $(zzcat) test4/file.113 + +check-test0 : $(zziptest) + @ echo :$@: quick selftest + $(zziptest) test.zip >test.out + rm test.out +check-test1 : $(zziptest) + @ test -f test1.zip || ln -s $(srcdir)/test1.zip test1.zip + @ echo :$@: longer selftest "(about ten seconds)" + $(zziptest) test1.zip >test.out + rm test.out + +check-zzdir : test1.zip test2.zip test3.zip $(zzdir) + @ echo :$@: zip directory access + ./$(zzdir) test1 > test.out + @ X="$(zzdir) test1 "\ + ; if grep file.1 test.out >$(NULL) ; then : \ + ; if grep file.9 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzdir) test2 > test.out + @ X="$(zzdir) test2 "\ + ; if grep file.11 test.out >$(NULL) ; then : \ + ; if grep file.99 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzdir) test3 > test.out + @ X="$(zzdir) test3 "\ + ; if grep file.111 test.out >$(NULL) ; then : \ + ; if grep file.999 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + @ X="$(zzdir) test000" ; echo ./$$X "(negative test)" \ + ; if ./$(zzdir) test000 >test.out ; then : \ + ; echo ..$$X.. FAIL ; false ; else echo ..$$X.. OK ; true ; fi + rm test.out + +check-zzcat : test1.zip test2.zip test3.zip $(zzcat) + @ echo ___ $@ ___ + ./$(zzcat) test1/file.1 test1/file.9 > test.out + @ X="$(zzcat) test1/file.1 test1/file.9 "\ + ; if grep file-1 test.out >$(NULL) ; then : \ + ; if grep file-9 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzcat) test2/file.11 test2/file.99 > test.out + @ X="$(zzcat) test2/file.10 test2/file.99 "\ + ; if grep file-10 test.out >$(NULL) ; then : \ + ; if grep file-99 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzcat) test3/file.111 test3/file.999 > test.out + @ X="$(zzcat) test3/file.111 test3/file.999 "\ + ; if grep file-100 test.out >$(NULL) ; then : \ + ; if grep file-999 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + @ X="$(zzcat) test1/file.999" ; echo ./$$X "(negative test)" \ + ; if ./$(zzdir) test1/file.999 >test.out ; then : \ + ; echo ..$$X.. FAIL ; false ; else echo ..$$X.. OK ; true ; fi + rm test.out + +check-zzxordir : test1.dat test2.dat $(zzxordir) + @ echo ___ $@ ___ + ./$(zzxordir) test1 > test.out + @ X="$(zzxordir) test1 "\ + ; if grep file.1 test.out >$(NULL) ; then : \ + ; if grep file.9 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzxordir) test2.dat > test.out + @ X="$(zzxordir) test2.dat "\ + ; if grep file.11 test.out >$(NULL) ; then : \ + ; if grep file.99 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + rm test.out + +check-zzxorcat : test1.dat test2.dat $(zzxorcat) + @ echo ___ $@ ___ + ./$(zzxorcat) test1/file.1 test1/file.9 > test.out + @ X="$(zzxorcat) test1/file.1 test1/file.9 "\ + ; if grep file-1 test.out >$(NULL) ; then : \ + ; if grep file-9 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + ./$(zzxorcat) test2.dat/file.11 test2/file.99 > test.out + @ X="$(zzxorcat) test2.dat/file.10 test2/file.99 "\ + ; if grep file-10 test.out >$(NULL) ; then : \ + ; if grep file-99 test.out >$(NULL) ; then : \ + ; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi + rm test.out +brute : # which is still a brute force selftest + @ echo $(MKZIP) $@: \ + ; for u in 1 2 3 4 5 6 8 9 ; do for v in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for w in 1 2 3 4 5 6 8 9 ; do for x in $(BRUTE) ; do : \ + ; $(ECHON) $$u$$v$$w$$x: \ + ; rm -rf test.tmp ; mkdir test.tmp \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for m in 1 2 3 4 5 6 8 9 ; do for n in $(BRUTE) ; do : \ + ; echo "file-$$i$$j$$m$$n" >test.tmp/file$$i$$j$$m$$n.txt \ + ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test -f test.tmp/file$$i$$j$$m$$n.txt || exit 2 \ + ; (cd test.tmp && $(MKZIP) ../test$$u$$v$$w$$x.zip file*.* >$(NULL)) \ + ; rm -rf test.tmp \ + ; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 ; do : \ + ; for m in 1 2 3 4 5 6 8 9 ; do for n in $(BRUTE) ; do : \ + ; ./$(zzcat) test$$u$$v$$w$$x/file$$i$$j$$m$$n.txt >test.out \ + ; if grep file-$$i$$j$$m$$n test.out >$(NULL) ; then rm test.out \ + ; else echo ERROR file-$$i$$j$$m$$n diff in test$$u$$v$$w$$x \ + ; exit 1 ; fi \ + ; ./$(zzdir) test$$u$$v$$w$$x >test.out \ + ; if grep file$$i$$j$$m$$n.txt test.out >$(NULL) ; then rm test.out \ + ; else echo ERROR file$$i$$j$$m$$n.txt not in test$$u$$v$$w$$x \ + ; exit 1 ; fi \ + ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \ + ; done ; rm test$$u$$v$$w$$x.zip \ + ; done ; done ; done ; done ; true + +../zzip/libzzip.la : @top_srcdir@/zzip/*.c + (cd ../zzip && $(MAKE) `basename $@`) + +zzshowme$(EXEEXT) : zzipself$(EXEEXT) zzipsetstub$(EXEEXT) + $(MKZIP) -0 -j $@ .libs/zzipself$(EXEEXT) + $(MKZIP) -9 -j $@ $(README) + - test -s $@ || cp test2.zip $@ + test ! -f $@.zip || mv $@.zip $@ + ./zzipsetstub $@ .libs/zzipself$(EXEEXT) + - chmod +x $@ + +check-sfx : zzshowme$(EXEEXT) + echo :$@: "./zzshowme readme >readme.out 2>readme.err" + export LD_LIBRARY_PATH="../zzip/.libs:$$LD_LIBRARY_PATH" \ + ; ./zzshowme readme >readme.out 2>readme.err ; true + @ echo 'diff readme.out $(README) || grep "libzzip-" readme.err' \ + ; if test -s readme.out ; then diff readme.out $(README) \ + ; else grep "libzzip-" readme.err || echo "readme.out is empty!" ; fi + rm readme.out readme.err + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/test/README b/Build/source/libs/zziplib/zziplib-0.13.60/test/README new file mode 100644 index 00000000000..5668eda043a --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/test/README @@ -0,0 +1,47 @@ +PROJECT + The zziplib provides read access to zipped files in a zip-archive, + using compression based solely on free algorithms provided by zlib. + It also provides a functionality to overlay the archive filesystem + with the filesystem of the operating system environment. + +AUTHOR + The project was originally written by Tomi Ollila, later largely + rewritten by Guido Draheim, and extended with contributions in + the years to follow. Guido Draheim <guidod@gmx.de> holds the full + copyright to the zziplib sources. + +COPYING + The zziplib may be used freely under the restrictions of the + GNU Lesser General Public License version 2 or later. Alternativly + the Mozilla Public license can be chosen. The sources are under + a dual license, as long as the MPL hint is not removed, the modified + files will be again under a dual license for the final recipient. + +LICENSING + If you can not use a dynalinked library according to LGPL rules, + then look at docs/copying.htm for a few hints. Generally the LGPL + has a way for staticlinking as well as the MPL has a way. Anyway, + special (paid) licenses can be negotiated with the copyright holder. + +HOMEPAGE + The zziplib project is hosted at SourceForge, the complete + documentation can be found at http://zziplib.sf.net - the + SourceForge servers are also used to distribute the sources + of the zziplib project. Releases are announced via the + freshmeat services on http://freshmeat.net/projects/zziplib + +INSTALLATION + The zziplib sources are built with gnu autotools and they should + be easy to install on unixish systems via the usual sequence of + `configure && make && make check && make install`. Many distributors + ship prebuilt packages e.g. in rpm format. Additionally there are + MSVC project files shipped along for usage with the Microsoft + VisualC series of compilers. There should be no problem either + when crosscompiling the zziplib for a third host platform. + +MAINTAINANCE + The zziplib library is intentionally a lightweight interface to + zip files. The author take patches but please consider to put + complex extensions into separate modules rather than implanting them + right into the core of the library engine. All Patches and Bug Reports + should be sent to Guido Draheim <guidod@gmx.de>. diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/test/test.zip b/Build/source/libs/zziplib/zziplib-0.13.60/test/test.zip Binary files differnew file mode 100644 index 00000000000..399253c13d4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/test/test.zip diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/test/test1.zip b/Build/source/libs/zziplib/zziplib-0.13.60/test/test1.zip Binary files differnew file mode 100644 index 00000000000..c46015d9431 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/test/test1.zip diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/test/zzipself.c b/Build/source/libs/zziplib/zziplib-0.13.60/test/zzipself.c new file mode 100644 index 00000000000..2cd115e75af --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/test/zzipself.c @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB License + */ + +#include <stdio.h> +#include <stdlib.h> +#include <zzip/zzip.h> + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + " zzipself <file>... \n" + " - prints the file to stdout, so you may want to redirect the output; \n" + " the file can be a normal file or an inflated part of a zip-archive, \n" + " however in this case the zip-archive happens to be the executed\n" + " binary itself, as if this program is a self-extract header of a zip. \n" + " zzipself README # same as # zzcat zzipself/README \n" +}; + +int +main (int argc, char ** argv) +{ + int status = 0; + int argn; + if (argc <= 1) + { + printf (usage); + exit (0); + } + + for (argn=1; argn < argc; argn++) + { + /* ZZIP_FILE* fp = zzip_fopen (argv[0]+"/"+argv[argn], "rbi"); */ + /* .... = zzip_open (argv[0]+"/"+argv[argn], O_RDONLY|O_BINARY, + * ZZIP_CASELESS|ZZIP_ONLYZIP, ext, 0); */ + + static const char* ext[] = { "", ".exe", ".EXE", 0 }; + ZZIP_FILE* fp; + ZZIP_DIR* zip = zzip_opendir_ext_io (argv[0], + ZZIP_CASELESS|ZZIP_ONLYZIP, ext, 0); + + if (! zip) { perror(argv[0]); break; } + + fp = zzip_file_open (zip, argv[argn], ZZIP_CASELESS); + + if (! fp) + { + perror (argv[argn]); + continue; + }else{ + char buf[17]; + int n; + + /* read chunks of 16 bytes into buf and print them to stdout */ + while (0 < (n = zzip_read(fp, buf, 16))) + { + buf[n] = '\0'; +# ifdef STDOUT_FILENO + write (STDOUT_FILENO, buf, n); +# else + fwrite (buf, 1, n, stdout); +# endif + } + + if (n == -1) + { + perror (argv[argn]); + status ++; + } + } + + zzip_file_close (fp); + zzip_closedir (zip); + } + + return status; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/test/zzipsetstub.c b/Build/source/libs/zziplib/zziplib-0.13.60/test/zzipsetstub.c new file mode 100644 index 00000000000..5d5ad0c903b --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/test/zzipsetstub.c @@ -0,0 +1,61 @@ +#include <stdio.h> +#include <stdlib.h> + +static const char usage[] = +{ + "zzipsetstub <zipfile> <zipsfxstub>... \n" + " overwrite the header of the zipfile with the sfxstub code.\n" + " this is usually the last step in creating a selfextract archive\n" + " or an application with all its data appended as a zip.\n" +}; + +int +main (int argc, char ** argv) +{ + int argn; + if (argc <= 2) + { + printf (usage); + exit (0); + } + + { + char buf[17]; int n; + char* zipfile = 0; FILE* zipFILE = 0; + char* sfxfile = 0; FILE* sfxFILE = 0; + + for (argn=1; argn < argc; argn++) + { + if (argv[argn][0] == '-') continue; + if (! zipfile) { zipfile = argv[argn]; continue; } + if (! sfxfile) { sfxfile = argv[argn]; continue; } + /* superflous argument */ + } + + zipFILE = fopen (zipfile, "r+b"); + if (! zipFILE) { perror (zipfile); return 1; } + + sfxFILE = fopen (sfxfile, "rb"); + if (! sfxFILE) { perror (sfxfile); return 1; } + + while (0 < (n = fread(buf, 1, 16, sfxFILE))) + { + buf[n] = '\0'; + fwrite (buf, 1, n, zipFILE); + } + + if (n == -1) + perror (argv[argn]); + + fclose (sfxFILE); + fclose (zipFILE); + } + + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/Makefile.am b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/Makefile.am new file mode 100644 index 00000000000..0319cc80fa5 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/Makefile.am @@ -0,0 +1,199 @@ +AUTOMAKE_OPTIONS = 1.5 foreign +AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2 +DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir) +DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4 + +lib_LTLIBRARIES = libzzip.la libzzipmmapped.la libzzipfseeko.la +zzipdir = ${includedir}/zzip +zzip_HEADERS = $(libzzip_la_headers) \ + $(libzzipmmapped_la_headers) \ + $(libzzipfseeko_la_headers) +noinst_HEADERS = __debug.h __hints.h __mmap.h __dirent.h __fnmatch.h +# +VERSION_INFO=@VERSION_INFO@ +RELEASE_INFO=@RELEASE_INFO@ +THREAD_SAFE=@THREAD_SAFE@ +# + +libzzip_la_SOURCES = \ + zip.c \ + file.c \ + dir.c \ + stat.c \ + info.c \ + err.c \ + plugin.c \ + write.c \ + fetch.c +libzzip_la_headers = \ + stdint.h \ + file.h \ + plugin.h \ + lib.h \ + zzip.h \ + zzip32.h \ + write.h \ + fetch.h \ + format.h \ + info.h \ + autoconf.h \ + types.h \ + conf.h \ + _config.h \ + _msvc.h +libzzip_la_LDFLAGS= @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \ + $(THREAD_SAFE) +libzzip_la_LIBADD= -lz @RESOLVES@ + +libzzipmmapped_la_SOURCES = mmapped.c memdisk.c fetch.c +libzzipmmapped____headers = mmapped.h memdisk.h fetch.h +libzzipmmapped_la_headers = mmapped.h memdisk.h +libzzipmmapped_la_LDFLAGS= @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \ + $(THREAD_SAFE) +libzzipmmapped_la_LIBADD= -lz @RESOLVES@ + +libzzipfseeko_la_SOURCES = fseeko.c fetch.c +libzzipfseeko____headers = fseeko.h fetch.h +libzzipfseeko_la_headers = fseeko.h +libzzipfseeko_la_LDFLAGS= @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \ + $(THREAD_SAFE) +libzzipfseeko_la_LIBADD= -lz @RESOLVES@ + +WCC10_DIST = zziplib.wpj +WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt + +EXTRA_DIST = $(WCC10_DIST) _msvc.sed +CONFIG_CLEAN_FILES = _config.h +MAINTAINERCLEANFILES = _msvc.h +CLEANFILES = $(WCC10_CLEAN) *.pc *.omf *~ *.tmp *.tmp.* + +# here is some backward compatibility with version 0.10.* of zziplib +install-data-hook : install-zzipHEADERS + echo '#ifndef ZZIP_WARNING' > $(DESTDIR)$(includedir)/zzip.h + echo '#define ZZIP_WARNING 1' >>$(DESTDIR)$(includedir)/zzip.h + echo '#ifdef __GNUC__' >>$(DESTDIR)$(includedir)/zzip.h + echo '#warning do no not use <zzip.h>, update to include <zzip/lib.h>'\ + >>$(DESTDIR)$(includedir)/zzip.h + echo '#else' >>$(DESTDIR)$(includedir)/zzip.h + echo '#error do no not use <zzip.h>, update to include <zzip/lib.h>'\ + >>$(DESTDIR)$(includedir)/zzip.h + echo '#endif' >>$(DESTDIR)$(includedir)/zzip.h + echo '#endif' >>$(DESTDIR)$(includedir)/zzip.h + echo '#include "zzip/lib.h"' >>$(DESTDIR)$(includedir)/zzip.h + sed -e 's|zzip.h|zziplib.h|' -e 's|zzip/lib.h|zzip/zzip.h|' \ + $(DESTDIR)$(includedir)/zzip.h >$(DESTDIR)$(includedir)/zziplib.h + sed -e 's|zzip.h|zzip-io.h|' -e 's|zzip/lib.h|zzip/plugin.h|' \ + $(DESTDIR)$(includedir)/zzip.h >$(DESTDIR)$(includedir)/zzip-io.h + +install-exec-hook: + @ for i in . $(DESTDIR)$(libdir)/libzzip*.so.13 \ + ; do test -d $$i && continue ; test -f $$i || continue \ + ; lib=`basename "$$i" .so.13` \ + ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.10" \ + ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.10) \ + ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.11" \ + ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.11) \ + ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.12" \ + ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.12) \ + ; done ; true + +uninstall-local : + (cd $(DESTDIR)$(includedir) && rm zziplib.h zzip.h zzip-io.h) + + +INDENT = indent +INDENTFLAGS = \ +--blank-lines-after-procedures \ +--blank-lines-before-block-comments \ +--brace-indent0 \ +--braces-after-if-line \ +--case-indentation0 \ +--cuddle-else \ +--space-after-cast \ +--honour-newlines \ +--indent-level4 \ +--line-length80 \ +--continue-at-parentheses \ +--leave-preprocessor-space \ +--dont-break-function-decl-args \ +--dont-cuddle-do-while \ +--dont-format-first-column-comments \ +--no-space-after-function-call-names \ +--no-space-after-parentheses \ +--no-tabs \ +--ignore-profile \ +--procnames-start-lines \ +--space-after-for \ +--space-after-if \ +--space-after-while \ +--space-special-semicolon + +DIFF_U0 = diff -U0 +# __indent1 = "s|^\\([^{};]*if[^{};]*\\)\\(return[^{};]*;\\)|\\1 { \\2 }|" +__indent1 = ":begin" +__indent2 = "s|^\\([^{}';]*\\)\\({[^{}']*}\\)\\([^{}';]*\\)$$|\\1(' \\2 ');\\3|" +__indent3 = "s|___+[;].*|/*&*/|" +__indent4 = ":end" +__indent6 = "s|!\\([^ !=)]\\)|! \\1|g" +__indent7 = "s|(' \\({[^{}']*}\\) ');|\\1|" +__indent8 = "s|/[*]\\(___+[;].*\\)[*]/$$|\\1|" +__indent9 = ":end" +indent-check: + for file in $(srcdir)/*.c ; do f=`basename "$$file"` \ + ; sed -e $(__indent1) -e $(__indent2) -e $(__indent3) -e $(__indent4) \ + $(INDENTBEFORE) $$file \ + | $(INDENT) $(INDENTFLAGS) $(INDENTOPTS) -st - \ + | sed -e $(__indent6) -e $(__indent7) -e $(__indent8) -e $(__indent9) \ + $(INDENTAFTER) > $$f.tmp \ + ; echo $(DIFF_U0) "$$file" "$$f.tmp" \ + ; $(DIFF_U0) "$$file" "$$f.tmp" ; done + +i: + @ f=`basename $(file) .tmp` \ + ; echo cp $(file) $(srcdir)/$$f ; sleep 2 \ + ; cp $(file) $(srcdir)/$$f + +# ---------------------------------------------------------------------- +pkgconfigdir=$(libdir)/pkgconfig +pkgconfig_HEADERS= zzip-zlib-config.pc zziplib.pc \ + zzipmmapped.pc zzipfseeko.pc + +zziplib.pc : Makefile + (cd .. && sh config.status zzip/zziplib.pc) + +zzip-zlib-config.pc : Makefile + @ echo "zlib_libs=@ZLIB_LDIR@ -lz" >$@ + @ echo "zlib_cflags=@ZLIB_INCL@" >>$@ + @ echo " " >>$@ + @ echo "Name: zzip-zlib-config" >>$@ + @ echo "Version: @ZLIB_VERSION@" >>$@ + @ echo "Description: ZLib Config (for ZZipLib)" >>$@ + echo 'Libs: $${zlib_libs}' >>$@ + echo 'Cflags: $${zlib_cflags}' >>$@ + +zzipmmapped.pc : zziplib.pc + sed -e 's/-lzzip/-lzzipmmapped/' -e 's/zziplib/zzipmmapped/' \ + zziplib.pc >$@ +zzipfseeko.pc : zziplib.pc + sed -e 's/-lzzip/-lzzipfseeko/' -e 's/zziplib/zzipfseeko/' \ + zziplib.pc >$@ + +__zziplib.pc : Makefile + @ echo "prefix=$(prefix)" >$@ + @ echo "libdir=$(libdir)" >>$@ + @ echo "includedir=$(includedir)" >>$@ + @ echo "largefile=$(LARGEFILE_CFLAGS)" >>$@ + @ echo "zlib_libs=@ZLIB_LDIR@ -lz" >>$@ + @ echo "zlib_cflags=@ZLIB_INCL@" >>$@ + @ echo " " >>$@ + @ echo "Name: zziplib" >>$@ + @ echo "Version: $(VERSION)" >>$@ + @ head $(top_srcdir)/$(PACKAGE).spec \ + | grep Summary | sed -e s,Summary,Description, >> $@ + echo 'Requires: zzip-zlib-config' >>$@ + echo 'Libs: -L$${libdir} -lzzip' >>$@ + echo 'Cflags: $${largefile} -I$${includedir}' >>$@ + +# ---------------------------------------------------------------------- +.c.i : + $(COMPILE) -E $< >$@ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/Makefile.in b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/Makefile.in new file mode 100644 index 00000000000..2d45a2b3684 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/Makefile.in @@ -0,0 +1,850 @@ +# Makefile.in generated by automake 1.11.1 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@ +target_triplet = @target@ +subdir = zzip +DIST_COMMON = $(noinst_HEADERS) $(pkgconfig_HEADERS) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in $(zzip_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \ + $(top_srcdir)/m4/ac_set_default_paths_system.m4 \ + $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \ + $(top_srcdir)/m4/acx_restrict.m4 \ + $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ + $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \ + $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \ + $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ + $(top_srcdir)/m4/ax_configure_args.m4 \ + $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ + $(top_srcdir)/m4/ax_enable_builddir_uname.m4 \ + $(top_srcdir)/m4/ax_expand_prefix.m4 \ + $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \ + $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \ + $(top_srcdir)/m4/ax_pax_tar.m4 \ + $(top_srcdir)/m4/ax_prefix_config_h.m4 \ + $(top_srcdir)/m4/ax_set_version_info.m4 \ + $(top_srcdir)/m4/ax_spec_file.m4 \ + $(top_srcdir)/m4/ax_spec_package_version.m4 \ + $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \ + $(top_srcdir)/m4/ax_warning_default_pkgconfig.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/patch_libtool_on_darwin_zsh_overquoting.m4 \ + $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \ + $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(zzipdir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libzzip_la_DEPENDENCIES = +am_libzzip_la_OBJECTS = zip.lo file.lo dir.lo stat.lo info.lo err.lo \ + plugin.lo write.lo fetch.lo +libzzip_la_OBJECTS = $(am_libzzip_la_OBJECTS) +libzzip_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libzzip_la_LDFLAGS) $(LDFLAGS) -o $@ +libzzipfseeko_la_DEPENDENCIES = +am_libzzipfseeko_la_OBJECTS = fseeko.lo fetch.lo +libzzipfseeko_la_OBJECTS = $(am_libzzipfseeko_la_OBJECTS) +libzzipfseeko_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libzzipfseeko_la_LDFLAGS) $(LDFLAGS) -o $@ +libzzipmmapped_la_DEPENDENCIES = +am_libzzipmmapped_la_OBJECTS = mmapped.lo memdisk.lo fetch.lo +libzzipmmapped_la_OBJECTS = $(am_libzzipmmapped_la_OBJECTS) +libzzipmmapped_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libzzipmmapped_la_LDFLAGS) $(LDFLAGS) -o $@ +depcomp = $(SHELL) $(top_srcdir)/uses/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 = $(libzzip_la_SOURCES) $(libzzipfseeko_la_SOURCES) \ + $(libzzipmmapped_la_SOURCES) +DIST_SOURCES = $(libzzip_la_SOURCES) $(libzzipfseeko_la_SOURCES) \ + $(libzzipmmapped_la_SOURCES) +HEADERS = $(noinst_HEADERS) $(pkgconfig_HEADERS) $(zzip_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CONFIG_FILES = @CONFIG_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4 +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTAR = @GNUTAR@ +GREP = @GREP@ +GTAR = @GTAR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKZIP = @MKZIP@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PAX = @PAX@ +PAX_TAR_CREATE = @PAX_TAR_CREATE@ +PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELEASE_INFO = @RELEASE_INFO@ +RESOLVES = @RESOLVES@ +SDL = @SDL@ +SDL_GENERATE = @SDL_GENERATE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +THREAD_SAFE = @THREAD_SAFE@ +VERSION = @VERSION@ +# +VERSION_INFO = @VERSION_INFO@ +XMLTO = @XMLTO@ +ZIPTESTS = @ZIPTESTS@ +ZLIB_INCL = @ZLIB_INCL@ +ZLIB_LDIR = @ZLIB_LDIR@ +ZLIB_VERSION = @ZLIB_VERSION@ +ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@ +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@ +aclocaldir = @aclocaldir@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_enable_builddir_sed = @ax_enable_builddir_sed@ +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@ +pkgconfig_libdir = @pkgconfig_libdir@ +pkgconfig_libfile = @pkgconfig_libfile@ + +# ---------------------------------------------------------------------- +pkgconfigdir = $(libdir)/pkgconfig +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.5 foreign +AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2 +DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir) +lib_LTLIBRARIES = libzzip.la libzzipmmapped.la libzzipfseeko.la +zzipdir = ${includedir}/zzip +zzip_HEADERS = $(libzzip_la_headers) \ + $(libzzipmmapped_la_headers) \ + $(libzzipfseeko_la_headers) + +noinst_HEADERS = __debug.h __hints.h __mmap.h __dirent.h __fnmatch.h +# +libzzip_la_SOURCES = \ + zip.c \ + file.c \ + dir.c \ + stat.c \ + info.c \ + err.c \ + plugin.c \ + write.c \ + fetch.c + +libzzip_la_headers = \ + stdint.h \ + file.h \ + plugin.h \ + lib.h \ + zzip.h \ + zzip32.h \ + write.h \ + fetch.h \ + format.h \ + info.h \ + autoconf.h \ + types.h \ + conf.h \ + _config.h \ + _msvc.h + +libzzip_la_LDFLAGS = @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \ + $(THREAD_SAFE) + +libzzip_la_LIBADD = -lz @RESOLVES@ +libzzipmmapped_la_SOURCES = mmapped.c memdisk.c fetch.c +libzzipmmapped____headers = mmapped.h memdisk.h fetch.h +libzzipmmapped_la_headers = mmapped.h memdisk.h +libzzipmmapped_la_LDFLAGS = @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \ + $(THREAD_SAFE) + +libzzipmmapped_la_LIBADD = -lz @RESOLVES@ +libzzipfseeko_la_SOURCES = fseeko.c fetch.c +libzzipfseeko____headers = fseeko.h fetch.h +libzzipfseeko_la_headers = fseeko.h +libzzipfseeko_la_LDFLAGS = @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \ + $(THREAD_SAFE) + +libzzipfseeko_la_LIBADD = -lz @RESOLVES@ +WCC10_DIST = zziplib.wpj +WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt +EXTRA_DIST = $(WCC10_DIST) _msvc.sed +CONFIG_CLEAN_FILES = _config.h +MAINTAINERCLEANFILES = _msvc.h +CLEANFILES = $(WCC10_CLEAN) *.pc *.omf *~ *.tmp *.tmp.* +INDENT = indent +INDENTFLAGS = \ +--blank-lines-after-procedures \ +--blank-lines-before-block-comments \ +--brace-indent0 \ +--braces-after-if-line \ +--case-indentation0 \ +--cuddle-else \ +--space-after-cast \ +--honour-newlines \ +--indent-level4 \ +--line-length80 \ +--continue-at-parentheses \ +--leave-preprocessor-space \ +--dont-break-function-decl-args \ +--dont-cuddle-do-while \ +--dont-format-first-column-comments \ +--no-space-after-function-call-names \ +--no-space-after-parentheses \ +--no-tabs \ +--ignore-profile \ +--procnames-start-lines \ +--space-after-for \ +--space-after-if \ +--space-after-while \ +--space-special-semicolon + +DIFF_U0 = diff -U0 +# __indent1 = "s|^\\([^{};]*if[^{};]*\\)\\(return[^{};]*;\\)|\\1 { \\2 }|" +__indent1 = ":begin" +__indent2 = "s|^\\([^{}';]*\\)\\({[^{}']*}\\)\\([^{}';]*\\)$$|\\1(' \\2 ');\\3|" +__indent3 = "s|___+[;].*|/*&*/|" +__indent4 = ":end" +__indent6 = "s|!\\([^ !=)]\\)|! \\1|g" +__indent7 = "s|(' \\({[^{}']*}\\) ');|\\1|" +__indent8 = "s|/[*]\\(___+[;].*\\)[*]/$$|\\1|" +__indent9 = ":end" +pkgconfig_HEADERS = zzip-zlib-config.pc zziplib.pc \ + zzipmmapped.pc zzipfseeko.pc + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .i .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 zzip/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign zzip/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libzzip.la: $(libzzip_la_OBJECTS) $(libzzip_la_DEPENDENCIES) + $(libzzip_la_LINK) -rpath $(libdir) $(libzzip_la_OBJECTS) $(libzzip_la_LIBADD) $(LIBS) +libzzipfseeko.la: $(libzzipfseeko_la_OBJECTS) $(libzzipfseeko_la_DEPENDENCIES) + $(libzzipfseeko_la_LINK) -rpath $(libdir) $(libzzipfseeko_la_OBJECTS) $(libzzipfseeko_la_LIBADD) $(LIBS) +libzzipmmapped.la: $(libzzipmmapped_la_OBJECTS) $(libzzipmmapped_la_DEPENDENCIES) + $(libzzipmmapped_la_LINK) -rpath $(libdir) $(libzzipmmapped_la_OBJECTS) $(libzzipmmapped_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/err.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fetch.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memdisk.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmapped.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zip.Plo@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 +install-pkgconfigHEADERS: $(pkgconfig_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || 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_HEADER) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files +install-zzipHEADERS: $(zzip_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(zzipdir)" || $(MKDIR_P) "$(DESTDIR)$(zzipdir)" + @list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || 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_HEADER) $$files '$(DESTDIR)$(zzipdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(zzipdir)" || exit $$?; \ + done + +uninstall-zzipHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(zzipdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(zzipdir)" && rm -f $$files + +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 $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(zzipdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(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: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + 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-pkgconfigHEADERS install-zzipHEADERS + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-data-hook +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-exec-hook +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-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: uninstall-libLTLIBRARIES uninstall-local \ + uninstall-pkgconfigHEADERS uninstall-zzipHEADERS + +.MAKE: install-am install-data-am install-exec-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool 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-data-hook install-dvi install-dvi-am install-exec \ + install-exec-am install-exec-hook install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ + install-man install-pdf install-pdf-am \ + install-pkgconfigHEADERS install-ps install-ps-am \ + install-strip install-zzipHEADERS 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 uninstall-libLTLIBRARIES uninstall-local \ + uninstall-pkgconfigHEADERS uninstall-zzipHEADERS + + +# here is some backward compatibility with version 0.10.* of zziplib +install-data-hook : install-zzipHEADERS + echo '#ifndef ZZIP_WARNING' > $(DESTDIR)$(includedir)/zzip.h + echo '#define ZZIP_WARNING 1' >>$(DESTDIR)$(includedir)/zzip.h + echo '#ifdef __GNUC__' >>$(DESTDIR)$(includedir)/zzip.h + echo '#warning do no not use <zzip.h>, update to include <zzip/lib.h>'\ + >>$(DESTDIR)$(includedir)/zzip.h + echo '#else' >>$(DESTDIR)$(includedir)/zzip.h + echo '#error do no not use <zzip.h>, update to include <zzip/lib.h>'\ + >>$(DESTDIR)$(includedir)/zzip.h + echo '#endif' >>$(DESTDIR)$(includedir)/zzip.h + echo '#endif' >>$(DESTDIR)$(includedir)/zzip.h + echo '#include "zzip/lib.h"' >>$(DESTDIR)$(includedir)/zzip.h + sed -e 's|zzip.h|zziplib.h|' -e 's|zzip/lib.h|zzip/zzip.h|' \ + $(DESTDIR)$(includedir)/zzip.h >$(DESTDIR)$(includedir)/zziplib.h + sed -e 's|zzip.h|zzip-io.h|' -e 's|zzip/lib.h|zzip/plugin.h|' \ + $(DESTDIR)$(includedir)/zzip.h >$(DESTDIR)$(includedir)/zzip-io.h + +install-exec-hook: + @ for i in . $(DESTDIR)$(libdir)/libzzip*.so.13 \ + ; do test -d $$i && continue ; test -f $$i || continue \ + ; lib=`basename "$$i" .so.13` \ + ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.10" \ + ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.10) \ + ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.11" \ + ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.11) \ + ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.12" \ + ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.12) \ + ; done ; true + +uninstall-local : + (cd $(DESTDIR)$(includedir) && rm zziplib.h zzip.h zzip-io.h) +indent-check: + for file in $(srcdir)/*.c ; do f=`basename "$$file"` \ + ; sed -e $(__indent1) -e $(__indent2) -e $(__indent3) -e $(__indent4) \ + $(INDENTBEFORE) $$file \ + | $(INDENT) $(INDENTFLAGS) $(INDENTOPTS) -st - \ + | sed -e $(__indent6) -e $(__indent7) -e $(__indent8) -e $(__indent9) \ + $(INDENTAFTER) > $$f.tmp \ + ; echo $(DIFF_U0) "$$file" "$$f.tmp" \ + ; $(DIFF_U0) "$$file" "$$f.tmp" ; done + +i: + @ f=`basename $(file) .tmp` \ + ; echo cp $(file) $(srcdir)/$$f ; sleep 2 \ + ; cp $(file) $(srcdir)/$$f + +zziplib.pc : Makefile + (cd .. && sh config.status zzip/zziplib.pc) + +zzip-zlib-config.pc : Makefile + @ echo "zlib_libs=@ZLIB_LDIR@ -lz" >$@ + @ echo "zlib_cflags=@ZLIB_INCL@" >>$@ + @ echo " " >>$@ + @ echo "Name: zzip-zlib-config" >>$@ + @ echo "Version: @ZLIB_VERSION@" >>$@ + @ echo "Description: ZLib Config (for ZZipLib)" >>$@ + echo 'Libs: $${zlib_libs}' >>$@ + echo 'Cflags: $${zlib_cflags}' >>$@ + +zzipmmapped.pc : zziplib.pc + sed -e 's/-lzzip/-lzzipmmapped/' -e 's/zziplib/zzipmmapped/' \ + zziplib.pc >$@ +zzipfseeko.pc : zziplib.pc + sed -e 's/-lzzip/-lzzipfseeko/' -e 's/zziplib/zzipfseeko/' \ + zziplib.pc >$@ + +__zziplib.pc : Makefile + @ echo "prefix=$(prefix)" >$@ + @ echo "libdir=$(libdir)" >>$@ + @ echo "includedir=$(includedir)" >>$@ + @ echo "largefile=$(LARGEFILE_CFLAGS)" >>$@ + @ echo "zlib_libs=@ZLIB_LDIR@ -lz" >>$@ + @ echo "zlib_cflags=@ZLIB_INCL@" >>$@ + @ echo " " >>$@ + @ echo "Name: zziplib" >>$@ + @ echo "Version: $(VERSION)" >>$@ + @ head $(top_srcdir)/$(PACKAGE).spec \ + | grep Summary | sed -e s,Summary,Description, >> $@ + echo 'Requires: zzip-zlib-config' >>$@ + echo 'Libs: -L$${libdir} -lzzip' >>$@ + echo 'Cflags: $${largefile} -I$${includedir}' >>$@ + +# ---------------------------------------------------------------------- +.c.i : + $(COMPILE) -E $< >$@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__debug.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__debug.h new file mode 100644 index 00000000000..13c7d895443 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__debug.h @@ -0,0 +1,89 @@ +#ifndef __ZZIP_INTERNAL_DEBUG_H +#define __ZZIP_INTERNAL_DEBUG_H + +#include <zzip/conf.h> +#include <zzip/__hints.h> + +/* perhaps want to show on syslog(3) ?? */ + +#ifdef DEBUG +#include <stdio.h> +#define DBG1(X1) ZZIP_FOR1 { \ + fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \ + ); } ZZIP_END1 +#define DBG2(X1,X2) ZZIP_FOR1 { \ + fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \ + ,X2);} ZZIP_END1 +#define DBG3(X1,X2,X3) ZZIP_FOR1 { \ + fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \ + ,X2,X3); } ZZIP_END1 +#define DBG4(X1,X2,X3,X4) ZZIP_FOR1 { \ + fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \ + ,X2,X3,X4); } ZZIP_END1 +#define DBG5(X1,X2,X3,X4,X5) ZZIP_FOR1 { \ + fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \ + ,X2,X3,X4,X5); } ZZIP_END1 +#define DBG6(X1,X2,X3,X4,X5,X6) ZZIP_FOR1 { \ + fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \ + ,X2,X3,X4,X5,X6); } ZZIP_END1 + +#else +#define DBG1(X1) {} +#define DBG2(X1,X2) {} +#define DBG3(X1,X2,X3) {} +#define DBG4(X1,X2,X3,X4) {} +#define DBG5(X1,X2,X3,X4,X5) {} +#define DBG6(X1,X2,X3,X4,X5,X6) {} +#endif + +#define HINT1(X1) DBG1("HINT: " X1) +#define HINT2(X1,X2) DBG2("HINT: " X1,X2) +#define HINT3(X1,X2,X3) DBG3("HINT: " X1,X2,X3) +#define HINT4(X1,X2,X3,X4) DBG4("HINT: " X1,X2,X3,X4) +#define HINT5(X1,X2,X3,X4,X5) DBG5("HINT: " X1,X2,X3,X4,X5) +#define HINT6(X1,X2,X3,X4,X5,X6) DBG6("HINT: " X1,X2,X3,X4,X5,X6) + +#define NOTE1(X1) DBG1("NOTE: " X1) +#define NOTE2(X1,X2) DBG2("NOTE: " X1,X2) +#define NOTE3(X1,X2,X3) DBG3("NOTE: " X1,X2,X3) +#define NOTE4(X1,X2,X3,X4) DBG4("NOTE: " X1,X2,X3,X4) +#define NOTE5(X1,X2,X3,X4,X5) DBG5("NOTE: " X1,X2,X3,X4,X5) +#define NOTE6(X1,X2,X3,X4,X5,X6) DBG6("NOTE: " X1,X2,X3,X4,X5,X6) + +#define WARN1(X1) DBG1("WARN: " X1) +#define WARN2(X1,X2) DBG2("WARN: " X1,X2) +#define WARN3(X1,X2,X3) DBG3("WARN: " X1,X2,X3) +#define WARN4(X1,X2,X3,X4) DBG4("WARN: " X1,X2,X3,X4) +#define WARN5(X1,X2,X3,X4,X5) DBG5("WARN: " X1,X2,X3,X4,X5) +#define WARN6(X1,X2,X3,X4,X5,X6) DBG6("WARN: " X1,X2,X3,X4,X5,X6) + +#define FAIL1(X1) DBG1("FAIL: " X1) +#define FAIL2(X1,X2) DBG2("FAIL: " X1,X2) +#define FAIL3(X1,X2,X3) DBG3("FAIL: " X1,X2,X3) +#define FAIL4(X1,X2,X3,X4) DBG4("FAIL: " X1,X2,X3,X4) +#define FAIL5(X1,X2,X3,X4,X5) DBG5("FAIL: " X1,X2,X3,X4,X5) +#define FAIL6(X1,X2,X3,X4,X5,X6) DBG6("FAIL: " X1,X2,X3,X4,X5,X6) + + + +#ifdef DEBUG +_zzip_inline static void zzip_debug_xbuf (unsigned char* p, int l) + /* ZZIP_GNUC_UNUSED */ +{ +# define q(a) ((a&0x7F)<32?32:(a&0x7F)) + while (l > 0) + { + fprintf (stderr, + "%02x %02x %02x %02x " + "%02x %02x %02x %02x " + "%c%c%c%c %c%c%c%c\n", + p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], + q(p[0]), q(p[1]), q(p[2]), q(p[3]), + q(p[4]), q(p[5]), q(p[6]), q(p[7])); + p += 8; l -= 8; + } +# undef q +} +#endif + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__dirent.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__dirent.h new file mode 100644 index 00000000000..fc3e08f03d1 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__dirent.h @@ -0,0 +1,393 @@ +#ifndef ZZIP_INTERNAL_DIRENT_H +#define ZZIP_INTERNAL_DIRENT_H +#include <zzip/conf.h> + +/* + * DO NOT USE THIS CODE. + * + * It is an internal header file for zziplib that carries some inline + * functions (or just static members) and a few defines, simply to be + * able to reuse these across - and have everything in a specific place. + * + * Copyright (c) 2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#ifdef ZZIP_HAVE_DIRENT_H +#define USE_DIRENT 1 + +#define _zzip_opendir opendir +#define _zzip_readdir readdir +#define _zzip_closedir closedir +#define _zzip_rewinddir rewinddir +#define _zzip_telldir telldir +#define _zzip_seekdir seekdir +#define _zzip_DIR DIR + +#include <dirent.h> + +#elif defined ZZIP_HAVE_WINBASE_H +#define USE_DIRENT 2 + +#define _zzip_opendir win32_opendir +#define _zzip_readdir win32_readdir +#define _zzip_closedir win32_closedir +#define _zzip_rewinddir win32_rewinddir +#define _zzip_telldir win32_telldir +#define _zzip_seekdir win32_seekdir +#define _zzip_DIR DIR + +/* + * DIRENT.H (formerly DIRLIB.H) + * + * by M. J. Weinstein Released to public domain 1-Jan-89 + * + * Because I have heard that this feature (opendir, readdir, closedir) + * it so useful for programmers coming from UNIX or attempting to port + * UNIX code, and because it is reasonably light weight, I have included + * it in the Mingw32 package. I have also added an implementation of + * rewinddir, seekdir and telldir. + * - Colin Peters <colin@bird.fu.is.saga-u.ac.jp> + * + * This code is distributed in the hope that is will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAMED. This includeds but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#include <io.h> + +struct dirent +{ + long d_ino; /* Always zero. */ + unsigned short d_reclen; /* Always zero. */ + unsigned short d_namlen; /* Length of name in d_name. */ + char* d_name; /* File name. */ + /* NOTE: The name in the dirent structure points to the name in the + * finddata_t structure in the DIR. */ +}; + +/* + * This is an internal data structure. Good programmers will not use it + * except as an argument to one of the functions below. + */ +typedef struct +{ + /* disk transfer area for this dir */ + struct _finddata_t dd_dta; + + /* dirent struct to return from dir (NOTE: this makes this thread + * safe as long as only one thread uses a particular DIR struct at + * a time) */ + struct dirent dd_dir; + + /* _findnext handle */ + long dd_handle; + + /* + * Status of search: + * 0 = not started yet (next entry to read is first entry) + * -1 = off the end + * positive = 0 based index of next entry + */ + short dd_stat; + + /* given path for dir with search pattern (struct is extended) */ + char dd_name[1]; +} DIR; + +/* + * dirent.c + * + * Derived from DIRLIB.C by Matt J. Weinstein + * This note appears in the DIRLIB.H + * DIRLIB.H by M. J. Weinstein Released to public domain 1-Jan-89 + * + * Updated by Jeremy Bettis <jeremy@hksys.com> + * Significantly revised and rewinddir, seekdir and telldir added by Colin + * Peters <colin@fu.is.saga-u.ac.jp> + */ + +#include <direct.h> +#include <errno.h> +#include <io.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> + +#define win32_SUFFIX "*" +#define win32_SLASH "\\" + +#ifndef S_ISDIR +#define S_ISDIR(m) ((m & S_IFMT) == S_IFDIR) /* is a directory */ +#endif S_ISDIR + + +/* + opendir + + Returns a pointer to a DIR structure appropriately filled in to begin + searching a directory. +*/ +static DIR* +win32_opendir (const char *szPath) +{ + DIR *nd; + struct _stat statDir; + + errno = 0; + + if (!szPath) { + errno = EFAULT; + return (DIR *) 0; + } + + if (szPath[0] == '\0') { + errno = ENOTDIR; + return (DIR *) 0; + } + + /* Attempt to determine if the given path really is a directory. */ + if (_stat (szPath, &statDir)) { + /* Error, stat should have set an error value. */ + return (DIR *) 0; + } + + if (!S_ISDIR (statDir.st_mode)) { + /* Error, stat reports not a directory. */ + errno = ENOTDIR; + return (DIR *) 0; + } + + /* Allocate enough space to store DIR structure and the complete * + directory path given. */ + nd = (DIR *) calloc (1, sizeof (DIR) + strlen (szPath) + + strlen (win32_SLASH) + strlen (win32_SUFFIX)); + + if (!nd) { + /* Error, out of memory. */ + errno = ENOMEM; + return (DIR *) 0; + } + + /* Create the search expression. */ + strcpy (nd->dd_name, szPath); + + /* Add on a slash if the path does not end with one. */ + if (nd->dd_name[0] != '\0' && + nd->dd_name[strlen (nd->dd_name) - 1] != '/' && + nd->dd_name[strlen (nd->dd_name) - 1] != '\\') { + strcat (nd->dd_name, win32_SLASH); + } + + /* Add on the search pattern */ + strcat (nd->dd_name, win32_SUFFIX); + + /* Initialize handle to -1 so that a premature closedir doesn't try * to + call _findclose on it. */ + nd->dd_handle = -1; + + /* Initialize the status. */ + nd->dd_stat = 0; + + /* Initialize the dirent structure. ino and reclen are invalid under * + Win32, and name simply points at the appropriate part of the * + findfirst_t structure. */ + nd->dd_dir.d_ino = 0; + nd->dd_dir.d_reclen = 0; + nd->dd_dir.d_namlen = 0; + nd->dd_dir.d_name = nd->dd_dta.name; + + return nd; +} + +/* + readdir + + Return a pointer to a dirent structure filled with the information on the + next entry in the directory. +*/ +static struct dirent * +win32_readdir (DIR * dirp) +{ + errno = 0; + + /* Check for valid DIR struct. */ + if (!dirp) { + errno = EFAULT; + return (struct dirent *) 0; + } + + if (dirp->dd_dir.d_name != dirp->dd_dta.name) { + /* The structure does not seem to be set up correctly. */ + errno = EINVAL; + return (struct dirent *) 0; + } + + if (dirp->dd_stat < 0) { + /* We have already returned all files in the directory * (or the + structure has an invalid dd_stat). */ + return (struct dirent *) 0; + } else if (dirp->dd_stat == 0) { + /* We haven't started the search yet. */ + /* Start the search */ + dirp->dd_handle = _findfirst (dirp->dd_name, &(dirp->dd_dta)); + + if (dirp->dd_handle == -1) { + /* Whoops! Seems there are no files in that * directory. */ + dirp->dd_stat = -1; + } else { + dirp->dd_stat = 1; + } + } else { + /* Get the next search entry. */ + if (_findnext (dirp->dd_handle, &(dirp->dd_dta))) { + /* We are off the end or otherwise error. */ + _findclose (dirp->dd_handle); + dirp->dd_handle = -1; + dirp->dd_stat = -1; + } else { + /* Update the status to indicate the correct * number. */ + dirp->dd_stat++; + } + } + + if (dirp->dd_stat > 0) { + /* Successfully got an entry. Everything about the file is * already + appropriately filled in except the length of the * file name. */ + dirp->dd_dir.d_namlen = (unsigned short) strlen (dirp->dd_dir.d_name); + return &dirp->dd_dir; + } + + return (struct dirent *) 0; +} + +/* + closedir + + Frees up resources allocated by opendir. +*/ +static int +win32_closedir (DIR * dirp) +{ + int rc; + + errno = 0; + rc = 0; + + if (!dirp) { + errno = EFAULT; + return -1; + } + + if (dirp->dd_handle != -1) { + rc = _findclose (dirp->dd_handle); + } + + /* Delete the dir structure. */ + free (dirp); + + return rc; +} + +/* + rewinddir + + Return to the beginning of the directory "stream". We simply call findclose + and then reset things like an opendir. +*/ +static void +win32_rewinddir (DIR * dirp) +{ + errno = 0; + + if (!dirp) { + errno = EFAULT; + return; + } + + if (dirp->dd_handle != -1) { + _findclose (dirp->dd_handle); + } + + dirp->dd_handle = -1; + dirp->dd_stat = 0; +} + +/* + telldir + + Returns the "position" in the "directory stream" which can be used with + seekdir to go back to an old entry. We simply return the value in stat. +*/ +static long +win32_telldir (DIR * dirp) +{ + errno = 0; + + if (!dirp) { + errno = EFAULT; + return -1; + } + return dirp->dd_stat; +} + +/* + seekdir + + Seek to an entry previously returned by telldir. We rewind the directory + and call readdir repeatedly until either dd_stat is the position number + or -1 (off the end). This is not perfect, in that the directory may + have changed while we weren't looking. But that is probably the case with + any such system. +*/ +static void +win32_seekdir (DIR * dirp, long lPos) +{ + errno = 0; + + if (!dirp) { + errno = EFAULT; + return; + } + + if (lPos < -1) { + /* Seeking to an invalid position. */ + errno = EINVAL; + return; + } else if (lPos == -1) { + /* Seek past end. */ + if (dirp->dd_handle != -1) { + _findclose (dirp->dd_handle); + } + dirp->dd_handle = -1; + dirp->dd_stat = -1; + } else { + /* Rewind and read forward to the appropriate index. */ + win32_rewinddir (dirp); + + while ((dirp->dd_stat < lPos) && win32_readdir (dirp)); + } +} + +#else +#define USE_DIRENT 0 + +#define _zzip_opendir(_N_) 0 +#define _zzip_readdir(_D_) 0 +#define _zzip_closedir(_D_) /* omit return code */ +#define _zzip_rewinddir(_D_) +#define _zzip_telldir(_D_) 0 +#define _zzip_seekdir(_D_,_V_) /* omit return code */ +#define _zzip_DIR void* + +/* end of DIRENT implementation */ +#endif + +/* once */ +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__fnmatch.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__fnmatch.h new file mode 100644 index 00000000000..340dbaa2c8c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__fnmatch.h @@ -0,0 +1,30 @@ +#ifndef __ZZIP_INTERNAL_FNMATCH_H +#define __ZZIP_INTERNAL_FNMATCH_H +/** included by fseeko.c, mmapped.c, memdisk.c */ + +#include <zzip/conf.h> +#include <stdio.h> +#include <string.h> + +#ifdef ZZIP_HAVE_FNMATCH_H +#include <fnmatch.h> +#endif + +#ifdef ZZIP_HAVE_FNMATCH_H +#define _zzip_fnmatch fnmatch +# ifdef FNM_CASEFOLD +# define _zzip_fnmatch_CASEFOLD FNM_CASEFOLD +# else +# define _zzip_fnmatch_CASEFOLD 0 +# endif +#else +# define _zzip_fnmatch_CASEFOLD 0 +/* if your system does not have fnmatch, we fall back to strcmp: */ +static int _zzip_fnmatch(char* pattern, char* string, int flags) +{ + fprintf (stderr, "<zzip:mmapped:strcmp>"); + return strcmp (pattern, string); +} +#endif + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__hints.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__hints.h new file mode 100644 index 00000000000..d071c4ebd7f --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__hints.h @@ -0,0 +1,195 @@ +#ifndef __ZZIP_INTERNAL_HINTS_H +#define __ZZIP_INTERNAL_HINTS_H +#include <zzip/conf.h> + +#ifndef ZZIP_GNUC_ATLEAST +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define ZZIP_GNUC_ATLEAST(_M_,_N_) \ + ((__GNUC__ << 10) + __GNUC_MINOR__ >= ((_M_) << 10) + (_N_)) +# elif defined __GNUC__ +# define ZZIP_GNUC_ATLEAST(_M_,_N_) \ + ((__GNUC__ << 10) >= ((_M_) << 10)) +# else +# define ZZIP_GNUC_ATLEAST(_M_, _N_) 0 +# endif +#endif + +#ifndef ZZIP_GNUC_EXTENSION +# if ZZIP_GNUC_ATLEAST(2,8) +# define ZZIP_GNUC_EXTENSION __extension__ +# else +# define ZZIP_GNUC_EXTENSION +# endif +#endif + +/* func has no side effects, return value depends only on params and globals */ +#ifndef ZZIP_GNUC_PURE +# if ZZIP_GNUC_ATLEAST(2,8) +# define ZZIP_GNUC_PURE __attribute__((__pure__)) +# else +# define ZZIP_GNUC_PURE +# endif +#endif + +/* func has no side effects, return value depends only on params */ +#ifndef ZZIP_GNUC_CONST +# if ZZIP_GNUC_ATLEAST(2,4) +# define ZZIP_GNUC_CONST __attribute__((__const__)) +# else +# define ZZIP_GNUC_CONST +# endif +#endif + +/* typename / variable / function possibly unused */ +#ifndef ZZIP_GNUC_UNUSED +# if ZZIP_GNUC_ATLEAST(2,4) +# define ZZIP_GNUC_UNUSED __attribute__((__unused__)) +# else +# define ZZIP_GNUC_UNUSED +# endif +#endif + +/* obvious. btw, a noreturn-func should return void */ +#ifndef ZZIP_GNUC_NORETURN +# if ZZIP_GNUC_ATLEAST(2,5) +# define ZZIP_GNUC_NORETURN __attribute__((__noreturn__)) +# else +# define ZZIP_GNUC_NORETURN +# endif +#endif + +/* omit function from profiling with -finstrument-functions */ +#ifndef ZZIP_GNUC_NO_INSTRUMENT +# if ZZIP_GNUC_ATLEAST(2,4) +# define ZZIP_GNUC_NO_INSTRUMENT __attribute__((__no_instrument_function__)) +# else +# define ZZIP_GNUC_NO_INSTRUMENT +# endif +#endif + +/* all pointer args must not be null, and allow optimiztons based on the fact*/ +#ifndef ZZIP_GNUC_NONNULL +# if ZZIP_GNUC_ATLEAST(3,1) +# define ZZIP_GNUC_NONNULL __attribute__((nonnull)) +# else +# define ZZIP_GNUC_NONNULL +# endif +#endif + +/* the function can not throw - the libc function are usually nothrow */ +#ifndef ZZIP_GNUC_NOTHROW +# if ZZIP_GNUC_ATLEAST(3,2) +# define ZZIP_GNUC_NOTHROW __attribute__((nothrow)) +# else +# define ZZIP_GNUC_NOTHROW +# endif +#endif + +/* typename / function / variable is obsolete but still listed in headers */ +#ifndef ZZIP_GNUC_DEPRECATED +# if ZZIP_GNUC_ATLEAST(3,1) +# define ZZIP_GNUC_DEPRECATED __attribute__((deprecated)) +# else +# define ZZIP_GNUC_DEPRECATED +# endif +#endif + +/* resolve references to this function during pre-linking the libary */ +#ifndef ZZIP_GNUC_LIB_PROTECTED +# if ZZIP_GNUC_ATLEAST(3,1) +# define ZZIP_GNUC_LIB_PROTECTED __attribute__((visiblity("protected"))) +# else +# define ZZIP_GNUC_LIB_PROTECTED +# endif +#endif + +/* func shall only be usable within the same lib (so, no entry in lib symtab)*/ +#ifndef ZZIP_GNUC_LIB_PRIVATE +# if ZZIP_GNUC_ATLEAST(3,1) +# define ZZIP_GNUC_LIB_PRIVATE __attribute__((visiblity("hidden"))) +# else +# define ZZIP_GNUC_LIB_PRIVATE +# endif +#endif + +/* ... and not even passed as a function pointer reference to outside the lib*/ +#ifndef ZZIP_GNUC_LIB_INTERNAL +# if ZZIP_GNUC_ATLEAST(3,1) +# define ZZIP_GNUC_LIB_INTERNAL __attribute__((visiblity("internal"))) +# else +# define ZZIP_GNUC_LIB_INTERNAL +# endif +#endif + + +#ifndef ZZIP_GNUC_FORMAT +# if ZZIP_GNUC_ATLEAST(2,4) +# define ZZIP_GNUC_FORMAT(_X_) __attribute__((__format_arg__(_X_))) +# else +# define ZZIP_GNUC_FORMAT(_X_) +# endif +#endif + +#ifndef ZZIP_GNUC_SCANF +# if ZZIP_GNUC_ATLEAST(2,4) +# define ZZIP_GNUC_SCANF(_S_,_X_) __attribute__((__scanf__(_S_,_X_))) +# else +# define ZZIP_GNUC_SCANF(_S_,_X_) +# endif +#endif + +#ifndef ZZIP_GNUC_PRINTF +# if ZZIP_GNUC_ATLEAST(2,4) +# define ZZIP_GNUC_PRINTF(_S_,_X_) __attribute__((__printf__(_S_,_X_))) +# else +# define ZZIP_GNUC_PRINTF(_S_,_X_) +# endif +#endif + +#ifdef __GNUC__ +#define ZZIP_GNUC_PACKED __attribute__((packed)) +#else +#define ZZIP_GNUC_PACKED +#endif + +#ifndef ZZIP_FUNCTION +# if ZZIP_GNUC_ATLEAST(2,6) +# define ZZIP_FUNC __FUNCTION__ +# define ZZIP_FUNCTION __FUNCTION__ +# elif defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define ZZIP_FUNC __func__ +# define ZZIP_FUNCTION "" +# else +# define ZZIP_FUNC 0 +# define ZZIP_FUNCTION "" +# endif +#endif + +#ifndef ZZIP_STRING +#define ZZIP_STRING(_X_) ZZIP_STRING_(_X_) +#define ZZIP_STRING_(_Y_) #_Y_ +#endif + +#ifndef ZZIP_DIM +#define ZZIP_DIM(_A_) (sizeof(_A_) / sizeof ((_A_)[0])) +#endif + +#if !(defined ZZIP_FOR1 && defined ZZIP_END1) +# if defined sun || defined __sun__ +# define ZZIP_FOR1 if (1) +# define ZZIP_END1 else (void)0 +# else +# define ZZIP_FOR1 do +# define ZZIP_END1 while (0) +# endif +#endif + +#ifndef ZZIP_BRANCH_OVER +# if ZZIP_GNUC_ATLEAST(2,96) +# define ZZIP_BRANCH_OVER(_X_) __builtin_expect((_X_),0) +# else +# define ZZIP_BRANCH_OVER(_X_) (_X_) +# endif +#endif + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__mmap.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__mmap.h new file mode 100644 index 00000000000..d70419dcb02 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/__mmap.h @@ -0,0 +1,107 @@ +#ifndef __ZZIP_INTERNAL_MMAP_H +#define __ZZIP_INTERNAL_MMAP_H +#include <zzip/types.h> + +/* + * DO NOT USE THIS CODE. + * + * It is an internal header file for zziplib that carries some inline + * functions (or just static members) and a few defines, simply to be + * able to reuse these across - and have everything in a specific place. + * + * Copyright (c) 2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#ifdef _USE_MMAP +#if defined ZZIP_HAVE_SYS_MMAN_H +#include <sys/mman.h> +#define USE_POSIX_MMAP 1 +#elif defined ZZIP_HAVE_WINBASE_H || defined WIN32 +#include <windows.h> +#define USE_WIN32_MMAP 1 +#else +#undef _USE_MMAP +#endif +#endif + +/* -------------- specify MMAP function imports --------------------------- */ + +#if defined USE_POSIX_MMAP +#define USE_MMAP 1 + +#define _zzip_mmap(user, fd, offs, len) \ + mmap (0, len, PROT_READ, MAP_SHARED, fd, offs) +#define _zzip_munmap(user, ptr, len) \ + munmap (ptr, len) +#define _zzip_getpagesize(user) getpagesize() + +#ifndef MAP_FAILED /* hpux10.20 does not have it */ +#define MAP_FAILED ((void*)(-1)) +#endif + +#elif defined USE_WIN32_MMAP +#define USE_MMAP 1 +#ifndef MAP_FAILED +#define MAP_FAILED 0 +#endif +/* we (ab)use the "*user" variable to store the FileMapping handle */ + /* which assumes (sizeof(long) == sizeof(HANDLE)) */ + +static size_t win32_getpagesize (void) +{ + SYSTEM_INFO si; GetSystemInfo (&si); + return si.dwAllocationGranularity; +} +static void* win32_mmap (long* user, int fd, zzip_off_t offs, size_t len) +{ + if (! user || *user != 1) /* || offs % getpagesize() */ + return 0; + { + HANDLE hFile = (HANDLE)_get_osfhandle(fd); + if (hFile) + *user = (int) CreateFileMapping (hFile, 0, PAGE_READONLY, 0, 0, NULL); + if (*user) + { + char* p = 0; + p = MapViewOfFile(*(HANDLE*)user, FILE_MAP_READ, 0, offs, len); + if (p) return p + offs; + CloseHandle (*(HANDLE*)user); *user = 1; + } + return MAP_FAILED; + } +} +static void win32_munmap (long* user, char* fd_map, size_t len) +{ + UnmapViewOfFile (fd_map); + CloseHandle (*(HANDLE*)user); *user = 1; +} + +#define _zzip_mmap(user, fd, offs, len) \ + win32_mmap ((long*) &(user), fd, offs, len) +#define _zzip_munmap(user, ptr, len) \ + win32_munmap ((long*) &(user), ptr, len) +#define _zzip_getpagesize(user) win32_getpagesize() + +#else /* disable */ +#define USE_MMAP 0 +/* USE_MAP is intentional: we expect the compiler to do some "code removal" + * on any source code enclosed in if (USE_MMAP) {...} i.e. the unreachable + * branch of an if (0) {....} is not emitted to the final object binary. */ + +#ifndef MAP_FAILED +#define MAP_FAILED 0 +#endif + +#define _zzip_mmap(user, fd, offs, len) (MAP_FAILED) +#define _zzip_munmap(user, ptr, len) {} +#define _zzip_getpagesize(user) 1 + +#endif /* USE_MMAP defines */ + + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/_msvc.sed b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/_msvc.sed new file mode 100644 index 00000000000..ec1fcbba192 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/_msvc.sed @@ -0,0 +1,26 @@ +s:undef *HAVE_MEMORY_H *$:define HAVE_MEMORY_H 1: +s:undef *HAVE_STDLIB_H *$:define HAVE_STDLIB_H 1: +s:undef *HAVE_STRING_H *$:define HAVE_STRING_H 1: +s:undef *HAVE_SYS_STAT_H *$:define HAVE_SYS_STAT_H 1: +s:undef *HAVE_SYS_TYPES_H *$:define HAVE_SYS_TYPES_H 1: +s:undef *HAVE_DIRECT_H *$:define HAVE_DIRECT_H 1: +s:undef *HAVE_IO_H *$:define HAVE_IO_H 1: +s:undef *HAVE_WINDOWS_H *$:define HAVE_WINDOWS_H 1 /* yes, this is windows */: +s:undef *HAVE_WINBASE_H *$:define HAVE_WINBASE_H 1 /* hmm, is that win32 ? */: +s:undef *HAVE_WINNT_H *$:define HAVE_WINNT_H 1 /* is that always true? */: +s:undef *HAVE_ZLIB_H *$:define HAVE_ZLIB_H 1 /* you do have it, right? */: +s:undef *PACKAGE *$:define PACKAGE "zziplib-msvc" /* yes, make it known */: +s:undef *SIZEOF_INT *$:define SIZEOF_INT 4: +s:undef *SIZEOF_LONG *$:define SIZEOF_LONG 4: +s:undef *SIZEOF_SHORT *$:define SIZEOF_SHORT 2: +s:undef *STDC_HEADERS *$:define STDC_HEADERS 1: +s:undef *inline *$:define inline __inline: +s:undef *off_t *$:define off_t long: +s:undef *off64_t *$:define off64_t __int64: +s:undef *ssize_t *$:define ssize_t int: +s:undef restrict *$:define restrict: +s:undef VERSION:define VERSION "0.13.x": +s:^ *# *undef.*$:/* & */: +/Generated automatically .* by autoheader/a\ +/* config values have been automatically set by zzip/_msvc.sed */ + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/autoconf.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/autoconf.h new file mode 100644 index 00000000000..f0d6841454a --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/autoconf.h @@ -0,0 +1,45 @@ +#ifndef _ZZIP_AUTOCONF_H_ +#define _ZZIP_AUTOCONF_H_ 1 + +/* + * This file is trying to override configure time checks of zzip with + * definitions at compile time. This is not used by zzip sources themselves + * but it may be really helpful with thirdparty software that happens to + * include zzip headers from a central place but running on a different host. + */ + +#include "conf.h" /* <zzip/conf.h> : <zzip/_config.h> */ + +#if defined HAVE_ENDIAN_H || defined ZZIP_HAVE_ENDIAN_H +#include <endian.h> /* glibc */ +#elif defined HAVE_SYS_PARAM_H || defined ZZIP_HAVE_SYS_PARAM_H +#include <sys/param.h> /* solaris */ +#endif + +#if defined __BYTE_ORDER +#define ZZIP_BYTE_ORDER __BYTE_ORDER +#elif defined BYTE_ORDER +#define ZZIP_BYTE_ORDER BYTE_ORDER +#elif defined _LITTLE_ENDIAN +#define ZZIP_BYTE_ORDER 1234 +#elif defined _BIG_ENDIAN +#define ZZIP_BYTE_ORDER 4321 +#elif defined __i386__ +#define ZZIP_BYTE_ORDER 1234 +#elif defined WORDS_BIGENDIAN || defined ZZIP_WORDS_BIGENDIAN +#define ZZIP_BYTE_ORDER 4321 +#else +#define ZZIP_BYTE_ORDER 1234 +#endif + +/* override ZZIP_WORDS_BIGENDIAN : macros ZZIP_GET16 / ZZIP_GET32 */ +#ifdef ZZIP_BYTE_ORDER+0 == 1234 +#undef ZZIP_WORDS_BIGENDIAN +#endif +#ifdef ZZIP_BYTE_ORDER+0 == 4321 +#ifndef ZZIP_WORDS_BIGENDIAN +#define ZZIP_WORDS_BIGENDIAN 1 +#endif +#endif + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/conf.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/conf.h new file mode 100644 index 00000000000..52b33e287ce --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/conf.h @@ -0,0 +1,264 @@ +/* + * Here we postprocess autoconf generated prefix-config.h entries. + * This is generally for things like "off_t" which is left undefined + * in plain config.h if the host system does already have it but we do + * need the prefix variant - so we add here a #define _zzip_off_t off_t + * + * This file is supposed to only carry '#define's. + * See <zzip/types.h> for definitions that might be seen by the compiler. + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2001,2002,2003,2004 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#ifndef _ZZIP_CONF_H +#define _ZZIP_CONF_H 1 + +#if !defined ZZIP_OMIT_CONFIG_H +# if defined _MSC_VER || defined __BORLANDC__ || defined __WATCOMC__ +# include <zzip/_msvc.h> +# elif defined ZZIP_1_H +# include "zzip-1.h" +# elif defined ZZIP_2_H +# include "zzip-2.h" +# elif defined ZZIP_3_H +# include "zzip-3.h" +# elif defined ZZIP_4_H +# include "zzip-4.h" +# elif defined ZZIP_5_H +# include "zzip-5.h" +# else /* autoconf generated */ +# include <zzip/_config.h> +# endif +#endif + +/* especially win32 platforms do not declare off_t so far - see zzip-msvc.h */ +#ifndef _zzip_off_t +#ifdef ZZIP_off_t +#define _zzip_off_t ZZIP_off_t +#else +#define _zzip_off_t off_t +#endif +#endif + +#ifndef _zzip_off64_t +#ifdef ZZIP_off64_t +#define _zzip_off64_t ZZIP_off64_t +#else +#define _zzip_off64_t off64_t +#endif +#endif + +/* currently unused, all current zziplib-users do have ansi-C94 compilers. */ +#ifndef _zzip_const +#ifdef ZZIP_const +#define _zzip_const ZZIP_const +#else +#define _zzip_const const +#endif +#endif +#ifndef _zzip_inline +#ifdef ZZIP_inline +#define _zzip_inline ZZIP_inline +#else +#define _zzip_inline inline +#endif +#endif +#ifndef _zzip_restrict +#ifdef ZZIP_restrict +#define _zzip_restrict ZZIP_restrict +#else +#define _zzip_restrict restrict +#endif +#endif +#if defined __linux__ && __GNUC__+0 >= 4 +#define zzip__new__ __attribute__((malloc)) +#elif defined __linux__ && __GNUC__+0 >= 3 && __GNUC_MINOR_+0 >= 3 +#define zzip__new__ __attribute__((malloc)) +#else +#define zzip__new__ +#endif + +#ifndef _zzip_size_t +#ifdef ZZIP_size_t +#define _zzip_size_t ZZIP_size_t +#else +#define _zzip_size_t size_t +#endif +#endif +#ifndef _zzip_ssize_t +#ifdef ZZIP_ssize_t +#define _zzip_ssize_t ZZIP_ssize_t +#else +#define _zzip_ssize_t ssize_t +#endif +#endif +#ifndef _zzip___int64 +#ifdef ZZIP___int64 +#define _zzip___int64 ZZIP___int64 +#else +#define _zzip___int64 long long +#endif +#endif + +/* whether this library shall use a 64bit off_t largefile variant in 64on32: */ +/* (some exported names must be renamed to avoid bad calls after linking) */ +#if defined ZZIP_LARGEFILE_SENSITIVE +# if _FILE_OFFSET_BITS+0 == 64 +# define ZZIP_LARGEFILE_RENAME +# elif defined _LARGE_FILES /* used on older AIX to get at 64bit off_t */ +# define ZZIP_LARGEFILE_RENAME +# elif defined _ZZIP_LARGEFILE /* or simply use this one for zzip64 runs */ +# define ZZIP_LARGEFILE_RENAME +# endif +#endif + +/* if the environment did not setup these for 64bit off_t largefile... */ +#ifdef ZZIP_LARGEFILE_RENAME +# ifndef _FILE_OFFSET_BITS +# ifdef ZZIP__FILE_OFFSET_BITS /* == 64 */ +# define _FILE_OFFSET_BITS ZZIP__FILE_OFFSET_BITS +# endif +# endif +# ifndef _LARGE_FILES +# ifdef ZZIP__LARGE_FILES /* == 1 */ +# define _LARGE_FILES ZZIP__LARGE_FILES +# endif +# endif +# ifndef _LARGEFILE_SOURCE +# ifdef ZZIP__LARGEFILE_SOURCE /* == 1 */ +# define _LARGEFILE_SOURCE ZZIP__LARGEFILE_SOURCE +# endif +# endif +#endif + +#include <errno.h> + +/* mingw32msvc errno : would be in winsock.h */ +#ifndef EREMOTE +#define EREMOTE ESPIPE +#endif + +#ifndef ELOOP +#if defined EILSEQ +#define ELOOP EILSEQ +#else +#define ELOOP ENOEXEC +#endif +#endif + +#if defined __WATCOMC__ +#undef _zzip_inline +#define _zzip_inline static +#endif + +#if defined _MSC_VER || defined __WATCOMC__ +#include <io.h> +#endif + +#ifdef _MSC_VER +# if !__STDC__ +# ifndef _zzip_lseek +# define _zzip_lseek _lseek +# endif +# ifndef _zzip_read +# define _zzip_read _read +# endif +# ifndef _zzip_write +# define _zzip_write _write +# endif +# if 0 +# ifndef _zzip_stat +# define _zzip_stat _stat +# endif +# endif +# endif /* !__STDC__ */ +#endif + /*MSVC*/ + +#if defined _MSC_VER || defined __WATCOMC__ +# ifndef strcasecmp +# define strcasecmp _stricmp +# endif +#endif + +# ifndef _zzip_lseek +# define _zzip_lseek lseek +# endif + +# ifndef _zzip_read +# define _zzip_read read +# endif + +# ifndef _zzip_write +# define _zzip_write write +# endif + +# if 0 +# ifndef _zzip_stat +# define _zzip_stat stat +# endif +# endif + + +#if defined ZZIP_EXPORTS || defined ZZIPLIB_EXPORTS +# undef ZZIP_DLL +#define ZZIP_DLL 1 +#endif + +/* based on zconf.h : */ +/* compile with -DZZIP_DLL for Windows DLL support */ +#if defined ZZIP_DLL +# if defined _WINDOWS || defined WINDOWS || defined _WIN32 +/*# include <windows.h>*/ +# endif +# if !defined _zzip_export && defined _MSC_VER && (defined WIN32 || defined _WIN32) +# define _zzip_export __declspec(dllexport) /*WINAPI*/ +# endif +# if !defined _zzip_export && defined __BORLANDC__ +# if __BORLANDC__ >= 0x0500 && defined WIN32 +# include <windows.h> +# define _zzip_export __declspec(dllexport) /*WINAPI*/ +# else +# if defined _Windows && defined __DLL__ +# define _zzip_export _export +# endif +# endif +# endif +# if !defined _zzip_export && defined __GNUC__ +# if defined __declspec +# define _zzip_export extern __declspec(dllexport) +# else +# define _zzip_export extern +# endif +# endif +# if !defined _zzip_export && defined __BEOS__ +# define _zzip_export extern __declspec(export) +# endif +# if !defined _zzip_export && defined __WATCOMC__ +# define _zzip_export extern __declspec(dllexport) +# define ZEXPORT __syscall +# define ZEXTERN extern +# endif +#endif + +#if !defined _zzip_export +# if defined __GNUC__ /* || !defined HAVE_LIBZZIP */ +# define _zzip_export extern +# elif defined __declspec || (defined _MSC_VER && defined ZZIP_DLL) +# define _zzip_export extern __declspec(dllimport) +# else +# define _zzip_export extern +# endif +#endif + +#endif + + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/dir.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/dir.c new file mode 100644 index 00000000000..2df1bbc0fda --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/dir.c @@ -0,0 +1,332 @@ + +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#include <zzip/lib.h> /* exported... */ +#include <zzip/file.h> +#include <stddef.h> /*offsetof */ +#include <stdlib.h> +#include <string.h> +#include <errno.h> + +#ifdef ZZIP_HAVE_SYS_STAT_H +#include <sys/stat.h> +#else +#include <stdio.h> +#endif + +#include <zzip/__dirent.h> + +#ifndef offsetof +#pragma warning had to DEFINE offsetof as it was not in stddef.h +#define offsetof(T,M) ((unsigned)(& ((T*)0)->M)) +#endif + +#ifdef ZZIP_HAVE_SYS_STAT_H + +/* MSVC does have IFbitmask but not the corresponding IStests */ +# if ! defined S_ISDIR && defined S_IFDIR +# define S_ISDIR(_X_) ((_X_) & S_IFDIR) +# endif +# if ! defined S_ISREG && defined S_IFREG +# define S_ISREG(_X_) ((_X_) & S_IFREG) +# endif +#endif + +/** + * This function is the equivalent of a => rewinddir(2) for a realdir or + * the zipfile in place of a directory. The ZZIP_DIR handle returned from + * => zzip_opendir has a flag saying realdir or zipfile. As for a zipfile, + * the filenames will include the filesubpath, so take care. + */ +void +zzip_rewinddir(ZZIP_DIR * dir) +{ + if (! dir) + return; + + if (USE_DIRENT && dir->realdir) + { + _zzip_rewinddir(dir->realdir); + return; + } + + if (dir->hdr0) + dir->hdr = dir->hdr0; + else + dir->hdr = 0; +} + +#if ! USE_DIRENT +#define real_readdir(_X_) 1 +#else +static int +real_readdir(ZZIP_DIR * dir) +{ + struct stat st = { 0 }; + char filename[PATH_MAX]; + struct dirent *dirent = _zzip_readdir(dir->realdir); + + if (! dirent) + return 0; + + dir->dirent.d_name = dirent->d_name; + strcpy(filename, dir->realname); + strcat(filename, "/"); + strcat(filename, dirent->d_name); + + if (stat(filename, &st) == -1) + return -1; + + dir->dirent.d_csize = dir->dirent.st_size = st.st_size; + + if (st.st_mode) + { + if (! S_ISREG(st.st_mode)) + { + dir->dirent.d_compr = st.st_mode; + dir->dirent.d_compr |= 0x80000000; + /* makes it effectively negative, + * but can still be fed to S_ISXXX(x) */ + } else + { + dir->dirent.d_compr = 0; /* stored */ + } + } else + { + dir->dirent.d_compr = 0; /* stored */ + } + + return 1; +} +#endif + +/** + * This function is the equivalent of a => readdir(2) for a realdir + * or a zipfile referenced by the ZZIP_DIR returned from => zzip_opendir. + * + * The ZZIP_DIR handle (as returned by => zzip_opendir) contains a few more + * entries than being copied into the ZZIP_DIRENT. The only valid fields in + * a ZZIP_DIRENT are d_name (the file name), d_compr (compression), d_csize + * (compressed size), st_size (uncompressed size). + */ +ZZIP_DIRENT * +zzip_readdir(ZZIP_DIR * dir) +{ + if (! dir) + { errno=EBADF; return 0; } + + if (USE_DIRENT && dir->realdir) + { + if (! real_readdir(dir)) + return 0; + } else + { + if (! dir->hdr) + return 0; + + dir->dirent.d_name = dir->hdr->d_name; + dir->dirent.d_compr = dir->hdr->d_compr; + + dir->dirent.d_csize = dir->hdr->d_csize; + dir->dirent.st_size = dir->hdr->d_usize; + + if (! dir->hdr->d_reclen) + dir->hdr = 0; + else + dir->hdr = (struct zzip_dir_hdr *) + ((char *) dir->hdr + dir->hdr->d_reclen); + } + return &dir->dirent; +} + +/** => zzip_rewinddir + * This function is the equivalent of => telldir(2) for a realdir or zipfile. + */ +zzip_off_t +zzip_telldir(ZZIP_DIR * dir) +{ + if (! dir) + { errno=EBADF; return -1; } + + if (USE_DIRENT && dir->realdir) + { + return _zzip_telldir(dir->realdir); + } else + { + return ((zzip_off_t) ((char *) dir->hdr - (char *) dir->hdr0)); + } +} + +/** => zzip_rewinddir + * This function is the equivalent of => seekdir(2) for a realdir or zipfile. + */ +void +zzip_seekdir(ZZIP_DIR * dir, zzip_off_t offset) +{ + if (! dir) + return; + + if (USE_DIRENT && dir->realdir) + { + _zzip_seekdir(dir->realdir, offset); + } else + { + dir->hdr = (struct zzip_dir_hdr *) + (dir->hdr0 ? (char *) dir->hdr0 + (size_t) offset : 0); + } +} + +#ifndef EOVERFLOW +#define EOVERFLOW EFBIG +#endif + +/** => zzip_rewinddir + * This function is provided for users who can not use any largefile-mode. + */ +long +zzip_telldir32(ZZIP_DIR * dir) +{ + if (sizeof(zzip_off_t) == sizeof(long)) + { + return zzip_telldir(dir); + } else + { + off_t off = zzip_telldir(dir); + if (off >= 0) { + register long off32 = off; + if (off32 == off) return off32; + errno = EOVERFLOW; + } + return -1; + } +} + +/** => zzip_rewinddir + * This function is provided for users who can not use any largefile-mode. + */ +void +zzip_seekdir32(ZZIP_DIR * dir, long offset) +{ + zzip_seekdir(dir, offset); +} + +#if defined ZZIP_LARGEFILE_RENAME && defined EOVERFLOW && defined PIC +#undef zzip_seekdir /* zzip_seekdir64 */ +#undef zzip_telldir /* zzip_telldir64 */ + +/* DLL compatibility layer - so that 32bit code can link with a 64on32 too */ +long zzip_telldir(ZZIP_DIR * dir) { return zzip_telldir32(dir); } +void zzip_seekdir(ZZIP_DIR * dir, long offset) { zzip_seekdir32(dir, offset); } +#endif + +/** + * This function is the equivalent of => opendir(3) for a realdir or zipfile. + * + * This function has some magic - if the given argument-path + * is a directory, it will wrap a real => opendir(3) into the ZZIP_DIR + * structure. Otherwise it will divert to => zzip_dir_open which + * can also attach a ".zip" extension if needed to find the archive. + * + * the error-code is mapped to => errno(3). + */ +ZZIP_DIR * +zzip_opendir(zzip_char_t * filename) +{ + return zzip_opendir_ext_io(filename, 0, 0, 0); +} + +/** => zzip_opendir + * This function uses explicit ext and io instead of the internal + * defaults, setting them to zero is equivalent to => zzip_opendir + */ +ZZIP_DIR * +zzip_opendir_ext_io(zzip_char_t * filename, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) +{ + zzip_error_t e; + ZZIP_DIR *dir; + +# ifdef ZZIP_HAVE_SYS_STAT_H + struct stat st; +# endif + + if (o_modes & (ZZIP_PREFERZIP | ZZIP_ONLYZIP)) + goto try_zzip; + try_real: + +# ifdef ZZIP_HAVE_SYS_STAT_H + if (stat(filename, &st) >= 0 && S_ISDIR(st.st_mode)) + { + if (USE_DIRENT) + { + _zzip_DIR *realdir = _zzip_opendir(filename); + + if (realdir) + { + if (! (dir = (ZZIP_DIR *) calloc(1, sizeof(*dir)))) + { + _zzip_closedir(realdir); + return 0; + } else + { + dir->realdir = realdir; + dir->realname = strdup(filename); + return dir; + } + } + } + return 0; + } +# endif /* HAVE_SYS_STAT_H */ + + try_zzip: + dir = zzip_dir_open_ext_io(filename, &e, ext, io); + if (! dir && (o_modes & ZZIP_PREFERZIP)) + goto try_real; + if (e) + errno = zzip_errno(e); + return dir; +} + +/** + * This function is the equivalent of => closedir(3) for a realdir or zipfile. + * + * This function is magic - if the given arg-ZZIP_DIR + * is a real directory, it will call the real => closedir(3) and then + * free the wrapping ZZIP_DIR structure. Otherwise it will divert + * to => zzip_dir_close which will free the ZZIP_DIR structure. + */ +int +zzip_closedir(ZZIP_DIR * dir) +{ + if (! dir) + { errno = EBADF; return -1; } + + if (USE_DIRENT && dir->realdir) + { + _zzip_closedir(dir->realdir); + free(dir->realname); + free(dir); + return 0; + } else + { + zzip_dir_close(dir); + return 0; + } +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/err.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/err.c new file mode 100644 index 00000000000..1ba869bd9af --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/err.c @@ -0,0 +1,168 @@ + +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * Tomi Ollila <Tomi.Ollila@iki.fi> + * + * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#include <zzip/lib.h> /* exported... */ +#include <zlib.h> + +#include <string.h> +#include <errno.h> + +#include <zzip/file.h> + +/* *INDENT-OFF* */ +static struct errlistentry { int code; const char* mesg; } +errlist[] = +{ + { ZZIP_NO_ERROR, "No error" }, + { ZZIP_OUTOFMEM, + "could not get temporary memory for internal structures" }, + { ZZIP_DIR_OPEN, "Failed to open zip-file %s" }, + { ZZIP_DIR_STAT, "Failed to fstat zip-file %s" }, + { ZZIP_DIR_SEEK, "Failed to lseek zip-file %s" }, + { ZZIP_DIR_READ, "Failed to read zip-file %s"}, + { ZZIP_DIR_TOO_SHORT, "zip-file %s too short" }, + { ZZIP_DIR_EDH_MISSING, "zip-file central directory not found" }, + { ZZIP_DIRSIZE, "Directory size too big..." }, + { ZZIP_ENOENT, "No such file found in zip-file %s" }, + { ZZIP_UNSUPP_COMPR, "Unsupported compression format" }, + { ZZIP_CORRUPTED, "Zipfile corrupted" }, + { ZZIP_UNDEF, "Some undefined error occurred" }, + { ZZIP_DIR_LARGEFILE, "Directory is largefile variant" }, + { 0, 0 }, +}; +/* *INDENT-ON* */ + + +#define errlistSIZE (sizeof(errlist)/sizeof(*errlist)) + +/** + * returns the static string for the given error code. The + * error code can be either a normal system error (a + * positive error code will flag this), it can be => libz + * error code (a small negative error code will flag this) + * or it can be an error code from => libzzip, which is an + * negative value lower than => ZZIP_ERROR + */ +zzip_char_t * +zzip_strerror(int errcode) +{ + if (errcode < ZZIP_ERROR && errcode > ZZIP_ERROR - 32) + { + struct errlistentry *err = errlist; + + for (; err->mesg; err++) + { + if (err->code == errcode) + return err->mesg; + } + errcode = EINVAL; + } + + if (errcode < 0) + { + if (errcode == -1) + return strerror(errcode); + else + return zError(errcode); + } + + return strerror(errcode); +} + +/** => zzip_strerror + * This function fetches the errorcode from the => DIR-handle and + * runs it through => zzip_strerror to obtain the static string + * describing the error. + */ +zzip_char_t * +zzip_strerror_of(ZZIP_DIR * dir) +{ + if (! dir) + return strerror(errno); + return zzip_strerror(dir->errcode); +} + +/* *INDENT-OFF* */ +static struct errnolistentry { int code; int e_no; } +errnolist[] = +{ + { Z_STREAM_ERROR, EPIPE }, + { Z_DATA_ERROR, ESPIPE }, + { Z_MEM_ERROR, ENOMEM }, + { Z_BUF_ERROR, EMFILE }, + { Z_VERSION_ERROR, ENOEXEC }, + + { ZZIP_DIR_OPEN, ENOTDIR }, + { ZZIP_DIR_STAT, EREMOTE }, + { ZZIP_DIR_SEEK, ESPIPE }, +# ifdef ESTRPIPE + { ZZIP_DIR_READ, ESTRPIPE}, +# else + { ZZIP_DIR_READ, EPIPE}, +# endif + { ZZIP_DIR_TOO_SHORT, ENOEXEC }, +# ifdef ENOMEDIUM + { ZZIP_DIR_EDH_MISSING, ENOMEDIUM }, +# else + { ZZIP_DIR_EDH_MISSING, EIO }, +# endif + { ZZIP_DIRSIZE, EFBIG }, + { ZZIP_OUTOFMEM, ENOMEM }, + { ZZIP_ENOENT, ENOENT }, +# ifdef EPFNOSUPPORT + { ZZIP_UNSUPP_COMPR, EPFNOSUPPORT }, +# else + { ZZIP_UNSUPP_COMPR, EACCES }, +# endif +# ifdef EILSEQ + { ZZIP_CORRUPTED, EILSEQ }, +# else + { ZZIP_CORRUPTED, ELOOP }, +# endif + { ZZIP_UNDEF, EINVAL }, + { 0, 0 }, +}; +/* *INDENT-ON* */ + +/** + * map the error code to a system error code. This is used + * for the drop-in replacement functions to return a value + * that can be interpreted correctly by code sections that + * are unaware of the fact they their => open(2) call had been + * diverted to a file inside a zip-archive. + */ +int +zzip_errno(int errcode) +{ + if (errcode >= -1) + { + return errno; + } else + { + struct errnolistentry *err = errnolist; + + for (; err->code; err++) + { + if (err->code == errcode) + return err->e_no; + } + return EINVAL; + } +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fetch.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fetch.c new file mode 100644 index 00000000000..bd1958483ff --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fetch.c @@ -0,0 +1,126 @@ + +/* + * These routines are helpers - note that this file gets linked into all the + * zip-access variants that refer to <zzip/format.h>. On the x86 platform the + * actual definitions will be empty - fetching is done on native machine-level + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2004,2005,2006 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#include <zzip/fetch.h> + +/* ------------------------- fetch helpers --------------------------------- */ + +/** + * Make 32 bit value in host byteorder from little-endian mapped octet-data + * (works also on machines which SIGBUS on misaligned data access (eg. 68000)) + */ +uint32_t +__zzip_get32(unsigned char *s) +{ +#if defined __ZZIP_GET32 + return __ZZIP_GET32(s); +#else + return ((uint32_t) s[3] << 24) | ((uint32_t) s[2] << 16) + | ((uint32_t) s[1] << 8) | ((uint32_t) s[0]); +#endif +} + +/** => __zzip_get32 + * This function does the same for a 16 bit value. + */ +uint16_t +__zzip_get16(unsigned char *s) +{ +#if defined __ZZIP_GET16 + return __ZZIP_GET16(s); +#else + return ((uint16_t) s[1] << 8) | ((uint16_t) s[0]); +#endif +} + +/** => __zzip_get32 + * This function does the same for an off64_t value. + */ +uint64_t +__zzip_get64(unsigned char *s) +{ +#ifdef __GNUC__ + /* *INDENT-OFF* */ + register uint64_t v + = s[7]; v <<= 8; + v |= s[6]; v <<= 8; + v |= s[5]; v <<= 8; + v |= s[4]; v <<= 8; + v |= s[3]; v <<= 8; + v |= s[2]; v <<= 8; + v |= s[1]; v <<= 8; + v |= s[0]; return v; + /* *INDENT-ON* */ +#else + return ((uint64_t) s[7] << 56) | ((uint64_t) s[6] << 48) + | ((uint64_t) s[5] << 40) | ((uint64_t) s[4] << 32) + | ((uint64_t) s[3] << 24) | ((uint64_t) s[2] << 16) + | ((uint64_t) s[1] << 8) | ((uint64_t) s[0]); +#endif +} + +/** => __zzip_get32 + * This function pushes a 32bit value at the specified address + */ +void +__zzip_set32(unsigned char *s, uint32_t v) +{ +#if defined __ZZIP_SET32 + return __ZZIP_SET32(s, v); +#else + /* *INDENT-OFF* */ + s[0] = (unsigned char) (v); v >>= 8; + s[1] = (unsigned char) (v); v >>= 8; + s[2] = (unsigned char) (v); v >>= 8; + s[3] = (unsigned char) (v); + /* *INDENT-ON* */ +#endif +} + +/** => __zzip_get32 + * This function does the same for a 16 bit value. + */ +void +__zzip_set16(unsigned char *s, uint16_t v) +{ +#if defined __ZZIP_SET16 + return __ZZIP_SET16(s, v); +#else + /* *INDENT-OFF* */ + s[0] = (unsigned char) (v); v >>= 8; + s[1] = (unsigned char) (v); + /* *INDENT-ON* */ +#endif +} + +/** => __zzip_get32 + * This function pushes a off64_t value at the specified address + */ +void +__zzip_set64(unsigned char *s, uint64_t v) +{ + /* *INDENT-OFF* */ + s[0] = (unsigned char) (v); v >>= 8; + s[1] = (unsigned char) (v); v >>= 8; + s[2] = (unsigned char) (v); v >>= 8; + s[3] = (unsigned char) (v); v >>= 8; + s[4] = (unsigned char) (v); v >>= 8; + s[5] = (unsigned char) (v); v >>= 8; + s[6] = (unsigned char) (v); v >>= 8; + s[7] = (unsigned char) (v); + /* *INDENT-ON* */ +} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fetch.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fetch.h new file mode 100644 index 00000000000..ca51a8026d9 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fetch.h @@ -0,0 +1,374 @@ +#ifndef _ZZIP_FORMATS_H +#define _ZZIP_FORMATS_H + +#include <zzip/types.h> +#include <zzip/format.h> +#include <zzip/stdint.h> +#include <zzip/__hints.h> + +/* linux knows "byteswap.h" giving us an optimized variant */ +#ifdef ZZIP_HAVE_BYTESWAP_H +#include <byteswap.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* get 16/32 bits from little-endian zip-file to host byteorder */ +extern uint32_t __zzip_get32(zzip_byte_t * s) ZZIP_GNUC_CONST; +extern uint16_t __zzip_get16(zzip_byte_t * s) ZZIP_GNUC_CONST; +extern void __zzip_set32(zzip_byte_t * s, uint32_t v); +extern void __zzip_set16(zzip_byte_t * s, uint16_t v); + +extern uint64_t __zzip_get64(zzip_byte_t * s) ZZIP_GNUC_CONST; +extern void __zzip_set64(zzip_byte_t * s, uint64_t v); + +/* just in case that you use a non-configure-d setup (e.g. MSVC) */ +#ifndef ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED +# if defined __mips__ || defined __sparc__ || defined __powerpc__ || defined __arm__ || defined __ia64__ +# define ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED 11 +# endif +#endif + +/* on linux with a cisc processor we can use the bswap for some extra speed */ +#ifdef ZZIP_WORDS_BIGENDIAN +# ifndef ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED +# if defined bswap_16 && defined bswap_32 && defined bswap_64 /* i.e. linux */ +# define _ZZIP_USE_BSWAP +# endif +# endif +#endif + +/* little endian on intel cisc processors is the original zip format byteorder */ +#ifndef ZZIP_WORDS_BIGENDIAN +# ifndef ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED +# if defined __i386__ || defined __x86_64__ || defined _M_X86 || defined _M_X64 +# define _ZZIP_USE_DEREF +# endif +#endif + +#ifdef _ZZIP_USE_BSWAP +#define ZZIP_GET16(__p) bswap_16(*(uint16_t*)(__p)) +#define ZZIP_GET32(__p) bswap_32(*(uint32_t*)(__p)) +#define ZZIP_GET64(__p) bswap_64(*(uint64_t*)(__p)) +#define ZZIP_SET16(__p,__x) (*(uint16_t*)(__p) = bswap_16((uint16_t)(__x))) +#define ZZIP_SET32(__p,__x) (*(uint32_t*)(__p) = bswap_32((uint32_t)(__x))) +#define ZZIP_SET64(__p,__x) (*(uint64_t*)(__p) = bswap_64((uint64_t)(__x))) +#elif defined _ZZIP_USE_DEREF +#define ZZIP_GET16(__p) (*(uint16_t*)(__p)) +#define ZZIP_GET32(__p) (*(uint32_t*)(__p)) +#define ZZIP_GET64(__p) (*(uint64_t*)(__p)) +#define ZZIP_SET16(__p,__x) (*(uint16_t*)(__p) = (uint16_t)(__x)) +#define ZZIP_SET32(__p,__x) (*(uint32_t*)(__p) = (uint32_t)(__x)) +#define ZZIP_SET64(__p,__x) (*(uint64_t*)(__p) = (uint64_t)(__x)) +#else +#define ZZIP_GET64(__p) (__zzip_get64((__p))) +#define ZZIP_GET32(__p) (__zzip_get32((__p))) +#define ZZIP_GET16(__p) (__zzip_get16((__p))) +#define ZZIP_SET64(__p,__x) (__zzip_set64((__p),(__x))) +#define ZZIP_SET32(__p,__x) (__zzip_set32((__p),(__x))) +#define ZZIP_SET16(__p,__x) (__zzip_set16((__p),(__x))) +#endif +#endif + +/* ..................... bitcorrect physical access .................... */ + +/* zzip_file_header - the local file header */ +#define zzip_file_header_get_magic(__p) ZZIP_GET32((__p)->z_magic) +#define zzip_file_header_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x)) +#define zzip_file_header_get_flags(__p) ZZIP_GET16((__p)->z_flags) +#define zzip_file_header_set_flags(__p,__x) ZZIP_SET16((__p)->z_flags,(__x)) +#define zzip_file_header_get_compr(__p) ZZIP_GET16((__p)->z_compr) +#define zzip_file_header_set_compr(__p,__x) ZZIP_SET16((__p)->z_compr,(__x)) +#define zzip_file_header_get_crc32(__p) ZZIP_GET32((__p)->z_crc32) +#define zzip_file_header_set_crc32(__p,__x) ZZIP_SET32((__p)->z_crc32,(__x)) +#define zzip_file_header_get_csize(__p) ZZIP_GET32((__p)->z_csize) +#define zzip_file_header_set_csize(__p,__x) ZZIP_SET32((__p)->z_csize,(__x)) +#define zzip_file_header_get_usize(__p) ZZIP_GET32((__p)->z_usize) +#define zzip_file_header_set_usize(__p,__x) ZZIP_SET32((__p)->z_usize,(__x)) +#define zzip_file_header_get_namlen(__p) ZZIP_GET16((__p)->z_namlen) +#define zzip_file_header_set_namlen(__p,__x) ZZIP_SET16((__p)->z_namlen,(__x)) +#define zzip_file_header_get_extras(__p) ZZIP_GET16((__p)->z_extras) +#define zzip_file_header_set_extras(__p,__x) ZZIP_SET16((__p)->z_extras,(__x)) +#define zzip_file_header_sizeof_tails(__p) (zzip_file_header_get_namlen(__p)+\ + zzip_file_header_get_extras(__p) ) +#define zzip_file_header_check_magic(__p) ZZIP_FILE_HEADER_CHECKMAGIC((__p)) + +/* zzip_file_trailer - data descriptor per file block */ +#define zzip_file_trailer_get_magic(__p) ZZIP_GET32((__p)->z_magic) +#define zzip_file_trailer_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x)) +#define zzip_file_header_get_crc32(__p) ZZIP_GET32((__p)->z_crc32) +#define zzip_file_trailer_set_crc32(__p,__x) ZZIP_SET32((__p)->z_crc32,(__x)) +#define zzip_file_trailer_get_csize(__p) ZZIP_GET32((__p)->z_csize) +#define zzip_file_trailer_set_csize(__p,__x) ZZIP_SET32((__p)->z_csize,(__x)) +#define zzip_file_trailer_get_usize(__p) ZZIP_GET32((__p)->z_usize) +#define zzip_file_trailer_set_usize(__p,__x) ZZIP_SET32((__p)->z_usize,(__x)) +#define zzip_file_trailer_sizeof_tails(__p) 0 +#define zzip_file_trailer_check_magic(__p) ZZIP_FILE_TRAILER_CHECKMAGIC((__p)) +/* zzip_disk_entry (currently named zzip_root_dirent) */ +#define zzip_disk_entry_get_magic(__p) ZZIP_GET32((__p)->z_magic) +#define zzip_disk_entry_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x)) +#define zzip_disk_entry_get_flags(__p) ZZIP_GET16((__p)->z_flags) +#define zzip_disk_entry_set_flags(__p,__x) ZZIP_SET16((__p)->z_flags,(__x)) +#define zzip_disk_entry_get_compr(__p) ZZIP_GET16((__p)->z_compr) +#define zzip_disk_entry_set_compr(__p,__x) ZZIP_SET16((__p)->z_compr,(__x)) +#define zzip_disk_entry_get_crc32(__p) ZZIP_GET32((__p)->z_crc32) +#define zzip_disk_entry_set_crc32(__p,__x) ZZIP_SET32((__p)->z_crc32,(__x)) +#define zzip_disk_entry_get_csize(__p) ZZIP_GET32((__p)->z_csize) +#define zzip_disk_entry_set_csize(__p,__x) ZZIP_SET32((__p)->z_csize,(__x)) +#define zzip_disk_entry_get_usize(__p) ZZIP_GET32((__p)->z_usize) +#define zzip_disk_entry_set_usize(__p,__x) ZZIP_SET32((__p)->z_usize,(__x)) +#define zzip_disk_entry_get_namlen(__p) ZZIP_GET16((__p)->z_namlen) +#define zzip_disk_entry_set_namlen(__p,__x) ZZIP_SET16((__p)->z_namlen,(__x)) +#define zzip_disk_entry_get_extras(__p) ZZIP_GET16((__p)->z_extras) +#define zzip_disk_entry_set_extras(__p,__x) ZZIP_SET16((__p)->z_extras,(__x)) +#define zzip_disk_entry_get_comment(__p) ZZIP_GET16((__p)->z_comment) +#define zzip_disk_entry_set_comment(__p,__x) ZZIP_SET16((__p)->z_comment,(__x)) +#define zzip_disk_entry_get_diskstart(__p) ZZIP_GET16((__p)->z_diskstart) +#define zzip_disk_entry_set_diskstart(__p,__x) ZZIP_SET16((__p)->z_diskstart,(__x)) +#define zzip_disk_entry_get_filetype(__p) ZZIP_GET16((__p)->z_filetype) +#define zzip_disk_entry_set_filetype(__p,__x) ZZIP_SET16((__p)->z_filetype,(__x)) +#define zzip_disk_entry_get_filemode(__p) ZZIP_GET32((__p)->z_filemode) +#define zzip_disk_entry_set_filemode(__p,__x) ZZIP_SET32((__p)->z_filemode,(__x)) +#define zzip_disk_entry_get_offset(__p) ZZIP_GET32((__p)->z_offset) +#define zzip_disk_entry_set_offset(__p,__x) ZZIP_SET32((__p)->z_offset,(__x)) +#define zzip_disk_entry_sizeof_tails(__p) (zzip_disk_entry_get_namlen(__p) +\ + zzip_disk_entry_get_extras(__p) +\ + zzip_disk_entry_get_comment(__p) ) +#define zzip_disk_entry_check_magic(__p) ZZIP_DISK_ENTRY_CHECKMAGIC((__p)) + +/* zzip_disk_trailer - the zip archive entry point */ +#define zzip_disk_trailer_get_magic(__p) ZZIP_GET32((__p)->z_magic) +#define zzip_disk_trailer_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x)) +#define zzip_disk_trailer_get_disk(__p) ZZIP_GET16((__p)->z_disk) +#define zzip_disk_trailer_set_disk(__p,__x) ZZIP_SET16((__p)->z_disk,(__x)) +#define zzip_disk_trailer_get_finaldisk(__p) ZZIP_GET16((__p)->z_finaldisk) +#define zzip_disk_trailer_set_finaldisk(__p,__x) ZZIP_SET16((__p)->z_finaldisk,(__x)) +#define zzip_disk_trailer_get_entries(__p) ZZIP_GET16((__p)->z_entries) +#define zzip_disk_trailer_set_entries(__p,__x) ZZIP_SET16((__p)->z_entries,(__x)) +#define zzip_disk_trailer_get_finalentries(__p) ZZIP_GET16((__p)->z_finalentries) +#define zzip_disk_trailer_set_finalentries(__p,__x) ZZIP_SET16((__p)->z_finalentries,(__x)) +#define zzip_disk_trailer_get_rootsize(__p) ZZIP_GET32((__p)->z_rootsize) +#define zzip_disk_trailer_set_rootsize(__p,__x) ZZIP_SET32((__p)->z_rootsize,(__x)) +#define zzip_disk_trailer_get_rootseek(__p) ZZIP_GET32((__p)->z_rootseek) +#define zzip_disk_trailer_set_rootseek(__p,__x) ZZIP_SET32((__p)->z_rootseek,(__x)) +#define zzip_disk_trailer_get_comment(__p) ZZIP_GET16((__p)->z_comment) +#define zzip_disk_trailer_set_comment(__p,__x) ZZIP_SET16((__p)->z_comment,(__x)) +#define zzip_disk_trailer_sizeof_tails(__p) ( zzip_disk_entry_get_comment(__p)) +#define zzip_disk_trailer_check_magic(__p) ZZIP_DISK_TRAILER_CHECKMAGIC((__p)) + +/* extra field should be type + size + data + type + size + data ... */ +#define zzip_extra_block_get_datatype(__p) ZZIP_GET16((zzip_byte_t*)(__p)) +#define zzip_extra_block_set_datatype(__p,__x) ZZIP_SET16((zzip_byte_t*)(__p),__x) +#define zzip_extra_block_get_datasize(__p) ZZIP_GET16((zzip_byte_t*)(__p)+2) +#define zzip_extra_block_set_datasize(__p,__x) ZZIP_SET16((zzip_byte_t*)(__p)+2,__x) + +/* zzip64_disk_trailer - the zip64 archive entry point */ +#define zzip_disk64_trailer_get_magic(__p) ZZIP_GET32((__p)->z_magic) +#define zzip_disk64_trailer_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x)) +#define zzip_disk64_trailer_get_size(__p) ZZIP_GET64((__p)->z_size) +#define zzip_disk64_trailer_set_size(__p,__x) ZZIP_SET64((__p)->z_size,(__x)) +#define zzip_disk64_trailer_get_disk(__p) ZZIP_GET32((__p)->z_disk) +#define zzip_disk64_trailer_set_disk(__p,__x) ZZIP_SET32((__p)->z_disk,(__x)) +#define zzip_disk64_trailer_get_finaldisk(__p) ZZIP_GET32((__p)->z_finaldisk) +#define zzip_disk64_trailer_set_finaldisk(__p,__x) ZZIP_SET32((__p)->z_finaldisk,(__x)) +#define zzip_disk64_trailer_get_entries(__p) ZZIP_GET64((__p)->z_entries) +#define zzip_disk64_trailer_set_entries(__p,__x) ZZIP_SET64((__p)->z_entries,(__x)) +#define zzip_disk64_trailer_get_finalentries(__p) ZZIP_GET64((__p)->z_finalentries) +#define zzip_disk64_trailer_set_finalentries(__p,__x) ZZIP_SET64((__p)->z_finalentries,(__x)) +#define zzip_disk64_trailer_get_rootsize(__p) ZZIP_GET64((__p)->z_rootsize) +#define zzip_disk64_trailer_set_rootsize(__p,__x) ZZIP_SET64((__p)->z_rootsize,(__x)) +#define zzip_disk64_trailer_get_rootseek(__p) ZZIP_GET64((__p)->z_rootseek) +#define zzip_disk64_trailer_set_rootseek(__p,__x) ZZIP_SET64((__p)->z_rootseek,(__x)) +#define zzip_disk64_trailer_check_magic(__p) ZZIP_DISK64_TRAILER_CHECKMAGIC((__p)) + +/* .............. some logical typed access wrappers ....................... */ + +/* zzip_file_header - the local file header */ +#define zzip_file_header_csize(__p) ((zzip_size_t) \ + zzip_file_header_get_csize(__p)) +#define zzip_file_header_usize(__p) ((zzip_size_t) \ + zzip_file_header_get_usize(__p)) +#define zzip_file_header_namlen(__p) ((zzip_size_t) \ + zzip_file_header_get_namlen(__p)) +#define zzip_file_header_extras(__p) ((zzip_size_t) \ + zzip_file_header_get_extras(__p)) +#define zzip_file_header_sizeof_tail(__p) ((zzip_size_t) \ + zzip_file_header_sizeof_tails(__p)) +#define zzip_file_header_sizeto_end(__p) ((zzip_size_t) \ + (zzip_file_header_sizeof_tail(__p) + zzip_file_header_headerlength)) +#define zzip_file_header_skipto_end(__p) ((void*) (__p) + \ + (zzip_file_header_sizeof_tail(__p) + zzip_file_header_headerlength)) + +#define zzip_file_header_to_filename(__p) ((char*) \ + ((char*)(__p) + zzip_file_header_headerlength)) +#define zzip_file_header_to_extras(__p) ((char*) \ + (zzip_file_header_to_filename(__p) + zzip_file_header_namlen(__p))) +#define zzip_file_header_to_data(__p) ((zzip_byte_t*) \ + (zzip_file_header_to_extras(__p) + zzip_file_header_extras(__p))) +#define zzip_file_header_to_trailer(__p) ((struct zzip_file_trailer*) \ + (zzip_file_header_to_data(__p) + zzip_file_header_csize(__p))) + +/* zzip_file_trailer - data descriptor per file block */ +#define zzip_file_trailer_csize(__p) ((zzip_size_t) \ + zzip_file_trailer_get_csize(__p)) +#define zzip_file_trailer_usize(__p) ((zzip_size_t) \ + zzip_file_trailer_get_usize(__p)) +#define zzip_file_trailer_sizeof_tail(__p) ((zzip_size_t) \ + zzip_file_trailer_sizeof_tails(__p)) +#define zzip_file_trailer_sizeto_end(__p) ((zzip_size_t) \ + (zzip_file_trailer_sizeof_tail(__p) + zzip_file_trailer_headerlength)) +#define zzip_file_trailer_skipto_end(__p) ((void*) (__p) + \ + (zzip_file_trailer_sizeof_tail(__p) + zzip_file_trailer_headerlength)) + +/* zzip_disk_entry (currently named zzip_root_dirent) */ +#define zzip_disk_entry_csize(__p) ((zzip_size_t) \ + zzip_disk_entry_get_csize(__p)) +#define zzip_disk_entry_usize(__p) ((zzip_size_t) \ + zzip_disk_entry_get_usize(__p)) +#define zzip_disk_entry_namlen(__p) ((zzip_size_t) \ + zzip_disk_entry_get_namlen(__p)) +#define zzip_disk_entry_extras(__p) ((zzip_size_t) \ + zzip_disk_entry_get_extras(__p)) +#define zzip_disk_entry_comment(__p) ((zzip_size_t) \ + zzip_disk_entry_get_comment(__p)) +#define zzip_disk_entry_diskstart(__p) ((int) \ + zzip_disk_entry_get_diskstart(__p)) +#define zzip_disk_entry_filetype(__p) ((int) \ + zzip_disk_entry_get_filetype(__p)) +#define zzip_disk_entry_filemode(__p) ((int) \ + zzip_disk_entry_get_filemode(__p)) +#define zzip_disk_entry_fileoffset(__p) ((zzip_off_t) \ + zzip_disk_entry_get_offset(__p)) +#define zzip_disk_entry_sizeof_tail(__p) ((zzip_size_t) \ + zzip_disk_entry_sizeof_tails(__p)) +#define zzip_disk_entry_sizeto_end(__p) ((zzip_size_t) \ + (zzip_disk_entry_sizeof_tail(__p) + zzip_disk_entry_headerlength)) +#define zzip_disk_entry_skipto_end(__p) ((zzip_byte_t*) (__p) + \ + (zzip_disk_entry_sizeof_tail(__p) + zzip_disk_entry_headerlength)) + +#define zzip_disk_entry_to_filename(__p) ((char*) \ + ((char*)(__p) + zzip_disk_entry_headerlength)) +#define zzip_disk_entry_to_extras(__p) ((char*) \ + (zzip_disk_entry_to_filename(__p) + zzip_disk_entry_namlen(__p))) +#define zzip_disk_entry_to_comment(__p) ((char*) \ + (zzip_disk_entry_to_extras(__p) + zzip_disk_entry_extras(__p))) +#define zzip_disk_entry_to_next_entry(__p) ((struct zzip_disk_entry*) \ + (zzip_disk_entry_to_comment(__p) + zzip_disk_entry_comment(__p))) + +/* zzip_disk_trailer - the zip archive entry point */ +#define zzip_disk_trailer_localdisk(__p) ((int) \ + zzip_disk_trailer_get_disk(__p)) +#define zzip_disk_trailer_finaldisk(__p) ((int) \ + zzip_disk_trailer_get_finaldisk(__p)) +#define zzip_disk_trailer_localentries(__p) ((int) \ + zzip_disk_trailer_get_entries(__p)) +#define zzip_disk_trailer_finalentries(__p) ((int) \ + zzip_disk_trailer_get_finalentries(__p)) +#define zzip_disk_trailer_rootsize(__p) ((zzip_off_t) \ + zzip_disk_trailer_get_rootsize(__p)) +#define zzip_disk_trailer_rootseek(__p) ((zzip_off_t) \ + zzip_disk_trailer_get_rootseek(__p)) +#define zzip_disk_trailer_comment(__p) ((zzip_size_t) \ + zzip_disk_trailer_get_comment(__p)) +#define zzip_disk_trailer_sizeof_tail(__p) ((zzip_size_t) \ + zzip_disk_trailer_sizeof_tails(__p)) +#define zzip_disk_trailer_sizeto_end(__p) ((zzip_size_t) \ + (zzip_disk_trailer_sizeof_tail(__p) + zzip_disk_trailer_headerlength)) +#define zzip_disk_trailer_skipto_end(__p) ((void*) (__p) \ + (zzip_disk_trailer_sizeof_tail(__p) + zzip_disk_trailer_headerlength)) + +#define zzip_disk_trailer_to_comment(__p) ((char*) \ + ((char*)(__p) + zzip_disk_trailer_headerlength)) +#define zzip_disk_trailer_to_endoffile(__p) ((void*) \ + (zzip_disk_trailer_to_comment(__p) + zzip_disk_trailer_comment(__p))) + +/* zzip_disk64_trailer - the zip archive entry point */ +#define zzip_disk64_trailer_localdisk(__p) ((int) \ + zzip_disk64_trailer_get_disk(__p)) +#define zzip_disk64_trailer_finaldisk(__p) ((int) \ + zzip_disk64_trailer_get_finaldisk(__p)) +#define zzip_disk64_trailer_localentries(__p) ((int) \ + zzip_disk64_trailer_get_entries(__p)) +#define zzip_disk64_trailer_finalentries(__p) ((int) \ + zzip_disk64_trailer_get_finalentries(__p)) +#define zzip_disk64_trailer_rootsize(__p) ((zzip_off64_t) \ + zzip_disk64_trailer_get_rootsize(__p)) +#define zzip_disk64_trailer_rootseek(__p) ((zzip_off64_t) \ + zzip_disk64_trailer_get_rootseek(__p)) +#define zzip_disk64_trailer_sizeof_tail(__p) ((zzip_size_t) \ + zzip_disk64_trailer_get_size(__p) - zzip_disk64_trailer_headerlength) +#define zzip_disk64_trailer_sizeto_end(__p) ((zzip_size_t) \ + zzip_disk64_trailer_get_size(__p)) +#define zzip_disk64_trailer_skipto_end(__p) ((void*) \ + ((char*)(__p) + zzip_disk64_sizeto_end(__p))) + +/* extra field should be type + size + data + type + size + data ... */ +#define zzip_extra_block_sizeof_tail(__p) ((zzip_size_t) \ + (zzip_extra_block_get_datasize(__p))) +#define zzip_extra_block_sizeto_end(__p) ((zzip_size_t) \ + (zzip_extra_block_sizeof_tail(__p) + zzip_extra_block_headerlength)) +#define zzip_extra_block_skipto_end(__p) ((void*) (__p) \ + (zzip_extra_block_sizeof_tail(__p) + zzip_extra_block_headerlength)) + +/* ................... and put these to the next level ................ */ + +#define zzip_file_header_data_encrypted(__p) \ + ZZIP_IS_ENCRYPTED( zzip_file_header_get_flags(__p) ) +#define zzip_file_header_data_comprlevel(__p) \ + ZZIP_IS_COMPRLEVEL( zzip_file_header_get_flags(__p) ) +#define zzip_file_header_data_streamed(__p) \ + ZZIP_IS_STREAMED( zzip_file_header_get_flags(__p) ) +#define zzip_file_header_data_stored(__p) \ + ( ZZIP_IS_STORED == zzip_file_header_get_compr(__p) ) +#define zzip_file_header_data_deflated(__p) \ + ( ZZIP_IS_DEFLATED == zzip_file_header_get_compr(__p) ) + +#define zzip_disk_entry_data_encrypted(__p) \ + ZZIP_IS_ENCRYPTED( zzip_disk_entry_get_flags(__p) ) +#define zzip_disk_entry_data_comprlevel(__p) \ + ZZIP_IS_COMPRLEVEL( zzip_disk_entry_get_flags(__p) ) +#define zzip_disk_entry_data_streamed(__p) \ + ZZIP_IS_STREAMED( zzip_disk_entry_get_flags(__p) ) +#define zzip_disk_entry_data_stored(__p) \ + ( ZZIP_IS_STORED == zzip_disk_entry_get_compr(__p) ) +#define zzip_disk_entry_data_deflated(__p) \ + ( ZZIP_IS_DEFLATED == zzip_disk_entry_get_compr(__p) ) +#define zzip_disk_entry_data_ascii(__p) \ + ( zzip_disk_entry_get_filetype(__p) & 1) + +#define zzip_file_header_data_not_deflated(__p) \ + (zzip_file_header_data_stored(__p)) +#define zzip_file_header_data_std_deflated(__p) \ + (zzip_file_header_data_deflated(__p) && \ + zzip_file_header_data_comprlevel(__p) == ZZIP_DEFLATED_STD_COMPR) +#define zzip_file_header_data_max_deflated(__p) \ + (zzip_file_header_data_deflated(__p) && \ + zzip_file_header_data_comprlevel(__p) == ZZIP_DEFLATED_MAX_COMPR) +#define zzip_file_header_data_low_deflated(__p) \ + (zzip_file_header_data_deflated(__p) && \ + zzip_file_header_data_comprlevel(__p) == ZZIP_DEFLATED_LOW_COMPR) +#define zzip_file_header_data_min_deflated(__p) \ + (zzip_file_header_data_deflated(__p) && \ + zzip_file_header_data_comprlevel(__p) == ZZIP_DEFLATED_MIN_COMPR) + +#define zzip_disk_entry_data_not_deflated(__p) \ + (zzip_disk_entry_data_stored(__p)) +#define zzip_disk_entry_data_std_deflated(__p) \ + (zzip_disk_entry_data_deflated(__p) && \ + zzip_disk_entry_data_comprlevel(__p) == ZZIP_DEFLATED_STD_COMPR) +#define zzip_disk_entry_data_max_deflated(__p) \ + (zzip_disk_entry_data_deflated(__p) && \ + zzip_disk_entry_data_comprlevel(__p) == ZZIP_DEFLATED_MAX_COMPR) +#define zzip_disk_entry_data_low_deflated(__p) \ + (zzip_disk_entry_data_deflated(__p) && \ + zzip_disk_entry_data_comprlevel(__p) == ZZIP_DEFLATED_LOW_COMPR) +#define zzip_disk_entry_data_min_deflated(__p) \ + (zzip_disk_entry_data_deflated(__p) && \ + zzip_disk_entry_data_comprlevel(__p) == ZZIP_DEFLATED_MIN_COMPR) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/file.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/file.c new file mode 100644 index 00000000000..5cda62e72ce --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/file.c @@ -0,0 +1,1180 @@ + +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * Tomi Ollila <Tomi.Ollila@iki.fi> + * + * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#include <zzip/lib.h> /* exported... */ +#include <zzip/file.h> + +#include <string.h> +#include <sys/stat.h> +#include <errno.h> +#include <stdlib.h> +#include <ctype.h> + +#include <zzip/format.h> +#include <zzip/fetch.h> +#include <zzip/__debug.h> + +#if 0 +# if defined ZZIP_HAVE_IO_H +# include <io.h> /* tell */ +# else +# define tell(fd) lseek(fd,0,SEEK_CUR) +# endif +#else +#define tells(fd) seeks(fd,0,SEEK_CUR) +#endif + +/** + * the direct function of => zzip_close(fp). it will cleanup the + * inflate-portion of => zlib and free the structure given. + * + * it is called quite from the error-cleanup parts + * of the various => _open functions. + * + * the .refcount is decreased and if zero the fp->dir is closed just as well. + */ +int +zzip_file_close(ZZIP_FILE * fp) +{ + auto int self; + ZZIP_DIR *dir = fp->dir; + + if (fp->method) + inflateEnd(&fp->d_stream); /* inflateEnd() can be called many times */ + + if (dir->cache.locked == NULL) + dir->cache.locked = &self; + + if (fp->buf32k) + { + if (dir->cache.locked == &self && dir->cache.buf32k == NULL) + dir->cache.buf32k = fp->buf32k; + else + free(fp->buf32k); + } + + if (dir->currentfp == fp) + dir->currentfp = NULL; + + dir->refcount--; + /* ease to notice possible dangling reference errors */ + memset(fp, 0, sizeof(*fp)); + + if (dir->cache.locked == &self && dir->cache.fp == NULL) + dir->cache.fp = fp; + else + free(fp); + + if (dir->cache.locked == &self) + dir->cache.locked = NULL; + + if (! dir->refcount) + return zzip_dir_close(dir); + else + return 0; +} + + +static int +zzip_file_saveoffset(ZZIP_FILE * fp) +{ + if (fp) + { + int fd = fp->dir->fd; + zzip_off_t off = fp->io->fd.seeks(fd, 0, SEEK_CUR); + + if (off < 0) + return -1; + + fp->offset = off; + } + return 0; +} + + +/* user-definition */ +#ifndef ZZIP_BACKSLASH_DIRSEP +#if defined HAVE_WINDOWS_H || defined ZZIP_HAVE_WINDOWS_H || defined _WIN32 +#define ZZIP_BACKSLASH_DIRSEP 1 +#elif defined ZZIP_CHECK_BACKSLASH_DIRSEPARATOR +#define ZZIP_BACKSLASH_DIRSEP 1 +#else +#define ZZIP_BACKSLASH_DIRSEP 0 +#endif +#endif + +static zzip_char_t* +strrchr_basename(zzip_char_t* name) +{ + register zzip_char_t *n = strrchr(name, '/'); + if (n) return n + 1; + return name; +} + +static zzip_char_t* +dirsep_basename(zzip_char_t* name) +{ + register zzip_char_t *n = strrchr(name, '/'); + + if (ZZIP_BACKSLASH_DIRSEP) + { + register zzip_char_t *m = strrchr(name, '\\'); + if (!n || (m && n < m)) + n = m; + } + + if (n) return n + 1; + return name; +} + +#if defined strcasecmp +#define dirsep_strcasecmp strcasecmp +#else +static int +dirsep_strcasecmp(zzip_char_t * s1, zzip_char_t * s2) +{ + /* ASCII tolower - including mapping of backslash in normal slash */ + static const char mapping[] = "@abcdefghijklmnopqrstuvwxyz[/]^_"; + int c1, c2; + + while (*s1 && *s2) + { + c1 = (int) (unsigned char) *s1; + c2 = (int) (unsigned char) *s2; + if ((c1 & 0xE0) == 0x40) + c1 = mapping[c1 & 0x1f]; + if ((c2 & 0xE0) == 0x40) + c2 = mapping[c2 & 0x1f]; + if (c1 != c2) + return (c1 - c2); + s1++; + s2++; + } + + return (((int) (unsigned char) *s1) - ((int) (unsigned char) *s2)); +} +#endif + +static int zzip_inflate_init(ZZIP_FILE *, struct zzip_dir_hdr *); + +/** + * open an => ZZIP_FILE from an already open => ZZIP_DIR handle. Since + * we have a chance to reuse a cached => buf32k and => ZZIP_FILE memchunk + * this is the best choice to unpack multiple files. + * + * Note: the zlib supports 2..15 bit windowsize, hence we provide a 32k + * memchunk here... just to be safe. + * + * On error it returns null and sets errcode in the ZZIP_DIR. + */ +ZZIP_FILE * +zzip_file_open(ZZIP_DIR * dir, zzip_char_t * name, int o_mode) +{ + auto int self; + zzip_error_t err = 0; + struct zzip_file *fp = 0; + struct zzip_dir_hdr *hdr = dir->hdr0; + int (*filename_strcmp) (zzip_char_t *, zzip_char_t *); + zzip_char_t* (*filename_basename)(zzip_char_t*); + + filename_strcmp = (o_mode & ZZIP_CASELESS) ? dirsep_strcasecmp : strcmp; + filename_basename = (o_mode & ZZIP_CASELESS) ? dirsep_basename : strrchr_basename; + + if (! dir) + return NULL; + if (! dir->fd || dir->fd == -1) + { dir->errcode = EBADF; return NULL; } + if (! hdr) + { dir->errcode = ENOENT; return NULL; } + + if (o_mode & ZZIP_NOPATHS) + name = filename_basename(name); + + while (1) + { + register zzip_char_t *hdr_name = hdr->d_name; + + if (o_mode & ZZIP_NOPATHS) + hdr_name = filename_basename(hdr_name); + + HINT4("name='%s', compr=%d, size=%d\n", + hdr->d_name, hdr->d_compr, hdr->d_usize); + + if (! filename_strcmp(hdr_name, name)) + { + switch (hdr->d_compr) + { + case 0: /* store */ + case 8: /* inflate */ + break; + default: + { err = ZZIP_UNSUPP_COMPR; goto error; } + } + + if (dir->cache.locked == NULL) + dir->cache.locked = &self; + + if (dir->cache.locked == &self && dir->cache.fp) + { + fp = dir->cache.fp; + dir->cache.fp = NULL; + /* memset(zfp, 0, sizeof *fp); cleared in zzip_file_close() */ + } else + { + if (! (fp = (ZZIP_FILE *) calloc(1, sizeof(*fp)))) + { err = ZZIP_OUTOFMEM; goto error; } + } + + fp->dir = dir; + fp->io = dir->io; + dir->refcount++; + + if (dir->cache.locked == &self && dir->cache.buf32k) + { + fp->buf32k = dir->cache.buf32k; + dir->cache.buf32k = NULL; + } else + { + if (! (fp->buf32k = (char *) malloc(ZZIP_32K))) + { err = ZZIP_OUTOFMEM; goto error; } + } + + if (dir->cache.locked == &self) + dir->cache.locked = NULL; + /* + * In order to support simultaneous open files in one zip archive + * we'll fix the fd offset when opening new file/changing which + * file to read... + */ + + if (zzip_file_saveoffset(dir->currentfp) < 0) + { err = ZZIP_DIR_SEEK; goto error; } + + fp->offset = hdr->d_off; + dir->currentfp = fp; + + if (dir->io->fd.seeks(dir->fd, hdr->d_off, SEEK_SET) < 0) + { err = ZZIP_DIR_SEEK; goto error; } + + { + /* skip local header - should test tons of other info, + * but trust that those are correct */ + zzip_ssize_t dataoff; + struct zzip_file_header *p = (void *) fp->buf32k; + + dataoff = dir->io->fd.read(dir->fd, (void *) p, sizeof(*p)); + if (dataoff < (zzip_ssize_t) sizeof(*p)) + { err = ZZIP_DIR_READ; goto error; } + if (! zzip_file_header_check_magic(p)) /* PK\3\4 */ + { err = ZZIP_CORRUPTED; goto error; } + + dataoff = zzip_file_header_sizeof_tail(p); + + if (dir->io->fd.seeks(dir->fd, dataoff, SEEK_CUR) < 0) + { err = ZZIP_DIR_SEEK; goto error; } + + fp->dataoffset = dir->io->fd.tells(dir->fd); + fp->usize = hdr->d_usize; + fp->csize = hdr->d_csize; + } + + err = zzip_inflate_init(fp, hdr); + if (err) + goto error; + + return fp; + } else + { + if (hdr->d_reclen == 0) + break; + hdr = (struct zzip_dir_hdr *) ((char *) hdr + hdr->d_reclen); + } /*filename_strcmp */ + } /*forever */ + dir->errcode = ZZIP_ENOENT; + return NULL; + error: + if (fp) + zzip_file_close(fp); + dir->errcode = err; + return NULL; +} + +/** + * call => inflateInit and setup fp's iterator variables, + * used by lowlevel => _open functions. + */ +static int +zzip_inflate_init(ZZIP_FILE * fp, struct zzip_dir_hdr *hdr) +{ + int err; + + fp->method = hdr->d_compr; + fp->restlen = hdr->d_usize; + + if (fp->method) + { + memset(&fp->d_stream, 0, sizeof(fp->d_stream)); + + err = inflateInit2(&fp->d_stream, -MAX_WBITS); + if (err != Z_OK) + goto error; + + fp->crestlen = hdr->d_csize; + } + return 0; + error: + if (fp) + zzip_file_close(fp); + return err; +} + +/** + * This function closes the given ZZIP_FILE handle. + * + * If the ZZIP_FILE wraps a normal stat'fd then it is just that int'fd + * that is being closed and the otherwise empty ZZIP_FILE gets freed. + */ +int +zzip_fclose(ZZIP_FILE * fp) +{ + if (! fp) + return 0; + if (! fp->dir) /* stat fd */ + { int r = fp->io->fd.close(fp->fd); free(fp); return r; } + else + return zzip_file_close(fp); +} + +/** => zzip_fclose + */ +int +zzip_close(ZZIP_FILE * fp) +{ + return zzip_fclose(fp); +} + +/** + * This functions read data from zip-contained file. + * + * It works like => read(2) and will fill the given buffer with bytes from + * the opened file. It will return the number of bytes read, so if the => EOF + * is encountered you will be prompted with the number of bytes actually read. + * + * This is the routines that needs the => buf32k buffer, and it would have + * need for much more polishing but it does already work quite well. + * + * Note: the 32K buffer is rather big. The original inflate-algorithm + * required just that but the latest zlib would work just fine with + * a smaller buffer. + */ +zzip_ssize_t +zzip_file_read(ZZIP_FILE * fp, void *buf, zzip_size_t len) +{ + ZZIP_DIR *dir; + zzip_size_t l; + zzip_ssize_t rv; + + if (! fp || ! fp->dir) + return 0; + + dir = fp->dir; + l = fp->restlen > len ? len : fp->restlen; + if (fp->restlen == 0) + return 0; + + /* + * If this is other handle than previous, save current seek pointer + * and read the file position of `this' handle. + */ + if (dir->currentfp != fp) + { + if (zzip_file_saveoffset(dir->currentfp) < 0 + || fp->io->fd.seeks(dir->fd, fp->offset, SEEK_SET) < 0) + { dir->errcode = ZZIP_DIR_SEEK; return -1; } + else + { dir->currentfp = fp; } + } + + /* if more methods is to be supported, change this to `switch ()' */ + if (fp->method) /* method != 0 == 8, inflate */ + { + fp->d_stream.avail_out = l; + fp->d_stream.next_out = (unsigned char *) buf; + + do + { + int err; + zzip_size_t startlen; + + if (fp->crestlen > 0 && fp->d_stream.avail_in == 0) + { + zzip_size_t cl = (fp->crestlen < ZZIP_32K ? + fp->crestlen : ZZIP_32K); + /* zzip_size_t cl = + * fp->crestlen > 128 ? 128 : fp->crestlen; + */ + zzip_ssize_t i = fp->io->fd.read(dir->fd, fp->buf32k, cl); + + if (i <= 0) + { + dir->errcode = ZZIP_DIR_READ; + /* or ZZIP_DIR_READ_EOF ? */ + return -1; + } + fp->crestlen -= i; + fp->d_stream.avail_in = i; + fp->d_stream.next_in = (unsigned char *) fp->buf32k; + } + + startlen = fp->d_stream.total_out; + err = inflate(&fp->d_stream, Z_NO_FLUSH); + + if (err == Z_STREAM_END) + { fp->restlen = 0; } + else if (err == Z_OK) + { fp->restlen -= (fp->d_stream.total_out - startlen); } + else + { dir->errcode = err; return -1; } + } + while (fp->restlen && fp->d_stream.avail_out); + + return l - fp->d_stream.avail_out; + } else + { /* method == 0 -- unstore */ + rv = fp->io->fd.read(dir->fd, buf, l); + if (rv > 0) + { fp->restlen-= rv; } + else if (rv < 0) + { dir->errcode = ZZIP_DIR_READ; } + return rv; + } +} + +/** + * This function will read(2) data from a real/zipped file. + * + * the replacement for => read(2) will fill the given buffer with bytes from + * the opened file. It will return the number of bytes read, so if the EOF + * is encountered you will be prompted with the number of bytes actually read. + * + * If the file-handle is wrapping a stat'able file then it will actually just + * perform a normal => read(2)-call, otherwise => zzip_file_read is called + * to decompress the data stream and any error is mapped to => errno(3). + */ +zzip_ssize_t +zzip_read(ZZIP_FILE * fp, void *buf, zzip_size_t len) +{ + if (! fp) + return 0; + if (! fp->dir) + { return fp->io->fd.read(fp->fd, buf, len); } /* stat fd */ + else + { + register zzip_ssize_t v; + + v = zzip_file_read(fp, buf, len); + if (v == -1) + { errno = zzip_errno(fp->dir->errcode); } + return v; + } +} + +/** => zzip_read + */ +zzip_size_t +zzip_fread(void *ptr, zzip_size_t size, zzip_size_t nmemb, ZZIP_FILE * file) +{ + if (! size) + size = 1; + return zzip_read(file, ptr, size * nmemb) / size; +} + + +#define ZZIP_WRONLY O_WRONLY +#define ZZIP_EXCL O_EXCL + +#if defined O_SYNC +#define ZZIP_SYNC O_SYNC +#else +#define ZZIP_SYNC 0 +#endif + +#if defined O_NONBLOCK +#define ZZIP_NONBLOCK O_NONBLOCK +#elif defined O_NDELAY +#define ZZIP_NOCTTY O_NDELAY +#else +#define ZZIP_NOCTTY 0 +#endif + +/* ------------------------------------------------------------------- */ + +/** also: fopen(2) + * This function will => fopen(3) a real/zipped file. + * + * It has some magic functionality builtin - it will first try to open + * the given <em>filename</em> as a normal file. If it does not + * exist, the given path to the filename (if any) is split into + * its directory-part and the file-part. A ".zip" extension is + * then added to the directory-part to create the name of a + * zip-archive. That zip-archive (if it exists) is being searched + * for the file-part, and if found a zzip-handle is returned. + * + * Note that if the file is found in the normal fs-directory the + * returned structure is mostly empty and the => zzip_read call will + * use the libc => read(2) to obtain data. Otherwise a => zzip_file_open + * is performed and any error mapped to => errno(3). + * + * unlike the posix-wrapper => zzip_open the mode-argument is + * a string which allows for more freedom to support the extra + * zzip modes called ZZIP_CASEINSENSITIVE and ZZIP_IGNOREPATH. + * Currently, this => zzip_fopen call will convert the following + * characters in the mode-string into their corrsponding mode-bits: + * * <code> "r" : O_RDONLY : </code> read-only + * * <code> "b" : O_BINARY : </code> binary (win32 specific) + * * <code> "f" : O_NOCTTY : </code> no char device (unix) + * * <code> "i" : ZZIP_CASELESS : </code> inside zip file + * * <code> "*" : ZZIP_NOPATHS : </code> inside zip file only + * all other modes will be ignored for zip-contained entries + * but they are transferred for compatibility and portability, + * including these extra sugar bits: + * * <code> "x" : O_EXCL :</code> fail if file did exist + * * <code> "s" : O_SYNC :</code> synchronized access + * * <code> "n" : O_NONBLOCK :</code> nonblocking access + * * <code> "z#" : compression level :</code> for zlib + * * <code> "g#" : group access :</code> unix access bits + * * <code> "u#" : owner access :</code> unix access bits + * * <code> "o#" : world access :</code> unix access bits + * ... the access bits are in traditional unix bit format + * with 7 = read/write/execute, 6 = read/write, 4 = read-only. + * + * The default access mode is 0664, and the compression level + * is ignored since the lib can not yet write zip files, otherwise + * it would be the initialisation value for the zlib deflateInit + * where 0 = no-compression, 1 = best-speed, 9 = best-compression. + * + * This function returns a new zzip-handle (use => zzip_close to return + * it). On error this function will return null setting => errno(3). + */ +ZZIP_FILE * +zzip_fopen(zzip_char_t * filename, zzip_char_t * mode) +{ + return zzip_freopen(filename, mode, 0); +} + +/** => zzip_fopen + * + * This function receives an additional argument pointing to + * a ZZIP_FILE* being already in use. If this extra argument is + * null then this function is identical with calling => zzip_fopen + * + * Per default, the old file stream is closed and only the internal + * structures associated with it are kept. These internal structures + * may be reused for the return value, and this is a lot quicker when + * the filename matches a zipped file that is incidently in the very + * same zip arch as the old filename wrapped in the stream struct. + * + * That's simply because the zip arch's central directory does not + * need to be read again. As an extension for this function, if the + * mode-string contains a "q" then the old stream is not closed but + * left untouched, instead it is only given as a hint that a new + * file handle may share/copy the zip arch structures of the old file + * handle if that is possible, i.e when they are in the same zip arch. + * + * This function returns a new zzip-handle (use => zzip_close to return + * it). On error this function will return null setting => errno(3). + */ +ZZIP_FILE * +zzip_freopen(zzip_char_t * filename, zzip_char_t * mode, ZZIP_FILE * stream) +{ + int o_flags = 0; + int o_modes = 0664; + + if (! mode) + mode = "rb"; + +# ifndef O_BINARY +# define O_BINARY 0 +# endif +# ifndef O_NOCTTY +# define O_NOCTTY 0 +# endif +# ifndef O_SYNC +# define O_SYNC 0 +# endif +# ifndef O_NONBLOCK +# define O_NONBLOCK 0 +# endif + + for (; *mode; mode++) + { + switch (*mode) + { + /* *INDENT-OFF* */ + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + continue; /* ignore if not attached to other info */ + case 'r': o_flags |= mode[1] == '+' ? O_RDWR : O_RDONLY; break; + case 'w': o_flags |= mode[1] == '+' ? O_RDWR : O_WRONLY; + o_flags |= O_TRUNC; break; + case 'b': o_flags |= O_BINARY; break; + case 'f': o_flags |= O_NOCTTY; break; + case 'i': o_modes |= ZZIP_CASELESS; break; + case '*': o_modes |= ZZIP_NOPATHS; break; + case 'x': o_flags |= O_EXCL; break; + case 's': o_flags |= O_SYNC; break; + case 'n': o_flags |= O_NONBLOCK; break; + case 'o': o_modes &=~ 07; + o_modes |= ((mode[1] - '0')) & 07; continue; + case 'g': o_modes &=~ 070; + o_modes |= ((mode[1] - '0') << 3) & 070; continue; + case 'u': o_modes &=~ 0700; + o_modes |= ((mode[1] - '0') << 6) & 0700; continue; + case 'q': o_modes |= ZZIP_FACTORY; break; + case 'z': /* compression level */ + continue; /* currently ignored, just for write mode */ + /* *INDENT-ON* */ + } + } + + { + ZZIP_FILE *fp = + zzip_open_shared_io(stream, filename, o_flags, o_modes, 0, 0); + + if (! (o_modes & ZZIP_FACTORY) && stream) + zzip_file_close(stream); + + return fp; + } +} + +/** + * This function will => open(2) a real/zipped file + * + * It has some magic functionality builtin - it will first try to open + * the given <em>filename</em> as a normal file. If it does not + * exist, the given path to the filename (if any) is split into + * its directory-part and the file-part. A ".zip" extension is + * then added to the directory-part to create the name of a + * zip-archive. That zip-archive (if it exists) is being searched + * for the file-part, and if found a zzip-handle is returned. + * + * Note that if the file is found in the normal fs-directory the + * returned structure is mostly empty and the => zzip_read call will + * use the libc => read(2) to obtain data. Otherwise a => zzip_file_open + * is performed and any error mapped to => errno(3). + * + * There was a possibility to transfer zziplib-specific openmodes + * through o_flags but you should please not use them anymore and + * look into => zzip_open_ext_io to submit them down. This function + * is shallow in that it just extracts the zzipflags and calls + * * <code>zzip_open_ext_io(filename, o_flags, zzipflags|0664, 0, 0) </code> + * you must stop using this extra functionality (not well known anyway) + * since zzip_open might be later usable to open files for writing + * in which case the _EXTRAFLAGS will get in conflict. + * + * compare with => open(2) and => zzip_fopen + */ +ZZIP_FILE * +zzip_open(zzip_char_t * filename, int o_flags) +{ + /* backward compatibility */ + int o_modes = 0664; + + if (o_flags & ZZIP_CASEINSENSITIVE) + { o_flags ^= ZZIP_CASEINSENSITIVE; o_modes |= ZZIP_CASELESS; } + if (o_flags & ZZIP_IGNOREPATH) + { o_flags ^= ZZIP_IGNOREPATH; o_modes |= ZZIP_NOPATHS; } + return zzip_open_ext_io(filename, o_flags, o_modes, 0, 0); +} + +/* ZZIP_ONLYZIP won't work on platforms with sizeof(int) == 16bit */ +#if ZZIP_SIZEOF_INT+0 == 2 +#undef ZZIP_ONLYZIP +#endif + +/** => zzip_open + * + * This function uses explicit ext and io instead of the internal + * defaults, setting them to zero is equivalent to => zzip_open + * + * note that the two flag types have been split into an o_flags + * (for fcntl-like openflags) and o_modes where the latter shall + * carry the zzip_flags and possibly accessmodes for unix filesystems. + * Since this version of zziplib can not write zipfiles, it is not + * yet used for anything else than zzip-specific modeflags. + * + * This function returns a new zzip-handle (use => zzip_close to return + * it). On error this function will return null setting => errno(3). + * + * If any ext_io handlers were used then the referenced structure + * should be static as the allocated ZZIP_FILE does not copy them. + */ +ZZIP_FILE * +zzip_open_ext_io(zzip_char_t * filename, int o_flags, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) +{ + return zzip_open_shared_io(0, filename, o_flags, o_modes, ext, io); +} + +/** => zzip_open + * + * This function takes an extra stream argument - if a handle has been + * then ext/io can be left null and the new stream handle will pick up + * the ext/io. This should be used only in specific environment however + * since => zzip_file_real does not store any ext-sequence. + * + * The benefit for this function comes in when the old file handle + * was openened from a file within a zip archive. When the new file + * is in the same zip archive then the internal zzip_dir structures + * will be shared. It is even quicker, as no check needs to be done + * anymore trying to guess the zip archive place in the filesystem, + * here we just check whether the zip archive's filepath is a prefix + * part of the filename to be opened. + * + * Note that this function is also used by => zzip_freopen that + * will unshare the old handle, thereby possibly closing the handle. + * + * This function returns a new zzip-handle (use => zzip_close to return + * it). On error this function will return null setting => errno(3). + */ +ZZIP_FILE * +zzip_open_shared_io(ZZIP_FILE * stream, + zzip_char_t * filename, int o_flags, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) +{ + if (stream && stream->dir) + { + if (! ext) + ext = stream->dir->fileext; + if (! io) + io = stream->dir->io; + } + if (! io) + io = zzip_get_default_io(); + + if (o_modes & (ZZIP_PREFERZIP | ZZIP_ONLYZIP)) + goto try_zzip; + try_real: + /* prefer an existing real file */ + { + zzip_plugin_io_t os = (o_modes & ZZIP_ALLOWREAL) + ? zzip_get_default_io() : io; + int fd = (os->fd.open)(filename, o_flags); /* io->fd.open */ + + if (fd != -1) + { + ZZIP_FILE *fp = calloc(1, sizeof(ZZIP_FILE)); + + if (! fp) + { os->fd.close(fd); return 0; } /* io->fd.close */ + + fp->fd = fd; + fp->io = os; + return fp; + } + if (o_modes & ZZIP_PREFERZIP) + return 0; + } + try_zzip: + + /* if the user had it in place of a normal xopen, then + * we better defend this lib against illegal usage */ + if (o_flags & (O_CREAT | O_WRONLY)) + { errno = EINVAL; return 0; } + if (o_flags & (O_RDWR)) + { o_flags ^= O_RDWR; o_flags |= O_RDONLY; } + + /* this is just for backward compatibility -and strictly needed to + * prepare ourselves for more options and more options later on... */ + /*# if (o_modes & ZZIP_CASELESS) { o_flags |= ZZIP_CASEINSENSITIVE; } */ + /*# if (o_modes & ZZIP_NOPATHS) { o_flags |= ZZIP_IGNOREPATH; } */ + + /* see if we can open a file that is a zip file */ + { + char basename[PATH_MAX]; + char *p; + int filename_len = strlen(filename); + + if (filename_len >= PATH_MAX) + { errno = ENAMETOOLONG; return 0; } + memcpy(basename, filename, filename_len + 1); + + /* see if we can share the same zip directory */ + if (stream && stream->dir && stream->dir->realname) + { + zzip_size_t len = strlen(stream->dir->realname); + + if (! memcmp(filename, stream->dir->realname, len) && + filename[len] == '/' && filename[len + 1]) + { + ZZIP_FILE *fp = + zzip_file_open(stream->dir, filename + len + 1, o_modes); + if (! fp) + { errno = zzip_errno (stream->dir->errcode); } + return fp; + } + } + + /* per each slash in filename, check if it there is a zzip around */ + while ((p = strrchr(basename, '/'))) + { + zzip_error_t e = 0; + ZZIP_DIR *dir; + ZZIP_FILE *fp; + int fd; + + *p = '\0'; + /* i.e. cut at path separator == possible zipfile basename */ + fd = __zzip_try_open(basename, o_flags | O_RDONLY | O_BINARY, + ext, io); + if (fd == -1) + { continue; } + + /* found zip-file .... now try to parse it */ + dir = zzip_dir_fdopen_ext_io(fd, &e, ext, io); + if (e) + { errno = zzip_errno(e); io->fd.close(fd); return 0; } + + /* (p - basename) is the lenghtof zzip_dir part of the filename */ + fp = zzip_file_open(dir, filename + (p - basename) + 1, o_modes); + if (! fp) + { errno = zzip_errno(dir->errcode); } + else + { if (! dir->realname) dir->realname = strdup (basename); } + + zzip_dir_close(dir); + /* note: since (fp) is attached that (dir) will survive */ + /* but (dir) is implicitly closed on next zzip_close(fp) */ + + return fp; + } + + if (o_modes & ZZIP_PREFERZIP) + goto try_real; + else + { errno = ENOENT; return 0; } + } +} + +#if defined ZZIP_LARGEFILE_RENAME && defined EOVERFLOW && defined PIC +#undef zzip_open_shared_io /* zzip_open_shared_io64 */ +#undef zzip_open_ext_io /* zzip_open_ext_io64 */ +#undef zzip_opendir_ext_io /* zzip_opendir_ext_io64 */ + +ZZIP_FILE *zzip_open_shared_io(ZZIP_FILE * stream, + zzip_char_t * name, int o_flags, + int o_modes, zzip_strings_t * ext, + zzip_plugin_io_t io); +ZZIP_FILE *zzip_open_ext_io(zzip_char_t * name, int o_flags, + int o_modes, zzip_strings_t * ext, + zzip_plugin_io_t io); +ZZIP_DIR *zzip_opendir_ext_io(zzip_char_t * name, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io); + +/* DLL compatibility layer - so that 32bit code can link with this lib too */ + +ZZIP_FILE * +zzip_open_shared_io(ZZIP_FILE * stream, + zzip_char_t * name, int o_flags, + int o_modes, zzip_strings_t * ext, zzip_plugin_io_t io) +{ + if (! io) + return zzip_open_shared_io64(stream, name, o_flags, o_modes, ext, io); + errno = EOVERFLOW; + return NULL; +} + +ZZIP_FILE * +zzip_open_ext_io(zzip_char_t * name, int o_flags, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) +{ + if (! io) + return zzip_open_ext_io64(name, o_flags, o_modes, ext, io); + errno = EOVERFLOW; + return NULL; +} + +ZZIP_DIR * +zzip_opendir_ext_io(zzip_char_t * name, int o_modes, + zzip_strings_t * ext, zzip_plugin_io_t io) +{ + if (! io) + return zzip_opendir_ext_io64(name, o_modes, ext, io); + else + { errno = EOVERFLOW; return NULL; } +} + +#endif /* ZZIP_LARGEFILE_RENAME && EOVERFLOW && PIC */ + +/* ------------------------------------------------------------------- */ + +/** + * This function will rewind a real/zipped file. + * + * It seeks to the beginning of this file's data in the zip, + * or the beginning of the file for a stat'fd. + */ +int +zzip_rewind(ZZIP_FILE * fp) +{ + ZZIP_DIR *dir; + int err; + + if (! fp) + return -1; + + if (! fp->dir) + { /* stat fd */ + fp->io->fd.seeks(fp->fd, 0, SEEK_SET); + return 0; + } + + dir = fp->dir; + /* + * If this is other handle than previous, save current seek pointer + */ + if (dir->currentfp != fp) + { + if (zzip_file_saveoffset(dir->currentfp) < 0) + { dir->errcode = ZZIP_DIR_SEEK; return -1; } + else + { dir->currentfp = fp; } + } + + /* seek to beginning of this file */ + if (fp->io->fd.seeks(dir->fd, fp->dataoffset, SEEK_SET) < 0) + return -1; + + /* reset the inflate init stuff */ + fp->restlen = fp->usize; + fp->offset = fp->dataoffset; + + if (fp->method) + { /* method == 8, deflate */ + err = inflateReset(&fp->d_stream); + if (err != Z_OK) + goto error; + + /* start over at next inflate with a fresh read() */ + fp->d_stream.avail_in = 0; + fp->crestlen = fp->csize; + } + + return 0; + + error: + if (fp) + zzip_file_close(fp); + return err; +} + +/** + * This function will perform a => lseek(2) operation on a real/zipped file + * + * It will try to seek to the offset specified by offset, relative to whence, + * which is one of SEEK_SET, SEEK_CUR or SEEK_END. + * + * If the file-handle is wrapping a stat'able file then it will actually just + * perform a normal => lseek(2)-call. Otherwise the relative offset + * is calculated, negative offsets are transformed into positive ones + * by rewinding the file, and then data is read until the offset is + * reached. This can make the function terribly slow, but this is + * how gzio implements it, so I'm not sure there is a better way + * without using the internals of the algorithm. + */ +zzip_off_t +zzip_seek(ZZIP_FILE * fp, zzip_off_t offset, int whence) +{ + zzip_off_t cur_pos, rel_ofs, read_size, ofs; + ZZIP_DIR *dir; + + if (! fp) + return -1; + + if (! fp->dir) + { /* stat fd */ + return fp->io->fd.seeks(fp->fd, offset, whence); + } + + cur_pos = zzip_tell(fp); + + /* calculate relative offset */ + switch (whence) + { + case SEEK_SET: /* from beginning */ + rel_ofs = offset - cur_pos; + break; + case SEEK_CUR: /* from current */ + rel_ofs = offset; + break; + case SEEK_END: /* from end */ + rel_ofs = fp->usize + offset - cur_pos; + break; + default: /* something wrong */ + return -1; + } + + if (rel_ofs == 0) + return cur_pos; /* don't have to move */ + + if (rel_ofs < 0) + { /* convert backward into forward */ + if (zzip_rewind(fp) == -1) + return -1; + + read_size = cur_pos + rel_ofs; + cur_pos = 0; + } else + { /* amount to read is positive relative offset */ + read_size = rel_ofs; + } + + if (read_size < 0) /* bad offset, before beginning of file */ + return -1; + + if (read_size + cur_pos > (zzip_off_t) fp->usize) /* bad offset, past EOF */ + return -1; + + if (read_size == 0) /* nothing to read */ + return cur_pos; + + dir = fp->dir; + /* + * If this is other handle than previous, save current seek pointer + * and read the file position of `this' handle. + */ + if (dir->currentfp != fp) + { + if (zzip_file_saveoffset(dir->currentfp) < 0 + || fp->io->fd.seeks(dir->fd, fp->offset, SEEK_SET) < 0) + { dir->errcode = ZZIP_DIR_SEEK; return -1; } + else + { dir->currentfp = fp; } + } + + if (fp->method == 0) + { /* unstore, just lseek relatively */ + ofs = fp->io->fd.tells(dir->fd); + ofs = fp->io->fd.seeks(dir->fd, read_size, SEEK_CUR); + if (ofs > 0) + { /* readjust from beginning of file */ + ofs -= fp->dataoffset; + fp->restlen = fp->usize - ofs; + } + return ofs; + } else + { /* method == 8, inflate */ + char *buf; + + /*FIXME: use a static buffer! */ + buf = (char *) malloc(ZZIP_32K); + if (! buf) + return -1; + + while (read_size > 0) + { + zzip_off_t size = ZZIP_32K; + + if (read_size < size /*32K */ ) + size = read_size; + + size = zzip_file_read(fp, buf, (zzip_size_t) size); + if (size <= 0) + { free(buf); return -1; } + + read_size -= size; + } + + free(buf); + } + + return zzip_tell(fp); +} + +/** + * This function will => tell(2) the current position in a real/zipped file + * + * It will return the current offset within the real/zipped file, + * measured in uncompressed bytes for the zipped-file case. + * + * If the file-handle is wrapping a stat'able file then it will actually just + * perform a normal => tell(2)-call, otherwise the offset is + * calculated from the amount of data left and the total uncompressed + * size; + */ +zzip_off_t +zzip_tell(ZZIP_FILE * fp) +{ + if (! fp) + return -1; + + if (! fp->dir) /* stat fd */ + return fp->io->fd.tells(fp->fd); + + /* current uncompressed offset is uncompressed size - data left */ + return (fp->usize - fp->restlen); +} + +#ifndef EOVERFLOW +#define EOVERFLOW EFBIG +#endif + +/** => zzip_tell + * This function is provided for users who can not use any largefile-mode. + */ +long +zzip_tell32(ZZIP_FILE * fp) +{ + if (sizeof(zzip_off_t) == sizeof(long)) + { + return zzip_tell(fp); + } else + { + off_t off = zzip_tell(fp); + if (off >= 0) { + register long off32 = off; + if (off32 == off) return off32; + errno = EOVERFLOW; + } + return -1; + } +} + +/** => zzip_seek + * This function is provided for users who can not use any largefile-mode. + */ +long +zzip_seek32(ZZIP_FILE * fp, long offset, int whence) +{ + if (sizeof(zzip_off_t) == sizeof(long)) + { + return zzip_seek(fp, offset, whence); + } else + { + off_t off = zzip_seek(fp, offset, whence); + if (off >= 0) { + register long off32 = off; + if (off32 == off) return off32; + errno = EOVERFLOW; + } + return -1; + } +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/file.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/file.h new file mode 100644 index 00000000000..fcff276bb23 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/file.h @@ -0,0 +1,81 @@ +/* + * this is an internal header file - the structure contains two off_t + * atleast making it LARGEFILE_SENSITIVE on linux2 and solaris systems + * whereas about all functions just return a ZZIP_FILE* in zzip/zzip.h + * + * and so, this structure should be handled version-specific and + * subject to change - it had been kept binary-compatible for quite + * a while now so perhaps some program sources have errnously taken + * advantage of this file. + * + * Author: + * Guido Draheim <guidod@gmx.de> + * Tomi Ollila <Tomi.Ollila@tfi.net> + * + * Copyright (c) 1999,2000,2001,2002 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#ifndef _ZZIP_FILE_H /* zzip-file.h */ +#define _ZZIP_FILE_H 1 + +#ifndef ZZIP_32K +#ifdef __GNUC__ +/* include zzip/lib.h beforehand in order to suppress the following warning */ +#warning zzip/file.h is an internal header, do not use it freely +#endif +#endif + +#include <zzip/lib.h> +#include <zlib.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#else +#include <stdio.h> +# ifdef ZZIP_HAVE_SYS_TYPES_H +# include <sys/types.h> +# endif +#endif + +#ifdef ZZIP_HAVE_SYS_PARAM_H +#include <sys/param.h> /* PATH_MAX */ +#endif + +#ifndef PATH_MAX +# ifdef MAX_PATH /* windows */ +# define PATH_MAX MAX_PATH +# else +# define PATH_MAX 512 +# endif +#endif +/* + * ZZIP_FILE structure... currently no need to unionize, since structure needed + * for inflate is superset of structure needed for unstore. + * + * Don't make this public. Instead, create methods for needed operations. + */ + +struct zzip_file +{ + struct zzip_dir* dir; + int fd; + int method; + zzip_size_t restlen; + zzip_size_t crestlen; + zzip_size_t usize; + zzip_size_t csize; + /* added dataoffset member - data offset from start of zipfile*/ + zzip_off_t dataoffset; + char* buf32k; + zzip_off_t offset; /* offset from the start of zipfile... */ + z_stream d_stream; + zzip_plugin_io_t io; +}; + +#endif /* _ZZIP_FILE_H */ + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/format.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/format.h new file mode 100644 index 00000000000..0881479c167 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/format.h @@ -0,0 +1,234 @@ +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2000,2001,2002,2003 Guido Draheim + * All rights reserved + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + * + * The information was taken from appnote-981119-iz.zip + * at http://www.freesoftware.com/pub/infozip/doc/ + * which in turn is based on PKWARE's appnote.txt + * (newer link: ftp://ftp.info-zip.org/pub/infozip/doc/) + */ +#ifndef _ZZIP_FORMAT_H /* zzipformat.h */ +#define _ZZIP_FORMAT_H + +#include <zzip/types.h> +#include <zzip/__hints.h> +/* we have ICO C 9X types defined */ + +/* + * Overall zipfile format + * [local file header + file data stream + checksum descriptor] ... + * ... [disk central directory] [disk trailer record] + */ + +# ifdef _MSC_VER +# pragma pack(push, 1) +# endif + +struct zzip_version +{ + zzip_byte_t version[1]; + zzip_byte_t ostype[1]; +} ZZIP_GNUC_PACKED; + +struct zzip_dostime +{ + zzip_byte_t time[2]; + zzip_byte_t date[2]; +} ZZIP_GNUC_PACKED; + +#ifdef ZZIP_NEED_PACKED +/* if your compiler does interesting things about struct packing... */ +typedef zzip_byte_t zzip_version_t[2]; +typedef zzip_byte_t zzip_dostime_t[4]; +#else +typedef struct zzip_version zzip_version_t; +typedef struct zzip_dostime zzip_dostime_t; +#endif + +#define ZZIP_CHECKMAGIC(__p,__A,__B,__C,__D) \ + ( (((zzip_byte_t*)(__p))[0]==(__A)) && \ + (((zzip_byte_t*)(__p))[1]==(__B)) && \ + (((zzip_byte_t*)(__p))[2]==(__C)) && \ + (((zzip_byte_t*)(__p))[3]==(__D)) ) + +/* A. Local file header */ +struct zzip_file_header +{ +# define ZZIP_FILE_HEADER_MAGIC 0x04034b50 +# define ZZIP_FILE_HEADER_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\3','\4') + zzip_byte_t z_magic[4]; /* local file header signature (0x04034b50) */ + zzip_version_t z_extract; /* version needed to extract */ + zzip_byte_t z_flags[2]; /* general purpose bit flag */ + zzip_byte_t z_compr[2]; /* compression method */ + zzip_dostime_t z_dostime; /* last mod file time (dos format) */ + zzip_byte_t z_crc32[4]; /* crc-32 */ + zzip_byte_t z_csize[4]; /* compressed size */ + zzip_byte_t z_usize[4]; /* uncompressed size */ + zzip_byte_t z_namlen[2]; /* filename length (null if stdin) */ + zzip_byte_t z_extras[2]; /* extra field length */ + /* followed by filename (of variable size) */ + /* followed by extra field (of variable size) */ +} ZZIP_GNUC_PACKED; +#define zzip_file_header_headerlength (4+2+2+2+4+4+4+4+2+2) + +/* B. data descriptor + * the data descriptor exists only if bit 3 of z_flags is set. It is byte aligned + * and immediately follows the last byte of compressed data. It is only used if + * the output media of the compressor was not seekable, eg. standard output. + */ +struct zzip_file_trailer +{ +# define ZZIP_FILE_TRAILER_MAGIC 0x08074B50 +# define ZZIP_FILE_TRAILER_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\7','\8') + zzip_byte_t z_magic[4]; /* data descriptor signature (0x08074b50) */ + zzip_byte_t z_crc32[4]; /* crc-32 */ + zzip_byte_t z_csize[4]; /* compressed size */ + zzip_byte_t z_usize[4]; /* uncompressed size */ +} ZZIP_GNUC_PACKED; +#define zzip_file_trailer_headerlength (4+4+4+4) + +/* C. central directory structure: + [file header] . . . end of central dir record +*/ + +/* directory file header + * - a single entry including filename, extras and comment may not exceed 64k. + */ + +struct zzip_disk_entry +{ +# define ZZIP_DISK_ENTRY_MAGIC 0x02014b50 +# define ZZIP_DISK_ENTRY_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\1','\2') + zzip_byte_t z_magic[4]; /* central file header signature (0x02014b50) */ + zzip_version_t z_encoder; /* version made by */ + zzip_version_t z_extract; /* version need to extract */ + zzip_byte_t z_flags[2]; /* general purpose bit flag */ + zzip_byte_t z_compr[2]; /* compression method */ + zzip_dostime_t z_dostime; /* last mod file time&date (dos format) */ + zzip_byte_t z_crc32[4]; /* crc-32 */ + zzip_byte_t z_csize[4]; /* compressed size */ + zzip_byte_t z_usize[4]; /* uncompressed size */ + zzip_byte_t z_namlen[2]; /* filename length (null if stdin) */ + zzip_byte_t z_extras[2]; /* extra field length */ + zzip_byte_t z_comment[2]; /* file comment length */ + zzip_byte_t z_diskstart[2]; /* disk number of start (if spanning zip over multiple disks) */ + zzip_byte_t z_filetype[2]; /* internal file attributes, bit0 = ascii */ + zzip_byte_t z_filemode[4]; /* extrnal file attributes, eg. msdos attrib byte */ + zzip_byte_t z_offset[4]; /* relative offset of local file header, seekval if singledisk */ + /* followed by filename (of variable size) */ + /* followed by extra field (of variable size) */ + /* followed by file comment (of variable size) */ +} ZZIP_GNUC_PACKED; +#define zzip_disk_entry_headerlength (4+2+2+2+2+4+4+4+4+2+2+2+2+2+4+4) + + +struct zzip_root_dirent +{ /* the old name of the structure above */ +# define ZZIP_ROOT_DIRENT_MAGIC 0x02014b50 +# define ZZIP_ROOT_DIRENT_CHECKMAGIC(__p) ZZIP_DISK_ENTRY_CHECKMAGIC(__p) + zzip_byte_t z_magic[4]; + zzip_version_t z_encoder; + zzip_version_t z_extract; + zzip_byte_t z_flags[2]; + zzip_byte_t z_compr[2]; + zzip_dostime_t z_dostime; + zzip_byte_t z_crc32[4]; + zzip_byte_t z_csize[4]; + zzip_byte_t z_usize[4]; + zzip_byte_t z_namlen[2]; + zzip_byte_t z_extras[2]; + zzip_byte_t z_comment[2]; + zzip_byte_t z_diskstart[2]; + zzip_byte_t z_filetype[2]; + zzip_byte_t z_filemode[4]; + zzip_byte_t z_off[4]; +} ZZIP_GNUC_PACKED; + + +/* end of central dir record */ +struct zzip_disk_trailer +{ +# define ZZIP_DISK_TRAILER_MAGIC 0x06054b50 +# define ZZIP_DISK_TRAILER_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\5','\6') + zzip_byte_t z_magic[4]; /* end of central dir signature (0x06054b50) */ + zzip_byte_t z_disk[2]; /* number of this disk */ + zzip_byte_t z_finaldisk[2]; /* number of the disk with the start of the central dir */ + zzip_byte_t z_entries[2]; /* total number of entries in the central dir on this disk */ + zzip_byte_t z_finalentries[2]; /* total number of entries in the central dir */ + zzip_byte_t z_rootsize[4]; /* size of the central directory */ + zzip_byte_t z_rootseek[4]; /* offset of start of central directory with respect to * + * the starting disk number */ + zzip_byte_t z_comment[2]; /* zipfile comment length */ + /* followed by zipfile comment (of variable size) */ +} ZZIP_GNUC_PACKED; +#define zzip_disk_trailer_headerlength (4+2+2+2+2+4+4+2) + +/* extra field should be type + size + data + type + size + data ... */ +struct zzip_extra_block +{ /* fetch.h macros do not need this struct */ + zzip_byte_t z_datatype[2]; /* as input type - a mere <char*> is okay */ + zzip_byte_t z_datasize[2]; /* being returned by xx_to_extras usually */ +} ZZIP_GNUC_PACKED; +#define zzip_extra_block_headerlength (2+2) + +/* Zip64 end of central dir record */ +struct zzip_disk64_trailer +{ +# define ZZIP_DISK64_TRAILER_MAGIC 0x06064b50 +# define ZZIP_DISK64_TRAILER_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\6','\6') + zzip_byte_t z_magic[4]; /* end of central dir signature (0x06054b50) */ + zzip_byte_t z_size[8]; /* size of this central directory record */ + zzip_version_t z_encoder; /* version made by */ + zzip_version_t z_extract; /* version need to extract */ + zzip_byte_t z_disk[4]; /* number of this disk */ + zzip_byte_t z_finaldisk[4]; /* number of the disk with the start of the central dir */ + zzip_byte_t z_entries[8]; /* total number of entries in the central dir on this disk */ + zzip_byte_t z_finalentries[8]; /* total number of entries in the central dir */ + zzip_byte_t z_rootsize[8]; /* size of the central directory */ + zzip_byte_t z_rootseek[8]; /* offset of start of central directory with respect to * + * the starting disk number */ + /* followed by zip64 extensible data sector (of variable size) */ +} ZZIP_GNUC_PACKED; +#define zzip_disk64_trailer_headerlength (4+8+2+2+4+4+8+8+8+8) + +/* z_flags */ +#define ZZIP_IS_ENCRYPTED(p) ((*(zzip_byte_t*)p)&1) +#define ZZIP_IS_COMPRLEVEL(p) (((*(zzip_byte_t*)p)>>1)&3) +#define ZZIP_IS_STREAMED(p) (((*(zzip_byte_t*)p)>>3)&1) +#define ZZIP_IS_PATCHED(p) (((*(zzip_byte_t*)p)>>5)&1) + +/* z_compr */ +#define ZZIP_IS_STORED 0 +#define ZZIP_IS_SHRUNK 1 +#define ZZIP_IS_REDUCEDx1 2 +#define ZZIP_IS_REDUCEDx2 3 +#define ZZIP_IS_REDUCEDx3 4 +#define ZZIP_IS_REDUCEDx4 5 +#define ZZIP_IS_IMPLODED 6 +#define ZZIP_IS_TOKENIZED 7 +#define ZZIP_IS_DEFLATED 8 +#define ZZIP_IS_DEFLATED_BETTER 9 +#define ZZIP_IS_IMPLODED_BETTER 10 + +/* deflated comprlevel */ +#define ZZIP_DEFLATED_STD_COMPR 0 +#define ZZIP_DEFLATED_MAX_COMPR 1 +#define ZZIP_DEFLATED_LOW_COMPR 2 +#define ZZIP_DEFLATED_MIN_COMPR 3 + +# ifdef _MSC_VER +# pragma pack(pop) +# endif + +#endif /* _ZZIPFORMAT_H */ + + + + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fseeko.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fseeko.c new file mode 100644 index 00000000000..d99067a0b4f --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fseeko.c @@ -0,0 +1,685 @@ + +/* + * NOTE: this is part of libzzipfseeko (i.e. it is not libzzip). + * ================== + * + * These routines are fully independent from the traditional zzip + * implementation. They assume a readonly seekable stdio handle + * representing a complete zip file. The functions show how to + * parse the structure, find files and return a decoded bytestream. + * + * These routines are a bit simple and really here for documenting + * the way to access a zip file. The complexity of zip access comes + * from staggered reading of bytes and reposition of a filepointer in + * a big archive with lots of files and long compressed datastreams. + * Plus varaints of drop-in stdio replacements, obfuscation routines, + * auto fileextensions, drop-in dirent replacements, and so on... + * + * btw, we can _not_ use fgetpos/fsetpos since an fpos_t has no asserted + * relation to a linear seek value as specified in zip info headers. In + * general it is not a problem if your system has no fseeko/ftello pair + * since we can fallback to fseek/ftell which limits the zip disk size + * to 2MiBs but the zip-storable seek values are 32bit limited anyway. + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2003,2004 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#define _LARGEFILE_SOURCE 1 +#define _ZZIP_ENTRY_STRUCT 1 + +#include <zzip/fseeko.h> + +#include <zzip/fetch.h> +#include <zzip/__mmap.h> +#include <zzip/__fnmatch.h> + +#include <assert.h> +#include <stdlib.h> +#include <sys/stat.h> + +#if defined ZZIP_HAVE_STRING_H +#include <string.h> +#elif defined ZZIP_HAVE_STRINGS_H +#include <strings.h> +#endif + +#if defined ZZIP_HAVE_STDINT_H +#include <stdint.h> +#endif + +#if __STDC_VERSION__+0 > 199900L +#define ___ +#define ____ +#else +#define ___ { +#define ____ } +#endif + +#ifndef ZZIP_HAVE_FSEEKO +#define fseeko fseek +#define ftello ftell +#endif + +/* note that the struct zzip_entry inherits the zzip_disk_entry values + * and usually carries a copy of its values (in disk format!). To make the + * following code more readable, we use a shorthand notation for the + * upcast needed in C (not needed in C++) as "disk_(entry)". + */ +#ifdef __zzip_entry_extends_zzip_disk_entry +#define disk_(_entry_) _entry_ +#else +#define disk_(_entry_) (& (_entry_)->head) +#endif + +/* we try to round all seeks to the pagesize - since we do not use + * the sys/mmap interface we have to guess a good value here: */ +#define PAGESIZE 8192 + +/* ====================================================================== */ + +/* helper functions */ + +/** => zzip_entry_data_offset + * This functions read the correspoding struct zzip_file_header from + * the zip disk of the given "entry". The returned off_t points to the + * end of the file_header where the current fseek pointer has stopped. + * This is used to immediatly parse out any filename/extras block following + * the file_header. The return value is null on error. + */ +static zzip_off_t +zzip_entry_fread_file_header(ZZIP_ENTRY * entry, + struct zzip_file_header *file_header) +{ + if (! entry || ! file_header) + return 0; + ___ zzip_off_t offset = zzip_disk_entry_fileoffset(disk_(entry)); + if (0 > offset || offset >= entry->disksize) + return 0; + + if (fseeko(entry->diskfile, offset, SEEK_SET) == -1) return 0; + return (fread(file_header, sizeof(*file_header), 1, entry->diskfile) + ? offset + sizeof(*file_header) : 0); + ____; +} + +/** helper functions for (fseeko) zip access api + * + * This functions returns the seekval offset of the data portion of the + * file referenced by the given zzip_entry. It requires an intermediate + * check of the file_header structure (i.e. it reads it from disk). After + * this call, the contained diskfile readposition is already set to the + * data_offset returned here. On error -1 is returned. + */ +zzip_off_t +zzip_entry_data_offset(ZZIP_ENTRY * entry) +{ + struct zzip_file_header file_header; + if (! entry) + return -1; + ___ zzip_off_t offset = zzip_entry_fread_file_header(entry, &file_header); + if (! offset) + return -1; + offset += zzip_file_header_sizeof_tails(&file_header); + if (fseeko(entry->diskfile, offset, SEEK_SET) == -1) + return -1; + return offset; + ____; +} + +/** => zzip_entry_data_offset + * This function is a big helper despite its little name: in a zip file the + * encoded filenames are usually NOT zero-terminated but for common usage + * with libc we need it that way. Secondly, the filename SHOULD be present + * in the zip central directory but if not then we fallback to the filename + * given in the file_header of each compressed data portion. + */ +zzip__new__ char * +zzip_entry_strdup_name(ZZIP_ENTRY * entry) +{ + if (! entry) + return 0; + + ___ zzip_size_t len; + if ((len = zzip_disk_entry_namlen(disk_(entry)))) + { + char *name = malloc(len + 1); + if (! name) + return 0; + memcpy(name, entry->tail, len); + name[len] = '\0'; + return name; + } + ___ auto struct zzip_file_header header; + if (zzip_entry_fread_file_header(entry, &header) + && (len = zzip_file_header_namlen(&header))) + { + char *name = malloc(len + 1); + if (! name) { + return 0; + } else { + zzip_size_t n = fread(name, 1, len, entry->diskfile); + if (n != len) { + free (name); + return 0; + } + name[n] = '\0'; + return name; + } + } + return 0; + ____; + ____; +} + +static int +prescan_entry(ZZIP_ENTRY * entry) +{ + assert(entry); + ___ zzip_off_t tailsize = zzip_disk_entry_sizeof_tails(disk_(entry)); + if (tailsize + 1 > entry->tailalloc) + { + char *newtail = realloc(entry->tail, tailsize + 1); + if (! newtail) + return ENOMEM; + entry->tail = newtail; + entry->tailalloc = tailsize + 1; + } +# ifdef SIZE_MAX /* from stdint.h */ + if (tailsize > (zzip_off_t)(SIZE_MAX)) { return EFBIG; } +# endif + ___ zzip_size_t readsize = fread(entry->tail, 1, tailsize, entry->diskfile); + /* name + comment + extras */ + if ((zzip_off_t)readsize != tailsize) { + return errno; + } else { + return 0; + } ____; ____; +} + +static void +prescan_clear(ZZIP_ENTRY * entry) +{ + assert(entry); + if (entry->tail) + free(entry->tail); + entry->tail = 0; + entry->tailalloc = 0; +} + +/* ====================================================================== */ + +/** => zzip_entry_findfile + * + * This function is the first call of all the zip access functions here. + * It contains the code to find the first entry of the zip central directory. + * Here we require the stdio handle to represent a real zip file where the + * disk_trailer is _last_ in the file area, so that its position would be at + * a fixed offset from the end of the file area if not for the comment field + * allowed to be of variable length (which needs us to do a little search + * for the disk_tailer). However, in this simple implementation we disregard + * any disk_trailer info telling about multidisk archives, so we just return + * a pointer to the first entry in the zip central directory of that file. + * + * For an actual means, we are going to search backwards from the end + * of the mmaped block looking for the PK-magic signature of a + * disk_trailer. If we see one then we check the rootseek value to + * find the first disk_entry of the root central directory. If we find + * the correct PK-magic signature of a disk_entry over there then we + * assume we are done and we are going to return a pointer to that label. + * + * The return value is a pointer to the first zzip_disk_entry being checked + * to be within the bounds of the file area specified by the arguments. If + * no disk_trailer was found then null is returned, and likewise we only + * accept a disk_trailer with a seekvalue that points to a disk_entry and + * both parts have valid PK-magic parts. Beyond some sanity check we try to + * catch a common brokeness with zip archives that still allows us to find + * the start of the zip central directory. + */ +zzip__new__ ZZIP_ENTRY * +zzip_entry_findfirst(FILE * disk) +{ + if (! disk) + return 0; + if (fseeko(disk, 0, SEEK_END) == -1) + return 0; + ___ zzip_off_t disksize = ftello(disk); + if (disksize < (zzip_off_t) sizeof(struct zzip_disk_trailer)) + return 0; + /* we read out chunks of 8 KiB in the hope to match disk granularity */ + ___ zzip_off_t pagesize = PAGESIZE; /* getpagesize() */ + ___ ZZIP_ENTRY *entry = malloc(sizeof(*entry)); + if (! entry) + return 0; + ___ unsigned char *buffer = malloc(pagesize); + if (! buffer) + goto nomem; + + assert(pagesize / 2 > (zzip_off_t) sizeof(struct zzip_disk_trailer)); + /* at each step, we will fread a pagesize block which overlaps with the + * previous read by means of pagesize/2 step at the end of the while(1) */ + ___ zzip_off_t mapoffs = disksize & ~(pagesize - 1); + ___ zzip_off_t mapsize = disksize - mapoffs; + if (mapoffs && mapsize < pagesize / 2) + { + mapoffs -= pagesize / 2; + mapsize += pagesize / 2; + } + assert(mapsize < 3*8192); + while (1) + { + if (fseeko(disk, mapoffs, SEEK_SET) == -1) + goto error; + if (fread(buffer, 1, mapsize, disk) != (zzip_size_t)mapsize) + goto error; + ___ unsigned char *p = + buffer + mapsize - sizeof(struct zzip_disk_trailer); + for (; p >= buffer; p--) + { + zzip_off_t root; /* (struct zzip_disk_entry*) */ + if (zzip_disk_trailer_check_magic(p)) + { + root = zzip_disk_trailer_rootseek((struct zzip_disk_trailer *) + p); + if (root > disksize - (long) sizeof(struct zzip_disk_trailer)) + { + /* first disk_entry is after the disk_trailer? can't be! */ + struct zzip_disk_trailer *trailer = + (struct zzip_disk_trailer *) p; + zzip_off_t rootsize = zzip_disk_trailer_rootsize(trailer); + if (rootsize > mapoffs) + continue; + /* a common brokeness that can be fixed: we just assume the + * central directory was written directly before : */ + root = mapoffs - rootsize; + } + } else if (zzip_disk64_trailer_check_magic(p)) + { + struct zzip_disk64_trailer *trailer = + (struct zzip_disk64_trailer *) p; + if (sizeof(zzip_off_t) < 8) + return 0; + root = zzip_disk64_trailer_rootseek(trailer); + } else + continue; + + assert(0 <= root && root < mapsize); + if (fseeko(disk, root, SEEK_SET) == -1) + goto error; + if (fread(disk_(entry), 1, sizeof(*disk_(entry)), disk) + != sizeof(*disk_(entry))) goto error; + if (zzip_disk_entry_check_magic(entry)) + { + free(buffer); + entry->headseek = root; + entry->diskfile = disk; + entry->disksize = disksize; + if (prescan_entry(entry)) + goto nomem; + return entry; + } + } + ____; + if (! mapoffs) + break; + assert(mapsize >= pagesize / 2); + mapoffs -= pagesize / 2; /* mapsize += pagesize/2; */ + mapsize = pagesize; /* if (mapsize > pagesize) ... */ + if (disksize - mapoffs > 64 * 1024) + break; + } + error: + free(buffer); + nomem: + free(entry); + ____; + ____; + ____; + ____; + ____; + ____; + return 0; +} + +/** => zzip_entry_findfile + * + * This function takes an existing "entry" in the central root directory + * (e.g. from zzip_entry_findfirst) and moves it to point to the next entry. + * On error it returns 0, otherwise the old entry. If no further match is + * found then null is returned and the entry already free()d. If you want + * to stop searching for matches before that case then please call + * => zzip_entry_free on the cursor struct ZZIP_ENTRY. + */ +zzip__new__ ZZIP_ENTRY * +zzip_entry_findnext(ZZIP_ENTRY * _zzip_restrict entry) +{ + if (! entry) + return entry; + if (! zzip_disk_entry_check_magic(entry)) + goto err; + ___ zzip_off_t seek = + entry->headseek + zzip_disk_entry_sizeto_end(disk_(entry)); + if (seek + (zzip_off_t) sizeof(*disk_(entry)) > entry->disksize) + goto err; + + if (fseeko(entry->diskfile, seek, SEEK_SET) == -1) + goto err; + if (fread(disk_(entry), 1, sizeof(*disk_(entry)), entry->diskfile) + != sizeof(*disk_(entry))) goto err; + entry->headseek = seek; + if (! zzip_disk_entry_check_magic(entry)) + goto err; + if (prescan_entry(entry)) + goto err; + return entry; + err: + zzip_entry_free(entry); + return 0; + ____; +} + +/** => zzip_entry_findfile + * this function releases the malloc()ed areas needed for zzip_entry, the + * pointer is invalid afterwards. This function has #define synonyms of + * zzip_entry_findlast(), zzip_entry_findlastfile(), zzip_entry_findlastmatch() + */ +int +zzip_entry_free(ZZIP_ENTRY * entry) +{ + if (! entry) + return 0; + prescan_clear(entry); + free(entry); + return 1; +} + +/** search for files in the (fseeko) zip central directory + * + * This function is given a filename as an additional argument, to find the + * disk_entry matching a given filename. The compare-function is usually + * strcmp or strcasecmp or perhaps strcoll, if null then strcmp is used. + * - use null as argument for "old"-entry when searching the first + * matching entry, otherwise the last returned value if you look for other + * entries with a special "compare" function (if null then a doubled search + * is rather useless with this variant of _findfile). If no further entry is + * found then null is returned and any "old"-entry gets already free()d. + */ +zzip__new__ ZZIP_ENTRY * +zzip_entry_findfile(FILE * disk, char *filename, + ZZIP_ENTRY * _zzip_restrict entry, zzip_strcmp_fn_t compare) +{ + if (! filename || ! disk) + return 0; + if (! entry) + entry = zzip_entry_findfirst(disk); + else + entry = zzip_entry_findnext(entry); + + if (! compare) + compare = (zzip_strcmp_fn_t) (strcmp); + + for (; entry; entry = zzip_entry_findnext(entry)) + { + /* filenames within zip files are often not null-terminated! */ + char *realname = zzip_entry_strdup_name(entry); + if (! realname) + continue; + if (! compare(filename, realname)) + { + free(realname); + return entry; + } else + { + free(realname); + continue; + } + } + return 0; +} + +/** => zzip_entry_findfile + * + * This function uses a compare-function with an additional argument + * and it is called just like fnmatch(3) from POSIX.2 AD:1993), i.e. + * the argument filespec first and the ziplocal filename second with + * the integer-flags put in as third to the indirect call. If the + * platform has fnmatch available then null-compare will use that one + * and otherwise we fall back to mere strcmp, so if you need fnmatch + * searching then please provide an implementation somewhere else. + * - use null as argument for "after"-entry when searching the first + * matching entry, or the last disk_entry return-value to find the + * next entry matching the given filespec. If no further entry is + * found then null is returned and any "old"-entry gets already free()d. + */ +zzip__new__ ZZIP_ENTRY * +zzip_entry_findmatch(FILE * disk, char *filespec, + ZZIP_ENTRY * _zzip_restrict entry, + zzip_fnmatch_fn_t compare, int flags) +{ + if (! filespec || ! disk) + return 0; + if (! entry) + entry = zzip_entry_findfirst(disk); + else + entry = zzip_entry_findnext(entry); + + if (! compare) + compare = (zzip_fnmatch_fn_t) _zzip_fnmatch; + + for (; entry; entry = zzip_entry_findnext(entry)) + { + /* filenames within zip files are often not null-terminated! */ + char *realname = zzip_entry_strdup_name(entry); + if (! realname) + continue; + if (! compare(filespec, realname, flags)) + { + free(realname); + return entry; + } else + { + free(realname); + continue; + } + } + return 0; +} + +/* ====================================================================== */ + +/** + * typedef struct zzip_disk_file ZZIP_ENTRY_FILE; + */ +struct zzip_entry_file /* : zzip_file_header */ +{ + struct zzip_file_header header; /* fopen detected header */ + ZZIP_ENTRY *entry; /* fopen entry */ + zzip_off_t data; /* for stored blocks */ + zzip_size_t avail; /* memorized for checks on EOF */ + zzip_size_t compressed; /* compressed flag and datasize */ + zzip_size_t dataoff; /* offset from data start */ + z_stream zlib; /* for inflated blocks */ + unsigned char buffer[PAGESIZE]; /* work buffer for inflate algorithm */ +}; + +/** open a file within a zip disk for reading + * + * This function does take an "entry" argument and copies it (or just takes + * it over as owner) to a new ZZIP_ENTRY_FILE handle structure. That + * structure contains also a zlib buffer for decoding. This function does + * seek to the file_header of the given "entry" and validates it for the + * data buffer following it. We do also prefetch some data from the data + * buffer thereby trying to match the disk pagesize for faster access later. + * The => zzip_entry_fread will then read in chunks of pagesizes which is + * the size of the internal readahead buffer. If an error occurs then null + * is returned. + */ +zzip__new__ ZZIP_ENTRY_FILE * +zzip_entry_fopen(ZZIP_ENTRY * entry, int takeover) +{ + if (! entry) + return 0; + if (! takeover) + { + ZZIP_ENTRY *found = malloc(sizeof(*entry)); + if (! found) + return 0; + memcpy(found, entry, sizeof(*entry)); /* prescan_copy */ + found->tail = malloc(found->tailalloc); + if (! found->tail) + { free (found); return 0; } + memcpy(found->tail, entry->tail, entry->tailalloc); + entry = found; + } + ___ ZZIP_ENTRY_FILE *file = malloc(sizeof(*file)); + if (! file) + goto fail1; + file->entry = entry; + if (! zzip_entry_fread_file_header(entry, &file->header)) + goto fail2; + file->avail = zzip_file_header_usize(&file->header); + file->data = zzip_entry_data_offset(entry); + file->dataoff = 0; + + if (! file->avail || zzip_file_header_data_stored(&file->header)) + { file->compressed = 0; return file; } + + file->compressed = zzip_file_header_csize(&file->header); + file->zlib.opaque = 0; + file->zlib.zalloc = Z_NULL; + file->zlib.zfree = Z_NULL; + + ___ zzip_off_t seek = file->data; + seek += sizeof(file->buffer); + seek -= seek & (sizeof(file->buffer) - 1); + assert(file->data < seek); /* pre-read to next PAGESIZE boundary... */ + if (fseeko(file->entry->diskfile, file->data + file->dataoff, SEEK_SET) == -1) + goto fail2; + file->zlib.next_in = file->buffer; + file->zlib.avail_in = fread(file->buffer, 1, seek - file->data, + file->entry->diskfile); + file->dataoff += file->zlib.avail_in; + ____; + + if (! zzip_file_header_data_deflated(&file->header) + || inflateInit2(&file->zlib, -MAX_WBITS) != Z_OK) + goto fail2; + + return file; + fail2: + free(file); + fail1: + zzip_entry_free(entry); + return 0; + ____; +} + +/** => zzip_entry_fopen + * + * This function opens a file found by name, so it does a search into + * the zip central directory with => zzip_entry_findfile and whatever + * is found first is given to => zzip_entry_fopen + */ +zzip__new__ ZZIP_ENTRY_FILE * +zzip_entry_ffile(FILE * disk, char *filename) +{ + ZZIP_ENTRY *entry = zzip_entry_findfile(disk, filename, 0, 0); + if (! entry) + return 0; + return zzip_entry_fopen(entry, 1); +} + + +/** => zzip_entry_fopen + * + * This function reads more bytes into the output buffer specified as + * arguments. The return value is null on eof or error, the stdio-like + * interface can not distinguish between these so you need to check + * with => zzip_entry_feof for the difference. + */ +zzip_size_t +zzip_entry_fread(void *ptr, zzip_size_t sized, zzip_size_t nmemb, + ZZIP_ENTRY_FILE * file) +{ + if (! file) + return 0; + ___ zzip_size_t size = sized * nmemb; + if (! file->compressed) + { + if (size > file->avail) + size = file->avail; + if (fread(ptr, 1, size, file->entry->diskfile) != size) return 0; + file->dataoff += size; + file->avail -= size; + return size; + } + + file->zlib.avail_out = size; + file->zlib.next_out = ptr; + ___ zzip_size_t total_old = file->zlib.total_out; + while (1) + { + if (! file->zlib.avail_in) + { + size = file->compressed - file->dataoff; + if (size > sizeof(file->buffer)) + size = sizeof(file->buffer); + /* fseek (file->data + file->dataoff, file->entry->diskfile); */ + file->zlib.avail_in = fread(file->buffer, 1, size, + file->entry->diskfile); + file->zlib.next_in = file->buffer; + file->dataoff += file->zlib.avail_in; + } + if (! file->zlib.avail_in) + return 0; + + ___ int err = inflate(&file->zlib, Z_NO_FLUSH); + if (err == Z_STREAM_END) + file->avail = 0; + else if (err == Z_OK) + file->avail -= file->zlib.total_out - total_old; + else + return 0; + ____; + if (file->zlib.avail_out && ! file->zlib.avail_in) + continue; + return file->zlib.total_out - total_old; + } + ____; + ____; +} + +/** => zzip_entry_fopen + * This function releases any zlib decoder info needed for decompression + * and dumps the ZZIP_ENTRY_FILE struct then. + */ +int +zzip_entry_fclose(ZZIP_ENTRY_FILE * file) +{ + if (! file) + return 0; + if (file->compressed) + inflateEnd(&file->zlib); + zzip_entry_free(file->entry); + free(file); + return 0; +} + +/** => zzip_entry_fopen + * + * This function allows to distinguish an error from an eof condition. + * Actually, if we found an error but we did already reach eof then we + * just keep on saying that it was an eof, so the app can just continue. + */ +int +zzip_entry_feof(ZZIP_ENTRY_FILE * file) +{ + return ! file || ! file->avail; +} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fseeko.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fseeko.h new file mode 100644 index 00000000000..9abade7452c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/fseeko.h @@ -0,0 +1,129 @@ +#ifndef _ZZIP_FSEEKO_H_ +#define _ZZIP_FSEEKO_H_ +/* + * NOTE: this is part of libzzipfseeko (i.e. it is not libzzip). + * + * simplified zip disk access using fseeko on a stdio FILE handle + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2003,2004 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + + +#include <zzip/types.h> +#include <stdio.h> + +#ifdef _ZZIP_ENTRY_STRUCT +#include <zlib.h> +#include <zzip/format.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct zzip_entry ZZIP_ENTRY; +typedef struct zzip_entry_file ZZIP_ENTRY_FILE; + +typedef int (*zzip_strcmp_fn_t)(char*, char*); +typedef int (*zzip_fnmatch_fn_t)(char*, char*, int); + +#ifndef zzip_entry_extern +#define zzip_entry_extern extern +#endif + +zzip_entry_extern zzip_off_t +zzip_entry_data_offset(ZZIP_ENTRY* entry); + +zzip__new__ +zzip_entry_extern ZZIP_ENTRY* +zzip_entry_findfirst(FILE* file); + +zzip__new__ +zzip_entry_extern ZZIP_ENTRY* +zzip_entry_findnext(ZZIP_ENTRY* _zzip_restrict entry); + +#define zzip_entry_findlast zzip_entry_free +#define zzip_entry_findlastfile zzip_entry_free +#define zzip_entry_findlastmatch zzip_entry_free + +zzip_entry_extern int +zzip_entry_free(ZZIP_ENTRY* entry); + +zzip__new__ +zzip_entry_extern char* +zzip_entry_strdup_name(ZZIP_ENTRY* entry); +zzip_entry_extern char* +zzip_entry_to_data(ZZIP_ENTRY* entry); + +zzip__new__ +zzip_entry_extern ZZIP_ENTRY* +zzip_entry_findfile(FILE* disk, char* filename, + ZZIP_ENTRY* _zzip_restrict old, + zzip_strcmp_fn_t compare); +zzip__new__ +zzip_entry_extern ZZIP_ENTRY* +zzip_entry_findmatch(FILE* disk, char* filespec, + ZZIP_ENTRY* _zzip_restrict old, + zzip_fnmatch_fn_t compare, int flags); +zzip__new__ +zzip_entry_extern ZZIP_ENTRY_FILE* +zzip_entry_fopen (ZZIP_ENTRY* entry, int takeover); + +zzip__new__ +zzip_entry_extern ZZIP_ENTRY_FILE* +zzip_entry_ffile (FILE* disk, char* filename); + +zzip_entry_extern _zzip_size_t +zzip_entry_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb, + ZZIP_ENTRY_FILE* file); +zzip_entry_extern int +zzip_entry_fclose (ZZIP_ENTRY_FILE* file); +int +zzip_entry_feof (ZZIP_ENTRY_FILE* file); + +# ifdef _ZZIP_ENTRY_STRUCT +# ifdef __cplusplus +# define __zzip_entry_extends_zzip_disk_entry +struct zzip_entry : public struct zzip_disk_entry +{ + char* _zzip_restrict tail; + zzip_off_t tailalloc; /* the allocated size of tail */ + FILE* diskfile; /* a file reference */ + zzip_off_t disksize; /* the size of the file */ + zzip_off_t headseek; /* the offset within the file */ + zzip_off_t zz_usize; + zzip_off_t zz_csize; /* items scanned from header */ + zzip_off_t zz_offset; /* or zip64 extension block */ + int zz_diskstart; +}; +# else +struct zzip_entry /* : struct zzip_disk_entry */ +{ + struct zzip_disk_entry head; + char* _zzip_restrict tail; + zzip_off_t tailalloc; /* the allocated size of tail */ + FILE* diskfile; /* a file reference */ + zzip_off_t disksize; /* the size of the file */ + zzip_off_t headseek; /* the offset within the file */ + zzip_off_t zz_usize; + zzip_off_t zz_csize; /* items scanned from header */ + zzip_off_t zz_offset; /* or zip64 extension block */ + int zz_diskstart; +}; +# endif /* __cplusplus */ +# endif /* _ZZIP_MEM_ENTRY_PRIVATE */ + +#ifdef __cplusplus +extern "C" { +} +#endif +#endif + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/info.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/info.c new file mode 100644 index 00000000000..0c50600ff24 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/info.c @@ -0,0 +1,163 @@ + +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2000,2001,2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#include <zzip/lib.h> /* exported... */ +#include <zzip/file.h> +#include <zzip/format.h> + +#ifdef ZZIP_HAVE_SYS_STAT_H +#include <sys/stat.h> +#else +#include <stdlib.h> +#include <stdio.h> +#endif + +/** + * just returns dir->errcode of the ZZIP_DIR handle + * see: => zzip_dir_open, => zzip_dir_open, => zzip_readdir, => zzip_dir_read + */ +int +zzip_error(ZZIP_DIR * dir) +{ + return dir->errcode; +} + +/** => zzip_error + * This function just does dir->errcode = errcode + */ +void +zzip_seterror(ZZIP_DIR * dir, int errcode) { dir->errcode = errcode; } + +/** + * This function will just return fp->dir + * + * If a ZZIP_FILE is contained within a zip-file that one will be a valid + * pointer, otherwise a NULL is returned and the ZZIP_FILE wraps a real file. + */ +ZZIP_DIR * +zzip_dirhandle(ZZIP_FILE * fp) +{ + return fp->dir; +} + +/** => zzip_dirhandle + * This function will just return dir->fd + * + * If a ZZIP_DIR does point to a zipfile then the file-descriptor of that + * zipfile is returned, otherwise a NULL is returned and the ZZIP_DIR wraps + * a real directory DIR (if you have dirent on your system). + */ +int +zzip_dirfd(ZZIP_DIR * dir) +{ + return dir->fd; +} + +/** + * return static const string of the known compression methods, + * otherwise just "zipped" is returned + */ +zzip_char_t * +zzip_compr_str(int compr) +{ + switch (compr) + { + /* *INDENT-OFF* */ + case ZZIP_IS_STORED: return "stored"; + case ZZIP_IS_SHRUNK: return "shrunk"; + case ZZIP_IS_REDUCEDx1: + case ZZIP_IS_REDUCEDx2: + case ZZIP_IS_REDUCEDx3: + case ZZIP_IS_REDUCEDx4: return "reduced"; + case ZZIP_IS_IMPLODED: return "imploded"; + case ZZIP_IS_TOKENIZED: return "tokenized"; + case ZZIP_IS_DEFLATED: return "deflated"; + case ZZIP_IS_DEFLATED_BETTER: return "deflatedX"; + case ZZIP_IS_IMPLODED_BETTER: return "implodedX"; + default: + if (0 < compr && compr < 256) return "zipped"; + else + { +# ifdef S_ISDIR + if (S_ISDIR(compr)) return "directory"; +# endif +# ifdef S_ISCHR + if (S_ISCHR(compr)) return "is/chr"; +# endif +# ifdef S_ISBLK + if (S_ISBLK(compr)) return "is/blk"; +# endif +# ifdef S_ISFIFO + if (S_ISFIFO(compr)) return "is/fifo"; +# endif +# ifdef S_ISSOCK + if (S_ISSOCK(compr)) return "is/sock"; +# endif +# ifdef S_ISLNK + if (S_ISLNK(compr)) return "is/lnk"; +# endif + return "special"; + } + /* *INDENT-ON* */ + } /*switch */ +} + +/** => zzip_file_real + * This function checks if the ZZIP_DIR-handle is wrapping + * a real directory or a zip-archive. + * Returns 1 for a stat'able directory, and 0 for a handle to zip-archive. + */ +int +zzip_dir_real(ZZIP_DIR * dir) +{ + return dir->realdir != 0; +} + +/** + * This function checks if the ZZIP_FILE-handle is wrapping + * a real file or a zip-contained file. + * Returns 1 for a stat'able file, and 0 for a file inside a zip-archive. + */ +int +zzip_file_real(ZZIP_FILE * fp) +{ + return fp->dir == 0; /* ie. not dependent on a zip-arch-dir */ +} + +/** => zzip_file_real + * This function returns the posix DIR* handle (if one exists). + * Check before with => zzip_dir_real if the + * the ZZIP_DIR points to a real directory. + */ +void * +zzip_realdir(ZZIP_DIR * dir) +{ + return dir->realdir; +} + +/** => zzip_file_real + * This function returns the posix file descriptor (if one exists). + * Check before with => zzip_file_real if the + * the ZZIP_FILE points to a real file. + */ +int +zzip_realfd(ZZIP_FILE * fp) +{ + return fp->fd; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/info.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/info.h new file mode 100644 index 00000000000..0ab6edab561 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/info.h @@ -0,0 +1,25 @@ +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2000,2001,2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#ifdef ZZIP_USE_INTERNAL +/* do not make these public, they are for internal use only */ + +#define ZZIP_error(__dir) __dir->errcode +#define ZZIP_seterror(__dir, __code) __dir->errcode = __code +#define ZZIP_dirhandle(__fp) __fp->dir +#define ZZIP_dirfd(__dir) __dir->fd +#define ZZIP_dir_real(__dir) __dir->realdir != 0 +#define ZZIP_file_real(__fp) __fp->dir == 0 +#define ZZIP_realdir(__dir) __dir->realdir +#define ZZIP_reafd(__fp) __fp->fd + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/lib.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/lib.h new file mode 100644 index 00000000000..28b5311d655 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/lib.h @@ -0,0 +1,91 @@ +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * Tomi Ollila <Tomi.Ollila@iki.fi> + * + * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim + * All rights reserved + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + * + * This is the private header containing definitions that are not + * use by a libzzip user application. Writing an extension lib that + * uses libzzip will still want to include this. The extension + * write should make way to have the ISO C9X integer types defined. + */ +#ifndef _ZZIP_LIB_H /* zzip.h */ +#define _ZZIP_LIB_H + +#include <zzip/zzip.h> +#include <zzip/plugin.h> +#include <zzip/stdint.h> +#include <zzip/zzip32.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * this structure cannot be wildly enlarged... (see zzip-zip.c) + */ +struct zzip_dir_hdr +{ + uint32_t d_usize; /* uncompressed size */ + uint32_t d_csize; /* compressed size */ + uint32_t d_crc32; /* the adler32-checksum */ + uint32_t d_off; /* offset of file in zipfile */ + uint16_t d_reclen; /* next dir_hdr structure offset */ + uint16_t d_namlen; /* explicit namelen of d_name */ + uint8_t d_compr; /* the compression type, 0 = store, 8 = inflate */ + char d_name[1]; /* the actual name of the entry, may contain DIRSEPs */ +}; +#define _ZZIP_DIRENT_HAVE_D_NAMLEN +#define _ZZIP_DIRENT_HAVE_D_OFF +#define _ZZIP_DIRENT_HAVE_D_RECLEN + +/* + * you shall not use this struct anywhere else than in zziplib sources. + */ +struct zzip_dir +{ + int fd; + int errcode; /* zzip_error_t */ + long refcount; + struct { /* reduce a lot of alloc/deallocations by caching these: */ + int * volatile locked; + struct zzip_file * volatile fp; + char * volatile buf32k; + } cache; + struct zzip_dir_hdr * hdr0; /* zfi; */ + struct zzip_dir_hdr * hdr; /* zdp; directory pointer, for dirent stuff */ + struct zzip_file * currentfp; /* last fp used... */ + struct zzip_dirent dirent; + void* realdir; /* e.g. DIR* from posix dirent.h */ + char* realname; + zzip_strings_t* fileext; /* list of fileext to test for */ + zzip_plugin_io_t io; /* vtable for io routines */ +}; + +#define ZZIP_32K 32768 + +/* try to open a zip-basename with default_fileext */ +int __zzip_try_open (zzip_char_t* filename, int filemode, + zzip_strings_t* ext, zzip_plugin_io_t io); + +ZZIP_DIR * +zzip_dir_fdopen(int fd, zzip_error_t * errcode_p); + +ZZIP_DIR* +zzip_dir_fdopen_ext_io(int fd, zzip_error_t * errorcode_p, + zzip_strings_t* ext, const zzip_plugin_io_t io); + +ZZIP_DIR* /*depracated*/ +zzip_dir_alloc_ext_io (zzip_strings_t* ext, const zzip_plugin_io_t io); + +#ifdef __cplusplus +} +#endif +#endif /* _ZZIP_H */ + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/memdisk.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/memdisk.c new file mode 100644 index 00000000000..dc00ea86508 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/memdisk.c @@ -0,0 +1,466 @@ + +/* + * NOTE: this is part of libzzipmmapped (i.e. it is not libzzip). + * ================== + * + * The mem_disk cache will parse the central information of a zip archive + * and store it internally. One the one hand it allows to find files + * faster - no disk access is required and endian conversion is not + * needed. If zzip is compiled with zip extensions then it is about + * the only way to build maintainable code around the zip format. + * + * Note that 64bit support is almost entirely living in extension + * blocks as well as different character encodings and file access + * control bits that are mostly platform specific. + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ +#define _ZZIP_DISK_FILE_STRUCT 1 + +#include <zzip/types.h> + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <time.h> + +#include <zlib.h> +#include <zzip/format.h> +#include <zzip/fetch.h> +#include <zzip/mmapped.h> +#include <zzip/memdisk.h> +#include <zzip/__fnmatch.h> + +#define ___ { +#define ____ } + +static const char *error[] = { + "Ok", +# define _zzip_mem_disk_open_fail 1 + "zzip_mem_disk_open: zzip_disk_open did fail", +# define _zzip_mem_disk_fdopen_fail 2 + "zzip_mem_disk_fdopen: zzip_disk_mmap did fail" +# define _zzip_mem_disk_buffer_fail 3 + "zzip_mem_disk_buffer: zzip_disk_buffer did fail", + 0 +}; + +#define ZZIP_EXTRA_zip64 0x0001 +typedef struct _zzip_extra_zip64 +{ /* ZIP64 extended information extra field */ + zzip_byte_t z_datatype[2]; /* Tag for this "extra" block type */ + zzip_byte_t z_datasize[2]; /* Size of this "extra" block */ + zzip_byte_t z_usize[8]; /* Original uncompressed file size */ + zzip_byte_t z_csize[8]; /* Size of compressed data */ + zzip_byte_t z_offset[8]; /* Offset of local header record */ + zzip_byte_t z_diskstart[4]; /* Number of the disk for file start */ +} zzip_extra_zip64; + +/*forward*/ + +static zzip__new__ ZZIP_MEM_ENTRY * +zzip_mem_entry_new(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry); +static void +zzip_mem_entry_free(ZZIP_MEM_ENTRY * _zzip_restrict item); + +zzip__new__ ZZIP_MEM_DISK * +zzip_mem_disk_new(void) +{ + return calloc(1, sizeof(ZZIP_MEM_DISK)); +} + +/** create new diskdir handle. + * wraps underlying zzip_disk_open. */ +zzip__new__ ZZIP_MEM_DISK * +zzip_mem_disk_open(char *filename) +{ + ZZIP_DISK *disk = zzip_disk_open(filename); + if (! disk) + { perror(error[_zzip_mem_disk_open_fail]); return 0; } + ___ ZZIP_MEM_DISK *dir = zzip_mem_disk_new(); + zzip_mem_disk_load(dir, disk); + return dir; + ____; +} + +/** create new diskdir handle. + * wraps underlying zzip_disk_open. */ +zzip__new__ ZZIP_MEM_DISK * +zzip_mem_disk_fdopen(int fd) +{ + ZZIP_DISK *disk = zzip_disk_mmap(fd); + if (! disk) + { perror(error[_zzip_mem_disk_fdopen_fail]); return 0; } + ___ ZZIP_MEM_DISK *dir = zzip_mem_disk_new(); + zzip_mem_disk_load(dir, disk); + return dir; + ____; +} + +/** create new diskdir handle. + * wraps underlying zzip_disk_buffer. */ +zzip__new__ ZZIP_MEM_DISK * +zzip_mem_disk_buffer(char *buffer, size_t buflen) +{ + ZZIP_DISK *disk = zzip_disk_buffer(buffer, buflen); + if (! disk) + { perror(error[_zzip_mem_disk_buffer_fail]); return 0; } + ___ ZZIP_MEM_DISK *dir = zzip_mem_disk_new(); + zzip_mem_disk_load(dir, disk); + return dir; + ____; +} + +/** parse central dir. + * creates an internal copy of each entry converted to the local platform. + * returns: number of entries, or -1 on error (setting errno) + */ +long +zzip_mem_disk_load(ZZIP_MEM_DISK * dir, ZZIP_DISK * disk) +{ + if (! dir || ! disk) + { errno=EINVAL; return -1; } + if (dir->list) + zzip_mem_disk_unload(dir); + ___ long count = 0; + ___ struct zzip_disk_entry *entry = zzip_disk_findfirst(disk); + for (; entry; entry = zzip_disk_findnext(disk, entry)) + { + ZZIP_MEM_ENTRY *item = zzip_mem_entry_new(disk, entry); + if (! item) + goto error; + if (dir->last) + { + dir->last->zz_next = item; /* chain last */ + } else + { + dir->list = item; + } + dir->last = item; /* to earlier */ + count++; + } + ____; + dir->disk = disk; + return count; + ____; + error: + zzip_mem_disk_unload(dir); + return -1; +} + +/** convert a zip disk entry to internal format. + * creates a new item parsing the information out of the various places + * in the zip archive. This is a good place to extend functionality if + * you have a project with extra requirements as you can push more bits + * right into the diskdir_entry for later usage in higher layers. + * returns: new item, or null on error (setting errno) + */ +zzip__new__ ZZIP_MEM_ENTRY * +zzip_mem_entry_new(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry) +{ + if (! disk || ! entry) + { errno=EINVAL; return 0; } + ___ ZZIP_MEM_ENTRY *item = calloc(1, sizeof(*item)); + if (! item) + return 0; /* errno=ENOMEM; */ + ___ struct zzip_file_header *header = + zzip_disk_entry_to_file_header(disk, entry); + /* there is a number of duplicated information in the file header + * or the disk entry block. Theoretically some part may be missing + * that exists in the other, ... but we will prefer the disk entry. + */ + item->zz_comment = zzip_disk_entry_strdup_comment(disk, entry); + item->zz_name = zzip_disk_entry_strdup_name(disk, entry); + item->zz_data = zzip_file_header_to_data(header); + item->zz_flags = zzip_disk_entry_get_flags(entry); + item->zz_compr = zzip_disk_entry_get_compr(entry); + item->zz_mktime = zzip_disk_entry_get_mktime(entry); + item->zz_crc32 = zzip_disk_entry_get_crc32(entry); + item->zz_csize = zzip_disk_entry_get_csize(entry); + item->zz_usize = zzip_disk_entry_get_usize(entry); + item->zz_diskstart = zzip_disk_entry_get_diskstart(entry); + item->zz_filetype = zzip_disk_entry_get_filetype(entry); + + { /* copy the extra blocks to memory as well */ + int /* */ ext1 = zzip_disk_entry_get_extras(entry); + char *_zzip_restrict ptr1 = zzip_disk_entry_to_extras(entry); + int /* */ ext2 = zzip_file_header_get_extras(header); + char *_zzip_restrict ptr2 = zzip_file_header_to_extras(header); + + if (ext1) + { + void *mem = malloc(ext1 + 2); + item->zz_ext[1] = mem; + memcpy(mem, ptr1, ext1); + ((char *) (mem))[ext1 + 0] = 0; + ((char *) (mem))[ext1 + 1] = 0; + } + if (ext2) + { + void *mem = malloc(ext2 + 2); + item->zz_ext[2] = mem; + memcpy(mem, ptr2, ext2); + ((char *) (mem))[ext2 + 0] = 0; + ((char *) (mem))[ext2 + 1] = 0; + } + } + { + /* override sizes/offsets with zip64 values for largefile support */ + zzip_extra_zip64 *block = (zzip_extra_zip64 *) + zzip_mem_entry_extra_block(item, ZZIP_EXTRA_zip64); + if (block) + { + item->zz_usize = __zzip_get64(block->z_usize); + item->zz_csize = __zzip_get64(block->z_csize); + item->zz_offset = __zzip_get64(block->z_offset); + item->zz_diskstart = __zzip_get32(block->z_diskstart); + } + } + /* NOTE: + * All information from the central directory entry is now in memory. + * Effectivly that allows us to modify it and write it back to disk. + */ + return item; + ____; + ____; +} + +/* find an extra block for the given datatype code. + * We assume that the central directory has been preparsed to memory. + */ +ZZIP_EXTRA_BLOCK * +zzip_mem_entry_extra_block(ZZIP_MEM_ENTRY * entry, short datatype) +{ + int i = 2; + while (1) + { + ZZIP_EXTRA_BLOCK *ext = entry->zz_ext[i]; + if (ext) + { + while (*(short *) (ext->z_datatype)) + { + if (datatype == zzip_extra_block_get_datatype(ext)) + { + return ext; + } + ___ char *e = (char *) ext; + e += zzip_extra_block_headerlength; + e += zzip_extra_block_get_datasize(ext); + ext = (void *) e; + ____; + } + } + if (! i) + return 0; + i--; + } +} + +void +zzip_mem_entry_free(ZZIP_MEM_ENTRY * _zzip_restrict item) +{ + if (item) + { + /* *INDENT-OFF* */ + if (item->zz_ext[0]) free (item->zz_ext[0]); + if (item->zz_ext[1]) free (item->zz_ext[1]); + if (item->zz_ext[2]) free (item->zz_ext[2]); + if (item->zz_comment) free (item->zz_comment); + if (item->zz_name) free (item->zz_name); + free (item); + /* *INDENT-ON* */ + } +} + +void +zzip_mem_disk_unload(ZZIP_MEM_DISK * dir) +{ + ZZIP_MEM_ENTRY *item = dir->list; + while (item) + { + ZZIP_MEM_ENTRY *next = item->zz_next; + zzip_mem_entry_free(item); + item = next; + } + dir->list = dir->last = 0; + zzip_disk_close(dir->disk); + dir->disk = 0; +} + +void +zzip_mem_disk_close(ZZIP_MEM_DISK * _zzip_restrict dir) +{ + if (dir) + { + zzip_mem_disk_unload(dir); + zzip_disk_close(dir->disk); + free(dir); + } +} + +#if 0 +static void +foo(short zz_datatype) +{ + switch (zz_datatype) + { + /* *INDENT-OFF* */ + case 0x0001: /* ZIP64 extended information extra field */ + case 0x0007: /* AV Info */ + case 0x0008: /* Reserved for future Unicode file name data (PFS) */ + case 0x0009: /* OS/2 */ + case 0x000a: /* NTFS */ + case 0x000c: /* OpenVMS */ + case 0x000d: /* Unix */ + case 0x000e: /* Reserved for file stream and fork descriptors */ + case 0x000f: /* Patch Descriptor */ + case 0x0014: /* PKCS#7 Store for X.509 Certificates */ + case 0x0015: /* X.509 Certificate ID and Signature for file */ + case 0x0016: /* X.509 Certificate ID for Central Directory */ + case 0x0017: /* Strong Encryption Header */ + case 0x0018: /* Record Management Controls */ + case 0x0019: /* PKCS#7 Encryption Recipient Certificate List */ + case 0x0065: /* IBM S/390, AS/400 attributes - uncompressed */ + case 0x0066: /* Reserved for IBM S/390, AS/400 attr - compressed */ + case 0x07c8: /* Macintosh */ + case 0x2605: /* ZipIt Macintosh */ + case 0x2705: /* ZipIt Macintosh 1.3.5+ */ + case 0x2805: /* ZipIt Macintosh 1.3.5+ */ + case 0x334d: /* Info-ZIP Macintosh */ + case 0x4341: /* Acorn/SparkFS */ + case 0x4453: /* Windows NT security descriptor (binary ACL) */ + case 0x4704: /* VM/CMS */ + case 0x470f: /* MVS */ + case 0x4b46: /* FWKCS MD5 (see below) */ + case 0x4c41: /* OS/2 access control list (text ACL) */ + case 0x4d49: /* Info-ZIP OpenVMS */ + case 0x4f4c: /* Xceed original location extra field */ + case 0x5356: /* AOS/VS (ACL) */ + case 0x5455: /* extended timestamp */ + case 0x554e: /* Xceed unicode extra field */ + case 0x5855: /* Info-ZIP Unix (original, also OS/2, NT, etc) */ + case 0x6542: /* BeOS/BeBox */ + case 0x756e: /* ASi Unix */ + case 0x7855: /* Info-ZIP Unix (new) */ + case 0xfd4a: /* SMS/QDOS */ + /* *INDENT-ON* */ + } +} +#endif + +ZZIP_MEM_ENTRY * +zzip_mem_disk_findfile(ZZIP_MEM_DISK * dir, + char *filename, ZZIP_MEM_ENTRY * after, + zzip_strcmp_fn_t compare) +{ + ZZIP_MEM_ENTRY *entry = (! after ? dir->list : after->zz_next); + if (! compare) + compare = (zzip_strcmp_fn_t) (strcmp); + for (; entry; entry = entry->zz_next) + { + if (! compare(filename, entry->zz_name)) + { + return entry; + } + } + return 0; +} + +ZZIP_MEM_ENTRY * +zzip_mem_disk_findmatch(ZZIP_MEM_DISK * dir, + char *filespec, ZZIP_MEM_ENTRY * after, + zzip_fnmatch_fn_t compare, int flags) +{ + ZZIP_MEM_ENTRY *entry = (! after ? dir->list : after->zz_next); + if (! compare) + compare = (zzip_fnmatch_fn_t) _zzip_fnmatch; + for (; entry; entry = entry->zz_next) + { + if (! compare(filespec, entry->zz_name, flags)) + { + return entry; + } + } + return 0; +} + +zzip__new__ ZZIP_MEM_DISK_FILE * +zzip_mem_entry_fopen(ZZIP_MEM_DISK * dir, ZZIP_MEM_ENTRY * entry) +{ + /* keep this in sync with zzip_disk_entry_fopen */ + ZZIP_DISK_FILE *file = malloc(sizeof(ZZIP_MEM_DISK_FILE)); + if (! file) + return file; + file->buffer = dir->disk->buffer; + file->endbuf = dir->disk->endbuf; + file->avail = zzip_mem_entry_usize(entry); + + if (! file->avail || zzip_mem_entry_data_stored(entry)) + { file->stored = zzip_mem_entry_to_data (entry); return file; } + + file->stored = 0; + file->zlib.opaque = 0; + file->zlib.zalloc = Z_NULL; + file->zlib.zfree = Z_NULL; + file->zlib.avail_in = zzip_mem_entry_csize(entry); + file->zlib.next_in = zzip_mem_entry_to_data(entry); + + if (! zzip_mem_entry_data_deflated(entry) || + inflateInit2(&file->zlib, -MAX_WBITS) != Z_OK) + { free (file); return 0; } + + return file; +} + +zzip__new__ ZZIP_MEM_DISK_FILE * +zzip_mem_disk_fopen(ZZIP_MEM_DISK * dir, char *filename) +{ + ZZIP_MEM_ENTRY *entry = zzip_mem_disk_findfile(dir, filename, 0, 0); + if (! entry) + return 0; + else + return zzip_mem_entry_fopen(dir, entry); +} + +_zzip_size_t +zzip_mem_disk_fread(void *ptr, _zzip_size_t size, _zzip_size_t nmemb, + ZZIP_MEM_DISK_FILE * file) +{ + return zzip_disk_fread(ptr, size, nmemb, file); +} + +int +zzip_mem_disk_fclose(ZZIP_MEM_DISK_FILE * file) +{ + return zzip_disk_fclose(file); +} + +int +zzip_mem_disk_feof(ZZIP_MEM_DISK_FILE * file) +{ + return zzip_disk_feof(file); +} + +/* convert dostime of entry to unix time_t */ +long +zzip_disk_entry_get_mktime(ZZIP_DISK_ENTRY * entry) +{ + uint16_t dostime = ZZIP_GET16(entry->z_dostime.time); + uint16_t dosdate = ZZIP_GET16(entry->z_dostime.date); + struct tm date; + date.tm_sec = (dostime) & 0x1F; /* bits 0..4 */ + date.tm_min = (dostime >> 5) & 0x3F; /* bits 5..10 */ + date.tm_hour = (dostime >> 11); /* bits 11..15 */ + date.tm_mday = (dosdate) & 0x1F; /* bits 16..20 */ + date.tm_mon = (dosdate >> 5) & 0xF; /* bits 21..24 */ + date.tm_year = (dosdate >> 9) + 80; /* bits 25..31 */ + return mktime(&date); /* well, unix has that function... */ +} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/memdisk.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/memdisk.h new file mode 100644 index 00000000000..2411f642c5e --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/memdisk.h @@ -0,0 +1,171 @@ +#ifndef __ZZIP_MEMDISK_H +#define __ZZIP_MEMDISK_H + +/* NOTE: this is part of libzzipmmapped (i.e. it is not libzzip). */ + +#include <zzip/types.h> +#include <zzip/mmapped.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _zzip_mem_disk ZZIP_MEM_DISK; +typedef struct _zzip_mem_entry ZZIP_MEM_ENTRY; + +struct _zzip_mem_disk { + ZZIP_DISK* disk; + ZZIP_MEM_ENTRY* list; + ZZIP_MEM_ENTRY* last; +}; + +#ifndef zzip_mem_disk_extern +#define zzip_mem_disk_extern +#endif + +zzip_mem_disk_extern zzip__new__ ZZIP_MEM_DISK* +zzip_mem_disk_new (void); +zzip_mem_disk_extern zzip__new__ ZZIP_MEM_DISK* +zzip_mem_disk_open (char* filename); +zzip_mem_disk_extern zzip__new__ ZZIP_MEM_DISK* +zzip_mem_disk_fdopen (int fd); +zzip_mem_disk_extern zzip__new__ ZZIP_MEM_DISK * +zzip_mem_disk_buffer(char *buffer, size_t buflen); +zzip_mem_disk_extern void +zzip_mem_disk_close (ZZIP_MEM_DISK* _zzip_restrict dir); + +zzip_mem_disk_extern long +zzip_mem_disk_load (ZZIP_MEM_DISK* dir, ZZIP_DISK* disk); +zzip_mem_disk_extern void +zzip_mem_disk_unload (ZZIP_MEM_DISK* dir); +ZZIP_EXTRA_BLOCK* +zzip_mem_entry_extra_block (ZZIP_MEM_ENTRY* entry, short datatype); + +#ifdef USE_INLINE +_zzip_inline ZZIP_DISK* zzip_disk (ZZIP_MEM_DISK* dir) { return dir->disk; } +#else +#define zzip_disk(_X_) ((_X_)->disk) +#endif + + +/* these functions are much faster than the orgiinal zzip_disk_ functions */ + +/* zzip_mem_entry <is similar to> zzip_disk_entry */ +struct _zzip_mem_entry { + struct _zzip_mem_entry* zz_next; + char* zz_name; /* zero-terminated (from "filename") */ + zzip_byte_t* zz_data; /* compressed content start (mmap addr) */ + int zz_flags; /* (from "z_flags") */ + int zz_compr; /* (from "z_compr") */ + long zz_mktime; /* (from "z_dostime") */ + long zz_crc32; /* (from "z_crc32") */ + zzip_off_t zz_csize; /* (from "z_csize") overridden by zip64 */ + zzip_off_t zz_usize; /* (from "z_usize") overridden by zip64 */ + zzip_off_t zz_offset; /* (from "z_offset") overridden by zip64 */ + int zz_diskstart; /* (from "z_diskstart") rridden by zip64 */ + int zz_filetype; /* (from "z_filetype") */ + char* zz_comment; /* zero-terminated (from "comment") */ + ZZIP_EXTRA_BLOCK* zz_ext[3]; /* terminated by null in z_datatype */ +}; /* the extra blocks are NOT converted */ + +#define _zzip_mem_disk_findfirst(_d_) ((_d_)->list) +#define _zzip_mem_disk_findnext(_d_,_e_) (!(_e_)?(_d_)->list:(_e_)->zz_next) +#define _zzip_mem_entry_findnext(_e_) ((_e_)->zz_next) + +#ifndef USE_INLINE +#define zzip_mem_disk_findfirst _zzip_mem_disk_findfirst +#define zzip_mem_disk_findnext _zzip_mem_disk_findnext +#define zzip_mem_entry_findnext _zzip_mem_entry_findnext +#else + +_zzip_inline ZZIP_MEM_ENTRY* +zzip_mem_disk_findfirst(ZZIP_MEM_DISK* dir) { + if (! dir) return 0; + return _zzip_mem_disk_findfirst(dir); } +_zzip_inline ZZIP_MEM_ENTRY* +zzip_mem_disk_findnext(ZZIP_MEM_DISK* dir, ZZIP_MEM_ENTRY* entry) { + if (! dir) return 0; + return _zzip_mem_disk_findnext(dir, entry); } +_zzip_inline ZZIP_MEM_ENTRY* +zzip_mem_entry_findnext(ZZIP_MEM_ENTRY* entry) { + if (! entry) return 0; + return _zzip_mem_entry_findnext(entry); } +#endif + +#define _zzip_mem_entry_to_name(_e_) ((_e_)->zz_name) +#define _zzip_mem_entry_to_comment(_e_) ((_e_)->zz_comment) +#define _zzip_mem_entry_strdup_name(_e_) (strdup((_e_)->zz_name)) +#define _zzip_mem_entry_to_data(_e_) ((_e_)->zz_data) + +#ifndef USE_INLINE +#define zzip_mem_entry_to_name _zzip_mem_entry_to_name +#define zzip_mem_entry_to_comment _zzip_mem_entry_to_comment +#define zzip_mem_entry_strdup_name _zzip_mem_entry_strdup_name +#define zzip_mem_entry_to_data _zzip_mem_entry_to_data +#else +_zzip_inline char* +zzip_mem_entry_to_name(ZZIP_MEM_ENTRY* entry) { + if (! entry) return 0; + return _zzip_mem_entry_to_name(entry); } +_zzip_inline char* +zzip_mem_entry_to_comment(ZZIP_MEM_ENTRY* entry) { + if (! entry) return 0; + return _zzip_mem_entry_to_comment(entry); } +zzip__new__ +_zzip_inline char* +zzip_mem_entry_strdup_name(ZZIP_MEM_ENTRY* entry) { + if (! entry) return 0; + return _zzip_mem_entry_strdup_name(entry); } +_zzip_inline zzip_byte_t* +zzip_mem_entry_to_data(ZZIP_MEM_ENTRY* entry) { + if (! entry) return 0; + return _zzip_mem_entry_to_data(entry); } +#endif + +ZZIP_MEM_ENTRY* +zzip_mem_disk_findfile(ZZIP_MEM_DISK* dir, + char* filename, ZZIP_MEM_ENTRY* after, + zzip_strcmp_fn_t compare); + +ZZIP_MEM_ENTRY* +zzip_mem_disk_findmatch(ZZIP_MEM_DISK* dir, + char* filespec, ZZIP_MEM_ENTRY* after, + zzip_fnmatch_fn_t compare, int flags); + +/* named access -------------------------------------------------------- */ +#define zzip_mem_entry_usize(_e_) ((_e_)->zz_usize) +#define zzip_mem_entry_csize(_e_) ((_e_)->zz_csize) +#define zzip_mem_entry_data_encrypted(_e_) ZZIP_IS_ENCRYPTED((_e_)->zz_flags) +#define zzip_mem_entry_data_streamed(_e_) ZZIP_IS_STREAMED((_e_)->zz_flags) +#define zzip_mem_entry_data_comprlevel(_e_) ((_e_)->zz_compr) +#define zzip_mem_entry_data_stored(_e_) ((_e_)->zz_compr == ZZIP_IS_STORED) +#define zzip_mem_entry_data_deflated(_e_) ((_e_)->zz_compr == ZZIP_IS_DEFLATED) + +/* zzip_mem_disk_file -------------------------------------------------- */ + +/* since only the header data is being cached, all the real data + * operations are actually the same as in mmapped.h - just fopen makes + * access to the header data in memory instead of the zip archive. + */ + +typedef ZZIP_DISK_FILE ZZIP_MEM_DISK_FILE; + +zzip__new__ ZZIP_MEM_DISK_FILE* +zzip_mem_entry_fopen (ZZIP_MEM_DISK* dir, ZZIP_MEM_ENTRY* entry); +zzip__new__ ZZIP_MEM_DISK_FILE* +zzip_mem_disk_fopen (ZZIP_MEM_DISK* dir, char* filename); +_zzip_size_t +zzip_mem_disk_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb, + ZZIP_MEM_DISK_FILE* file); +int +zzip_mem_disk_fclose (ZZIP_MEM_DISK_FILE* file); +int +zzip_mem_disk_feof (ZZIP_MEM_DISK_FILE* file); + +/* convert dostime of entry to unix time_t */ +long zzip_disk_entry_get_mktime(ZZIP_DISK_ENTRY* entry); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/mmapped.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/mmapped.c new file mode 100644 index 00000000000..6fafc1163a6 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/mmapped.c @@ -0,0 +1,646 @@ + +/* + * NOTE: this is part of libzzipmmapped (i.e. it is not libzzip). + * ================== + * + * These routines are fully independent from the traditional zzip + * implementation. They assume a readonly mmapped sharedmem block + * representing a complete zip file. The functions show how to + * parse the structure, find files and return a decoded bytestream. + * + * These routines are a bit simple and really here for documenting + * the way to access a zip file. The complexity of zip access comes + * from staggered reading of bytes and reposition of a filepointer in + * a big archive with lots of files and long compressed datastreams. + * Plus varaints of drop-in stdio replacements, obfuscation routines, + * auto fileextensions, drop-in dirent replacements, and so on... + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2003,2004,2006 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#define _ZZIP_DISK_FILE_STRUCT 1 + +#ifdef __linux__ +#define _GNU_SOURCE _glibc_developers_are_idiots_to_call_strndup_gnu_specific_ +#endif + +#include <zzip/mmapped.h> +#include <zzip/format.h> +#include <zzip/fetch.h> +#include <zzip/__mmap.h> +#include <zzip/__fnmatch.h> + +#include <stdlib.h> +#include <sys/stat.h> + +#if defined ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#elif defined ZZIP_HAVE_IO_H +#include <io.h> +#endif + +#if defined ZZIP_HAVE_STRING_H +#include <string.h> +#elif defined ZZIP_HAVE_STRINGS_H +#include <strings.h> +#endif + + +#if __STDC_VERSION__+0 > 199900L +#define ___ +#define ____ +#else +#define ___ { +#define ____ } +#endif + +/** => zzip_disk_mmap + * This function does primary initialization of a disk-buffer struct. + */ +int +zzip_disk_init(ZZIP_DISK * disk, void *buffer, zzip_size_t buflen) +{ + disk->buffer = (zzip_byte_t *) buffer; + disk->endbuf = (zzip_byte_t *) buffer + buflen; + disk->reserved = 0; + disk->flags = 0; + disk->mapped = 0; + /* do not touch disk->user */ + /* do not touch disk->code */ + return 0; +} + +/** => zzip_disk_mmap + * This function allocates a new disk-buffer with => malloc(3) + */ +zzip__new__ ZZIP_DISK * +zzip_disk_new(void) +{ + ZZIP_DISK *disk = malloc(sizeof(ZZIP_DISK)); + if (! disk) + return disk; + zzip_disk_init(disk, 0, 0); + return disk; +} + +/** turn a filehandle into a mmapped zip disk archive handle + * + * This function uses the given file-descriptor to detect the length of the + * file and calls the system => mmap(2) to put it in main memory. If it is + * successful then a newly allocated ZZIP_DISK* is returned with + * disk->buffer pointing to the mapview of the zipdisk content. + */ +zzip__new__ ZZIP_DISK * +zzip_disk_mmap(int fd) +{ + struct stat st; + if (fstat(fd, &st) || ! st.st_size) + return 0; + ___ ZZIP_DISK *disk = zzip_disk_new(); + if (! disk) + return 0; + disk->buffer = _zzip_mmap(disk->mapped, fd, 0, st.st_size); + if (disk->buffer == MAP_FAILED) + { free (disk); return 0; } + disk->endbuf = disk->buffer + st.st_size; + return disk; + ____; +} + +/** => zzip_disk_mmap + * This function is the inverse of => zzip_disk_mmap and using the system + * munmap(2) on the buffer area and => free(3) on the ZZIP_DISK structure. + */ +int +zzip_disk_munmap(ZZIP_DISK * disk) +{ + if (! disk) + return 0; + _zzip_munmap(disk->mapped, disk->buffer, disk->endbuf - disk->buffer); + free(disk); + return 0; +} + +/** => zzip_disk_mmap + * + * This function opens the given archive by name and turn the filehandle + * to => zzip_disk_mmap for bringing it to main memory. If it can not + * be => mmap(2)'ed then we slurp the whole file into a newly => malloc(2)'ed + * memory block. Only if that fails too then we return null. Since handling + * of disk->buffer is ambigous it should not be snatched away please. + */ +zzip__new__ ZZIP_DISK * +zzip_disk_open(char *filename) +{ +# ifndef O_BINARY +# define O_BINARY 0 +# endif + struct stat st; + if (stat(filename, &st) || ! st.st_size) + return 0; + ___ int fd = open(filename, O_RDONLY | O_BINARY); + if (fd <= 0) + return 0; + ___ ZZIP_DISK *disk = zzip_disk_mmap(fd); + if (disk) + return disk; + ___ zzip_byte_t *buffer = malloc(st.st_size); + if (! buffer) + return 0; + if ((st.st_size == read(fd, buffer, st.st_size)) && + (disk = zzip_disk_new())) + { + disk->buffer = buffer; + disk->endbuf = buffer + st.st_size; + disk->mapped = -1; + disk->flags |= ZZIP_DISK_FLAGS_OWNED_BUFFER; + } else { + free(buffer); + } + return disk; + ____; + ____; + ____; +} + +/** => zzip_disk_mmap + * This function will attach a buffer with a zip image + * that was acquired from another source than a file. + * Note that if zzip_disk_mmap fails then zzip_disk_open + * will fall back and try to read the full file to memory + * wrapping a ZZIP_DISK around the memory buffer just as + * this function will do. Note that this function will not + * own the buffer, it will neither be written nor free()d. + */ +zzip__new__ ZZIP_DISK * +zzip_disk_buffer(void *buffer, size_t buflen) { + ZZIP_DISK *disk = zzip_disk_new(); + if (disk) + { + disk->buffer = (zzip_byte_t *) buffer; + disk->endbuf = (zzip_byte_t *) buffer + buflen; + disk->mapped = -1; + } + return disk; +} + +/** => zzip_disk_mmap + * + * This function will release all data needed to access a (mmapped) + * zip archive, including any malloc()ed blocks, sharedmem mappings + * and it dumps the handle struct as well. + */ +int +zzip_disk_close(ZZIP_DISK * disk) +{ + if (! disk) + return 0; + if (disk->mapped != -1) + return zzip_disk_munmap(disk); + if (disk->flags & ZZIP_DISK_FLAGS_OWNED_BUFFER) + free(disk->buffer); + free(disk); + return 0; +} + +/* ====================================================================== */ + +/* helper functions */ + +#ifdef ZZIP_HAVE_STRNDUP +#define _zzip_strndup strndup +#else + +/* if your system does not have strndup: */ +zzip__new__ static char * +_zzip_strndup(char *p, size_t maxlen) +{ + if (! p) + return 0; + ___ zzip_byte_t *r = malloc(maxlen + 1); + if (! r) + return r; + strncpy(r, p, maxlen); + r[maxlen] = '\0'; + return r; + ____; +} +#endif + +#if defined ZZIP_HAVE_STRCASECMP || defined strcasecmp +#define _zzip_strcasecmp strcasecmp +#else + +/* if your system does not have strcasecmp: */ +static int +_zzip_strcasecmp(char *__zzip_restrict a, char *_zzip_restrict b) +{ + if (! a) + return (b) ? 1 : 0; + if (! b) + return -1; + while (1) + { + int v = tolower(*a) - tolower(*b); + if (v) + return v; + if (! *a) + return 1; + if (! *b) + return -1; + a++; + b++; + } +} +#endif + +/** helper functions for (mmapped) zip access api + * + * This function augments the other zzip_disk_entry_* helpers: here we move + * a disk_entry pointer (as returned by _find* functions) into a pointer to + * the data block right after the file_header. Only disk->buffer would be + * needed to perform the seek but we check the mmapped range end as well. + */ +zzip_byte_t * +zzip_disk_entry_to_data(ZZIP_DISK * disk, struct zzip_disk_entry * entry) +{ + struct zzip_file_header *file = zzip_disk_entry_to_file_header(disk, entry); + if (file) + return zzip_file_header_to_data(file); + return 0; +} + +/** => zzip_disk_entry_to_data + * This function does half the job of => zzip_disk_entry_to_data where it + * can augment with => zzip_file_header_to_data helper from format/fetch.h + */ +struct zzip_file_header * +zzip_disk_entry_to_file_header(ZZIP_DISK * disk, struct zzip_disk_entry *entry) +{ + zzip_byte_t *file_header = /* (struct zzip_file_header*) */ + (disk->buffer + zzip_disk_entry_fileoffset(entry)); + if (disk->buffer > file_header || file_header >= disk->endbuf) + return 0; + return (struct zzip_file_header *) file_header; +} + +/** => zzip_disk_entry_to_data + * This function is a big helper despite its little name: in a zip file the + * encoded filenames are usually NOT zero-terminated but for common usage + * with libc we need it that way. Secondly, the filename SHOULD be present + * in the zip central directory but if not then we fallback to the filename + * given in the file_header of each compressed data portion. + */ +zzip__new__ char * +zzip_disk_entry_strdup_name(ZZIP_DISK * disk, struct zzip_disk_entry *entry) +{ + if (! disk || ! entry) + return 0; + + ___ char *name; + zzip_size_t len; + struct zzip_file_header *file; + if ((len = zzip_disk_entry_namlen(entry))) + name = zzip_disk_entry_to_filename(entry); + else if ((file = zzip_disk_entry_to_file_header(disk, entry)) && + (len = zzip_file_header_namlen(file))) + name = zzip_file_header_to_filename(file); + else + return 0; + + if ((zzip_byte_t *) name < disk->buffer || + (zzip_byte_t *) name + len > disk->endbuf) + return 0; + + return _zzip_strndup(name, len); + ____; +} + +/** => zzip_disk_entry_to_data + * This function is similar creating a reference to a zero terminated + * string but it can only exist in the zip central directory entry. + */ +zzip__new__ char * +zzip_disk_entry_strdup_comment(ZZIP_DISK * disk, struct zzip_disk_entry *entry) +{ + if (! disk || ! entry) + return 0; + + ___ char *text; + zzip_size_t len; + if ((len = zzip_disk_entry_comment(entry))) + text = zzip_disk_entry_to_comment(entry); + else + return 0; + + if ((zzip_byte_t *) text < disk->buffer || + (zzip_byte_t *) text + len > disk->endbuf) + return 0; + + return _zzip_strndup(text, len); + ____; +} + +/* ====================================================================== */ + +/** => zzip_disk_findfile + * + * This function is the first call of all the zip access functions here. + * It contains the code to find the first entry of the zip central directory. + * Here we require the mmapped block to represent a real zip file where the + * disk_trailer is _last_ in the file area, so that its position would be at + * a fixed offset from the end of the file area if not for the comment field + * allowed to be of variable length (which needs us to do a little search + * for the disk_tailer). However, in this simple implementation we disregard + * any disk_trailer info telling about multidisk archives, so we just return + * a pointer to the zip central directory. + * + * For an actual means, we are going to search backwards from the end + * of the mmaped block looking for the PK-magic signature of a + * disk_trailer. If we see one then we check the rootseek value to + * find the first disk_entry of the root central directory. If we find + * the correct PK-magic signature of a disk_entry over there then we + * assume we are done and we are going to return a pointer to that label. + * + * The return value is a pointer to the first zzip_disk_entry being checked + * to be within the bounds of the file area specified by the arguments. If + * no disk_trailer was found then null is returned, and likewise we only + * accept a disk_trailer with a seekvalue that points to a disk_entry and + * both parts have valid PK-magic parts. Beyond some sanity check we try to + * catch a common brokeness with zip archives that still allows us to find + * the start of the zip central directory. + */ +struct zzip_disk_entry * +zzip_disk_findfirst(ZZIP_DISK * disk) +{ + if (disk->buffer > disk->endbuf - sizeof(struct zzip_disk_trailer)) + return 0; + ___ zzip_byte_t *p = disk->endbuf - sizeof(struct zzip_disk_trailer); + for (; p >= disk->buffer; p--) + { + zzip_byte_t *root; /* (struct zzip_disk_entry*) */ + if (zzip_disk_trailer_check_magic(p)) + { + struct zzip_disk_trailer *trailer = (struct zzip_disk_trailer *) p; + root = disk->buffer + zzip_disk_trailer_get_rootseek(trailer); + if (root > p) + { + /* the first disk_entry is after the disk_trailer? can't be! */ + zzip_size_t rootsize = zzip_disk_trailer_get_rootsize(trailer); + if (disk->buffer + rootsize > p) + continue; + /* a common brokeness that can be fixed: we just assume the + * central directory was written directly before the trailer:*/ + root = p - rootsize; + } + } else if (zzip_disk64_trailer_check_magic(p)) + { + struct zzip_disk64_trailer *trailer = + (struct zzip_disk64_trailer *) p; + if (sizeof(void *) < 8) + return 0; /* EOVERFLOW */ + root = disk->buffer + zzip_disk64_trailer_get_rootseek(trailer); + if (root > p) + continue; + } else + { + continue; + } + + if (root < disk->buffer) + continue; + if (zzip_disk_entry_check_magic(root)) + return (struct zzip_disk_entry *) root; + } ____; + return 0; +} + +/** => zzip_disk_findfile + * + * This function takes an existing disk_entry in the central root directory + * (e.g. from zzip_disk_findfirst) and returns the next entry within in + * the given bounds of the mmapped file area. + */ +struct zzip_disk_entry * +zzip_disk_findnext(ZZIP_DISK * disk, struct zzip_disk_entry *entry) +{ + if ((zzip_byte_t *) entry < disk->buffer || + (zzip_byte_t *) entry > disk->endbuf - sizeof(entry) || + ! zzip_disk_entry_check_magic(entry) || + zzip_disk_entry_sizeto_end(entry) > 64 * 1024) + return 0; + entry = zzip_disk_entry_to_next_entry(entry); + if ((zzip_byte_t *) entry > disk->endbuf - sizeof(entry) || + ! zzip_disk_entry_check_magic(entry) || + zzip_disk_entry_sizeto_end(entry) > 64 * 1024 || + zzip_disk_entry_skipto_end(entry) + sizeof(entry) > disk->endbuf) + return 0; + else + return entry; +} + +/** search for files in the (mmapped) zip central directory + * + * This function is given a filename as an additional argument, to find the + * disk_entry matching a given filename. The compare-function is usually + * strcmp or strcasecmp or perhaps strcoll, if null then strcmp is used. + * - use null as argument for "after"-entry when searching the first + * matching entry, otherwise the last returned value if you look for other + * entries with a special "compare" function (if null then a doubled search + * is rather useless with this variant of _findfile). + */ +struct zzip_disk_entry * +zzip_disk_findfile(ZZIP_DISK * disk, char *filename, + struct zzip_disk_entry *after, zzip_strcmp_fn_t compare) +{ + struct zzip_disk_entry *entry = (! after ? zzip_disk_findfirst(disk) + : zzip_disk_findnext(disk, after)); + if (! compare) + compare = (zzip_strcmp_fn_t) ((disk->flags & ZZIP_DISK_FLAGS_MATCH_NOCASE) ? + (_zzip_strcasecmp) : (strcmp)); + for (; entry; entry = zzip_disk_findnext(disk, entry)) + { + /* filenames within zip files are often not null-terminated! */ + char *realname = zzip_disk_entry_strdup_name(disk, entry); + if (realname && ! compare(filename, realname)) + { + free(realname); + return entry; + } + free(realname); + } + return 0; +} + +/** => zzip_disk_findfile + * + * This function uses a compare-function with an additional argument + * and it is called just like fnmatch(3) from POSIX.2 AD:1993), i.e. + * the argument filespec first and the ziplocal filename second with + * the integer-flags put in as third to the indirect call. If the + * platform has fnmatch available then null-compare will use that one + * and otherwise we fall back to mere strcmp, so if you need fnmatch + * searching then please provide an implementation somewhere else. + * - use null as argument for "after"-entry when searching the first + * matching entry, or the last disk_entry return-value to find the + * next entry matching the given filespec. + */ +struct zzip_disk_entry * +zzip_disk_findmatch(ZZIP_DISK * disk, char *filespec, + struct zzip_disk_entry *after, + zzip_fnmatch_fn_t compare, int flags) +{ + struct zzip_disk_entry *entry = (! after ? zzip_disk_findfirst(disk) + : zzip_disk_findnext(disk, after)); + if (! compare) + { + compare = (zzip_fnmatch_fn_t) _zzip_fnmatch; + if (disk->flags & ZZIP_DISK_FLAGS_MATCH_NOCASE) + flags |= _zzip_fnmatch_CASEFOLD; + } + for (; entry; entry = zzip_disk_findnext(disk, entry)) + { + /* filenames within zip files are often not null-terminated! */ + char *realname = zzip_disk_entry_strdup_name(disk, entry); + if (realname && ! compare(filespec, realname, flags)) + { + free(realname); + return entry; + } + free(realname); + } + return 0; +} + +/* ====================================================================== */ + +/** => zzip_disk_fopen + * + * the ZZIP_DISK_FILE* is rather simple in just encapsulating the + * arguments given to this function plus a zlib deflate buffer. + * Note that the ZZIP_DISK pointer does already contain the full + * mmapped file area of a zip disk, so open()ing a file part within + * that area happens to be a lookup of its bounds and encoding. That + * information is memorized on the ZZIP_DISK_FILE so that subsequent + * _read() operations will be able to get the next data portion or + * return an eof condition for that file part wrapped in the zip archive. + */ +zzip__new__ ZZIP_DISK_FILE * +zzip_disk_entry_fopen(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry) +{ + /* keep this in sync with zzip_mem_entry_fopen */ + struct zzip_file_header *header = + zzip_disk_entry_to_file_header(disk, entry); + if (! header) + return 0; + ___ ZZIP_DISK_FILE *file = malloc(sizeof(ZZIP_DISK_FILE)); + if (! file) + return file; + file->buffer = disk->buffer; + file->endbuf = disk->endbuf; + file->avail = zzip_file_header_usize(header); + + if (! file->avail || zzip_file_header_data_stored(header)) + { file->stored = zzip_file_header_to_data (header); return file; } + + file->stored = 0; + file->zlib.opaque = 0; + file->zlib.zalloc = Z_NULL; + file->zlib.zfree = Z_NULL; + file->zlib.avail_in = zzip_file_header_csize(header); + file->zlib.next_in = zzip_file_header_to_data(header); + + if (! zzip_file_header_data_deflated(header) || + inflateInit2(&file->zlib, -MAX_WBITS) != Z_OK) + { free (file); return 0; } + + return file; + ____; +} + +/** openening a file part wrapped within a (mmapped) zip archive + * + * This function opens a file found by name, so it does a search into + * the zip central directory with => zzip_disk_findfile and whatever + * is found first is given to => zzip_disk_entry_fopen + */ +zzip__new__ ZZIP_DISK_FILE * +zzip_disk_fopen(ZZIP_DISK * disk, char *filename) +{ + ZZIP_DISK_ENTRY *entry = zzip_disk_findfile(disk, filename, 0, 0); + if (! entry) + return 0; + else + return zzip_disk_entry_fopen(disk, entry); +} + + +/** => zzip_disk_fopen + * + * This function reads more bytes into the output buffer specified as + * arguments. The return value is null on eof or error, the stdio-like + * interface can not distinguish between these so you need to check + * with => zzip_disk_feof for the difference. + */ +zzip_size_t +zzip_disk_fread(void *ptr, zzip_size_t sized, zzip_size_t nmemb, + ZZIP_DISK_FILE * file) +{ + zzip_size_t size = sized * nmemb; + if (size > file->avail) + size = file->avail; + if (file->stored) + { + memcpy(ptr, file->stored, size); + file->stored += size; + file->avail -= size; + return size; + } + + file->zlib.avail_out = sized * nmemb; + file->zlib.next_out = ptr; + ___ zzip_size_t total_old = file->zlib.total_out; + ___ int err = inflate(&file->zlib, Z_NO_FLUSH); + if (err == Z_STREAM_END) + file->avail = 0; + else if (err == Z_OK) + file->avail -= file->zlib.total_out - total_old; + else + return 0; + return file->zlib.total_out - total_old; + ____; + ____; +} + +/** => zzip_disk_fopen + * This function releases any zlib decoder info needed for decompression + * and dumps the ZZIP_DISK_FILE* then. + */ +int +zzip_disk_fclose(ZZIP_DISK_FILE * file) +{ + if (! file->stored) + inflateEnd(&file->zlib); + free(file); + return 0; +} + +/** => zzip_disk_fopen + * + * This function allows to distinguish an error from an eof condition. + * Actually, if we found an error but we did already reach eof then we + * just keep on saying that it was an eof, so the app can just continue. + */ +int +zzip_disk_feof(ZZIP_DISK_FILE * file) +{ + return ! file || ! file->avail; +} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/mmapped.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/mmapped.h new file mode 100644 index 00000000000..ee2ba5ad8b6 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/mmapped.h @@ -0,0 +1,138 @@ +#ifndef _ZZIP_MMAPPED_H_ +#define _ZZIP_MMAPPED_H_ +/* + * NOTE: this is part of libzzipmmapped (i.e. it is not libzzip). + * + * simplified zip disk access using a mmapping of the whole archive. + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2003,2004 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + + +#include <zzip/types.h> + +#ifdef _ZZIP_DISK_FILE_STRUCT +#include <zlib.h> /* z_stream */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct zzip_disk_file ZZIP_DISK_FILE; +typedef struct zzip_disk ZZIP_DISK; +/* def struct zzip_disk_entry ZZIP_DISK_ENTRY; */ + +/* we expose this structure so third party applications can augment + * on them. The mmapped zip access usually just needs the two pointers + * specifying the mmapped area, whereever you have that from. + */ +struct zzip_disk +{ + zzip_byte_t* buffer; /* start of mmapped area, the base of all seekvals */ + zzip_byte_t* endbuf; /* end of mmapped area, i.e. buffer + buflen */ + void* reserved; /* - for later extensions (might be renamed) */ + void* user; /* - free for applications (use this!) */ + long flags; /* bit 0: findfile searches case-insensitive */ + long mapped; /* used for mmap() wrappers of zzip/__mmap.h */ + long unused; /* - for later extensions (might be renamed) */ + long code; /* - free for applications (use this!) */ +}; + +/* fnmatch search shall be case insensitive */ +#define ZZIP_DISK_FLAGS_MATCH_NOCASE 1 +#define ZZIP_DISK_FLAGS_OWNED_BUFFER 2 + +typedef int (*zzip_strcmp_fn_t)(char*, char*); +typedef int (*zzip_fnmatch_fn_t)(char*, char*, int); + +#define zzip_disk_extern extern + +zzip_disk_extern int +zzip_disk_init(ZZIP_DISK* disk, void* buffer, zzip_size_t buflen); + +zzip_disk_extern zzip__new__ ZZIP_DISK* +zzip_disk_new(void); + +zzip_disk_extern zzip__new__ ZZIP_DISK* +zzip_disk_mmap(int fd); + +zzip_disk_extern int +zzip_disk_munmap(ZZIP_DISK* disk); + +zzip_disk_extern zzip__new__ ZZIP_DISK* +zzip_disk_open(char* filename); + +zzip_disk_extern zzip__new__ ZZIP_DISK * +zzip_disk_buffer(void *buffer, size_t buflen); + +zzip_disk_extern int +zzip_disk_close(ZZIP_DISK* disk); + + +zzip_disk_extern ZZIP_DISK_ENTRY* +zzip_disk_findfirst(ZZIP_DISK* disk); + +zzip_disk_extern ZZIP_DISK_ENTRY* +zzip_disk_findnext(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry); + +zzip_disk_extern zzip__new__ char* +zzip_disk_entry_strdup_name(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry); +zzip_disk_extern zzip__new__ char* +zzip_disk_entry_strdup_comment(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry); +zzip_disk_extern struct zzip_file_header* +zzip_disk_entry_to_file_header(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry); +zzip_disk_extern zzip_byte_t* +zzip_disk_entry_to_data(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry); + +zzip_disk_extern ZZIP_DISK_ENTRY* +zzip_disk_findfile(ZZIP_DISK* disk, + char* filename, ZZIP_DISK_ENTRY* after, + zzip_strcmp_fn_t compare); +zzip_disk_extern ZZIP_DISK_ENTRY* +zzip_disk_findmatch(ZZIP_DISK* disk, + char* filespec, ZZIP_DISK_ENTRY* after, + zzip_fnmatch_fn_t compare, int flags); + + +zzip_disk_extern zzip__new__ ZZIP_DISK_FILE* +zzip_disk_entry_fopen (ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry); + +zzip_disk_extern zzip__new__ ZZIP_DISK_FILE* +zzip_disk_fopen (ZZIP_DISK* disk, char* filename); + +zzip_disk_extern _zzip_size_t +zzip_disk_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb, + ZZIP_DISK_FILE* file); +zzip_disk_extern int +zzip_disk_fclose (ZZIP_DISK_FILE* file); +int +zzip_disk_feof (ZZIP_DISK_FILE* file); + +#ifdef _ZZIP_DISK_FILE_STRUCT +/** + * typedef struct zzip_disk_file ZZIP_DISK_FILE; + */ +struct zzip_disk_file +{ + zzip_byte_t* buffer; /* fopen disk->buffer */ + zzip_byte_t* endbuf; /* fopen disk->endbuf */ + zzip_size_t avail; /* memorized for checks on EOF */ + z_stream zlib; /* for inflated blocks */ + zzip_byte_t* stored; /* for stored blocks */ +}; +#endif + +#ifdef __cplusplus +} +#endif +#endif + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/plugin.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/plugin.c new file mode 100644 index 00000000000..ee578f41f55 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/plugin.c @@ -0,0 +1,90 @@ + +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * Mike Nordell <tamlin-@-algonet-se> + * + * Copyright (c) 2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#include <zzip/lib.h> +#include <zzip/plugin.h> + +#include <string.h> +#include <sys/stat.h> +#include <errno.h> +#include <stdlib.h> +#ifdef DEBUG +#include <stdio.h> +#endif + +#include <zzip/file.h> +#include <zzip/format.h> + +zzip_off_t +zzip_filesize(int fd) +{ + struct stat st; + + if (fstat(fd, &st) < 0) + return -1; + +# if defined DEBUG && ! defined _WIN32 + if (! st.st_size && st.st_blocks > 1) /* seen on some darwin 10.1 machines */ + fprintf(stderr, "broken fstat(2) ?? st_size=%ld st_blocks=%ld\n", + (long) st.st_size, (long) st.st_blocks); +# endif + + return st.st_size; +} + +static const struct zzip_plugin_io default_io = { + &open, + &close, + &_zzip_read, + &_zzip_lseek, + &zzip_filesize, + 1, 1, + &_zzip_write +}; + +/** => zzip_init_io + * This function returns a zzip_plugin_io_t handle to static defaults + * wrapping the posix io file functions for actual file access. The + * returned structure is shared by all threads in the system. + */ +zzip_plugin_io_t +zzip_get_default_io(void) +{ + return (zzip_plugin_io_t) & default_io; +} + +/** + * This function initializes the users handler struct to default values + * being the posix io functions in default configured environments. + * + * Note that the target io_handlers_t structure should be static or + * atleast it should be kept during the lifetime of zzip operations. + */ +int +zzip_init_io(zzip_plugin_io_handlers_t io, int flags) +{ + if (! io) + { + return ZZIP_ERROR; + } + memcpy(io, &default_io, sizeof(default_io)); + io->fd.sys = flags; + return 0; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/plugin.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/plugin.h new file mode 100644 index 00000000000..8282193440c --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/plugin.h @@ -0,0 +1,99 @@ +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2002,2003 Guido Draheim + * All rights reserved + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + * + * the interfaces for the plugin_io system + * + * Using the following you can provide your own file I/O functions to + * e.g. read data directly from memory, provide simple + * "encryption"/"decryption" of on-disk .zip-files... + * Note that this currently only provides a subset of the functionality + * in zziplib. It does not attempt to provide any directory functions, + * but if your program 1) only uses ordinary on-disk files and you + * just want this for file obfuscation, or 2) you only access your + * .zip archives using zzip_open & co., this is sufficient. + * + * Currently the default io are the POSIX functions, except + * for 'filesize' that is zziplibs own provided zzip_filesize function, + * using standard POSIX fd's. You are however free to replace this with + * whatever data type you need, so long as you provide implementations + * for all the functions, and the data type fits an int. + * + * all functions receiving ext_io are able to cope with both arguments + * set to zero which will let them default to a ZIP ext and posix io. + */ +#ifndef _ZZIP_PLUGIN_H /* zzip-io.h */ +#define _ZZIP_PLUGIN_H 1 + +#include <zzip/zzip.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* we have renamed zzip_plugin_io.use_mmap to zzip_plugin_io.sys */ +#define ZZIP_PLUGIN_IO_SYS 1 + +struct zzip_plugin_io { /* use "zzip_plugin_io_handlers" in applications !! */ + int (*open)(zzip_char_t* name, int flags, ...); + int (*close)(int fd); + zzip_ssize_t (*read)(int fd, void* buf, zzip_size_t len); + zzip_off_t (*seeks)(int fd, zzip_off_t offset, int whence); + zzip_off_t (*filesize)(int fd); + long sys; + long type; + zzip_ssize_t (*write)(int fd, _zzip_const void* buf, zzip_size_t len); +}; + +typedef union _zzip_plugin_io +{ + struct zzip_plugin_io fd; + struct { void* padding[8]; } ptr; +} zzip_plugin_io_handlers; + +#define _zzip_plugin_io_handlers zzip_plugin_io_handlers + +/* for backward compatibility, add the following to your application code: + * #ifndef _zzip_plugin_io_handlers + * #define _zzip_plugin_io_handlers struct zzip_plugin_io + */ +typedef zzip_plugin_io_handlers* zzip_plugin_io_handlers_t; + +#ifdef ZZIP_LARGEFILE_RENAME +#define zzip_filesize zzip_filesize64 +#define zzip_get_default_io zzip_get_default_io64 +#define zzip_init_io zzip_init_io64 +#endif + +_zzip_export zzip_off_t +zzip_filesize(int fd); + +/* get the default file I/O functions. + * This functions returns a pointer to an internal static structure. + */ +_zzip_export zzip_plugin_io_t zzip_get_default_io(void); + +/* + * Initializes a zzip_plugin_io_t to the zziplib default io. + * This is useful if you only want to override e.g. the 'read' function. + * all zzip functions that can receive a zzip_plugin_io_t can + * handle a zero pointer in that place and default to posix io. + */ +_zzip_export +int zzip_init_io(zzip_plugin_io_handlers_t io, int flags); + +/* zzip_init_io flags : */ +# define ZZIP_IO_USE_MMAP 1 + +#ifdef __cplusplus +}; +#endif + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/stat.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/stat.c new file mode 100644 index 00000000000..d77c025f82f --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/stat.c @@ -0,0 +1,136 @@ + +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * Tomi Ollila <Tomi.Ollila@iki.fi> + * + * Copyright (c) 1999,2000,2001,2002 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + * + * Description: + * although this file is defining a function called zzip_stat it + * will not need a real stat(2) exported by the Operating System. + * It will just try to fill the fields of the ZZIP_STAT structure + * of + */ + +#include <zzip/lib.h> /* exported... */ +#include <zzip/file.h> +#include <string.h> +#if defined(_AIX) +#include <strings.h> /* for strcasecmp */ +#endif +#include <sys/stat.h> + +#define ZZIP_USE_INTERNAL +#include <zzip/info.h> + +/** + * obtain information about a filename in an opened zip-archive without + * opening that file first. Mostly used to obtain the uncompressed + * size of a file inside a zip-archive. see => zzip_dir_open. + */ +int +zzip_dir_stat(ZZIP_DIR * dir, zzip_char_t * name, ZZIP_STAT * zs, int flags) +{ + struct zzip_dir_hdr *hdr = dir->hdr0; + int (*cmp) (zzip_char_t *, zzip_char_t *); + + if (flags & ZZIP_CASEINSENSITIVE) flags |= ZZIP_CASELESS; + cmp = (flags & ZZIP_CASELESS) ? strcasecmp : strcmp; + + if (! hdr) + { + dir->errcode = ZZIP_ENOENT; + return -1; + } + + if (flags & ZZIP_IGNOREPATH) + { + char *n = strrchr(name, '/'); + if (n) + name = n + 1; + } + + while (1) + { + register char *hdr_name = hdr->d_name; + if (flags & ZZIP_IGNOREPATH) + { + register char *n = strrchr(hdr_name, '/'); + if (n) + hdr_name = n + 1; + } + + if (! cmp(hdr_name, name)) + break; + + if (! hdr->d_reclen) + { + dir->errcode = ZZIP_ENOENT; + return -1; + } + + hdr = (struct zzip_dir_hdr *) ((char *) hdr + hdr->d_reclen); + } + + zs->d_compr = hdr->d_compr; + zs->d_csize = hdr->d_csize; + zs->st_size = hdr->d_usize; + zs->d_name = hdr->d_name; + + return 0; +} + +/** => zzip_dir_stat + * This function will obtain information about a opened file _within_ a + * zip-archive. The file is supposed to be open (otherwise -1 is returned). + * The st_size stat-member contains the uncompressed size. The optional + * d_name is never set here. + */ +int +zzip_file_stat(ZZIP_FILE * file, ZZIP_STAT * zs) +{ + if (! file) + return -1; + zs->d_compr = file->method; + zs->d_csize = file->csize; + zs->st_size = file->usize; + zs->d_name = 0; + return 0; +} + +/** => zzip_dir_stat + * This function will obtain information about a opened file which may be + * either real/zipped. The file is supposed to be open (otherwise -1 is + * returned). The st_size stat-member contains the uncompressed size. + * The optional d_name is never set here. For a real file, we do set the + * d_csize := st_size and d_compr := 0 for meaningful defaults. + */ +int +zzip_fstat(ZZIP_FILE * file, ZZIP_STAT * zs) +{ + if (ZZIP_file_real(file)) + { + struct stat st; + if (fstat(file->fd, &st) < 0) + return -1; + zs->st_size = st.st_size; + zs->d_csize = st.st_size; + zs->d_compr = 0; + return 0; + } else + { + return zzip_file_stat(file, zs); + } +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/stdint.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/stdint.h new file mode 100644 index 00000000000..4552c5b04e0 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/stdint.h @@ -0,0 +1,45 @@ +#ifndef _ZZIP__STDINT_H /* zzip-stdint.h */ +#define _ZZIP__STDINT_H 1 +/* this file ensures that we have some kind of typedef declarations for + unsigned C9X typedefs. The ISO C 9X: 7.18 Integer types file is stdint.h + */ + +#include <zzip/conf.h> + +/* enforce use of ifdef'd C9X entries in system headers */ +#define __USE_ANSI 1 +#define __USE_ISOC9X 1 + +#ifdef ZZIP_HAVE_STDINT_H + /* ISO C 9X: 7.18 Integer types <stdint.h> */ +#include <stdint.h> +#elif defined ZZIP_HAVE_SYS_INT_TYPES_H /*solaris*/ +#include <sys/int_types.h> +#elif defined ZZIP_HAVE_INTTYPES_H /*freebsd*/ +#include <inttypes.h> +#else + typedef unsigned char uint8_t; typedef signed char int8_t; + +# if ZZIP_SIZEOF_INT && ZZIP_SIZEOF_INT == 2 + typedef unsigned int uint16_t; typedef signed int int16_t; +# elif ZZIP_SIZEOF_SHORT && ZZIP_SIZEOF_SHORT == 2 + typedef unsigned short uint16_t; typedef signed short int16_t; +# else +# error unable to typedef int16_t from either int or short + typedef unsigned short uint16_t; typedef signed short int16_t; +# endif + +# if defined ZZIP_SIZEOF_INT && ZZIP_SIZEOF_INT == 4 + typedef unsigned int uint32_t; typedef signed int int32_t; +# elif defined ZZIP_SIZEOF_LONG && ZZIP_SIZEOF_LONG == 4 + typedef unsigned long uint32_t; typedef signed long int32_t; +# else +# error unable to typedef int32_t from either int or long + typedef unsigned long uint32_t; typedef signed long int32_t; +# endif + +typedef unsigned _zzip___int64 uint64_t; typedef _zzip___int64 int64_t; +#endif + +#endif /*_ZZIP_STDINT_H*/ + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/types.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/types.h new file mode 100644 index 00000000000..6f9c6e6f983 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/types.h @@ -0,0 +1,57 @@ +/* + * unlike in <zzip/conf.h> we are allowed to make up typedefs here, + * while over there only #defines are allowed + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2003,2004 Guido Draheim + * All rights reserved, + * usage allowed under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + * + * This file is usually the first to define some real symbols. If you do + * see some errors here then it is most likely the includepath is wrong + * or some includeheader is missing / unreadable on your system. + * (a) we include local headers with a "zzip/" prefix just to be sure + * to not actually get the wrong one. Consider to add `-I..` somewhere + * and especially VC/IDE users (who make up their own workspace files) + * should include the root source directory of this project. + * (b) size_t and ssize_t are sometimes found be `configure` but they are + * not in the usual places (ANSI C = stddef.h; UNIX = sys/types.h), so + * be sure to look for them and add the respective header as an #include. + */ + +#ifndef _ZZIP_TYPES_H_ +#define _ZZIP_TYPES_H_ + +#include <zzip/conf.h> +#include <fcntl.h> +#include <stddef.h> /* size_t and friends */ +#ifdef ZZIP_HAVE_SYS_TYPES_H +#include <sys/types.h> /* bsd (mac) has size_t here */ +#endif +/* msvc6 has neither ssize_t (we assume "int") nor off_t (assume "long") */ + +typedef unsigned char zzip_byte_t; // especially zlib decoding data + +typedef _zzip_off64_t zzip_off64_t; +typedef _zzip_off_t zzip_off_t; +typedef _zzip_size_t zzip_size_t; /* Some error here? */ +typedef _zzip_ssize_t zzip_ssize_t; /* See notes above! */ + +/* in <zzip/format.h> */ +typedef struct zzip_disk64_trailer ZZIP_DISK64_TRAILER; +typedef struct zzip_disk_trailer ZZIP_DISK_TRAILER; +typedef struct zzip_file_trailer ZZIP_FILE_TRAILER; +typedef struct zzip_root_dirent ZZIP_ROOT_DIRENT; +typedef struct zzip_file_header ZZIP_FILE_HEADER; +typedef struct zzip_disk_entry ZZIP_DISK_ENTRY; +typedef struct zzip_extra_block ZZIP_EXTRA_BLOCK; + + + +#endif + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/write.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/write.c new file mode 100644 index 00000000000..7521e204bee --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/write.c @@ -0,0 +1,493 @@ + +/* + * The write-support in zziplib is not a full-flegded interface to the + * internals that zip file-header or zip archive an contain. It's + * primary use goes for savegames or transfer `pack-n-go` archives + * where time-stamps are rather unimportant. Here we can create an + * archive with filenames and their data portions, possibly obfuscated. + * + * DONT USE THIS + * + * The write support is supposed to be added directly into the main + * zziplib but it has not been implemented so far. It does however + * export the relevant call entries which will return EROFS (read-only + * filesystem) in case they are being called. That allows later programs + * to start up with earlier versions of zziplib that can only read ZIPs. + * + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#define _ZZIP_WRITE_SOURCE + +#if defined DDDD || defined DDDDD || defined DDDDDD || defined DDDDDDD +#define _ZZIP_ENABLE_WRITE +#else /* per default, we add support for passthrough to posix write */ +#define _ZZIP_POSIX_WRITE +#endif + +#include <zzip/write.h> /* #includes <zzip/lib.h> */ +#include <zzip/file.h> + +#include <string.h> +#include <sys/stat.h> +#include <errno.h> +#include <stdlib.h> +#include <ctype.h> + +#ifdef ZZIP_HAVE_DIRECT_H +#include <direct.h> +#endif + +#include <zzip/format.h> +#include <zzip/plugin.h> +#include <zzip/__debug.h> + +#define ___ { +#define ____ } + +#ifndef EROFS +# ifdef ENOSYS +#define EROFS ENOSYS +# else +#define EROFS EPERM +#endif +#endif + +/* try real zlib routines for writing ? very experimental, very very ex... */ +#ifndef _ZZIP_ENABLE_WRITE +#define _ZZIP_TRY 0 +#else +#define _ZZIP_TRY 1 +#endif + +/* btw, is there any system that did define those different ? get away.. */ +# ifndef S_IWGRP +# define S_IWGRP 00020 +# endif +# ifndef S_IRWXO +# define S_IRWXO 00007 +# endif + +# ifdef ZZIP_HAVE_DIRECT_H +# define _mkdir(a,b) mkdir(a) +# else +# define _mkdir mkdir +# endif + +/** create a new zip archive for writing + * + * This function will create a new zip archive. The returned parameter + * is a new "zzip dir" handle that should be saved to a variable so it + * can be used a base argument for => zzip_mkdir and => zzip_creat calls. + * The returned handle represents a zip central directory that must be + * saved to disk using => zzip_closedir. + * + * Returns null on error and sets errno. Remember, according to posix + * the => creat(2) call is equivalent to + open (path, O_WRONLY | O_CREAT | O_TRUNC, o_mode) + * so any previous zip-archive will be overwritten unconditionally and + * EEXIST errors from => mkdir(2) are suppressed. (fixme: delete the + * given subtree? like suggested by O_TRUNC? not done so far!) + */ +ZZIP_DIR * +zzip_dir_creat(zzip_char_t * name, int o_mode) +{ + return zzip_dir_creat_ext_io(name, o_mode, 0, 0); +} + +/** => zzip_dir_creat + * + * If the third argument "ext" has another special meaning here, as it + * is used to ensure that a given zip-file is created with the first entry + * of the ext-list appended as an extension unless the file-path already + * ends with a file-extension registered in the list. Therefore {"",0} + * matches all files and creates them as zip-archives under the given + * nonmodified name. (Some magic here? If the path ends in the path + * separator then make a real directory even in the presence of ext-list?) + * + * This function is not yet implemented, check for #def ZZIP_NO_CREAT + * Write-support will extend => zzip_closedir with semantics to finalize the + * zip-archive by writing the zip-trailer and closing the archive file. + */ +ZZIP_DIR * +zzip_dir_creat_ext_io(zzip_char_t * name, int o_mode, + zzip_strings_t * ext, zzip_plugin_io_t io) +{ + if (! io) + io = zzip_get_default_io(); + + if (io != zzip_get_default_io()) + { + /* the current io-structure does not contain a "write" entry, + * and therefore this parameter is useless. Anyone to expect + * some behavior should be warned, so here we let the function + * fail bluntly - and leaving the recovery to the application + */ + errno = EINVAL; + return 0; + } + + + if (! _ZZIP_TRY) + { + /* not implemented - however, we respect that a null argument to + * zzip_mkdir and zzip_creat works, so we silently still do the mkdir + */ + if (! _mkdir(name, o_mode) || errno == EEXIST) + errno = EROFS; + return 0; + } else + { +# define MAX_EXT_LEN 10 + ZZIP_DIR *dir = zzip_dir_alloc(ext); + int name_len = strlen(name); + dir->realname = malloc(name_len + MAX_EXT_LEN); + if (! dir->realname) + goto error; + + memcpy(dir->realname, name, name_len + 1); + ___ int fd = + __zzip_try_open(dir->realname, O_EXCL | O_TRUNC | O_WRONLY, ext, + io); + if (fd != -1) + { dir->fd = fd; return dir; } + + ___ zzip_strings_t *exx = ext; + int exx_len; + for (; *exx; exx++) + { + if ((exx_len = strlen(*exx) + 1) <= name_len && + ! memcmp(dir->realname + (name_len - exx_len), *exx, exx_len)) + break; /* keep unmodified */ + exx++; + if (*exx) + continue; + + if (! (exx_len = strlen(*exx)) || exx_len >= MAX_EXT_LEN) + break; + memcpy(dir->realname + name_len, exx, exx_len); /* append! */ + } + ____; + fd = (io->fd.open)(dir->realname, O_CREAT | O_TRUNC | O_WRONLY, o_mode); + dir->realname[name_len] = '\0'; /* keep ummodified */ + if (fd != -1) + { dir->fd = fd; return dir; } + error: + zzip_dir_free(dir); + return 0; + ____; + } +} + +/** create a new archive area for writing + * + * This function will create a new archive area. This may either be a + * a new zip archive or a new directory in the filesystem. The returned + * parameter is a new "zzip dir" handle that should be saved to a variable + * so it can be used a base argument for => zzip_file_mkdir and + * => zzip_file_creat calls. The returned handle wraps both possibilities, + * it can be representing a zip central directory that must be + * saved to disk using => zzip_closedir or it is just a handle for the + * name of the real directory that still must be run through + * => zzip_closedir to release the wrapper around the directory name. + * + * The magic is pushed through the o_mode argument. Using a mode that + * has no group-write bit set (S_IWGRP = 0040) then the file is + * created as a zip directory. Note that this is unabridged of any + * umask value in the system where the argument to this function could + * be 0775 but with an umask of 0755 it turns out as 0755 for a real + * directory. Using 0755 directly would not create it as a real directory + * but as a zip archive handle. + * + * This function is not yet implemented, check for #def ZZIP_NO_CREAT + * Write-support will extend => zzip_closedir with semantics to finalize the + * zip-archive by writing the zip-trailer and closing the archive file. + * + * Returns null on error and sets errno. Remember, according to posix + * the => creat(2) call is equivalent to + open (path, O_WRONLY | O_CREAT | O_TRUNC, o_mode) + * so any previous zip-archive will be overwritten unconditionally and + * EEXIST errors from => mkdir(2) are suppressed. (fixme: delete the + * given subtree? like suggested by O_TRUNC? not done so far!) + */ +ZZIP_DIR * +zzip_createdir(zzip_char_t * name, int o_mode) +{ + if (o_mode & S_IWGRP) + { + if (-1 == _mkdir(name, o_mode) && errno != EEXIST) /* fail */ + return 0; + return zzip_opendir(name); + } else + return zzip_dir_creat(name, o_mode); +} + +/** => zzip_file_creat also: mkdir(2), creat(2), zzip_dir_creat + * + * This function has an additional primary argument over the posix + * mkdir(2) - if it is null then this function behaves just like + * posix mkdir(2). The zzip_dir argument can be set to the result + * of a => zzip_createdir which allows for some magic that the + * given directory name is created as an entry in the zip archive. + * + * If the given dir name argument is not within the basepath of + * the zip central directory then a real directory is created. + * Any EEXIST errors are not suppressed unlike with => zzip_createdir + * + * Standard usage accepts a global/threaded/modular ZZIP_DIR pointer + * for all zip archive operations like in: + ZZIP_DIR* zip = zzip_createdir (sysconfpath, 0755, zip); + zzip_file_mkdir (zip, filepath[i], 0755); + ZZIP_FILE* file = zzip_file_creat (zip, filename[i], 0644); + zzip_write (file, buf, len); + zzip_close (file); file = 0; + zzip_closedir (zip); zip = 0; + * + * compare with => zzip_mkdir inline macro which allows to + * collapse the examples script to + #define zzip_savefile myproject_saveconfig + #include <zzip/zzip.h> + ZZIP_DIR* zzip_savefile = zzip_createdir (sysconfpath, 0755); + zzip_mkdir (filepath[i], 0755); + ZZIP_FILE* file = zzip_creat(filepath[i], 0644); + zzip_write (file, buf, len); + zzip_close (file); file = 0; + zzip_closedir (zip_savefile); + */ +int +zzip_file_mkdir(ZZIP_DIR * dir, zzip_char_t * name, int o_mode) +{ + if (! dir) + return _mkdir(name, o_mode); + + if (! _ZZIP_TRY) + { /* not implemented */ + errno = EROFS; + return -1; + } else + { + errno = EROFS; + return -1; + } +} + +/** start next file entry in a zip archive + * + * This function will create a new file within a zzip archive, the + * one given as the primary argument and additionally to the posix + * creat(2) - just like zzip_mkdir has an additional argument over + * the posix mkdir(2) spec. For this function the primary parameter + * can be null as well thereby creating a real file instead of a new + * one inside the zip-archive otherwise given. If the primary parameter is + * not null but wraps a real directory then all new files are also real. + * + * This function is not yet implemented, check for #def ZZIP_NO_CREAT + * + * Returns NULL on an error setting errno, and opening a file _within_ + * a zip archive using O_RDONLY (and similar stuff) will surely lead to + * an error. + */ +ZZIP_FILE * +zzip_file_creat(ZZIP_DIR * dir, zzip_char_t * name, int o_mode) +{ + if (! dir) + return zzip_open(name, o_mode); + + if (! _ZZIP_TRY) + { /* not implemented */ + errno = EROFS; + return 0; + } else + { + errno = EROFS; + return 0; + } +} + +/** write to zzip storage also: write(2), zlib(3) + * + * This function will write data to a file descriptor. If the file + * descriptor represents a real file then it will be forwarded to + * call posix => write(2) directly. If it is a descriptor for a + * file within a zip directory then the data will be "deflated" + * using => zlib(3) and appended to the zip archive file. + */ +zzip_ssize_t +zzip_write(ZZIP_FILE * file, const void *ptr, zzip_size_t len) +{ + if (zzip_file_real(file)) + return write(zzip_realfd(file), ptr, len); + else + return zzip_file_write(file, ptr, len); +} + +/** => zzip_write also: zzip_file_creat + * + * This function will write data to a file descriptor inside a zip + * archive. The data will be "deflated" using => zlib(3) compression + * and appended to the end of the zip archive file. Only one file + * descriptor may be open per zzip_dir archive handle (fifo-like). + * + * This function is not yet implemented, check for #def ZZIP_NO_CREAT + * It returns immediately -1 and sets errno=EROFS for indication. + */ +zzip_ssize_t +zzip_file_write(ZZIP_FILE * file, const void *ptr, zzip_size_t len) +{ + if (! _ZZIP_TRY) + { /* not implemented */ + errno = EROFS; + return -1; + } else + { + /* add calls to zlib here... */ + errno = EROFS; + return -1; + } +} + +/** => zzip_write + * This function is the stdc variant for writing and the arguments + * are forwarded to => zzip_write - the return value is floored to + * null as for STDC spec but there is no zzip_ferror call so far + * for the zziplib (later? is it actually needed?). + * + * This function is not yet implemented, check for #def ZZIP_NO_CREAT + * Write-support extends => zzip_close with semantics to write out a + * file-trailer to the zip-archive leaving a name/offset marker in + * the (still-open) ZZIP_DIR handle. + */ +zzip_size_t +zzip_fwrite(const void *ptr, zzip_size_t len, zzip_size_t multiply, + ZZIP_FILE * file) +{ + zzip_ssize_t value = zzip_write(file, ptr, len * multiply); + if (value == -1) + value = 0; + return (zzip_size_t) value; +} + +#if 0 /* pure documentation */ + +/** create a zipped file/directory also: zzip_dir_creat, mkdir(2) + * + * This function creates a directory entry in the default zip-archive. + * If you did not specify a "#define zzip_savefile somevar" + * then the default zip-archive is null and all directories are + * created as real directories in the filesystem. This function is + * really a preprocessor macro or preferably an inline function + * around => zzip_file_mkdir, there is no such symbol generated + * into the library. The prototype is modelled after the posix + * => mkdir(2) call. + #ifndef zzip_savefile + #define zzip_savefile 0 + #endif + #define zzip_mkdir(name,mode) \ - + zzip_file_mkdir(zzip_savefile,name,mode) + * + */ +int inline +zzip_mkdir(zzip_char_t * name, int o_mode) +{ + return zzip_file_creat(zzip_savefile, name, mode); +} +#endif + +#if 0 /* pure documentation */ + +/** => zzip_mkdir also: creat(2), zzip_start + * + * This function creates a file in the default zip-archive. + * If you did not specify a "#define zzip_savefile somevar" + * then the default zip-archive is null and all files are created + * as real files. This function is really a preprocessor macro + * or preferably an inline function around => zzip_file_creat, + * there is no such symbol generated into the library. The prototype + * is modelled after the posix => creat(2) call. + #ifndef zzip_savefile + #define zzip_savefile 0 + #endif + #define zzip_creat(name,mode) \ - + zzip_file_creat(zzip_savefile,name,mode) + */ +ZZIP_FILE *inline +zzip_creat(zzip_char_t * name, int o_mode) +{ + return zzip_file_creat(zzip_savefile, name, mode); +} +#endif + + +#if 0 /* pure documentation */ + +/** start writing to the magic zzip_savefile also: zzip_creat, zzip_write + * + * open a zip archive for writing via the magic zzip_savefile macro + * variable. The name and mode are given to => zzip_createdir and + * the result is stored into => zzip_savefile - if the => zzip_savefile + * did already have a zzip_dir handle then it is automatically + * finalized with => zzip_sync and the handle closed and the + * zzip_savefile variable reused for the new zip archive just started + * with this call. - This function is really a preprocessor macro + * or preferably an inline function around => zzip_dir_create, there + * is no such symbol generated into the library. + #ifndef zzip_savefile + #define zzip_savefile 0 + #endif + #define zzip_start(name,mode,ext) \ - + { if (zzip_savefile) zzip_closedir(zzip_savefile); \ - + zzip_savefile = zzip_createdir(name,mode,ext); } + * This function returns null on error or a zzip_dir handle on + * success. It is perfectly okay to continue with a null in the + * zzip_savefile variable since it makes subsequent calls to + * => zzip_creat and => zzip_mkdir to run as => creat(2) / => mkdir(2) + * on the real filesystem. + */ +void inline +zzip_mkfifo(zzip_char_t * name, int o_mode) +{ + if (zzip_savefile) + zzip_closedir(zzip_savefile); + zzip_savefile = zzip_createdir(name, o_mode); +} +#endif + +#if 0 /* pure documentation */ + +/** => zzip_mkfifo also: zzip_closedir, sync(2) + * + * finalize a zip archive thereby writing the central directory to + * the end of the file. If it was a real directory then we do just + * nothing - even that the prototype of the call itself is modelled + * to be similar to the posix => sync(2) call. This function is + * really a preprocessor macro or preferably an inline function + * around => zzip_closedir, there is no such symbol generated + * into the library. + #ifndef zzip_savefile + #define zzip_savefile 0 + #endif + #define zzip_sync(name,mode) \ - + { zzip_closedir(zzip_savefile); zzip_savefile = 0; } + * + */ +void inline +zzip_sync(void) +{ + zzip_closedir(zzip_savefile); + zzip_savefile = 0; +} +#endif + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/write.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/write.h new file mode 100644 index 00000000000..6db6b09eed2 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/write.h @@ -0,0 +1,58 @@ +#ifndef _ZZIP_WRITE_H +#define _ZZIP_WRITE_H + +#include <zzip/lib.h> + +/* ........................................................................ + * write support is not yet implemented + * zzip/write.c + */ +#define ZZIP_NO_CREAT 1 + +ZZIP_DIR* zzip_dir_creat_ext_io(zzip_char_t* name, int o_mode, + zzip_strings_t* ext, zzip_plugin_io_t io); +ZZIP_DIR* zzip_dir_creat(zzip_char_t* name, int o_mode); +int zzip_file_mkdir(ZZIP_DIR* dir, zzip_char_t* name, int o_mode); +ZZIP_FILE* zzip_file_creat(ZZIP_DIR* dir, zzip_char_t* name, int o_mode); +zzip_ssize_t zzip_file_write(ZZIP_FILE* file, + const void* ptr, zzip_size_t len); + +ZZIP_DIR* zzip_createdir(zzip_char_t* name, int o_mode); +zzip_ssize_t zzip_write(ZZIP_FILE* file, const void* ptr, zzip_size_t len); +zzip_size_t zzip_fwrite(const void* ptr, zzip_size_t len, + zzip_size_t multiply, ZZIP_FILE* file); +#ifndef zzip_savefile +#define zzip_savefile 0 +#define zzip_savefile_is_null +#endif + +#ifdef _ZZIP_NO_INLINE +#define zzip_mkdir(_name_,_mode_) \ + zzip_file_mkdir((zzip_savefile),(_name_),(_mode_)) +#define zzip_creat(_name_,_mode_) \ + zzip_file_creat((zzip_savefile),(_name_),(_mode_)) +#define zzip_sync() \ + { zzip_closedir((zzip_savefile)); (zzip_savefile) = 0; } +#define zzip_start(_name_,_mode_,_ext_) \ + { if ((zzip_savefile)) zzip_closedir((zzip_savefile)); + zzip_savefile = zzip_dir_creat(_name_, _mode_,_ext_); } + +#else + +_zzip_inline static int zzip_mkdir(zzip_char_t* name, int o_mode) +{ return zzip_file_mkdir(zzip_savefile, name, o_mode); } +_zzip_inline static ZZIP_FILE* zzip_creat(zzip_char_t* name, int o_mode) +{ return zzip_file_creat(zzip_savefile, name, o_mode); } + +#ifndef zzip_savefile_is_null +_zzip_inline static void zzip_sync(void) +{ zzip_closedir(zzip_savefile); zzip_savefile = 0; } +_zzip_inline static void zzip_mkfifo(zzip_char_t* name, int o_mode) +{ if ((zzip_savefile)) zzip_closedir (zzip_savefile); + zzip_savefile = zzip_createdir(_name_,_mode_); } +#else +_zzip_inline static void zzip_sync(void) {} +_zzip_inline static void zzip_mkfifo(zzip_char_t* name, int o_mode) {} +#endif +#endif /* _ZZIP_NO_INLINE */ +#endif /* _ZZIP_WRITE_H */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zip.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zip.c new file mode 100644 index 00000000000..a574b24be18 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zip.c @@ -0,0 +1,866 @@ + +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * Tomi Ollila <too@iki.fi> + * + * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim + * All rights reserved, + * use under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + */ + +#include <zzip/lib.h> /* archive handling */ +#include <zzip/file.h> +#include <zzip/format.h> +#include <zzip/fetch.h> + +#include <ctype.h> +#include <errno.h> +#include <stdlib.h> +#include <string.h> +#include <fcntl.h> +#ifdef ZZIP_HAVE_SYS_STAT_H +#include <sys/stat.h> +#endif + +#include <zzip/__mmap.h> +#include <zzip/__debug.h> + +#define __sizeof(X) ((zzip_ssize_t)(sizeof(X))) + +#ifndef ZZIP_EASY +/* per default, we use a little hack to correct bad z_rootseek parts */ +#define ZZIP_CORRECT_ROOTSEEK 1 +#endif + +#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ >= 4) +# ifdef DEBUG +# warning suppress a warning where the compiler should have optimized instead. +# endif +#define _255 254 +#else +#define _255 255 +#endif + +#define ZZIP_DISK64_TRAILER 1 + +#ifdef ZZIP_DISK64_TRAILER +struct _disk_trailer +{ + void *zz_tail; + void *zz_for_correct_rootseek; // ZZIP_CORRECT_ROOTSEEK + zzip_off64_t zz_entries; + zzip_off64_t zz_finalentries; + zzip_off64_t zz_rootseek; + zzip_off64_t zz_rootsize; +}; +#define _disk_trailer_entries(__p) ((__p)->zz_entries) +#define _disk_trailer_localentries(__p) ((__p)->zz_entries) +#define _disk_trailer_finalentries(__p) ((__p)->zz_entries) +#define _disk_trailer_rootseek(__p) ((__p)->zz_rootseek) +#define _disk_trailer_rootsize(__p) ((__p)->zz_rootsize) +#define _disk_trailer_set_rootseek(__p,__v) ((__p)->rootseek = (__v)) + +#else +#define _disk_trailer zzip_disk_trailer +#define _disk_trailer_entries zzip_disk_trailer_entries +#define _disk_trailer_localentries zzip_disk_trailer_localentries +#define _disk_trailer_finalentries zzip_disk_trailer_finalentries +#define _disk_trailer_rootseek zzip_disk_trailer_rootseek +#define _disk_trailer_rootsize zzip_disk_trailer_rootsize +#define _disk_trailer_set_rootseek zzip_disk_trailer_set_rootseek +#define __zzip_fetch_disk_trailer __zzip_find_disk_trailer +#endif + +/* --------------------------- internals -------------------------------- */ + +/* internal functions of zziplib, avoid at all cost, changes w/o warning. + * we do export them for debugging purpose and special external tools + * which know what they do and which can adapt from version to version + */ + +int __zzip_fetch_disk_trailer(int fd, zzip_off_t filesize, + struct _disk_trailer *_zzip_restrict trailer, + zzip_plugin_io_t io); +int __zzip_parse_root_directory(int fd, + struct _disk_trailer *trailer, + struct zzip_dir_hdr **hdr_return, + zzip_plugin_io_t io); + +_zzip_inline static char *__zzip_aligned4(char *p); + +/* ------------------------ harden routines ------------------------------ */ + +#ifdef ZZIP_HARDEN + +/* + * check for inconsistent values in trailer and prefer lower seek value + * - we fix values assuming the root directory was written at the end + * and it is just before the zip trailer. Therefore, ... + */ +_zzip_inline static void +__fixup_rootseek(zzip_off_t offset_of_trailer, struct _disk_trailer *trailer) +{ + if (_disk_trailer_rootseek(trailer) > + offset_of_trailer - _disk_trailer_rootsize(trailer) && + offset_of_trailer > _disk_trailer_rootsize(trailer)) + { + register zzip_off_t offset; + offset = offset_of_trailer - _disk_trailer_rootsize(trailer); + _disk_trailer_set_rootseek(trailer, offset); + HINT2("new rootseek=%li", (long) _disk_trailer_rootseek(trailer)); + } +} + +#define __correct_rootseek(A,B,C) + +#elif defined ZZIP_CORRECT_ROOTSEEK + +/* store the seekvalue of the trailer into the "z_magic" field and with + * a 64bit off_t we overwrite z_disk/z_finaldisk as well. If you change + * anything in zziplib or dump the trailer structure then watch out that + * these are still unused, so that this code may still (ab)use those. */ +#define __fixup_rootseek(_offset_of_trailer, _trailer) \ + *(zzip_off_t*)_trailer = _offset_of_trailer; +#define __correct_rootseek( _u_rootseek, _u_rootsize, _trailer) \ + if (_u_rootseek > *(zzip_off_t*)_trailer - _u_rootsize) \ + _u_rootseek = *(zzip_off_t*)_trailer - _u_rootsize; +#else +#define __fixup_rootseek(A,B) +#define __correct_rootseek(A,B,C) +#endif + + +#ifdef DEBUG +_zzip_inline static void +__debug_dir_hdr(struct zzip_dir_hdr *hdr) +{ + if (sizeof(struct zzip_dir_hdr) > sizeof(struct zzip_disk_entry)) + { WARN1("internal sizeof-mismatch may break wreakage"); } + /* the internal directory structure is never bigger than the + * external zip central directory space had been beforehand + * (as long as the following assertion holds...) + */ + + if (((zzip_off_t) hdr) & 3) + { + NOTE1("this machine's malloc(3) returns sth. not u32-aligned"); + } + /* we assume that if this machine's malloc has returned a non-aligned + * memory block, then it is actually safe to access misaligned data, and + * since it does only affect the first hdr it should not even bring about + * too much of that cpu's speed penalty + */ +} +#else +#define __debug_dir_hdr(X) +#endif + +/* -------------------------- low-level interface -------------------------- */ + +#if defined BUFSIZ +#if BUFSIZ == 1024 || BUFSIZ == 512 || BUFSIZ == 256 +#define ZZIP_BUFSIZ BUFSIZ +#endif +#endif + +#ifndef ZZIP_BUFSIZ +#define ZZIP_BUFSIZ 512 + +/* #define ZZIP_BUFSIZ 64 / * for testing */ +#endif + +/** + * This function is used by => zzip_file_open. It tries to find + * the zip's central directory info that is usually a few + * bytes off the end of the file. + */ +int +__zzip_fetch_disk_trailer(int fd, zzip_off_t filesize, + struct _disk_trailer *_zzip_restrict trailer, + zzip_plugin_io_t io) +{ +#ifdef DEBUG +#define return(val) { e=val; HINT2("%s", zzip_strerror(e)); goto cleanup; } +#else +#define return(val) { e=val; goto cleanup; } +#endif + register int e; + +#ifndef _LOWSTK + auto char buffer[2 * ZZIP_BUFSIZ]; + char *buf = buffer; +#else + char *buf = malloc(2 * ZZIP_BUFSIZ); +#endif + zzip_off_t offset = 0; + zzip_ssize_t maplen = 0; /* mmap(),read(),getpagesize() use size_t !! */ + char *fd_map = 0; + + if (! trailer) + { return(EINVAL); } + + if (filesize < __sizeof(struct zzip_disk_trailer)) + { return(ZZIP_DIR_TOO_SHORT); } + + if (! buf) + { return(ZZIP_OUTOFMEM); } + + offset = filesize; /* a.k.a. old offset */ + while (1) /* outer loop */ + { + register unsigned char *mapped; + + if (offset <= 0) + { return(ZZIP_DIR_EDH_MISSING); } + + /* trailer cannot be farther away than 64K from fileend */ + if (filesize - offset > 64 * 1024) + { return(ZZIP_DIR_EDH_MISSING); } + + /* the new offset shall overlap with the area after the old offset! */ + if (USE_MMAP && io->fd.sys) + { + zzip_off_t mapoff = offset; + { + zzip_ssize_t pagesize = _zzip_getpagesize(io->fd.sys); + if (pagesize < ZZIP_BUFSIZ) + goto non_mmap; /* an error? */ + if (mapoff == filesize && filesize > pagesize) + mapoff -= pagesize; + if (mapoff < pagesize) + { + maplen = (zzip_ssize_t) mapoff + pagesize; + mapoff = 0; + } else + { + mapoff -= pagesize; + maplen = 2 * pagesize; + if ((zzip_ssize_t) mapoff & (pagesize - 1)) + { /*only 1. run */ + pagesize -= (zzip_ssize_t) mapoff & (pagesize - 1); + mapoff += pagesize; + maplen -= pagesize; + } + } + if (mapoff + maplen > filesize) + maplen = filesize - mapoff; + } + + fd_map = _zzip_mmap(io->fd.sys, fd, mapoff, (zzip_size_t) maplen); + if (fd_map == MAP_FAILED) + goto non_mmap; + mapped = (unsigned char *) fd_map; + offset = mapoff; /* success */ + HINT3("mapped *%p len=%li", fd_map, (long) maplen); + } else + { + non_mmap: + fd_map = 0; /* have no mmap */ + { + zzip_off_t pagesize = ZZIP_BUFSIZ; + if (offset == filesize && filesize > pagesize) + offset -= pagesize; + if (offset < pagesize) + { + maplen = (zzip_ssize_t) offset + pagesize; + offset = 0; + } else + { + offset -= pagesize; + maplen = 2 * pagesize; + if ((zzip_ssize_t) offset & (pagesize - 1)) + { /*on 1st run */ + pagesize -= (zzip_ssize_t) offset & (pagesize - 1); + offset += pagesize; + maplen -= pagesize; + } + } + if (offset + maplen > filesize) + maplen = filesize - offset; + } + + if (io->fd.seeks(fd, offset, SEEK_SET) < 0) + { return(ZZIP_DIR_SEEK); } + if (io->fd.read(fd, buf, (zzip_size_t) maplen) < maplen) + { return(ZZIP_DIR_READ); } + mapped = (unsigned char *) buf; /* success */ + HINT5("offs=$%lx len=%li filesize=%li pagesize=%i", + (long) offset, (long) maplen, (long) filesize, ZZIP_BUFSIZ); + } + + { /* now, check for the trailer-magic, hopefully near the end of file */ + register unsigned char *end = mapped + maplen; + register unsigned char *tail; + for (tail = end - 1; (tail >= mapped); tail--) + { + if ((*tail == 'P') && /* quick pre-check for trailer magic */ + end - tail >= __sizeof(struct zzip_disk_trailer) - 2 && + zzip_disk_trailer_check_magic(tail)) + { +# ifndef ZZIP_DISK64_TRAILER + /* if the file-comment is not present, it happens + that the z_comment field often isn't either */ + if (end - tail >= __sizeof(*trailer)) + { + memcpy(trailer, tail, sizeof(*trailer)); + } else + { + memcpy(trailer, tail, sizeof(*trailer) - 2); + trailer->z_comment[0] = 0; + trailer->z_comment[1] = 0; + } +# else + struct zzip_disk_trailer *orig = + (struct zzip_disk_trailer *) tail; + trailer->zz_tail = tail; + trailer->zz_entries = zzip_disk_trailer_localentries(orig); + trailer->zz_finalentries = + zzip_disk_trailer_finalentries(orig); + trailer->zz_rootseek = zzip_disk_trailer_rootseek(orig); + trailer->zz_rootsize = zzip_disk_trailer_rootsize(orig); +# endif + + __fixup_rootseek(offset + tail - mapped, trailer); + { return(0); } + } else if ((*tail == 'P') && + end - tail >= + __sizeof(struct zzip_disk64_trailer) - 2 + && zzip_disk64_trailer_check_magic(tail)) + { +# ifndef ZZIP_DISK64_TRAILER + return (ZZIP_DIR_LARGEFILE); +# else + struct zzip_disk64_trailer *orig = + (struct zzip_disk64_trailer *) tail; + trailer->zz_tail = tail; + trailer->zz_entries = + zzip_disk64_trailer_localentries(orig); + trailer->zz_finalentries = + zzip_disk64_trailer_finalentries(orig); + trailer->zz_rootseek = zzip_disk64_trailer_rootseek(orig); + trailer->zz_rootsize = zzip_disk64_trailer_rootsize(orig); + { return(0); } +# endif + } + } + } + + if (USE_MMAP && fd_map) + { + HINT3("unmap *%p len=%li", fd_map, (long) maplen); + _zzip_munmap(io->fd.sys, fd_map, (zzip_size_t) maplen); + fd_map = 0; + } + } /*outer loop */ + + cleanup: + if (USE_MMAP && fd_map) + { + HINT3("unmap *%p len=%li", fd_map, (long) maplen); + _zzip_munmap(io->fd.sys, fd_map, (zzip_size_t) maplen); + } +# ifdef _LOWSTK + free(buf); +# endif +# undef return + return e; +} + +/* + * making pointer alignments to values that can be handled as structures + * is tricky. We assume here that an align(4) is sufficient even for + * 64 bit machines. Note that binary operations are not usually allowed + * to pointer types but we do need only the lower bits in this implementation, + * so we can just cast the value to a long value. + */ +_zzip_inline static char * +__zzip_aligned4(char *p) +{ +#define aligned4 __zzip_aligned4 + p += ((long) p) & 1; /* warnings about truncation of a "pointer" */ + p += ((long) p) & 2; /* to a "long int" may be safely ignored :) */ + return p; +} + +/** + * This function is used by => zzip_file_open, it is usually called after + * => __zzip_find_disk_trailer. It will parse the zip's central directory + * information and create a zziplib private directory table in + * memory. + */ +int +__zzip_parse_root_directory(int fd, + struct _disk_trailer *trailer, + struct zzip_dir_hdr **hdr_return, + zzip_plugin_io_t io) +{ + auto struct zzip_disk_entry dirent; + struct zzip_dir_hdr *hdr; + struct zzip_dir_hdr *hdr0; + uint16_t *p_reclen = 0; + zzip_off64_t entries; + zzip_off64_t zz_offset; /* offset from start of root directory */ + char *fd_map = 0; + zzip_off64_t zz_fd_gap = 0; + zzip_off64_t zz_entries = _disk_trailer_localentries(trailer); + zzip_off64_t zz_rootsize = _disk_trailer_rootsize(trailer); + zzip_off64_t zz_rootseek = _disk_trailer_rootseek(trailer); + __correct_rootseek(zz_rootseek, zz_rootsize, trailer); + + hdr0 = (struct zzip_dir_hdr *) malloc(zz_rootsize); + if (! hdr0) + return ZZIP_DIRSIZE; + hdr = hdr0; + __debug_dir_hdr(hdr); + + if (USE_MMAP && io->fd.sys) + { + zz_fd_gap = zz_rootseek & (_zzip_getpagesize(io->fd.sys) - 1); + HINT4(" fd_gap=%ld, mapseek=0x%lx, maplen=%ld", (long) (zz_fd_gap), + (long) (zz_rootseek - zz_fd_gap), + (long) (zz_rootsize + zz_fd_gap)); + fd_map = + _zzip_mmap(io->fd.sys, fd, zz_rootseek - zz_fd_gap, + zz_rootsize + zz_fd_gap); + /* if mmap failed we will fallback to seek/read mode */ + if (fd_map == MAP_FAILED) + { + NOTE2("map failed: %s", strerror(errno)); + fd_map = 0; + } else + { + HINT3("mapped *%p len=%li", fd_map, + (long) (zz_rootsize + zz_fd_gap)); + } + } + + for (entries=0, zz_offset=0; ; entries++) + { + register struct zzip_disk_entry *d; + uint16_t u_extras, u_comment, u_namlen; + +# ifndef ZZIP_ALLOW_MODULO_ENTRIES + if (entries >= zz_entries) { + if (zz_offset + 256 < zz_rootsize) { + FAIL4("%li's entry is long before the end of directory - enable modulo_entries? (O:%li R:%li)", + (long) entries, (long) (zz_offset), (long) zz_rootsize); + } + break; + } +# endif + + if (fd_map) + { d = (void*)(fd_map+zz_fd_gap+zz_offset); } /* fd_map+fd_gap==u_rootseek */ + else + { + if (io->fd.seeks(fd, zz_rootseek + zz_offset, SEEK_SET) < 0) + return ZZIP_DIR_SEEK; + if (io->fd.read(fd, &dirent, sizeof(dirent)) < __sizeof(dirent)) + return ZZIP_DIR_READ; + d = &dirent; + } + + if ((zzip_off64_t) (zz_offset + sizeof(*d)) > zz_rootsize || + (zzip_off64_t) (zz_offset + sizeof(*d)) < 0) + { + FAIL4("%li's entry stretches beyond root directory (O:%li R:%li)", + (long) entries, (long) (zz_offset), (long) zz_rootsize); + break; + } + + if (! zzip_disk_entry_check_magic(d)) { +# ifndef ZZIP_ALLOW_MODULO_ENTRIES + FAIL4("%li's entry has no disk_entry magic indicator (O:%li R:%li)", + (long) entries, (long) (zz_offset), (long) zz_rootsize); +# endif + break; + } + +# if 0 && defined DEBUG + zzip_debug_xbuf((unsigned char *) d, sizeof(*d) + 8); +# endif + + u_extras = zzip_disk_entry_get_extras(d); + u_comment = zzip_disk_entry_get_comment(d); + u_namlen = zzip_disk_entry_get_namlen(d); + HINT5("offset=0x%lx, size %ld, dirent *%p, hdr %p\n", + (long) (zz_offset + zz_rootseek), (long) zz_rootsize, d, hdr); + + /* writes over the read buffer, Since the structure where data is + copied is smaller than the data in buffer this can be done. + It is important that the order of setting the fields is considered + when filling the structure, so that some data is not trashed in + first structure read. + at the end the whole copied list of structures is copied into + newly allocated buffer */ + hdr->d_crc32 = zzip_disk_entry_get_crc32(d); + hdr->d_csize = zzip_disk_entry_get_csize(d); + hdr->d_usize = zzip_disk_entry_get_usize(d); + hdr->d_off = zzip_disk_entry_get_offset(d); + hdr->d_compr = zzip_disk_entry_get_compr(d); + if (hdr->d_compr > _255) + hdr->d_compr = 255; + + if ((zzip_off64_t) (zz_offset + sizeof(*d) + u_namlen) > zz_rootsize || + (zzip_off64_t) (zz_offset + sizeof(*d) + u_namlen) < 0) + { + FAIL4("%li's name stretches beyond root directory (O:%li N:%li)", + (long) entries, (long) (zz_offset), (long) (u_namlen)); + break; + } + + if (fd_map) + { memcpy(hdr->d_name, fd_map+zz_fd_gap + zz_offset+sizeof(*d), u_namlen); } + else + { io->fd.read(fd, hdr->d_name, u_namlen); } + hdr->d_name[u_namlen] = '\0'; + hdr->d_namlen = u_namlen; + + /* update offset by the total length of this entry -> next entry */ + zz_offset += sizeof(*d) + u_namlen + u_extras + u_comment; + + if (zz_offset > zz_rootsize) + { + FAIL3("%li's entry stretches beyond root directory (O:%li)", + (long) entries, (long) (zz_offset)); + entries ++; + break; + } + + HINT5("file %ld { compr=%d crc32=$%x offset=%d", + (long) entries, hdr->d_compr, hdr->d_crc32, hdr->d_off); + HINT5("csize=%d usize=%d namlen=%d extras=%d", + hdr->d_csize, hdr->d_usize, u_namlen, u_extras); + HINT5("comment=%d name='%s' %s <sizeof %d> } ", + u_comment, hdr->d_name, "", (int) sizeof(*d)); + + p_reclen = &hdr->d_reclen; + + { + register char *p = (char *) hdr; + register char *q = aligned4(p + sizeof(*hdr) + u_namlen + 1); + *p_reclen = (uint16_t) (q - p); + hdr = (struct zzip_dir_hdr *) q; + } + } /*for */ + + if (USE_MMAP && fd_map) + { + HINT3("unmap *%p len=%li", fd_map, (long) (zz_rootsize + zz_fd_gap)); + _zzip_munmap(io->fd.sys, fd_map, zz_rootsize + zz_fd_gap); + } + + if (p_reclen) + { + *p_reclen = 0; /* mark end of list */ + + if (hdr_return) + *hdr_return = hdr0; + } /* else zero (sane) entries */ +# ifndef ZZIP_ALLOW_MODULO_ENTRIES + return (entries != zz_entries ? ZZIP_CORRUPTED : 0); +# else + return ((entries & (unsigned)0xFFFF) != zz_entries ? ZZIP_CORRUPTED : 0); +# endif +} + +/* ------------------------- high-level interface ------------------------- */ + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static zzip_strings_t * +zzip_get_default_ext(void) +{ + static zzip_strings_t ext[] = { + /* *INDENT-OFF* */ + ".zip", ".ZIP", /* common extension */ +# ifdef ZZIP_USE_ZIPLIKES + ".pk3", ".PK3", /* ID Software's Quake3 zipfiles */ + ".jar", ".JAR", /* Java zipfiles */ +# endif + /* *INDENT-ON* */ + 0 + }; + + return ext; +} + +/** + * allocate a new ZZIP_DIR handle and do basic + * initializations before usage by => zzip_dir_fdopen + * => zzip_dir_open => zzip_file_open or through + * => zzip_open + * (ext==null flags uses { ".zip" , ".ZIP" } ) + * (io ==null flags use of posix io defaults) + */ +ZZIP_DIR * +zzip_dir_alloc_ext_io(zzip_strings_t * ext, const zzip_plugin_io_t io) +{ + ZZIP_DIR *dir; + if ((dir = (ZZIP_DIR *) calloc(1, sizeof(*dir))) == NULL) + return 0; + + /* dir->fileext is currently unused - so what, still initialize it */ + dir->fileext = ext ? ext : zzip_get_default_ext(); + dir->io = io ? io : zzip_get_default_io(); + return dir; +} + +/** => zzip_dir_alloc_ext_io + * this function is obsolete - it was generally used for implementation + * and exported to let other code build on it. It is now advised to + * use => zzip_dir_alloc_ext_io now on explicitly, just set that second + * argument to zero to achieve the same functionality as the old style. + */ +ZZIP_DIR * +zzip_dir_alloc(zzip_strings_t * fileext) +{ + return zzip_dir_alloc_ext_io(fileext, 0); +} + +/** + * will free the zzip_dir handle unless there are still + * zzip_files attached (that may use its cache buffer). + * This is the inverse of => zzip_dir_alloc , and both + * are helper functions used implicitly in other zzipcalls + * e.g. => zzip_dir_close = zzip_close + * + * returns zero on sucess + * returns the refcount when files are attached. + */ +int +zzip_dir_free(ZZIP_DIR * dir) +{ + if (dir->refcount) + return (dir->refcount); /* still open files attached */ + + if (dir->fd >= 0) + dir->io->fd.close(dir->fd); + if (dir->hdr0) + free(dir->hdr0); + if (dir->cache.fp) + free(dir->cache.fp); + if (dir->cache.buf32k) + free(dir->cache.buf32k); + if (dir->realname) + free(dir->realname); + free(dir); + return 0; +} + +/** => zzip_dir_free + * It will also => free(2) the => ZZIP_DIR-handle given. + * the counterpart for => zzip_dir_open + * see also => zzip_dir_free + */ +int +zzip_dir_close(ZZIP_DIR * dir) +{ + dir->refcount &= ~0x10000000; /* explicit dir close */ + return zzip_dir_free(dir); +} + +/** + * used by the => zzip_dir_open and zzip_opendir(2) call. Opens the + * zip-archive as specified with the fd which points to an + * already openend file. This function then search and parse + * the zip's central directory. + * + * NOTE: refcount is zero, so an _open/_close pair will also delete + * this _dirhandle + */ +ZZIP_DIR * +zzip_dir_fdopen(int fd, zzip_error_t * errcode_p) +{ + return zzip_dir_fdopen_ext_io(fd, errcode_p, 0, 0); +} + +static zzip_error_t __zzip_dir_parse(ZZIP_DIR * dir); /* forward */ + +/** => zzip_dir_fdopen + * this function uses explicit ext and io instead of the internal + * defaults, setting these to zero is equivalent to => zzip_dir_fdopen + */ +ZZIP_DIR * +zzip_dir_fdopen_ext_io(int fd, zzip_error_t * errcode_p, + zzip_strings_t * ext, const zzip_plugin_io_t io) +{ + zzip_error_t rv; + ZZIP_DIR *dir; + + if ((dir = zzip_dir_alloc_ext_io(ext, io)) == NULL) + { rv = ZZIP_OUTOFMEM; goto error; } + + dir->fd = fd; + if ((rv = __zzip_dir_parse(dir))) + goto error; + + dir->hdr = dir->hdr0; + dir->refcount |= 0x10000000; + + if (errcode_p) + *errcode_p = rv; + return dir; + error: + if (dir) + zzip_dir_free(dir); + if (errcode_p) + *errcode_p = rv; + return NULL; +} + +static zzip_error_t +__zzip_dir_parse(ZZIP_DIR * dir) +{ + zzip_error_t rv; + zzip_off_t filesize; + struct _disk_trailer trailer; + /* if (! dir || dir->fd < 0) + * { rv = EINVAL; goto error; } + */ + + HINT2("------------------ fd=%i", (int) dir->fd); + if ((filesize = dir->io->fd.filesize(dir->fd)) < 0) + { rv = ZZIP_DIR_STAT; goto error; } + + HINT2("------------------ filesize=%ld", (long) filesize); + if ((rv = __zzip_fetch_disk_trailer(dir->fd, filesize, &trailer, + dir->io)) != 0) + { goto error; } + + HINT5("directory = { entries= %ld/%ld, size= %ld, seek= %ld } ", + (long) _disk_trailer_localentries(&trailer), + (long) _disk_trailer_finalentries(&trailer), + (long) _disk_trailer_rootsize(&trailer), + (long) _disk_trailer_rootseek(&trailer)); + + if ((rv = __zzip_parse_root_directory(dir->fd, &trailer, &dir->hdr0, + dir->io)) != 0) + { goto error; } + error: + return rv; +} + +/** + * This function will attach any of the .zip extensions then + * trying to open it the with => open(2). This is a helper + * function for => zzip_dir_open, => zzip_opendir and => zzip_open. + * + * This function returns a new system file handle or -1 on error. + * On error this function leaves the errno(3) of the underlying + * open(2) call on the last file. + */ +int +__zzip_try_open(zzip_char_t * filename, int filemode, + zzip_strings_t * ext, zzip_plugin_io_t io) +{ + auto char file[PATH_MAX]; + int fd; + zzip_size_t len = strlen(filename); + + if (len + 4 >= PATH_MAX) + { errno = ENAMETOOLONG; return -1; } + memcpy(file, filename, len + 1); + + if (! io) + io = zzip_get_default_io(); + if (! ext) + ext = zzip_get_default_ext(); + + for (; *ext; ++ext) + { + strcpy(file + len, *ext); + fd = (io->fd.open)(file, filemode); + if (fd != -1) + return fd; + } + return -1; +} + +/** + * Opens the zip-archive (if available). + * the two ext_io arguments will default to use posix io and + * a set of default fileext that can atleast add .zip ext itself. + */ +ZZIP_DIR * +zzip_dir_open(zzip_char_t * filename, zzip_error_t * e) +{ + return zzip_dir_open_ext_io(filename, e, 0, 0); +} + +/** => zzip_dir_open + * this function uses explicit ext and io instead of the internal + * defaults. Setting these to zero is equivalent to => zzip_dir_open + * Note that the referenced ext_io plugin handlers structure must be + * static as it is not copied to the returned ZZIP_DIR structure. + */ +ZZIP_DIR * +zzip_dir_open_ext_io(zzip_char_t * filename, zzip_error_t * e, + zzip_strings_t * ext, zzip_plugin_io_t io) +{ + int fd; + + if (! io) + io = zzip_get_default_io(); + if (! ext) + ext = zzip_get_default_ext(); + + fd = (io->fd.open)(filename, O_RDONLY | O_BINARY); + if (fd != -1) + { + return zzip_dir_fdopen_ext_io(fd, e, ext, io); + } else + { + fd = __zzip_try_open(filename, O_RDONLY | O_BINARY, ext, io); + if (fd != -1) + { + return zzip_dir_fdopen_ext_io(fd, e, ext, io); + } else + { + if (e) + { *e = ZZIP_DIR_OPEN; } + return 0; + } + } +} + +/** => zzip_dir_open + * fills the dirent-argument with the values and + * increments the read-pointer of the dir-argument. + * + * returns 0 if there no entry (anymore). + */ +int +zzip_dir_read(ZZIP_DIR * dir, ZZIP_DIRENT * d) +{ + if (! dir || ! dir->hdr || ! d) + return 0; + + d->d_compr = dir->hdr->d_compr; + d->d_csize = dir->hdr->d_csize; + d->st_size = dir->hdr->d_usize; + d->d_name = dir->hdr->d_name; + + if (! dir->hdr->d_reclen) + { + dir->hdr = 0; + } else + { + dir->hdr = (struct zzip_dir_hdr *) + ((char *) dir->hdr + dir->hdr->d_reclen); + } + + return 1; +} + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip-zlib-config.pc b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip-zlib-config.pc new file mode 100644 index 00000000000..62413b93bee --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip-zlib-config.pc @@ -0,0 +1,8 @@ +zlib_libs= -lz +zlib_cflags= + +Name: zzip-zlib-config +Version: 1.2.3 +Description: ZLib Config (for ZZipLib) +Libs: ${zlib_libs} +Cflags: ${zlib_cflags} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip.h new file mode 100644 index 00000000000..6f2c5169080 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip.h @@ -0,0 +1,268 @@ +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * Tomi Ollila <Tomi.Ollila@iki.fi> + * + * Copyright (c) 1999,2000,2001,2002,2003,2004 Guido Draheim + * All rights reserved, + * usage allowed under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + * + * if you see "unknown symbol" errors, check first that `-I ..` is part of + * your compiler options - a special hint to VC/IDE users who tend to make up + * their own workspace files. All includes look like #include <zzip|*.h>, so + * you need to add an include path to the dir containing (!!) the ./zzip/ dir + */ + +#ifndef _ZZIP_ZZIP_H /* zziplib.h */ +#define _ZZIP_ZZIP_H + +#include <zzip/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* the zzip_error_t is also used to pass back ZLIB errors... */ +#define ZZIP_ERROR -4096 + +typedef enum +{ + ZZIP_NO_ERROR = 0, /* no error, may be used if user sets it. */ + ZZIP_OUTOFMEM = ZZIP_ERROR-20, /* out of memory */ + ZZIP_DIR_OPEN = ZZIP_ERROR-21, /* failed to open zipfile, see errno for details */ + ZZIP_DIR_STAT = ZZIP_ERROR-22, /* failed to fstat zipfile, see errno for details */ + ZZIP_DIR_SEEK = ZZIP_ERROR-23, /* failed to lseek zipfile, see errno for details */ + ZZIP_DIR_READ = ZZIP_ERROR-24, /* failed to read zipfile, see errno for details */ + ZZIP_DIR_TOO_SHORT = ZZIP_ERROR-25, + ZZIP_DIR_EDH_MISSING = ZZIP_ERROR-26, + ZZIP_DIRSIZE = ZZIP_ERROR-27, + ZZIP_ENOENT = ZZIP_ERROR-28, + ZZIP_UNSUPP_COMPR = ZZIP_ERROR-29, + ZZIP_CORRUPTED = ZZIP_ERROR-31, + ZZIP_UNDEF = ZZIP_ERROR-32, + ZZIP_DIR_LARGEFILE = ZZIP_ERROR-33 +} zzip_error_t; + +/* + * zzip_open flags. + */ +#define ZZIP_CASEINSENSITIVE O_APPEND /* do not use anymore. use CASLESS */ +#define ZZIP_IGNOREPATH O_TRUNC /* do not use anymore. use NOPATHS */ +#define ZZIP_EXTRAFLAGS (ZZIP_CASEINSENSITIVE|ZZIP_IGNOREPATH) + +/* zzip_open_ext_io o_modes flags : new style. use these from now on! */ +#define ZZIP_CASELESS (1<<12) /* ignore filename case inside zips */ +#define ZZIP_NOPATHS (1<<13) /* ignore subdir paths, just filename*/ +#define ZZIP_PREFERZIP (1<<14) /* try first zipped file, then real*/ +#define ZZIP_ONLYZIP (1<<16) /* try _only_ zipped file, skip real*/ +#define ZZIP_FACTORY (1<<17) /* old file handle is not closed */ +#define ZZIP_ALLOWREAL (1<<18) /* real files use default_io (magic) */ +#define ZZIP_THREADED (1<<19) /* try to be safe for multithreading */ + +/* + * zzip largefile renames + */ +#ifdef ZZIP_LARGEFILE_RENAME +#define zzip_telldir zzip_telldir64 +#define zzip_seekdir zzip_seekdir64 +#endif + +/* + * zzip typedefs + */ +/* zzip_strings_t ext[] = { ".zip", ".jar", ".pk3", 0 } */ +typedef char _zzip_const * _zzip_const zzip_strings_t; +typedef char _zzip_const zzip_char_t; +typedef struct zzip_dir ZZIP_DIR; +typedef struct zzip_file ZZIP_FILE; +typedef struct zzip_dirent ZZIP_DIRENT; +typedef struct zzip_dirent ZZIP_STAT; + +struct zzip_dirent +{ + int d_compr; /* compression method */ + int d_csize; /* compressed size */ + int st_size; /* file size / decompressed size */ + char * d_name; /* file name / strdupped name */ +}; + +/* + * Getting error strings + * zzip/err.c + */ +_zzip_export /* error in _opendir : */ +zzip_char_t* zzip_strerror(int errcode); +_zzip_export /* error in other functions : */ +zzip_char_t* zzip_strerror_of(ZZIP_DIR * dir); +_zzip_export /* error mapped to errno.h defines : */ +int zzip_errno(int errcode); + + +/* + * Functions to grab information from ZZIP_DIR/ZZIP_FILE structure + * (if ever needed) + * zzip/info.c + */ +_zzip_export +int zzip_error(ZZIP_DIR * dir); +_zzip_export +void zzip_seterror(ZZIP_DIR * dir, int errcode); +_zzip_export +zzip_char_t* zzip_compr_str(int compr); + +_zzip_export +ZZIP_DIR * zzip_dirhandle(ZZIP_FILE * fp); +_zzip_export +int zzip_dirfd(ZZIP_DIR * dir); +_zzip_export +int zzip_dir_real(ZZIP_DIR * dir); +_zzip_export +int zzip_file_real(ZZIP_FILE * fp); +_zzip_export +void* zzip_realdir(ZZIP_DIR * dir); +_zzip_export +int zzip_realfd(ZZIP_FILE * fp); + +/* + * zip handle management + * zzip/zip.c + */ +_zzip_export +ZZIP_DIR * zzip_dir_alloc(zzip_strings_t* fileext); +_zzip_export +int zzip_dir_free(ZZIP_DIR *); + +/* + * Opening/closing a zip archive + * zzip-zip.c + */ +_zzip_export +ZZIP_DIR * zzip_dir_fdopen(int fd, zzip_error_t * errcode_p); +_zzip_export +ZZIP_DIR * zzip_dir_open(zzip_char_t* filename, zzip_error_t * errcode_p); +_zzip_export +int zzip_dir_close(ZZIP_DIR * dir); +_zzip_export +int zzip_dir_read(ZZIP_DIR * dir, ZZIP_DIRENT * dirent); + + +/* + * Scanning files in zip archive + * zzip/dir.c + * zzip/zip.c + */ +_zzip_export +ZZIP_DIR * zzip_opendir(zzip_char_t* filename); +_zzip_export +int zzip_closedir(ZZIP_DIR * dir); +_zzip_export +ZZIP_DIRENT * zzip_readdir(ZZIP_DIR * dir); +_zzip_export +void zzip_rewinddir(ZZIP_DIR * dir); +_zzip_export +zzip_off_t zzip_telldir(ZZIP_DIR * dir); +_zzip_export +void zzip_seekdir(ZZIP_DIR * dir, zzip_off_t offset); + +/* + * 'opening', 'closing' and reading invidual files in zip archive. + * zzip/file.c + */ +_zzip_export +ZZIP_FILE * zzip_file_open(ZZIP_DIR * dir, zzip_char_t* name, int flags); +_zzip_export +int zzip_file_close(ZZIP_FILE * fp); +_zzip_export +zzip_ssize_t zzip_file_read(ZZIP_FILE * fp, void* buf, zzip_size_t len); + +_zzip_export +ZZIP_FILE * zzip_open(zzip_char_t* name, int flags); +_zzip_export +int zzip_close(ZZIP_FILE * fp); +_zzip_export +zzip_ssize_t zzip_read(ZZIP_FILE * fp, void * buf, zzip_size_t len); + +/* + * the stdc variant to open/read/close files. - Take note of the freopen() + * call as it may reuse an existing preparsed copy of a zip central directory + */ +_zzip_export +ZZIP_FILE* zzip_freopen(zzip_char_t* name, zzip_char_t* mode, ZZIP_FILE*); +_zzip_export +ZZIP_FILE* zzip_fopen(zzip_char_t* name, zzip_char_t* mode); +_zzip_export +zzip_size_t zzip_fread(void *ptr, zzip_size_t size, zzip_size_t nmemb, + ZZIP_FILE * file); +_zzip_export +int zzip_fclose(ZZIP_FILE * fp); + +/* + * seek and tell functions + */ +_zzip_export +int zzip_rewind(ZZIP_FILE *fp); +_zzip_export +zzip_off_t zzip_seek(ZZIP_FILE * fp, zzip_off_t offset, int whence); +_zzip_export +zzip_off_t zzip_tell(ZZIP_FILE * fp); + +/* + * reading info of a single file + * zzip/stat.c + */ +_zzip_export +int zzip_dir_stat(ZZIP_DIR * dir, zzip_char_t* name, + ZZIP_STAT * zs, int flags); +_zzip_export +int zzip_file_stat(ZZIP_FILE * fp, ZZIP_STAT * zs); +_zzip_export +int zzip_fstat(ZZIP_FILE * fp, ZZIP_STAT * zs); + +#ifdef ZZIP_LARGEFILE_RENAME +#define zzip_open_shared_io zzip_open_shared_io64 +#define zzip_open_ext_io zzip_open_ext_io64 +#define zzip_opendir_ext_io zzip_opendir_ext_io64 +#define zzip_dir_open_ext_io zzip_dir_open_ext_io64 +#define zzip_plugin_io_t zzip_plugin_io64_t +#endif + +/* + * all ext_io functions can be called with a default of ext/io == zero/zero + * which will default to a ".zip" extension and posix io of the system. + */ +typedef union _zzip_plugin_io _zzip_const * zzip_plugin_io_t; + +_zzip_export +ZZIP_FILE * zzip_open_shared_io(ZZIP_FILE* stream, + zzip_char_t* name, int o_flags, int o_modes, + zzip_strings_t* ext, zzip_plugin_io_t io); + +_zzip_export +ZZIP_FILE * zzip_open_ext_io(zzip_char_t* name, int o_flags, int o_modes, + zzip_strings_t* ext, zzip_plugin_io_t io); + +_zzip_export +ZZIP_DIR * zzip_opendir_ext_io(zzip_char_t* name, int o_modes, + zzip_strings_t* ext, zzip_plugin_io_t io); + +_zzip_export +ZZIP_DIR * zzip_dir_open_ext_io(zzip_char_t* filename, + zzip_error_t* errcode_p, + zzip_strings_t* ext, zzip_plugin_io_t io); + +/* zzip_file_open_ext_io => zzip_dir_open_ext_io + zzip_file_open */ + +#ifdef __cplusplus +}; +#endif + +#endif /* _ZZIPLIB_H */ + +/* + * Local variables: + * c-file-style: "stroustrup" + * End: + */ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip32.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip32.h new file mode 100644 index 00000000000..04802507c17 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzip32.h @@ -0,0 +1,51 @@ +/* + * Author: + * Guido Draheim <guidod@gmx.de> + * + * Copyright (c) 2010 Guido Draheim + * All rights reserved, + * usage allowed under the restrictions of the + * Lesser GNU General Public License + * or alternatively the restrictions + * of the Mozilla Public License 1.1 + * + * The compat32 headers is targeted towards those poor souls who can + * not compile their application or library with _LARGEFILE_SOURCE but + * they may still need to access a libzzip compiled in largefile mode. + * In that case they can change back to calling these suffix32 functions + * which are ensured to use "long" as the parameter type - just as it used + * to be before off_t was defined as an alias for it. + */ + +#ifndef _ZZIP_ZZIP32_H +#define _ZZIP_ZZIP32_H + +#include <zzip/lib.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Scanning files in zip archive. + * Implemented in zzip/dir.c + */ +_zzip_export +long zzip_telldir32(ZZIP_DIR * dir); +_zzip_export +void zzip_seekdir32(ZZIP_DIR * dir, long offset); + +/* + * seek and tell functions. + * Implemented in zzip/file.c + */ +_zzip_export +long zzip_seek32(ZZIP_FILE * fp, long offset, int whence); +_zzip_export +long zzip_tell32(ZZIP_FILE * fp); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzipfseeko.pc b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzipfseeko.pc new file mode 100644 index 00000000000..4fb7b22af67 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzipfseeko.pc @@ -0,0 +1,18 @@ +# generated by configure / remove this line to disable regeneration +prefix=/usr/local +exec_prefix=${prefix} +bindir=${exec_prefix}/bin +libdir=${exec_prefix}/lib +datarootdir=${prefix}/share +datadir=${datarootdir} +sysconfdir=${prefix}/etc +includedir=${prefix}/include +package=zzipfseeko +suffix= + +Name: zzipfseeko +Description: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API +Version: 0.13.60 +Requires: zzip-zlib-config +Libs: -L${libdir} -lzzipfseeko +Cflags: -I${includedir} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zziplib.pc b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zziplib.pc new file mode 100644 index 00000000000..c492b8f64db --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zziplib.pc @@ -0,0 +1,18 @@ +# generated by configure / remove this line to disable regeneration +prefix=/usr/local +exec_prefix=${prefix} +bindir=${exec_prefix}/bin +libdir=${exec_prefix}/lib +datarootdir=${prefix}/share +datadir=${datarootdir} +sysconfdir=${prefix}/etc +includedir=${prefix}/include +package=zziplib +suffix= + +Name: zziplib +Description: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API +Version: 0.13.60 +Requires: zzip-zlib-config +Libs: -L${libdir} -lzzip +Cflags: -I${includedir} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zziplib.wpj b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zziplib.wpj new file mode 100755 index 00000000000..c73aab3de56 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zziplib.wpj @@ -0,0 +1,103 @@ +40 +projectIdent +0 +VpeMain +1 +WRect +0 +0 +7680 +10240 +2 +MProject +3 +MCommand +0 +4 +MCommand +0 +4 +5 +WFileName +11 +zziplib.tgt +6 +WFileName +9 +zzcat.tgt +7 +WFileName +9 +zzdir.tgt +8 +WFileName +12 +zziptest.tgt +9 +WVList +4 +10 +VComponent +11 +WRect +0 +0 +5670 +4215 +0 +0 +12 +WFileName +11 +zziplib.tgt +0 +0 +13 +VComponent +14 +WRect +678 +665 +5670 +4215 +0 +0 +15 +WFileName +9 +zzcat.tgt +0 +0 +16 +VComponent +17 +WRect +1868 +1467 +5670 +4215 +0 +0 +18 +WFileName +9 +zzdir.tgt +0 +0 +19 +VComponent +20 +WRect +1356 +1348 +5670 +4215 +0 +0 +21 +WFileName +12 +zziptest.tgt +0 +0 +19 diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzipmmapped.pc b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzipmmapped.pc new file mode 100644 index 00000000000..535d7853bd3 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzip/zzipmmapped.pc @@ -0,0 +1,18 @@ +# generated by configure / remove this line to disable regeneration +prefix=/usr/local +exec_prefix=${prefix} +bindir=${exec_prefix}/bin +libdir=${exec_prefix}/lib +datarootdir=${prefix}/share +datadir=${datarootdir} +sysconfdir=${prefix}/etc +includedir=${prefix}/include +package=zzipmmapped +suffix= + +Name: zzipmmapped +Description: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API +Version: 0.13.60 +Requires: zzip-zlib-config +Libs: -L${libdir} -lzzipmmapped +Cflags: -I${includedir} diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzipback.sed b/Build/source/libs/zziplib/zziplib-0.13.60/zzipback.sed new file mode 100644 index 00000000000..b3e5e768525 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzipback.sed @@ -0,0 +1,19 @@ +s:<zzip/_config.h>:<zzip-config.h>: +s:<zzip/_msvc.h>:<zzip-msvc.h>: +s:<zzip/conf.h>:<zzip-conf.h>: +s:<zzip/dir.h>:<zzip-dir.h>: +s:<zzip/err.h>:<zzip-err.h>: +s:<zzip/file.h>:<zzip-file.h>: +s:<zzip/format.h>:<zzipformat.h>: +s:<zzip/info.h>:<zzip-info.h>: +s:<zzip/lib.h>:<zzip.h>: +s:<zzip/zzip.h>:<zziplib.h>: +s:<zzip/plugin.h>:<zzip-io.h>: +s:<zzip/stat.h>:<zzip-stat.h>: +s:<zzip/stdint.h>:<zzip-stdint.h>: +s:<zzip/__debug.h>:"__debug.h": +s:<zzip/__dirent.h>:"__dirent.h": +s:<zzip/__hints.h>:"__hints.h": +s:<zzip/__mmap.h>:"__mmap.h": +s:<zzip/wrap.h>:"zzipwrap.h": +/#inc/s:"wrap.h":"zzipwrap.h": diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zziplib.spec b/Build/source/libs/zziplib/zziplib-0.13.60/zziplib.spec new file mode 100644 index 00000000000..c9d0ca1f2ec --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zziplib.spec @@ -0,0 +1,155 @@ +# norootforbuild +Summary: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API +Name: zziplib +Version: 0.13.60 +Release: 1 +License: LGPLv2.1+ +Group: System/Libraries +URL: http://zziplib.sf.net +Vendor: Guido Draheim <guidod@gmx.de> +Source0: http://prdownloads.sf.net/%{name}/%{name}-%{version}.tar.bz2 +BuildRoot: /var/tmp/%{name}-%{version}-%{release} + +Distribution: Original +Packager: Guido Draheim <guidod@gmx.de> +Requires: zlib +BuildRequires: zlib-devel +BuildRequires: SDL-devel +BuildRequires: zip + +Provides: libzzip0 = %version +Provides: libzzip-0.so.10 +Provides: zziplib-lib010 = %version + +#Begin3 +# Author1: too@iki.fi (Tomi Ollila) +# Author2: guidod@gmx.de (Guido Draheim) +# Maintained-by: guidod@gmx.de (Guido Draheim) +# Primary-Site: zziplib.sf.net +# Keywords: zip zlib inflate archive gamedata +# Platforms: zlib posix +# Copying-Policy: Lesser GPL Version 2 +#End + +%package doc +Summary: ZZipLib - Documentation Files +Group: Development/Languages/C and C++ +BuildRequires: python +BuildRequires: xmlto +PreReq: scrollkeeper + +%package devel +Summary: ZZipLib - Development Files +Group: Development/Languages/C and C++ +Requires: zziplib = %version +Requires: pkgconfig + +%package SDL_rwops-devel +Summary: ZZipLib - Development Files for SDL_rwops +Group: Development/Languages/C and C++ +Requires: zziplib = %version +Requires: pkgconfig +BuildRequires: SDL-devel + +%description + : zziplib provides read access to zipped files in a zip-archive, + : using compression based solely on free algorithms provided by zlib. + zziplib provides an additional API to transparently access files + being either real files or zipped files with the same filepath argument. + This is handy to package many files being shared data into a single + zip file - as it is sometimes used with gamedata or script repositories. + The library itself is fully multithreaded, and it is namespace clean + using the zzip_ prefix for its exports and declarations. + +%description doc + : zziplib provides read access to zipped files in a zip-archive, + : using compression based solely on free algorithms provided by zlib. + these are the (html) docs, mostly generated actually. + +%description devel + : zziplib provides read access to zipped files in a zip-archive, + : using compression based solely on free algorithms provided by zlib. + these are the header files needed to develop programs using zziplib. + there are test binaries to hint usage of the library in user programs. + +%description SDL_rwops-devel + : zziplib provides read access to zipped files in a zip-archive, + : using compression based solely on free algorithms provided by zlib. + these are example headers and implementation along with a pkgconfig + script that allows to easily use zziplib through SDL_rwops calls. + +%prep +#' +%setup + + +CFLAGS="$RPM_OPT_FLAGS" \ +sh configure --prefix=%{_prefix} \ + --mandir=%{_mandir} \ + --bindir=%{_bindir} \ + --libdir=%{_libdir} \ + --with-docdir=%{_docdir} \ + --disable-static --with-pic \ + --enable-sdl TIMEOUT=9 +%__make zzip64-setup + +%build +%__make %{?jobs:-j%jobs} +%__make %{?jobs:-j%jobs} zzip64-build +%__make %{?jobs:-j%jobs} doc + +%check +%__make check +%__make test-sdl + +%install +%__rm -rf %{buildroot} +%__make zzip64-install DESTDIR=%{buildroot} +%__make install DESTDIR=%{buildroot} +%__make zzip32-postinstall DESTDIR=%{buildroot} +%__make zzip-postinstall +%__make install-doc DESTDIR=%{buildroot} +%__make install-mans DESTDIR=%{buildroot} +%__make install-sdl DESTDIR=%{buildroot} + +%clean +%__rm -rf %{buildroot} + +%files + %defattr(-,root,root) + %{_libdir}/lib*.so.* + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files doc + %defattr(-,root,root) + %{_datadir}/doc/* +%dir %{_datadir}/omf/%{name} + %{_datadir}/omf/%{name}/* + +%post doc +test ! -f %_bindir/scrollkeeper-update || %_bindir/scrollkeeper-update +%postun doc +test ! -f %_bindir/scrollkeeper-update || %_bindir/scrollkeeper-update + +%files devel + %defattr(-,root,root) +%doc ChangeLog README TODO + %{_bindir}/* +%dir %{_includedir}/zzip + %{_includedir}/zzip/* + %{_includedir}/*.h + %{_libdir}/lib*.so + %{_libdir}/lib*.a + %{_libdir}/lib*.la + %{_libdir}/pkgconfig/zzip* + %{_datadir}/aclocal/%{name}*.m4 + %{_mandir}/man3/* + +%files SDL_rwops-devel + %defattr(-,root,root) + %{_libdir}/pkgconfig/SDL*zzip* +%dir %{_includedir}/SDL_rwops_zzip + %{_includedir}/SDL_rwops_zzip/* + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/Makefile.am b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/Makefile.am new file mode 100644 index 00000000000..2c5b4719841 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/Makefile.am @@ -0,0 +1,51 @@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2 +DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir) +DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4 + +noinst_PROGRAMS = zzipwrap +lib_LTLIBRARIES = libzzipwrap.la +zzipdir = ${includedir}/zzip +zzip_HEADERS = $(libzzipwrap_la_headers) +# +VERSION_INFO=@VERSION_INFO@ +RELEASE_INFO=@RELEASE_INFO@ +THREAD_SAFE=@THREAD_SAFE@ +# + +libzzipwrap_la_SOURCES = \ + wrap.c +libzzipwrap_la_headers = \ + wrap.h + +libzzipwrap_la_LDFLAGS= @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \ + $(THREAD_SAFE) +libzzipwrap_la_LIBADD= ../zzip/libzzip.la @RESOLVES@ -lz + +../zzip/libzzip.la : @top_srcdir@/zzip/*.c + (cd ../zzip && $(MAKE) `basename $@`) + + +WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt + +EXTRA_DIST = +CLEANFILES = $(WCC10_CLEAN) *.pc *.omf + +zzipwrap_LDFLAGS = @ZZIPLIB_LDFLAGS@ +zzipwrap_LDADD = libzzipwrap.la @RESOLVES@ ../zzip/libzzip.la -lz + +# ---------------------------------------------------------------------- +pkgconfigdir=$(libdir)/pkgconfig +pkgconfig_HEADERS= zzipwrap.pc + +zzipwrap.pc : Makefile + @ echo "prefix=$(prefix)" >$@ + @ echo "libdir=$(libdir)" >>$@ + @ echo "includedir=$(includedir)" >>$@ + @ echo " " >>$@ + @ echo "Name: zzipwrap" >>$@ + @ echo "Version: $(VERSION)" >>$@ + @ echo "Description: Callback Wrappers for ZZipLib" >>$@ + echo 'Requires: zziplib' >>$@ + echo 'Libs: -L$${libdir} -lzzipwrap' >>$@ + echo 'Cflags: -I$${includedir}' >>$@ diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/Makefile.in b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/Makefile.in new file mode 100644 index 00000000000..b8ac59c862f --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/Makefile.in @@ -0,0 +1,687 @@ +# Makefile.in generated by automake 1.11.1 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@ +target_triplet = @target@ +noinst_PROGRAMS = zzipwrap$(EXEEXT) +subdir = zzipwrap +DIST_COMMON = $(pkgconfig_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(zzip_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \ + $(top_srcdir)/m4/ac_set_default_paths_system.m4 \ + $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \ + $(top_srcdir)/m4/acx_restrict.m4 \ + $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ + $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \ + $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \ + $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ + $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ + $(top_srcdir)/m4/ax_configure_args.m4 \ + $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ + $(top_srcdir)/m4/ax_enable_builddir_uname.m4 \ + $(top_srcdir)/m4/ax_expand_prefix.m4 \ + $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \ + $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \ + $(top_srcdir)/m4/ax_pax_tar.m4 \ + $(top_srcdir)/m4/ax_prefix_config_h.m4 \ + $(top_srcdir)/m4/ax_set_version_info.m4 \ + $(top_srcdir)/m4/ax_spec_file.m4 \ + $(top_srcdir)/m4/ax_spec_package_version.m4 \ + $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \ + $(top_srcdir)/m4/ax_warning_default_pkgconfig.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/patch_libtool_on_darwin_zsh_overquoting.m4 \ + $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \ + $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(zzipdir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libzzipwrap_la_DEPENDENCIES = ../zzip/libzzip.la +am_libzzipwrap_la_OBJECTS = wrap.lo +libzzipwrap_la_OBJECTS = $(am_libzzipwrap_la_OBJECTS) +libzzipwrap_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libzzipwrap_la_LDFLAGS) $(LDFLAGS) -o $@ +PROGRAMS = $(noinst_PROGRAMS) +zzipwrap_SOURCES = zzipwrap.c +zzipwrap_OBJECTS = zzipwrap.$(OBJEXT) +zzipwrap_DEPENDENCIES = libzzipwrap.la ../zzip/libzzip.la +zzipwrap_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(zzipwrap_LDFLAGS) \ + $(LDFLAGS) -o $@ +depcomp = $(SHELL) $(top_srcdir)/uses/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 = $(libzzipwrap_la_SOURCES) zzipwrap.c +DIST_SOURCES = $(libzzipwrap_la_SOURCES) zzipwrap.c +HEADERS = $(pkgconfig_HEADERS) $(zzip_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CONFIG_FILES = @CONFIG_FILES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4 +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GNUTAR = @GNUTAR@ +GREP = @GREP@ +GTAR = @GTAR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKZIP = @MKZIP@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PAX = @PAX@ +PAX_TAR_CREATE = @PAX_TAR_CREATE@ +PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELEASE_INFO = @RELEASE_INFO@ +RESOLVES = @RESOLVES@ +SDL = @SDL@ +SDL_GENERATE = @SDL_GENERATE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TAR = @TAR@ +THREAD_SAFE = @THREAD_SAFE@ +VERSION = @VERSION@ +# +VERSION_INFO = @VERSION_INFO@ +XMLTO = @XMLTO@ +ZIPTESTS = @ZIPTESTS@ +ZLIB_INCL = @ZLIB_INCL@ +ZLIB_LDIR = @ZLIB_LDIR@ +ZLIB_VERSION = @ZLIB_VERSION@ +ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@ +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@ +aclocaldir = @aclocaldir@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_enable_builddir_sed = @ax_enable_builddir_sed@ +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@ +pkgconfig_libdir = @pkgconfig_libdir@ +pkgconfig_libfile = @pkgconfig_libfile@ + +# ---------------------------------------------------------------------- +pkgconfigdir = $(libdir)/pkgconfig +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2 +DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir) +lib_LTLIBRARIES = libzzipwrap.la +zzipdir = ${includedir}/zzip +zzip_HEADERS = $(libzzipwrap_la_headers) +# +libzzipwrap_la_SOURCES = \ + wrap.c + +libzzipwrap_la_headers = \ + wrap.h + +libzzipwrap_la_LDFLAGS = @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \ + $(THREAD_SAFE) + +libzzipwrap_la_LIBADD = ../zzip/libzzip.la @RESOLVES@ -lz +WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt +EXTRA_DIST = +CLEANFILES = $(WCC10_CLEAN) *.pc *.omf +zzipwrap_LDFLAGS = @ZZIPLIB_LDFLAGS@ +zzipwrap_LDADD = libzzipwrap.la @RESOLVES@ ../zzip/libzzip.la -lz +pkgconfig_HEADERS = zzipwrap.pc +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 zzipwrap/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign zzipwrap/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libzzipwrap.la: $(libzzipwrap_la_OBJECTS) $(libzzipwrap_la_DEPENDENCIES) + $(libzzipwrap_la_LINK) -rpath $(libdir) $(libzzipwrap_la_OBJECTS) $(libzzipwrap_la_LIBADD) $(LIBS) + +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 +zzipwrap$(EXEEXT): $(zzipwrap_OBJECTS) $(zzipwrap_DEPENDENCIES) + @rm -f zzipwrap$(EXEEXT) + $(zzipwrap_LINK) $(zzipwrap_OBJECTS) $(zzipwrap_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wrap.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzipwrap.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 +install-pkgconfigHEADERS: $(pkgconfig_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || 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_HEADER) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files +install-zzipHEADERS: $(zzip_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(zzipdir)" || $(MKDIR_P) "$(DESTDIR)$(zzipdir)" + @list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || 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_HEADER) $$files '$(DESTDIR)$(zzipdir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(zzipdir)" || exit $$?; \ + done + +uninstall-zzipHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(zzipdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(zzipdir)" && rm -f $$files + +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 $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(zzipdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(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: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES 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-pkgconfigHEADERS install-zzipHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +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: uninstall-libLTLIBRARIES uninstall-pkgconfigHEADERS \ + uninstall-zzipHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES 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-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-pkgconfigHEADERS install-ps \ + install-ps-am install-strip install-zzipHEADERS 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 uninstall-libLTLIBRARIES \ + uninstall-pkgconfigHEADERS uninstall-zzipHEADERS + + +../zzip/libzzip.la : @top_srcdir@/zzip/*.c + (cd ../zzip && $(MAKE) `basename $@`) + +zzipwrap.pc : Makefile + @ echo "prefix=$(prefix)" >$@ + @ echo "libdir=$(libdir)" >>$@ + @ echo "includedir=$(includedir)" >>$@ + @ echo " " >>$@ + @ echo "Name: zzipwrap" >>$@ + @ echo "Version: $(VERSION)" >>$@ + @ echo "Description: Callback Wrappers for ZZipLib" >>$@ + echo 'Requires: zziplib' >>$@ + echo 'Libs: -L$${libdir} -lzzipwrap' >>$@ + echo 'Cflags: -I$${includedir}' >>$@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/wrap.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/wrap.c new file mode 100644 index 00000000000..2bea0c39e5b --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/wrap.c @@ -0,0 +1,223 @@ + +/* Wrapper interface for zziplib's file IO functions. + * + * -- In memory-access IO function -- + * Provides default fileio functions open/read/lseek/close and functions + * that enable blocked, memory buffered IO. + * + * (c) A. Schiffler, aschiffler@home.com + * Released under same license as zziplib (LGPL), Oct 2001 + * + * modified 2002 to use new plugin_io interface by Guido Draheim + */ + +#include <zzip/conf.h> +#include <zzip/plugin.h> +/* #incl <zzip/wrap.h> */ +#include "wrap.h" + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#ifdef ZZIP_HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + +/* Some globals that we use for operation */ + +static int zzip_memory_blocksize=0; +static zzipwrap_pfn_t zzip_memory_callback=NULL; +static void *zzip_memory_callbackdata=NULL; +static char *zzip_memory_buffer=NULL; +static int zzip_memory_bufferblock=0; +static int zzip_memory_fd=-1; +static int zzip_memory_pos=0; +static int zzip_memory_size=0; + +/* at the moment, we do not export the five handlers of zzip_memry plugin_io */ +#define ZZIP_memory static + +ZZIP_memory void zzip_memory_reset(void) +{ + zzip_memory_buffer=NULL; + zzip_memory_bufferblock=0; + zzip_memory_pos=0; + zzip_memory_size=0; + zzip_memory_fd=-1; +} + +ZZIP_memory int zzip_memory_read(int fd, char *buf, size_t count) +{ + int requested_block; + int transfer_start; + int transfer_bytes; + int bytes_read; + int bytes_to_write; + int bytes_written; + + /* Check file descriptor */ + if (fd!=zzip_memory_fd) { + return(-1); + } + + if ((int)count<0) + return -1; + + /* Work out how many bytes we have to read based */ + /* on filepos and requested buffersize. */ + bytes_to_write=zzip_memory_size-zzip_memory_pos; + if (bytes_to_write>=(int)count) { + bytes_to_write=(int)count; + } + + /* Read/transfer loop */ + bytes_written=0; + while (bytes_to_write>0) { + /* Check which block we are reading from */ + requested_block=zzip_memory_pos/zzip_memory_blocksize; + /* Check if we have this block available */ + if (zzip_memory_bufferblock!=requested_block) { + /* Read this block */ + lseek(fd,requested_block*zzip_memory_blocksize,SEEK_SET); + bytes_read=read(fd,zzip_memory_buffer,zzip_memory_blocksize); + /* Clear unused bytes */ + if ((bytes_read>=0) && (bytes_read<zzip_memory_blocksize)) { + memset(&zzip_memory_buffer[bytes_read],0,zzip_memory_blocksize-bytes_read); + } + /* Set current block pos */ + zzip_memory_bufferblock=requested_block; + /* Process buffer if callback is set */ + if (zzip_memory_callback) { + zzip_memory_callback(zzip_memory_buffer,zzip_memory_blocksize,zzip_memory_callbackdata); + } + } else { + bytes_read=zzip_memory_blocksize; + } + /* Check if we have read any data */ + if (bytes_read > 0) { + /* Copy data to output buffer */ + transfer_start=zzip_memory_pos-zzip_memory_bufferblock*zzip_memory_blocksize; + transfer_bytes=zzip_memory_blocksize-transfer_start; + if (transfer_bytes>bytes_to_write) { + transfer_bytes=bytes_to_write; + } + memcpy (&buf[bytes_written], &zzip_memory_buffer[transfer_start],transfer_bytes); + zzip_memory_pos += transfer_bytes; + bytes_written += transfer_bytes; + bytes_to_write -= transfer_bytes; + } else { + /* Exit on error during read */ + bytes_to_write=0; + } + } + return(bytes_written); +} + +ZZIP_memory int zzip_memory_open(const char *pathname, int flags) +{ + int fd; + struct stat stat_buffer; + + /* Deallocate any memory buffer laying around */ + if (zzip_memory_buffer) { + free(zzip_memory_buffer); + } + /* Reset variables */ + zzip_memory_reset(); + /* Open file */ + fd=open(pathname, flags); + if (fd<0) { + return(-1); + } else { + /* Get filesize */ + if (fstat(fd, &stat_buffer)<0) { + return(-1); + } + if (stat_buffer.st_size<1) { + return(-1); + } + /* Store filesize */ + zzip_memory_size = stat_buffer.st_size; + /* Allocate readbuffer */ + zzip_memory_buffer = malloc(zzip_memory_blocksize); + /* Invalidate buffer block */ + zzip_memory_bufferblock = -1; + /* Store file descriptor */ + zzip_memory_fd=fd; + /* Return file descriptor */ + return(fd); + } +} + +ZZIP_memory int zzip_memory_close(int fd) +{ + /* Check file descriptor */ + if (fd!=zzip_memory_fd) { + return(-1); + } + /* Clear any memory buffer that might be laying around */ + if (zzip_memory_buffer) { + free(zzip_memory_buffer); + } + /* Reset variables */ + zzip_memory_reset(); + /* Close file */ + return(close(fd)); +} + +ZZIP_memory off_t zzip_memory_lseek(int fildes, off_t offset, int whence) +{ + /* Check file descriptor */ + if (fildes!=zzip_memory_fd) { + return(-1); + } + /* Change position pointer */ + switch (whence) { + case SEEK_SET: + zzip_memory_pos=offset; + break; + case SEEK_CUR: + zzip_memory_pos += offset; + break; + case SEEK_END: + zzip_memory_pos = zzip_memory_size-1; + break; + } + /* Limit position to the last byte of the file */ + if (zzip_memory_pos>(zzip_memory_size-1)) { + zzip_memory_pos=zzip_memory_size-1; + } + /* Return current position */ + return(zzip_memory_pos); +} + +/* -------- Control wrapper usage */ + + +zzip_plugin_io_t +zzipwrap_use_memory_io(int blocksize, + zzipwrap_pfn_t callback, void *callbackdata) +{ + static const struct zzip_plugin_io zzip_memory_io = + { + (void *) zzip_memory_open, + (void *) zzip_memory_close, + (void *) zzip_memory_read, + (void *) zzip_memory_lseek, + (void *) zzip_filesize, + 0 + }; + + /* Store blocksize and block-processing callback data */ + + zzip_memory_blocksize = blocksize; + zzip_memory_callback = callback; + zzip_memory_callbackdata = callbackdata; + + return (zzip_plugin_io_t) &zzip_memory_io; +} + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/wrap.h b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/wrap.h new file mode 100644 index 00000000000..e4f4f5b7efc --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/wrap.h @@ -0,0 +1,36 @@ +/* + * Author: + * Andreas Schiffler <aschiffler@appwares.com> + * + * Copyright (c) 2001 Andreas Schiffler + * All rights reserved, + * usage allowed under the restrictions of the + * Lesser GNU General Public License + */ + +#ifndef _ZZIPWRAP_H +#define _ZZIPWRAP_H + +#include <zzip/zzip.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * toggle alternate read routine and set callback and callback data + * return: a plugin_io pointer to be used + * with => zzip_opendir_ext_io or => zzip_open_ext_io and cousins + */ +typedef void (*zzipwrap_pfn_t)(void* mem, int blocksize, void* privatedata); +_zzip_export +zzip_plugin_io_t +zzipwrap_use_memory_io(int blocksize, zzipwrap_pfn_t callback, void *callbackdata); + + +#ifdef __cplusplus +}; +#endif + +#endif /* _ZZIPWRAP_H */ + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/zzipwrap.c b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/zzipwrap.c new file mode 100644 index 00000000000..447ce23f5b4 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/zzipwrap.c @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2000,2001 Guido Draheim <guidod@gmx.de> + * Use freely under the restrictions of the ZLIB license. + * + * Modified by Andreas Schiffler, 2001, for the zzipwrap feature + * Modified by Guido Draheim in 2002 for the plugin_io feature + */ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> /* exit */ + +#include <zzip/zzip.h> +/* #incl <zzip/wrap.h> */ +#include "wrap.h" + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +static const char usage[] = +{ + "zzipwrap <dir>.. \n" + " - prints a content table to stdout, but the dir can also be a zip-arch." + "\n" + " To show the contents of a zip-archive named 'test.zip', you may write \n" + " zzipwrap test \n" +}; + +/* This is a demo block callback routine that has access to the buffer */ +/* that was just read BEFORE it is used by zziplib. */ +static void demo_block_callback (void *buffer, int buffersize, void *data) +{ + fprintf (stderr, + "demo_block_callback( buffer-pointer=%p" + " buffer-size=%i data='%s' )\n", + buffer,buffersize,(char*)data); +} + +int +main (int argc, char ** argv) +{ + zzip_plugin_io_t io; + int argn; + + if (argc <= 1) + { + printf (usage); + exit(0); + } + + /* Enable blocked (32 bytes) memory buffered IO routines with a */ + /* demo callback routine. */ + io = zzipwrap_use_memory_io(32, demo_block_callback, + (void*) "Some callback data"); + if (! io) + { + fprintf(stderr, "could not initialize memory-io"); + return 1; + } + + for (argn=1; argn < argc; argn++) + { + ZZIP_DIR * dir; + ZZIP_DIRENT * d; + + dir = zzip_opendir_ext_io(argv[argn], 0, 0, io); + if (! dir) + { + fprintf (stderr, "did not open %s:", argv[argn]); + perror(argv[argn]); + continue; + } + + if (argc > 2) printf ("%s:\n", argv[argn]); + + /* read each dir entry and show one line of info per file */ + while ((d = zzip_readdir (dir))) + { + /* orignalsize / compression-type / compression-ratio / filename */ + if (d->st_size > 999999) + { + printf ("%5dK %-9s %2d%% %s\n", + d->st_size>>10, + zzip_compr_str(d->d_compr), + 100 - (d->d_csize|1)/((d->st_size/100)|1), + d->d_name); + }else{ + printf ("%6d %-9s %2d%% %s\n", + d->st_size, + zzip_compr_str(d->d_compr), + 100 - (d->d_csize|1)*100/(d->st_size|1), + d->d_name); + } + } + + zzip_closedir(dir); + } + + return 0; +} + diff --git a/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/zzipwrap.pc b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/zzipwrap.pc new file mode 100644 index 00000000000..db30e3e3225 --- /dev/null +++ b/Build/source/libs/zziplib/zziplib-0.13.60/zzipwrap/zzipwrap.pc @@ -0,0 +1,10 @@ +prefix=/usr/local +libdir=/usr/local/lib +includedir=/usr/local/include + +Name: zzipwrap +Version: 0.13.60 +Description: Callback Wrappers for ZZipLib +Requires: zziplib +Libs: -L${libdir} -lzzipwrap +Cflags: -I${includedir} |