sp-gxmlcpp-1.0.20040603/0002777000175000017500000000000010057656716010125 5sp-gxmlcpp-1.0.20040603/README0000644000175000017500000000422507630667252010722 This is the Schlund+Partner C++ wrapper for libxml. See INSTALL and INSTALL.sp-gxmlcpp for installation instructions. Questions and comments to sp-gxmlcpp@oss.schlund.de Drawbacks and known bugs of this wrapper ---------------------------------------- * Serialization (XMLDump) is hardcoded to produce UTF-8 encoding. * There are some slight design flaws. * XMLNode* classes are not tested properly ;) * There is no clear exception handling concept. Package Versioning Scheme ------------------------- SPRelease automates the release prodedure in this package. ChangeLog is produced automatically from CVS Logs. VERSION="MAJOR.MINOR.DATE" with MAJOR: Substantial changes (the "Project Office Satisfication Number"). MINOR: Odd numbers development versions, even numbers "stable" versions. Each time we postulate some release "stable", this number is increased by one (from odd to even), CVS is tagged, then increased again by one (from even to odd). Changes (and subsequent Patchlevel releases) to that stable version might be done later in a seperate branch (if needed). DATE : Date in the form YYYYMMDD. Patchlevel releases. Library Versioning Scheme ------------------------- This package uses "libtool" to create all libraries, and adopts the "Libtool Versioning System" for shared libraries. Please see in libtool's documentation. Main library versions and package versions relate to each other this way: Name Package Version Library Main Version 1st unstable branch 0.1.* 0 1st stable branch 1.0.* 1 2nd unstable branch 1.1.* 2 2nd stable branch 1.2.* 3 ... This way, odd library main versions denote stable versions; this is simple and effective. As little drawback, we are not able to reflect interface incompatible changes _inside_ an unstable branch by means of so-library versioning. So if you do not relink, odd things might happen -- but hey, it's unstable ;). At the same time, we are not able to reflect interface incompatible changes _inside_ a stable branch -- but this is a feature, as the interface _must_ not change thusly in a stable branch. sp-gxmlcpp-1.0.20040603/AUTHORS0000644000175000017500000000024707537114637011112 Markus Goetzl Pascal Sick Stephan Suerken Dominik Vogt sp-gxmlcpp-1.0.20040603/COPYING0000644000175000017500000006347607537121565011110 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! sp-gxmlcpp-1.0.20040603/ChangeLog0000644000175000017500000004646010057656663011624 2004-06-03 19:19 spabsurd * NEWS: Updates to NEWS and README for 1.0.20040603. 2004-06-03 19:13 spabsurd * configure.ac: Preparing new patch release. 2004-06-03 19:10 spabsurd * sp-gxmlcpp/XMLNode.cpp: Fixing pathetic memory leak. 2004-06-01 18:32 spabsurd * configure.ac: Adding library check for libxml2. 2004-06-01 17:32 spabsurd * configure.ac: Moving from CPPUnit to libboost auto unit testing. 2004-05-28 16:02 spabsurd * Doxyfile.in: Updates for - doxygen 1.3.7 - new directory scheme 2004-05-28 15:51 spabsurd * ChangeLog.historic, ChangeLog.historic.schlund_cvs, ChangeLog.historic.tincas, Makefile.am: Merging both historic changelogs into one file. 2004-05-27 19:43 spabsurd * NEWS: New "change all, make no prisoners" plan. 2004-05-25 13:14 spabsurd * NEWS: Update for repository changes. 2004-05-24 17:31 spabsurd * Makefile.am, NEWS, configure.ac, examples/.cvsignore, examples/Makefile.am, examples/UnitTests.cpp, examples/XSLTProc.cpp, sp-gxmlcpp/.cvsignore, sp-gxmlcpp/Makefile.am, sp-gxmlcpp/Util.hpp, sp-gxmlcpp/XMLDump.cpp, sp-gxmlcpp/XMLDump.hpp, sp-gxmlcpp/XMLException.cpp, sp-gxmlcpp/XMLException.hpp, sp-gxmlcpp/XMLNode.cpp, sp-gxmlcpp/XMLNode.hpp, sp-gxmlcpp/XMLNodeSet.cpp, sp-gxmlcpp/XMLNodeSet.hpp, sp-gxmlcpp/XMLTree.cpp, sp-gxmlcpp/XMLTree.hpp, sp-gxmlcpp/XSLTrans.cpp, sp-gxmlcpp/XSLTrans.hpp: * More straighforward directory layout, putting all C++-Source under src/: sp-gxmlcpp (the library) and examples (Example applications). 2004-05-24 16:54 spabsurd * Makefile.am: chmod fix for doxygen/newer automakes. 2004-05-24 16:53 spabsurd * configure.ac: Drop dates as version string ;). 2004-05-24 16:45 spabsurd * NEWS, TODO_1.2: Moving TODO to news. 2004-03-29 14:56 spabsurd * sp-gxmlcpp/: XMLTree.cpp, XMLTree.hpp: Fix: GetSiblingXML not const. 2004-03-17 13:38 spabsurd * sp-gxmlcpp/: XMLTree.cpp, XMLTree.hpp: Missing "const"s fixed for addTree, getNodeSet. 2004-03-17 13:35 spabsurd * sp-gxmlcpp/: XMLTree.cpp, XMLTree.hpp: Consistent syntax for "const". 2004-01-30 19:05 spabsurd * TODO_1.2: unsorted->sorted (tm) 2004-01-30 19:01 spabsurd * TODO_1.2: todo list for 1.2, just dumped from local. 2004-01-12 14:35 spabsurd * ChangeLog: Update to ChangeLog for 1.0.20040112. 2004-01-12 14:34 spabsurd * NEWS: Updates to NEWS and README for 1.0.20040112. 2004-01-12 14:31 spabsurd * configure.ac: Changing version/so_version for new release. 2004-01-12 14:27 spabsurd * sp-gxmlcpp/: XMLDump.cpp, XMLNodeSet.cpp, XMLDump.cpp, XMLNodeSet.cpp: Fixing context bug for Dump, NodeSet. 2003-12-19 15:55 spabsurd * ChangeLog, ChangeLog: Update to ChangeLog for 1.0.20031219. 2003-12-19 15:52 spabsurd * NEWS: Release 1.0.20031219: Fixing News. 2003-12-19 15:49 spabsurd * configure.ac: Release 1.0.20031219: Setting version and so version. 2003-12-19 15:43 spabsurd * sp-gxmlcpp/: XMLTree.cpp, XMLTree.cpp: XMLTree: XPath context tread safety fix. 2003-08-12 14:50 spabsurd * configure.ac: SPRelease: Check in of invalid configure.ac for clarity. 2003-08-12 14:48 spabsurd * ChangeLog: SPRelease: ChangeLog update. Final change for Release 1.0.20030812. 2003-08-12 14:48 spabsurd * NEWS, configure.ac: SPRelease: 1.0.20030812 (CVS tag: SP_GXMLCPP_1_0_20030812) released. 2003-08-12 14:44 spabsurd * .strap_auto: aclocal before libtool. 2003-08-11 14:38 spabsurd * NEWS: Notes about pedantic, removed non-ref catches. 2003-08-11 14:28 spabsurd * examples/: UnitTests.cpp, UnitTests.cpp: Fix: Moving non-ref catches to ref-catches. 2003-08-11 14:25 spabsurd * NEWS, examples/Makefile.am, sp-gxmlcpp/Makefile.am: removing -Werror. 2003-08-07 12:02 spabsurd * sp-gxmlcpp/: XMLNode.cpp, XMLNodeSet.cpp: * Fixes for g++-3.3. 2003-08-07 11:58 spabsurd * configure.ac: SPRelease: Check in of invalid configure.ac for clarity. 2003-08-07 11:57 spabsurd * NEWS: * Updating NEWS with summaries from last two bugfix releases. * Adding tarball download point * Adding standard description about the NEWS file to top. 2003-08-07 11:51 spabsurd * ChangeLog: SPRelease: ChangeLog update. Final change for Release 1.0.20030807. 2003-08-07 11:51 spabsurd * NEWS, configure.ac: SPRelease: 1.0.20030807 (CVS tag: SP_GXMLCPP_1_0_20030807) released. 2003-08-07 11:40 spabsurd * configure.ac: +1 in library revision for new bugfix release. 2003-08-07 11:39 spabsurd * sp-gxmlcpp/: XMLNode.cpp, XMLNodeSet.cpp: Fixing some "cassert include errors" with g++-3.3. 2003-07-15 11:13 spabsurd * sp-gxmlcpp/XMLNode.hpp: * Adding const bug via doxygen. 2003-06-30 11:25 spabsurd * sp-gxmlcpp/XMLNode.hpp: * Added doxygen note about bug (XMLNode::getContent() does the same trick as NodeSet, i.e. throws if there is no content (instead of delivering an empty string). 2003-06-25 16:57 spabsurd * sp-gxmlcpp/XMLNodeSet.hpp: Adding bug to fix in later release. 2003-06-25 14:05 spabsurd * sp-gxmlcpp/XMLTree.hpp: Adding const-missing bugs to doxygen docu. 2003-04-25 14:05 spabsurd * Makefile.am: Adding checks to remove CVS directories and backup files from distribution. 2003-04-22 18:04 spabsurd * configure.ac: SPRelease: Check in of invalid configure.ac for clarity. 2003-04-22 18:02 spabsurd * ChangeLog: SPRelease: ChangeLog update. Final change for Release 1.0.20030422. 2003-04-22 18:02 spabsurd * ChangeLog, NEWS, configure.ac: SPRelease: 1.0.20030422 (CVS tag: SP_GXMLCPP_1_0_20030422) released. 2003-04-22 17:25 spabsurd * sp-gxmlcpp/XMLTree.cpp: addTree Bug fixed, using NodeSet. 2003-04-22 17:24 spabsurd * configure.ac, sp-gxmlcpp/XMLNode.cpp, sp-gxmlcpp/XMLNode.hpp, sp-gxmlcpp/XMLTree.cpp: * Library version to 2.0.1 (=> so.1.1.0): - interface getNodePtr() added to NodeSet - addTree Bug fixed. 2003-04-22 17:11 spabsurd * sp-gxmlcpp/: XMLNode.hpp, XMLNode.cpp: Adding method getNodePtr(). 2003-04-22 17:09 spabsurd * configure.ac: Update to library version 2 for development. 2003-04-22 16:02 spabsurd * sp-gxmlcpp/: .cvsignore, XMLTree.cpp: Cosmetics. 2003-04-22 15:59 spabsurd * examples/UnitTests.cpp: Adding test for addTree Bug (currently unfixed). 2003-04-22 12:42 spabsurd * configure.ac, examples/Makefile.am, configure.ac, examples/Makefile.am: Fix: Linking cppunit for examples/sp-gxmlcpp-test only. 2003-03-31 10:53 spabsurd * Doxyfile.in, doc/autoadd/mainpage.doc, doc/autoadd/mainpage.txt: * Doxygen: Extra documentation gets postfix ".doc" (not ".txt"). 2003-03-31 10:32 spabsurd * .strap_auto, .strap_auto: Reverting to old (working) auto bootstrap. 2003-03-25 14:59 spabsurd * configure.ac: Updating version to 1.1 branch (head). 2003-03-25 14:57 spabsurd * Makefile.am: Fix: Correct version for doxygen docs in distribution tarball. 2003-03-25 14:52 spabsurd * Makefile.am: Fix: Correct version for doxygen docs in distribution tarball. 2003-03-25 12:27 spabsurd * sp-gxmlcpp/.cvsignore: Fixed .cvsignore. 2003-03-18 12:25 spabsurd * Doxyfile.in, Doxyfile.in: * Adding package name and version to doxygen configuration. 2003-03-17 17:00 spabsurd * doc/Makefile.am: Fix for man pages install. 2003-03-06 11:40 spabsurd * Makefile.am, configure.ac, doc/Makefile.am, doc/sp-gxmlcpp-test.1, doc/sp-gxmlcpp-xsltproc.1: * Some non-sourcecode updates from HEAD - Adding man pages for sp-gxmlcpp-test|xsltproc - Adding .strap_* scripts to dist. - configure.ac reset to invalid. 2003-03-06 10:43 spabsurd * .cvsignore: Removing tarballs/BAK files. 2003-03-05 14:25 spabsurd * doc/: Makefile.am, sp-gxmlcpp-test.1, sp-gxmlcpp-xsltproc.1: * Adding simple man pages for sp-gxmlcpp-[test@xsltproc]. * Makefile.am: Adding man pages -- untested!! 2003-03-05 13:43 spabsurd * Makefile.am: FIX: Adding .strap_* scripts to distribution. 2003-03-04 14:22 spabsurd * configure.ac, examples/Makefile.am: FIX: Adding XSLTProc.cpp to examples. 2003-03-03 17:10 spabsurd * configure.ac: New development version 1.1.x. 2003-03-03 16:58 spabsurd * configure.ac: SPRelease: Check in of invalid configure.ac for clarity. 2003-03-03 16:56 spabsurd * ChangeLog: SPRelease: ChangeLog update. Final change for Release 1.0.20030303. 2003-03-03 16:56 spabsurd * NEWS, configure.ac: SPRelease: 1.0.20030303 (CVS tag: SP_GXMLCPP_1_0_20030303) released. 2003-03-03 16:29 spabsurd * INSTALL.sp-gxmlcpp, doc/autoadd/mainpage.txt: * Fixes in INSTALL.sp-gxmlcpp * Example fixes for doxygen. 2003-03-03 16:12 spabsurd * SPRelease.package: Update: Using abteilung@volvic.schlund.de for email notification. 2003-03-03 16:08 spabsurd * configure.ac: Release 1.0.x ! ;) 2003-03-03 16:04 spabsurd * README: Updates to README for 1st stable 1.0.x. 2003-02-27 15:06 geye * sp-gxmlcpp/: XMLTree.cpp, XMLTree.hpp: Replaced method "XMLTree::getTreeXML" with "XMLTree::getSiblingXML" 2003-02-26 13:07 spabsurd * sp-gxmlcpp/: XMLNode.cpp, XMLNode.hpp: FIX: XMLNode::getAttribute(). 2003-02-07 17:39 spabsurd * configure.ac, sp-gxmlcpp/XMLDump.cpp, sp-gxmlcpp/XMLException.cpp, sp-gxmlcpp/XMLNode.cpp, sp-gxmlcpp/XMLNodeSet.cpp, sp-gxmlcpp/XMLTree.cpp, sp-gxmlcpp/XSLTrans.cpp: New include order -- including implementation header file directly after local configuration in *.cpp. 2003-02-05 15:14 spabsurd * .strap_dev: * FIX: no ":" at beginnning or end of CPLUS_INCLUDE_PATH (gcc32 thinks this is ".", and WARNS) 2003-01-30 13:38 spabsurd * examples/XSLTProc.cpp, sp-gxmlcpp/XSLTrans.hpp: Some changes in exslt support. 2003-01-30 13:28 spabsurd * examples/Makefile.am, examples/XSLTProc.cpp, sp-gxmlcpp/XSLTrans.hpp: * XSLTrans.hpp: Including extensions.h * XSLTProc: Adding support for exslt. 2003-01-28 17:24 spabsurd * sp-gxmlcpp/XSLTrans.hpp: Including XMLTree|Dump.hpp instead forward declaration. 2003-01-28 13:50 spabsurd * examples/XSLTProc.cpp, sp-gxmlcpp/XSLTrans.cpp, sp-gxmlcpp/XSLTrans.hpp: Patch to support relative includes/imports with XSLT. 2003-01-24 19:04 spabsurd * .strap_auto, SPRelease.package: * Adding .strap_auto * Removing autoUpdate from SPRelease.package 2002-12-23 11:37 spabsurd * examples/.cvsignore: Adding new binary. 2002-12-23 11:24 spabsurd * SPRelease.package: Now using the default from SPRelease. You need sp-utilcpp from CVS. 2002-12-20 14:29 spabsurd * examples/: Makefile.am, XSLTProc.cpp: * XSLTProc from tincas migrated. * Changes for g++-3.2 readyness. 2002-12-19 16:16 spabsurd * sp-gxmlcpp/: Util.hpp, XMLDump.hpp, XMLException.hpp, XMLNode.hpp, XMLNodeSet.hpp, XMLTree.hpp, XSLTrans.hpp: Changing all anti multi inclusion headers from _H to _HPP. 2002-12-19 15:56 spabsurd * examples/.cvsignore: Update. 2002-12-19 15:39 spabsurd * sp-gxmlcpp/Makefile.am: Cosmetic change. 2002-12-19 15:38 spabsurd * examples/UnitTests.cpp: * Checking with g++ 3.2. 2002-12-19 15:07 spabsurd * examples/: Makefile.am, UnitTests.cpp, XMLTest.cpp, XMLTest.hpp: * Old XMLTree and XSLTrans Tests from tincas migrated * All tests unified into one file/binary 2002-12-18 18:45 geye * sp-gxmlcpp/: XMLDump.hpp, XMLNode.cpp, XMLNode.hpp, XMLNodeSet.cpp, XMLNodeSet.hpp, XMLTree.cpp, XSLTrans.hpp: Fixed implicit header dependencies 2002-12-13 16:09 spabsurd * sp-gxmlcpp/Util.hpp: Removing braindead "config.h" include 2002-12-13 14:51 spabsurd * sp-gxmlcpp/: XMLDump.cpp, XMLTree.cpp, XSLTrans.cpp: Removing double default arguments -- 3.2 does not like these. 2002-12-13 14:29 spabsurd * Makefile.am: FIX: autodoc missing from extra dist. 2002-12-12 19:22 spabsurd * configure.ac: Removing -D_GNU_SOURCE: not needed. 2002-12-12 19:17 spabsurd * doc/autoadd/mainpage.txt, examples/Makefile.am: Renaming test binary (in sync with sp-utilcpp naming scheme) 2002-12-12 18:48 spabsurd * sp-gxmlcpp/: XMLNode.hpp, XMLNodeSet.cpp, XMLNodeSet.hpp, XMLTree.hpp, XSLTrans.cpp, XSLTrans.hpp: Removing all trailing whitespace. 2002-12-12 18:45 spabsurd * examples/XMLTest.cpp: Adding newlines to new style multi line constant -- making test work again. 2002-12-12 18:41 spabsurd * examples/XMLTest.cpp, examples/XMLTest.hpp, sp-gxmlcpp/Util.hpp, sp-gxmlcpp/XMLDump.cpp, sp-gxmlcpp/XMLDump.hpp, sp-gxmlcpp/XMLException.cpp, sp-gxmlcpp/XMLException.hpp, sp-gxmlcpp/XMLNode.cpp, sp-gxmlcpp/XMLNode.hpp, sp-gxmlcpp/XMLNodeSet.cpp, sp-gxmlcpp/XMLNodeSet.hpp, sp-gxmlcpp/XMLTree.cpp, sp-gxmlcpp/XMLTree.hpp, sp-gxmlcpp/XSLTrans.cpp, sp-gxmlcpp/XSLTrans.hpp: Make it all compilable with g++ 3.x. 2002-12-12 18:24 spabsurd * .strap_dev, .strap_run: Two uttility function to use the library directly form cvs. 2002-12-12 18:20 spabsurd * Makefile.am: Removing testsuite trash 2002-12-12 18:19 spabsurd * Doxyfile.in: input files pattern update to .hpp. 2002-12-12 18:14 spabsurd * examples/XMLTest.cpp: Juts some last more .h -> .hpp 2002-12-12 18:14 spabsurd * doc/autoadd/mainpage.txt: Corrected name of example binary. 2002-12-12 18:09 spabsurd * doc/autoadd/: autoadd.txt, mainpage.txt: Renaming this file. 2002-12-12 18:05 spabsurd * sp-gxmlcpp/: Util.hpp, XMLDump.hpp, XMLException.hpp, XMLNode.hpp, XMLNodeSet.hpp, XMLTree.hpp, XSLTrans.hpp: Removin all refernces to old .h files from documentation. 2002-12-12 17:54 spabsurd * Makefile.am: Using new better doxygen doc setup 2002-12-12 16:18 spabsurd * configure.ac, SPRelease.package: Using new init scheme availaibe with automake 1.6 2002-12-12 15:53 spabsurd * sp-gxmlcpp/: Util.hpp, XMLNodeSet.hpp, XMLTree.cpp, XMLTree.hpp, XSLTrans.cpp: More .h to .hpp updates: should compile now. 2002-12-12 15:50 spabsurd * sp-gxmlcpp/: XMLDump.cpp, XMLException.cpp, XMLNode.cpp, XMLNodeSet.cpp, XMLTree.cpp, XSLTrans.cpp: Cosmetic: Making local includes in *.cpp real lokal. 2002-12-12 15:36 spabsurd * sp-gxmlcpp/: XMLDump.cpp, XMLDump.hpp, XMLException.hpp, XMLNode.hpp, XMLNodeSet.hpp, XMLTree.hpp, XSLTrans.cpp, XSLTrans.hpp: Checking implicit dependencies. 2002-12-12 15:25 spabsurd * examples/Makefile.am: Cosmetics. 2002-12-12 15:24 spabsurd * Makefile.am: Updationg to automake 1.6 2002-12-12 15:22 spabsurd * examples/: Makefile.am, XMLTest.cpp, XMLTest.h, XMLTest.hpp: .h --> .hpp 2002-12-12 15:17 spabsurd * sp-gxmlcpp/: XMLDump.cpp, XMLException.cpp, XMLNode.cpp, XMLNodeSet.cpp, XMLTree.cpp, XSLTrans.cpp: Removing emacs mode mark (emacs does not need this for *.cpp files). 2002-12-12 15:14 spabsurd * sp-gxmlcpp/: Util.hpp, XMLDump.hpp, XMLException.hpp, XMLNode.hpp, XMLNodeSet.hpp, XMLTree.hpp: Removing emacs mode mark (using the correct ending now). 2002-12-12 15:11 spabsurd * sp-gxmlcpp/Makefile.am: .h -> .hpp 2002-12-12 15:05 spabsurd * sp-gxmlcpp/: Util.h, Util.hpp, XMLDump.cpp, XMLDump.h, XMLDump.hpp, XMLException.cpp, XMLException.h, XMLException.hpp, XMLNode.cpp, XMLNode.h, XMLNode.hpp, XMLNodeSet.cpp, XMLNodeSet.h, XMLNodeSet.hpp, XMLTree.cpp, XMLTree.h, XMLTree.hpp, XSLTrans.cpp, XSLTrans.h, XSLTrans.hpp, sp-gxmlcpp.h: * .h --> .hpp * Moving mixed "spaces/TABS" format back to TABS only (hopefully complete) 2002-11-14 17:06 geye * configure.ac: SPRelease: Check in of invalid configure.ac for clarity. 2002-11-14 17:02 geye * ChangeLog: SPRelease: ChangeLog update. Final change for Release 0.1.20021114. 2002-11-14 17:01 geye * configure.ac: SPRelease: 0.1.20021114 (CVS tag: SP_GXMLCPP_0_1_20021114) released. 2002-11-14 16:56 geye * Makefile.am: Added historic change logs to EXTRA_DIST 2002-11-14 16:41 geye * Makefile.am: Added historic change logs to install rules 2002-11-14 16:37 geye * SPRelease.package: Update to new SPRelease 2002-11-14 16:19 geye * ChangeLog, ChangeLog.historic.schlund_cvs, ChangeLog.historic.tincas: Released : 14. 11. 2002 2002-11-14 15:46 geye * NEWS: Released : 14. 11. 2002 2002-11-14 13:49 geye * sp-gxmlcpp/Makefile.am: Added a "-Werror" flag 2002-11-14 13:37 geye * configure.ac: The library version was set 2002-11-14 13:27 spabsurd * configure.ac: Adding minmal instructions for library versioning. 2002-11-14 13:21 geye * Makefile.am: Removed target distclean-local 2002-10-22 15:56 geye * sp-gxmlcpp/: XMLDump.cpp, XMLDump.h, XMLException.cpp, XMLException.h, XMLNode.cpp, XMLNode.h, XMLNodeSet.cpp, XMLNodeSet.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h: Merged this source file with the corresponding more advanced file from the TINCAS project. This is done since TINCAS should use this library. 2002-09-12 16:43 domivogt * ChangeLog, NEWS, configure.ac, doc/DEVELOPERS: * Released 0.1.20020912. 2002-09-12 16:39 domivogt * ChangeLog, NEWS, configure.ac: * Updates for 0.1.20020912. 2002-09-12 16:36 domivogt * ChangeLog, sp-gxmlcpp/sp-gxmlcpp.h: * Fixed compiler warning. 2002-09-11 17:58 domivogt * ChangeLog, configure.ac, doc/Makefile.am, doc/autoadd/Makefile.am: * Fixed documentation distribution problems. 2002-09-11 17:50 domivogt * Makefile.am: * Documentation distribution fixes. 2002-09-11 15:57 domivogt * ChangeLog, Makefile.am: * More doc distribution fixes. 2002-09-11 15:46 domivogt * ChangeLog, Doxyfile.in, Makefile.am: * Fixed documentation distribution problems. 2002-09-11 15:00 domivogt * ChangeLog, Makefile.am: * Fixed typos in doc install rules. 2002-09-09 15:46 domivogt * ChangeLog, NEWS, configure.ac, doc/ANNOUNCE, doc/DEVELOPERS: * Updated for initial open source release. 2002-09-09 15:38 domivogt * ChangeLog, doc/DEVELOPERS: * Updated DEVELOPER info. 2002-09-09 15:34 domivogt * sp-gxmlcpp/Util.h, sp-gxmlcpp/XMLDump.cpp, sp-gxmlcpp/XMLDump.h, sp-gxmlcpp/XMLException.cpp, sp-gxmlcpp/XMLException.h, sp-gxmlcpp/XMLNode.cpp, sp-gxmlcpp/XMLNode.h, sp-gxmlcpp/XMLNodeSet.cpp, sp-gxmlcpp/XMLNodeSet.h, sp-gxmlcpp/XMLTree.cpp, sp-gxmlcpp/XMLTree.h, sp-gxmlcpp/XSLTrans.cpp, sp-gxmlcpp/XSLTrans.h, sp-gxmlcpp/sp-gxmlcpp.h, COPYING, ChangeLog, examples/XMLTest.cpp, examples/XMLTest.h: * Changed license to LGPL. 2002-09-09 14:52 domivogt * .cvsignore, AUTHORS, ChangeLog, Doxyfile.in, INSTALL.sp-gxmlcpp, Makefile.am, NEWS, README, SPRelease.package, acinclude.m4, configure.ac, doc/.cvsignore, doc/ANNOUNCE, doc/DEVELOPERS, doc/Makefile.am, doc/OOD.dia, doc/autoadd/.cvsignore, doc/autoadd/Makefile.am, doc/autoadd/autoadd.txt, examples/.cvsignore, examples/Makefile.am, examples/XMLTest.cpp, examples/XMLTest.h, sp-gxmlcpp/.cvsignore, sp-gxmlcpp/Makefile.am, sp-gxmlcpp/Util.h, sp-gxmlcpp/XMLDump.cpp, sp-gxmlcpp/XMLDump.h, sp-gxmlcpp/XMLException.cpp, sp-gxmlcpp/XMLException.h, sp-gxmlcpp/XMLNode.cpp, sp-gxmlcpp/XMLNode.h, sp-gxmlcpp/XMLNodeSet.cpp, sp-gxmlcpp/XMLNodeSet.h, sp-gxmlcpp/XMLTree.cpp, sp-gxmlcpp/XMLTree.h, sp-gxmlcpp/XSLTrans.cpp, sp-gxmlcpp/XSLTrans.h, sp-gxmlcpp/sp-gxmlcpp.h: Initial revision 2002-09-09 14:52 domivogt * .cvsignore, AUTHORS, ChangeLog, Doxyfile.in, INSTALL.sp-gxmlcpp, Makefile.am, NEWS, README, SPRelease.package, acinclude.m4, configure.ac, doc/.cvsignore, doc/ANNOUNCE, doc/DEVELOPERS, doc/Makefile.am, doc/OOD.dia, doc/autoadd/.cvsignore, doc/autoadd/Makefile.am, doc/autoadd/autoadd.txt, examples/.cvsignore, examples/Makefile.am, examples/XMLTest.cpp, examples/XMLTest.h, sp-gxmlcpp/.cvsignore, sp-gxmlcpp/Makefile.am, sp-gxmlcpp/Util.h, sp-gxmlcpp/XMLDump.cpp, sp-gxmlcpp/XMLDump.h, sp-gxmlcpp/XMLException.cpp, sp-gxmlcpp/XMLException.h, sp-gxmlcpp/XMLNode.cpp, sp-gxmlcpp/XMLNode.h, sp-gxmlcpp/XMLNodeSet.cpp, sp-gxmlcpp/XMLNodeSet.h, sp-gxmlcpp/XMLTree.cpp, sp-gxmlcpp/XMLTree.h, sp-gxmlcpp/XSLTrans.cpp, sp-gxmlcpp/XSLTrans.h, sp-gxmlcpp/sp-gxmlcpp.h: Imported sources sp-gxmlcpp-1.0.20040603/Doxyfile.in0000644000175000017500000001574607635601113012154 # Doxyfile 1.2.13-20020210 #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- PROJECT_NAME = @PACKAGE_NAME@ PROJECT_NUMBER = @PACKAGE_VERSION@ OUTPUT_DIRECTORY = autodoc OUTPUT_LANGUAGE = English EXTRACT_ALL = NO EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO EXTRACT_LOCAL_CLASSES = YES HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO STRIP_FROM_PATH = INTERNAL_DOCS = NO STRIP_CODE_COMMENTS = YES CASE_SENSE_NAMES = YES SHORT_NAMES = NO HIDE_SCOPE_NAMES = NO VERBATIM_HEADERS = YES SHOW_INCLUDE_FILES = YES JAVADOC_AUTOBRIEF = NO INHERIT_DOCS = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES DISTRIBUTE_GROUP_DOC = NO TAB_SIZE = 8 GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES ALIASES = ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = NO SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = YES WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = @top_srcdir@/sp-gxmlcpp/ \ @top_srcdir@/doc/autoadd FILE_PATTERNS = *.hpp \ *.txt RECURSIVE = NO EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = examples/ EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = NO INLINE_SOURCES = NO REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = YES RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = YES #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = @PERL@ #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES TEMPLATE_RELATIONS = YES HIDE_UNDOC_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES GRAPHICAL_HIERARCHY = YES DOT_IMAGE_FORMAT = png DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO CGI_NAME = search.cgi CGI_URL = DOC_URL = DOC_ABSPATH = BIN_ABSPATH = /usr/local/bin/ EXT_DOC_PATHS = sp-gxmlcpp-1.0.20040603/INSTALL0000644000175000017500000002202407722662174011070 Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. sp-gxmlcpp-1.0.20040603/Makefile.am0000644000175000017500000000162307640057710012066 ## Process this file with automake to produce Makefile.in AUTOMAKE_OPTIONS = 1.6 SUBDIRS = sp-gxmlcpp examples doc # Install autodoc (all possible targets doxygen supports, if present) docdir = $(datadir)/doc/$(PACKAGE) doc_DATA = README NEWS AUTHORS ChangeLog ChangeLog.historic.schlund_cvs ChangeLog.historic.tincas COPYING EXTRA_DIST = $(doc_DATA) .strap_auto .strap_dev .strap_run doxygen: if test -f $(top_srcdir)/.cvsignore; then \ cd $(top_srcdir) && \ rm -rf autodoc && doxygen Doxyfile ;\ fi dist-hook: doxygen cp -a $(top_srcdir)/autodoc $(distdir) install-data-local: doxygen if test -f $(top_srcdir)/.cvsignore; then \ _dir=$(top_builddir) ;\ else \ _dir=$(top_srcdir) ;\ fi && \ cp -a "$$_dir"/autodoc/* $(docdir) uninstall-local: for d in def html latex man rtf xml; do \ chmod -R u+wx $(docdir)/$${d} 2>/dev/null || true; \ rm -rf $(docdir)/$${d}; \ done .PHONY: doxygen sp-gxmlcpp-1.0.20040603/Makefile.in0000644000175000017500000003630610057656703012110 # Makefile.in generated by automake 1.6.3 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # 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@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ PATH_SEPARATOR = @PATH_SEPARATOR@ AMTAR = @AMTAR@ AS = @AS@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CXXCPP = @CXXCPP@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ OBJDUMP = @OBJDUMP@ PACKAGE = @PACKAGE@ PERL = @PERL@ RANLIB = @RANLIB@ SO_VERSION = @SO_VERSION@ STRIP = @STRIP@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ install_sh = @install_sh@ xml2_CFLAGS = @xml2_CFLAGS@ xml2_LIBS = @xml2_LIBS@ xslt_CFLAGS = @xslt_CFLAGS@ xslt_LIBS = @xslt_LIBS@ AUTOMAKE_OPTIONS = 1.6 SUBDIRS = sp-gxmlcpp examples doc # Install autodoc (all possible targets doxygen supports, if present) docdir = $(datadir)/doc/$(PACKAGE) doc_DATA = README NEWS AUTHORS ChangeLog ChangeLog.historic.schlund_cvs ChangeLog.historic.tincas COPYING EXTRA_DIST = $(doc_DATA) .strap_auto .strap_dev .strap_run subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = Doxyfile DIST_SOURCES = DATA = $(doc_DATA) RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ uninstall-info-recursive all-recursive install-data-recursive \ install-exec-recursive installdirs-recursive install-recursive \ uninstall-recursive check-recursive installcheck-recursive DIST_COMMON = README AUTHORS COPYING ChangeLog Doxyfile.in INSTALL \ Makefile.am Makefile.in NEWS acinclude.m4 aclocal.m4 \ config.guess config.h.in config.sub configure configure.ac \ depcomp install-sh ltmain.sh missing mkinstalldirs DIST_SUBDIRS = $(SUBDIRS) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): configure.ac acinclude.m4 cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) 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: $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOHEADER) touch $(srcdir)/config.h.in distclean-hdr: -rm -f config.h stamp-h1 Doxyfile: $(top_builddir)/config.status Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: docDATA_INSTALL = $(INSTALL_DATA) install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(docdir) @list='$(doc_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(docDATA_INSTALL) $$d$$p $(DESTDIR)$(docdir)/$$f"; \ $(docDATA_INSTALL) $$d$$p $(DESTDIR)$(docdir)/$$f; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(docdir)/$$f"; \ rm -f $(DESTDIR)$(docdir)/$$f; \ done # 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): @set fnord $$MAKEFLAGS; amf=$$2; \ 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; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ 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; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ETAGS = etags ETAGSFLAGS = tags: TAGS 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; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$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; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = . distdir = $(PACKAGE)-$(VERSION) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } GZIP_ENV = --best distcleancheck_listfiles = find . -type f -print distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkinstalldirs) $(distdir)/. @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="${top_distdir}" distdir="$(distdir)" \ dist-hook -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist $(am__remove_distdir) GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/=build mkdir $(distdir)/=inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \ && 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 \ && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ find $$dc_install_base -type f -print ; \ exit 1; } >&2 ) \ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ && rm -f $(distdir).tar.gz \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' 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 after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(docdir) 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_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_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) distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-data-local install-docDATA install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf autom4te.cache maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool uninstall-am: uninstall-docDATA uninstall-info-am uninstall-local uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive dist dist-all \ dist-gzip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-recursive distclean-tags \ distcleancheck distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-data install-data-am \ install-data-local install-data-recursive install-docDATA \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive tags tags-recursive \ uninstall uninstall-am uninstall-docDATA uninstall-info-am \ uninstall-info-recursive uninstall-local uninstall-recursive doxygen: if test -f $(top_srcdir)/.cvsignore; then \ cd $(top_srcdir) && \ rm -rf autodoc && doxygen Doxyfile ;\ fi dist-hook: doxygen cp -a $(top_srcdir)/autodoc $(distdir) install-data-local: doxygen if test -f $(top_srcdir)/.cvsignore; then \ _dir=$(top_builddir) ;\ else \ _dir=$(top_srcdir) ;\ fi && \ cp -a "$$_dir"/autodoc/* $(docdir) uninstall-local: for d in def html latex man rtf xml; do \ chmod -R u+wx $(docdir)/$${d} 2>/dev/null || true; \ rm -rf $(docdir)/$${d}; \ done .PHONY: doxygen # 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: sp-gxmlcpp-1.0.20040603/NEWS0000644000175000017500000001375210057656623010543 Tarballs: http://volvic.schlund.de/~tarball/sp/sp-gxmlcpp/ ====================================================================== sp-gxmlcpp-1.0.20040603 (Thu Jun 3 17:16:14 UTC 2004): Patch release. * This fixes a pathetic memory leak in XMLNode::getNodeDump() (this also applies to XMLTree::getSiblingXML, using that). ====================================================================== Changes in 6th stable release sp-gxmlcpp-1.0.20040112 (12-Jan-2004) * Fix for non-thread safe xpath contexts: this release also fixes this for XMLDump and XMLNodeSet ;). ---------------------------------------------------------------------- Changes in 5th stable release sp-gxmlcpp-1.0.20031219 (19-Dec-2003) * XMLTree: Fix for non-thread safe xpath contexts. ---------------------------------------------------------------------- Changes in 4th stable release sp-gxmlcpp-1.0.20030812 (12-Aug-2003) * Removing static -Werror in Makefiles. * Removing some non-ref catches in example source (satisfying new rc test). * Tested to compile with "-pedantic" (no changes needed). ---------------------------------------------------------------------- Changes in 3rd stable release sp-gxmlcpp-1.0.20030807 (07-Aug-2003) * Minor fixes to make it compatible with g++-3.3. ---------------------------------------------------------------------- Changes in 2nd stable release sp-gxmlcpp-1.0.20030422 (22-Mar-2003) * Severe bug fix: Library is no longer linked against cppunit. On systems where this library is linked statically to the library (e.g. Debian), binaries linked with sp-gxmlcpp _and_ using cppunit need recompile. * Fix: XMLTree::addTree() does no work even if there is a comment before the root tag. This needed an additional interface to NodeSet, so so-version is now 1.1.0. * Fix: .strap_*-Scripts are now included in the release. At least ".strap_auto" is very handy for distribution package builds that rely on re-generating auto-generated scripts with the newest autotools (e.g., to support new architectures). * Fix: The doxygen version is now in sync with the release version. ------------------------------------------------------------------- Changes in 1st stable release sp-gxmlcpp-1.0.20030303 (03-Mar-2003) * XMLTree got new method: getSiblingXML(). * Last minute fix for Node::getAtribute(). * Checked and updated to compile with g++-2.95 && g++-3.2. * New clear library versioning scheme (see README). ------------------------------------------------------------------- Changes in development release 0.1.20021114 (11-Nov-2002) * Extended the XMLTree interface : add sibling tags ------------------------------------------------------------------- Changes in development release 0.1.20020912 (12-Sep-2002) * Fixed a compiler warning in sp-gxmlcpp.h. ------------------------------------------------------------------- Changes in development release 0.1.20020909 (9-Sep-2002) * Changed license to LGPL. * Initial open source release. ------------------------------------------------------------------- Changes in development release 0.1.20020829 (29-Aug-2002) * INITIAL release of sp-gxmlcpp. Forget any former releases; they just don't work (believe me ;). * This is a complete revamp; as of this (i.e. list too versatile), here is the list of changes instead of a proper summary: * FIX: directory src -> sp-gxmlcpp. Yes, we really want this. * FIX: All include paths. We want one unig'fied synopsis. * FIX: Namespace LibGXML -> GXML. "Lib" just does not make sense in namespace context. * FIX: SPUtil.h -> Util.h, namespace SP:Util --> SP::GXML: Severe bug, namesapce clashes, this library formerly could not be used together with sp-utilcpp. * FIX: Unified all "no double inclusion ifdefs". * FIX: Util.h: ifstream2string obsolete removed. * FIX: Added library versions (formerly, library had _NO_ SO_VERSION) * Using SPRelease -- don't want to re-introduce former more error prone release mechanism; using versioning scheme as currently "standard". * Fixing versioning scheme, as documentet in README. * FIX: Make it compile with -pthread - makes it usable for programs using pthread. * FIX: Removed all checks/flags whatever for CommonC++ -- no one ordered these. Couple of other needless tests removed. * FIX: Did not travers "doc". * FIX: Moved XMLTest to examples directory. No need to depend on cppunit for the so. * Added autodoc/doxygen support. * Removing all former releases, beginning new with 0.1.DATE. * Removing all obsolete refrences to static library targets. * Added doxygen file header for all header files. * FIX: Make XMLTest program exit #0 if test fails. * FIX: Fixing one Dump test (Dump will now always create UTF-8). * Adding automated local check via XMLTest. * Adding doc/autoadd. Creating mainpage, namespace and example docs. * FIX: autodoc rules (this fix went straight down to sp-utilcpp and templates). No need to have Doxyfile.in any more; bug removed with distclean; removed bug that docs would be regenereated even in a dist tarball (see configure.ac). =================================================================== Text below for historic reasons; ignore any release version numbers: ------------------------------------------------------------------- Changes in development release 0.5.0 (never released) * Portability fix for ccgnu library check. * Set _GNU_SOURCE via configure.ac. ------------------------------------------------------------------- Changes in development release 0.3.0 (26-Aug-2002) * Imported Tincas sources. * General clean up. ------------------------------------------------------------------- Version 0.1.0: * Initial release. * basic C++ wrapper for libxml supporting following functions: - iterator through XPath (NodeSet) - standard navigation through nodes in tree (Node) - functions for reading specific types from tree (Tree) (see header files for function description) * Remember that the classes rely on libxml and its data-structure, so deleting the object created by libxml will keep these classes from functioning. sp-gxmlcpp-1.0.20040603/acinclude.m40000644000175000017500000001425407537114637012236 dnl Convenience macros dnl Configure-time switch with default dnl dnl Each switch defines an --enable-FOO and --disable-FOO option in dnl the resulting configure script. dnl dnl Usage: dnl smr_SWITCH(name, description, default, pos-def, neg-def) dnl dnl where: dnl dnl name name of switch; generates --enable-name & --disable-name dnl options dnl description help string is set to this prefixed by "enable" or dnl "disable", whichever is the non-default value dnl default either "on" or "off"; specifies default if neither dnl --enable-name nor --disable-name is specified dnl pos-def a symbol to AC_DEFINE if switch is on (optional) dnl neg-def a symbol to AC_DEFINE if switch is off (optional) dnl AC_DEFUN(smr_SWITCH, [ AC_MSG_CHECKING(whether to enable $2) AC_ARG_ENABLE( $1, ifelse($3, on, [ --disable-[$1]substr([ ], len([$1])) disable [$2]], [ --enable-[$1] substr([ ], len([$1])) enable [$2]]), [ if test "$enableval" = yes; then AC_MSG_RESULT(yes) ifelse($4, , , AC_DEFINE($4)) else AC_MSG_RESULT(no) ifelse($5, , , AC_DEFINE($5)) fi ], ifelse($3, on, [ AC_MSG_RESULT(yes) ifelse($4, , , AC_DEFINE($4)) ], [ AC_MSG_RESULT(no) ifelse($5, , , AC_DEFINE($5))]))]) dnl Allow argument for optional libraries; wraps AC_ARG_WITH, to dnl provide a "--with-foo-library" option in the configure script, where foo dnl is presumed to be a library name. The argument given by the user dnl (i.e. "bar" in ./configure --with-foo-library=bar) may be one of three dnl things: dnl * boolean (no, yes or blank): whether to use library or not dnl * file: assumed to be the name of the library dnl * directory: assumed to *contain* the library dnl dnl The argument is sanity-checked. If all is well, two variables are dnl set: "with_foo" (value is yes, no, or maybe), and "foo_LIBS" (value dnl is either blank, a file, -lfoo, or '-L/some/dir -lfoo'). The idea dnl is: the first tells you whether the library is to be used or not dnl (or the user didn't specify one way or the other) and the second dnl to put on the command line for linking with the library. dnl dnl Usage: dnl smr_ARG_WITHLIB(name, libname, description) dnl dnl name name for --with argument ("foo" for libfoo) dnl libname (optional) actual name of library, dnl if different from name dnl description (optional) used to construct help string dnl AC_DEFUN(smr_ARG_WITHLIB, [ ifelse($2, , smr_lib=[$1], smr_lib=[$2]) AC_ARG_WITH([$1]-library, ifelse($3, , [ --with-$1-library[=PATH] use $1 library], [ --with-$1-library[=PATH] use $1 library ($3)]), [ if test "$withval" = yes; then with_[$1]=yes [$1]_LIBS="-l${smr_lib}" elif test "$withval" = no; then with_[$1]=no [$1]_LIBS= else with_[$1]=yes if test -f "$withval"; then [$1]_LIBS=$withval elif test -d "$withval"; then [$1]_LIBS="-L$withval -l${smr_lib}" else AC_MSG_ERROR(argument must be boolean, file, or directory) fi fi ], [ with_[$1]=maybe [$1]_LIBS="-l${smr_lib}" ])]) dnl Check if the include files for a library are accessible, and dnl define the variable "name_CFLAGS" with the proper "-I" flag for dnl the compiler. The user has a chance to specify the includes dnl location, using "--with-foo-includes". dnl dnl This should be used *after* smr_ARG_WITHLIB *and* AC_CHECK_LIB are dnl successful. dnl dnl Usage: dnl smr_ARG_WITHINCLUDES(name, header, extra-flags) dnl dnl name library name, MUST same as used with smr_ARG_WITHLIB dnl header a header file required for using the lib dnl extra-flags (optional) flags required when compiling the dnl header, typically more includes; for ex. X_CFLAGS dnl AC_DEFUN(smr_ARG_WITHINCLUDES, [ AC_ARG_WITH([$1]-includes, [ --with-$1-includes=DIR set directory for $1 headers], [ if test -d "$withval"; then [$1]_CFLAGS="-I${withval}" else AC_MSG_ERROR(argument must be a directory) fi]) dnl We need to put the given include directory into CPPFLAGS temporarily, but dnl then restore CPPFLAGS to its old value. dnl smr_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS ${[$1]_CFLAGS}" ifelse($3, , , CPPFLAGS="$CPPFLAGS [$3]") AC_CHECK_HEADERS($2) CPPFLAGS=$smr_save_CPPFLAGS ]) dnl Probe for an optional library. This macro creates both dnl --with-foo-library and --with-foo-includes options for the configure dnl script. If --with-foo-library is *not* specified, the default is to dnl probe for the library, and use it if found. dnl dnl Usage: dnl smr_CHECK_LIB(name, libname, desc, func, header, x-libs, x-flags) dnl dnl name name for --with options dnl libname (optional) real name of library, if different from dnl above dnl desc (optional) short descr. of library, for help string dnl func function of library, to probe for dnl header (optional) header required for using library dnl x-libs (optional) extra libraries, if needed to link with lib dnl x-flags (optional) extra flags, if needed to include header files dnl AC_DEFUN(smr_CHECK_LIB, [ ifelse($2, , smr_lib=[$1], smr_lib=[$2]) ifelse($5, , , smr_header=[$5]) smr_ARG_WITHLIB($1,$2,$3) if test "$with_$1" != no; then AC_CHECK_LIB(ifelse($2, , $1, $2), $4, smr_havelib=yes, smr_havelib=no; problem_$1=": Can't find working lib$smr_lib", ifelse($6, , ${$1_LIBS}, [${$1_LIBS} $6])) if test "$smr_havelib" = yes -a "$smr_header" != ""; then smr_ARG_WITHINCLUDES($1, $smr_header, $7) smr_safe=`echo "$smr_header" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$ac_cv_header_'$smr_safe`\" != yes"; then smr_havelib=no problem_$1=": Can't find working $smr_header" fi fi if test "$smr_havelib" = yes; then with_$1=yes problem_$1= else $1_LIBS= $1_CFLAGS= with_$1=no fi else problem_$1=": Explicitly disabled" fi]) sp-gxmlcpp-1.0.20040603/aclocal.m40000644000175000017500000046322310057656677011717 # aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*- # Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. dnl Convenience macros dnl Configure-time switch with default dnl dnl Each switch defines an --enable-FOO and --disable-FOO option in dnl the resulting configure script. dnl dnl Usage: dnl smr_SWITCH(name, description, default, pos-def, neg-def) dnl dnl where: dnl dnl name name of switch; generates --enable-name & --disable-name dnl options dnl description help string is set to this prefixed by "enable" or dnl "disable", whichever is the non-default value dnl default either "on" or "off"; specifies default if neither dnl --enable-name nor --disable-name is specified dnl pos-def a symbol to AC_DEFINE if switch is on (optional) dnl neg-def a symbol to AC_DEFINE if switch is off (optional) dnl AC_DEFUN(smr_SWITCH, [ AC_MSG_CHECKING(whether to enable $2) AC_ARG_ENABLE( $1, ifelse($3, on, [ --disable-[$1]substr([ ], len([$1])) disable [$2]], [ --enable-[$1] substr([ ], len([$1])) enable [$2]]), [ if test "$enableval" = yes; then AC_MSG_RESULT(yes) ifelse($4, , , AC_DEFINE($4)) else AC_MSG_RESULT(no) ifelse($5, , , AC_DEFINE($5)) fi ], ifelse($3, on, [ AC_MSG_RESULT(yes) ifelse($4, , , AC_DEFINE($4)) ], [ AC_MSG_RESULT(no) ifelse($5, , , AC_DEFINE($5))]))]) dnl Allow argument for optional libraries; wraps AC_ARG_WITH, to dnl provide a "--with-foo-library" option in the configure script, where foo dnl is presumed to be a library name. The argument given by the user dnl (i.e. "bar" in ./configure --with-foo-library=bar) may be one of three dnl things: dnl * boolean (no, yes or blank): whether to use library or not dnl * file: assumed to be the name of the library dnl * directory: assumed to *contain* the library dnl dnl The argument is sanity-checked. If all is well, two variables are dnl set: "with_foo" (value is yes, no, or maybe), and "foo_LIBS" (value dnl is either blank, a file, -lfoo, or '-L/some/dir -lfoo'). The idea dnl is: the first tells you whether the library is to be used or not dnl (or the user didn't specify one way or the other) and the second dnl to put on the command line for linking with the library. dnl dnl Usage: dnl smr_ARG_WITHLIB(name, libname, description) dnl dnl name name for --with argument ("foo" for libfoo) dnl libname (optional) actual name of library, dnl if different from name dnl description (optional) used to construct help string dnl AC_DEFUN(smr_ARG_WITHLIB, [ ifelse($2, , smr_lib=[$1], smr_lib=[$2]) AC_ARG_WITH([$1]-library, ifelse($3, , [ --with-$1-library[=PATH] use $1 library], [ --with-$1-library[=PATH] use $1 library ($3)]), [ if test "$withval" = yes; then with_[$1]=yes [$1]_LIBS="-l${smr_lib}" elif test "$withval" = no; then with_[$1]=no [$1]_LIBS= else with_[$1]=yes if test -f "$withval"; then [$1]_LIBS=$withval elif test -d "$withval"; then [$1]_LIBS="-L$withval -l${smr_lib}" else AC_MSG_ERROR(argument must be boolean, file, or directory) fi fi ], [ with_[$1]=maybe [$1]_LIBS="-l${smr_lib}" ])]) dnl Check if the include files for a library are accessible, and dnl define the variable "name_CFLAGS" with the proper "-I" flag for dnl the compiler. The user has a chance to specify the includes dnl location, using "--with-foo-includes". dnl dnl This should be used *after* smr_ARG_WITHLIB *and* AC_CHECK_LIB are dnl successful. dnl dnl Usage: dnl smr_ARG_WITHINCLUDES(name, header, extra-flags) dnl dnl name library name, MUST same as used with smr_ARG_WITHLIB dnl header a header file required for using the lib dnl extra-flags (optional) flags required when compiling the dnl header, typically more includes; for ex. X_CFLAGS dnl AC_DEFUN(smr_ARG_WITHINCLUDES, [ AC_ARG_WITH([$1]-includes, [ --with-$1-includes=DIR set directory for $1 headers], [ if test -d "$withval"; then [$1]_CFLAGS="-I${withval}" else AC_MSG_ERROR(argument must be a directory) fi]) dnl We need to put the given include directory into CPPFLAGS temporarily, but dnl then restore CPPFLAGS to its old value. dnl smr_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS ${[$1]_CFLAGS}" ifelse($3, , , CPPFLAGS="$CPPFLAGS [$3]") AC_CHECK_HEADERS($2) CPPFLAGS=$smr_save_CPPFLAGS ]) dnl Probe for an optional library. This macro creates both dnl --with-foo-library and --with-foo-includes options for the configure dnl script. If --with-foo-library is *not* specified, the default is to dnl probe for the library, and use it if found. dnl dnl Usage: dnl smr_CHECK_LIB(name, libname, desc, func, header, x-libs, x-flags) dnl dnl name name for --with options dnl libname (optional) real name of library, if different from dnl above dnl desc (optional) short descr. of library, for help string dnl func function of library, to probe for dnl header (optional) header required for using library dnl x-libs (optional) extra libraries, if needed to link with lib dnl x-flags (optional) extra flags, if needed to include header files dnl AC_DEFUN(smr_CHECK_LIB, [ ifelse($2, , smr_lib=[$1], smr_lib=[$2]) ifelse($5, , , smr_header=[$5]) smr_ARG_WITHLIB($1,$2,$3) if test "$with_$1" != no; then AC_CHECK_LIB(ifelse($2, , $1, $2), $4, smr_havelib=yes, smr_havelib=no; problem_$1=": Can't find working lib$smr_lib", ifelse($6, , ${$1_LIBS}, [${$1_LIBS} $6])) if test "$smr_havelib" = yes -a "$smr_header" != ""; then smr_ARG_WITHINCLUDES($1, $smr_header, $7) smr_safe=`echo "$smr_header" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$ac_cv_header_'$smr_safe`\" != yes"; then smr_havelib=no problem_$1=": Can't find working $smr_header" fi fi if test "$smr_havelib" = yes; then with_$1=yes problem_$1= else $1_LIBS= $1_CFLAGS= with_$1=no fi else problem_$1=": Explicitly disabled" fi]) # Do all the work for Automake. -*- Autoconf -*- # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. # Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 8 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... AC_PREREQ([2.52]) # Autoconf 2.50 wants to disallow AM_ names. We explicitly allow # the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_][CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_][CC], defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_][CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_][CXX], defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # Copyright 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.6"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.6.3])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright 2001, 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # # Check to make sure that the build environment is sane. # # Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # 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". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # -*- Autoconf -*- # Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # AM_AUX_DIR_EXPAND # Copyright 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. # Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50]) AC_DEFUN([AM_AUX_DIR_EXPAND], [ # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. # Copyright 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # AM_PROG_INSTALL_STRIP # Copyright 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # serial 4 -*- Autoconf -*- # Copyright 1999, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. 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 am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # 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. echo '#include "conftest.h"' > conftest.c echo 'int i;' > conftest.h echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=conftest.c object=conftest.o \ depfile=conftest.Po tmpdepfile=conftest.TPo \ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && grep conftest.h conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then am_cv_$1_dependencies_compiler_type=$depmode break fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [rm -f .deps 2>/dev/null mkdir .deps 2>/dev/null if test -d .deps; then DEPDIR=.deps else # MS-DOS does not allow filenames that begin with a dot. DEPDIR=_deps fi rmdir .deps 2>/dev/null AC_SUBST([DEPDIR]) ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. #serial 2 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; 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. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # 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 -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //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_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright 2001 Free Software Foundation, Inc. -*- Autoconf -*- # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' doit: @echo done END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST(am__include) AC_SUBST(am__quote) AC_MSG_RESULT($_am_result) rm -f confinc confmf ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright 1997, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 5 AC_PREREQ(2.52) # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([conditional \"$1\" was never defined. Usually this means the macro was only invoked conditionally.]) fi])]) # Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- # Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. AC_PREREQ([2.52]) # serial 6 # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. We must strip everything past the first ":", # and everything past the last "/". # _AM_DIRNAME(PATH) # ----------------- # Like AS_DIRNAME, only do it during macro expansion AC_DEFUN([_AM_DIRNAME], [m4_if(regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1, m4_if(regexp([$1], [^//\([^/]\|$\)]), -1, m4_if(regexp([$1], [^/.*]), -1, [.], patsubst([$1], [^\(/\).*], [\1])), patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])), patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl ])# _AM_DIRNAME # The stamp files are numbered to have different names. # We could number them on a directory basis, but that's additional # complications, let's have a unique counter. m4_define([_AM_STAMP_Count], [0]) # _AM_STAMP(HEADER) # ----------------- # The name of the stamp file for HEADER. AC_DEFUN([_AM_STAMP], [m4_define([_AM_STAMP_Count], m4_incr(_AM_STAMP_Count))dnl AS_ESCAPE(_AM_DIRNAME(patsubst([$1], [:.*])))/stamp-h[]_AM_STAMP_Count]) # _AM_CONFIG_HEADER(HEADER[:SOURCES], COMMANDS, INIT-COMMANDS) # ------------------------------------------------------------ # We used to try to get a real timestamp in stamp-h. But the fear is that # that will cause unnecessary cvs conflicts. AC_DEFUN([_AM_CONFIG_HEADER], [# Add the stamp file to the list of files AC keeps track of, # along with our hook. AC_CONFIG_HEADERS([$1], [# update the timestamp echo 'timestamp for $1' >"_AM_STAMP([$1])" $2], [$3]) ])# _AM_CONFIG_HEADER # AM_CONFIG_HEADER(HEADER[:SOURCES]..., COMMANDS, INIT-COMMANDS) # -------------------------------------------------------------- AC_DEFUN([AM_CONFIG_HEADER], [AC_FOREACH([_AM_File], [$1], [_AM_CONFIG_HEADER(_AM_File, [$2], [$3])]) ])# AM_CONFIG_HEADER # libtool.m4 - Configure libtool for the host system. -*-Shell-script-*- # serial 46 AC_PROG_LIBTOOL AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ]) AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.13)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl _LT_AC_PROG_ECHO_BACKSLASH # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE(libtool-lock, [ --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 *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then 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 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_SAVE AC_LANG_C AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_RESTORE]) 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 ;; ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) # recent cygwin and mingw systems supply a stub DllMain which the user # can override, but on older systems we have to supply one AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, [AC_TRY_LINK([], [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); DllMain (0, 0, 0);], [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) case $host/$CC in *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) # old mingw systems require "-dll" to link a DLL, while more recent ones # require "-mdll" SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mdll" AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) CFLAGS="$SAVE_CFLAGS" ;; *-*-cygwin* | *-*-pw32*) # cygwin systems need to pass --dll to the linker, and not link # crt.o which will require a WinMain@16 definition. lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; esac ;; ]) esac _LT_AC_LTCONFIG_HACK ]) # AC_LIBTOOL_HEADER_ASSERT # ------------------------ AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], [AC_CACHE_CHECK([whether $CC supports assert without backlinking], [lt_cv_func_assert_works], [case $host in *-*-solaris*) if test "$GCC" = yes && test "$with_gnu_ld" != yes; then case `$CC --version 2>/dev/null` in [[12]].*) lt_cv_func_assert_works=no ;; *) lt_cv_func_assert_works=yes ;; esac fi ;; esac]) if test "x$lt_cv_func_assert_works" = xyes; then AC_CHECK_HEADERS(assert.h) fi ])# AC_LIBTOOL_HEADER_ASSERT # _LT_AC_CHECK_DLFCN # -------------------- AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h) ])# _LT_AC_CHECK_DLFCN # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl # 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]]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris* | sysv5*) symcode='[[BDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $host_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then symcode='[[ABCDGISTW]]' fi # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $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 egrep ' nm_test_var$' "$nlist" >/dev/null; then if egrep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[[]] = { EOF sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$no_builtin_flag" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AC_FD_CC fi else echo "cannot find nm_test_var in $nlist" >&AC_FD_CC fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC fi else echo "$progname: failed program was:" >&AC_FD_CC cat conftest.$ac_ext >&5 fi rm -f 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 ]) global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" if test -z "$lt_cv_sys_global_symbol_pipe"; then global_symbol_to_cdecl= global_symbol_to_c_name_address= else global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" fi if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR # --------------------------------- AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], [# Find the correct PATH separator. Usually this is `:', but # DJGPP uses `;' like DOS. if test "X${PATH_SEPARATOR+set}" != Xset; then UNAME=${UNAME-`uname 2>/dev/null`} case X$UNAME in *-DOS) lt_cv_sys_path_separator=';' ;; *) lt_cv_sys_path_separator=':' ;; esac PATH_SEPARATOR=$lt_cv_sys_path_separator fi ])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR # _LT_AC_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. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${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 </dev/null && echo_test_string="`eval $cmd`" && (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. IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do 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="$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. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) AC_DIVERT_POP ])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ------------------------------------------------------------------ AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [if test "$cross_compiling" = yes; then : [$4] else AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #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); */ } exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_unknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [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 ;; cygwin* | mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; *) 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="-dld"], [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="-dld"]) ]) ]) ]) ]) ]) ;; 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" AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" 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_AC_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 LDFLAGS="$LDFLAGS $link_static_flag" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_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 ])# AC_LIBTOOL_DLOPEN_SELF AC_DEFUN([_LT_AC_LTCONFIG_HACK], [AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' 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' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" need_locks="$enable_libtool_lock" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o if test x"$host" != x"$build"; then ac_tool_prefix=${host_alias}- else ac_tool_prefix= fi # Transform linux* to *-*-linux-gnu*, to support old configure scripts. case $host_os in linux-gnu*) ;; linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac 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 # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Allow CC to be a program name with arguments. set dummy $CC compiler="[$]2" AC_MSG_CHECKING([for objdir]) rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. objdir=_libs fi rmdir .libs 2>/dev/null AC_MSG_RESULT($objdir) AC_ARG_WITH(pic, [ --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=default # We assume here that the value for lt_cv_prog_cc_pic will not be cached # in isolation, and that seeing it set (from the cache) indicates that # the associated values are set (in the cache) correctly too. AC_MSG_CHECKING([for $compiler option to produce PIC]) AC_CACHE_VAL(lt_cv_prog_cc_pic, [ lt_cv_prog_cc_pic= lt_cv_prog_cc_shlib= lt_cv_prog_cc_wl= lt_cv_prog_cc_static= lt_cv_prog_cc_no_builtin= lt_cv_prog_cc_can_build_shared=$can_build_shared if test "$GCC" = yes; then lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-static' case $host_os in aix*) # Below there is a dirty hack to force normal static linking with -ldl # The problem is because libdl dynamically linked with both libc and # libC (AIX C++ library), which obviously doesn't included in libraries # list by gcc. This cause undefined symbols with -static flags. # This hack allows C programs to be linked with "-static -ldl", but # not sure about C++ programs. lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ;; amigaos*) # 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_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_cv_prog_cc_pic='-fno-common' ;; cygwin* | mingw* | pw32* | os2*) # 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_cv_prog_cc_pic='-DDLL_EXPORT' ;; sysv4*MP*) if test -d /usr/nec; then lt_cv_prog_cc_pic=-Kconform_pic fi ;; *) lt_cv_prog_cc_pic='-fPIC' ;; esac else # PORTME Check for PIC flags for the system compiler. case $host_os in aix3* | aix4* | aix5*) lt_cv_prog_cc_wl='-Wl,' # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_cv_prog_cc_static='-Bstatic' else lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' fi ;; hpux9* | hpux10* | hpux11*) # Is there a better lt_cv_prog_cc_static that works with the bundled CC? lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" lt_cv_prog_cc_pic='+Z' ;; irix5* | irix6* | nonstopux*) lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-non_shared' # PIC (with -KPIC) is the default. ;; cygwin* | mingw* | pw32* | os2*) # 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_cv_prog_cc_pic='-DDLL_EXPORT' ;; newsos6) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' ;; osf3* | osf4* | osf5*) # All OSF/1 code is PIC. lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-non_shared' ;; sco3.2v5*) lt_cv_prog_cc_pic='-Kpic' lt_cv_prog_cc_static='-dn' lt_cv_prog_cc_shlib='-belf' ;; solaris*) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Wl,' ;; sunos4*) lt_cv_prog_cc_pic='-PIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Wl,' ;; uts4*) lt_cv_prog_cc_pic='-pic' lt_cv_prog_cc_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_cv_prog_cc_pic='-Kconform_pic' lt_cv_prog_cc_static='-Bstatic' fi ;; *) lt_cv_prog_cc_can_build_shared=no ;; esac fi ]) if test -z "$lt_cv_prog_cc_pic"; then AC_MSG_RESULT([none]) else AC_MSG_RESULT([$lt_cv_prog_cc_pic]) # Check to make sure the pic_flag actually works. AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" AC_TRY_COMPILE([], [], [dnl case $host_os in hpux9* | hpux10* | hpux11*) # On HP-UX, both CC and GCC only warn that PIC is supported... then # they create non-PIC objects. So, if there were any warnings, we # assume that PIC is not supported. if test -s conftest.err; then lt_cv_prog_cc_pic_works=no else lt_cv_prog_cc_pic_works=yes fi ;; *) lt_cv_prog_cc_pic_works=yes ;; esac ], [dnl lt_cv_prog_cc_pic_works=no ]) CFLAGS="$save_CFLAGS" ]) if test "X$lt_cv_prog_cc_pic_works" = Xno; then lt_cv_prog_cc_pic= lt_cv_prog_cc_can_build_shared=no else lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" fi AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) fi # Check for any special shared library compilation flags. if test -n "$lt_cv_prog_cc_shlib"; then AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : else AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) lt_cv_prog_cc_can_build_shared=no fi fi AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl lt_cv_prog_cc_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) LDFLAGS="$save_LDFLAGS" ]) # Belt *and* braces to stop my trousers falling down: test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) pic_flag="$lt_cv_prog_cc_pic" special_shlib_compile_flags="$lt_cv_prog_cc_shlib" wl="$lt_cv_prog_cc_wl" link_static_flag="$lt_cv_prog_cc_static" no_builtin_flag="$lt_cv_prog_cc_no_builtin" can_build_shared="$lt_cv_prog_cc_can_build_shared" # Check to see if options -o and -c are simultaneously supported by compiler AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) AC_CACHE_VAL([lt_cv_compiler_c_o], [ $rm -r conftest 2>/dev/null mkdir conftest cd conftest echo "int some_variable = 0;" > conftest.$ac_ext mkdir out # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" compiler_c_o=no if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && 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 if test -s out/conftest.err; then lt_cv_compiler_c_o=no else lt_cv_compiler_c_o=yes fi else # Append any errors to the config.log. cat out/conftest.err 1>&AC_FD_CC lt_cv_compiler_c_o=no fi CFLAGS="$save_CFLAGS" chmod u+w . $rm conftest* out/* rmdir out cd .. rmdir conftest $rm -r conftest 2>/dev/null ]) compiler_c_o=$lt_cv_compiler_c_o AC_MSG_RESULT([$compiler_c_o]) if test x"$compiler_c_o" = x"yes"; then # Check to see if we can write to a .lo AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) AC_CACHE_VAL([lt_cv_compiler_o_lo], [ lt_cv_compiler_o_lo=no save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -c -o conftest.lo" save_objext="$ac_objext" ac_objext=lo AC_TRY_COMPILE([], [int some_variable = 0;], [dnl # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then lt_cv_compiler_o_lo=no else lt_cv_compiler_o_lo=yes fi ]) ac_objext="$save_objext" CFLAGS="$save_CFLAGS" ]) compiler_o_lo=$lt_cv_compiler_o_lo AC_MSG_RESULT([$compiler_o_lo]) else compiler_o_lo=no fi # Check to see if we can do hard links to lock some files if needed hard_links="nottested" if test "$compiler_c_o" = 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 if test "$GCC" = yes; then # Check to see if options -fno-rtti -fno-exceptions are supported by compiler AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) echo "int some_variable = 0;" > conftest.$ac_ext save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" compiler_rtti_exceptions=no AC_TRY_COMPILE([], [int some_variable = 0;], [dnl # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then compiler_rtti_exceptions=no else compiler_rtti_exceptions=yes fi ]) CFLAGS="$save_CFLAGS" AC_MSG_RESULT([$compiler_rtti_exceptions]) if test "$compiler_rtti_exceptions" = "yes"; then no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' else no_builtin_flag=' -fno-builtin' fi fi # See if the linker supports building shared libraries. AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) allow_undefined_flag= no_undefined_flag= need_lib_prefix=unknown need_version=unknown # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments archive_cmds= archive_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_into_libs=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported runpath_var= link_all_deplibs=unknown always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' # 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 egrep regular expression 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_" # 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. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; 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}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX, the GNU linker is very broken # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ld_shlibs=no cat <&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. EOF ;; amigaos*) 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 # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # 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=yes extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ else $CC -o impgen impgen.c ; fi)~ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' # cygwin and mingw dlls have different entry points and sets of symbols # to exclude. # FIXME: what about values for MSVC? dll_entry=__cygwin_dll_entry@12 dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ case $host_os in mingw*) # mingw values dll_entry=_DllMainCRTStartup@12 dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ;; esac # mingw and cygwin differ, and it's simplest to just exclude the union # of the two symbol sets. dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 # recent cygwin and mingw systems supply a stub DllMain which the user # can override, but on older systems we have to supply one (in ltdll.c) if test "x$lt_cv_need_dllmain" = "xyes"; then ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' else ltdll_obj= ltdll_cmds= fi # Extract the symbol export list from an `--export-all' def file, # then regenerate the def file from the symbol export list, so that # the compiled dll only exports the symbol export list. # Be careful not to strip the DATA tag left be newer dlltools. export_symbols_cmds="$ltdll_cmds"' $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is. # If DATA tags from a recent dlltool are present, honour them! 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; _lt_hint=1; cat $export_symbols | while read symbol; do set dummy \$symbol; case \[$]# in 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; esac; _lt_hint=`expr 1 + \$_lt_hint`; done; fi~ '"$ltdll_cmds"' $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ;; 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 -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&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. EOF elif $LD --help 2>&1 | egrep ': 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 ;; 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 | egrep ': 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" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' case $host_os in cygwin* | mingw* | pw32*) # dlltool doesn't understand --whole-archive et. al. whole_archive_flag_spec= ;; *) # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi ;; esac 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 "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no 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]].*|aix5*) 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. hardcode_direct=yes archive_cmds='' hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # 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' else # not using gcc if test "$host_cpu" = ia64; then shared_flag='${wl}-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall can do strange things, 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' hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${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 ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. allow_undefined_flag='${wl}-berok' # This is a bit strange, but is similar to how AIX traditionally builds # it's shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) 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 # see comment about different semantics on the GNU ld section ld_shlibs=no ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -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"`' ;; darwin* | rhapsody*) case "$host_os" in rhapsody* | darwin1.[[012]]) allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on allow_undefined_flag='-flat_namespace -undefined suppress' ;; esac # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. Also zsh mangles # `"' quotes if we put them in here... so don't! archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' # We need to add '_' to the symbols in $export_symbols first #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' hardcode_direct=yes hardcode_shlibpath_var=no whole_archive_flag_spec='-all_load $convenience' ;; 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*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9* | hpux10* | hpux11*) case $host_os in hpux9*) 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' ;; *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_minus_L=yes # Not in the search PATH, but as the default # location of the library. export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: 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 ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no 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' 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 ;; 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 ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi 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 ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' #Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) 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 export_dynamic_flag_spec='${wl}-Bexport' ;; solaris*) # gcc --version < 3.0 without binutils cannot create self contained # shared libraries reliably, requiring libgcc.a to resolve some of # the object symbols generated in some cases. Libraries that use # assert need libgcc.a to resolve __eprintf, for example. Linking # a copy of libgcc.a into every shared library to guarantee resolving # such symbols causes other problems: According to Tim Van Holder # , C++ libraries end up with a separate # (to the application) exception stack for one thing. no_undefined_flag=' -z defs' if test "$GCC" = yes; then case `$CC --version 2>/dev/null` in [[12]].*) cat <&2 *** Warning: Releases of GCC earlier than version 3.0 cannot reliably *** create self contained shared libraries on Solaris systems, without *** introducing a dependency on libgcc.a. Therefore, libtool is disabling *** -no-undefined support, which will at least allow you to build shared *** libraries. However, you may find that when you link such libraries *** into an application without using GCC, you have to manually add *** \`gcc --print-libgcc-file-name\` to the link command. We urge you to *** upgrade to a newer version of GCC. Another option is to rebuild your *** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. EOF no_undefined_flag= ;; esac fi # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now 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' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; 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' ;; sysv5*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now 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' hardcode_libdir_flag_spec= hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; 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.2uw2*) archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=no hardcode_shlibpath_var=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5uw7* | unixware7*) no_undefined_flag='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi AC_MSG_RESULT([$ld_shlibs]) test "$ld_shlibs" = no && can_build_shared=no # Check hardcoding attributes. AC_MSG_CHECKING([how to hardcode library paths into programs]) hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var"; then # We can hardcode non-existant 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 "$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 AC_MSG_RESULT([$hardcode_action]) 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 AC_MSG_RESULT([no]) fi reload_cmds='$LD$reload_flag -o $output$reload_objs' test -z "$deplibs_check_method" && deplibs_check_method=unknown # PORTME Fill in your ld.so characteristics AC_MSG_CHECKING([dynamic linker characteristics]) library_names_spec= libname_spec='lib$name' soname_spec= 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" sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}.so$versuffix $libname.a' shlibpath_var=LIBPATH # AIX has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}.so$major' ;; aix4* | aix5*) 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}.so$major ${libname}${release}.so$versuffix $libname.so' 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.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 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}.so$major' fi shlibpath_var=LIBPATH fi hardcode_into_libs=yes ;; amigaos*) 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' ;; beos*) library_names_spec='${libname}.so' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$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" export_dynamic_flag_spec=-rdynamic # 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*) version_type=windows need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin*) library_names_spec='$libname.dll.a' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog .libs/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' ;; yes,mingw*) library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ;; yes,pw32*) library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ;; *) library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $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 # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd*-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU/FreeBSD ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; *) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' soname_spec='${libname}${release}.so$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. dynamic_linker="$host_os dld.sl" version_type=sunos need_lib_prefix=no need_version=no shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' soname_spec='${libname}${release}.sl$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) version_type=irix ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 ") 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}" ;; # No shared lib support for Linux oldld, aout, or coff. linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) dynamic_linker=no ;; # This must be Linux ELF. linux-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # 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 # 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}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' soname_spec='${libname}${release}.so$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}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no 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 library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; os2*) libname_spec='$name' need_lib_prefix=no library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_version=no need_lib_prefix=no soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 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" hardcode_into_libs=yes ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$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}.so$versuffix ${libname}.so$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.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' 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 ;; uts4*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' soname_spec='$libname.so.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no # Report the final consequences. 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 ;; aix4*) 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]) if test "$hardcode_action" = relink; 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 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 AC_LIBTOOL_DLOPEN_SELF 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. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) AC_CACHE_VAL([lt_cv_archive_cmds_need_lc], [$rm conftest* echo 'static int dummy;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_cv_prog_cc_wl compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$save_allow_undefined_flag else cat conftest.err 1>&5 fi]) AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) ;; esac fi need_lc=${lt_cv_archive_cmds_need_lc-yes} # The second clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then : else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. test -f Makefile && make "$ltmain" fi if test -f "$ltmain"; then trap "$rm \"${ofile}T\"; exit 1" 1 2 15 $rm -f "${ofile}T" echo creating $ofile # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS SED \ AR AR_FLAGS CC LD LN_S NM SHELL \ reload_flag reload_cmds wl \ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ library_names_spec soname_spec \ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ old_striplib striplib file_magic_cmd export_symbols_cmds \ deplibs_check_method allow_undefined_flag no_undefined_flag \ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ global_symbol_to_c_name_address \ hardcode_libdir_flag_spec hardcode_libdir_separator \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do case $var in reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ postinstall_cmds | postuninstall_cmds | \ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done cat <<__EOF__ > "${ofile}T" #! $SHELL # `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996-2000 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="${SED} -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$need_lc # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # The default C compiler. CC=$lt_CC # Is the compiler the GNU C compiler? with_gcc=$GCC # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_pic_flag pic_mode=$pic_mode # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_compiler_c_o # Can we write directly to a .lo ? compiler_o_lo=$lt_compiler_o_lo # Must we lock files when doing compilation ? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_link_static_flag # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_no_builtin_flag # 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 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # 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 and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # 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 # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$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 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_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 # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "${ofile}T" # 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 EOF ;; esac case $host_os in cygwin* | mingw* | pw32* | os2*) cat <<'EOF' >> "${ofile}T" # This is a source program that is used to create dlls on Windows # Don't remove nor modify the starting and closing comments # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ # This is a source program that is used to create import libraries # on Windows for dlls which lack them. Don't remove nor modify the # starting and closing comments # /* impgen.c starts here */ # /* Copyright (C) 1999-2000 Free Software Foundation, Inc. # # This file is part of GNU libtool. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # */ # # #include /* for printf() */ # #include /* for open(), lseek(), read() */ # #include /* for O_RDONLY, O_BINARY */ # #include /* for strdup() */ # # /* O_BINARY isn't required (or even defined sometimes) under Unix */ # #ifndef O_BINARY # #define O_BINARY 0 # #endif # # static unsigned int # pe_get16 (fd, offset) # int fd; # int offset; # { # unsigned char b[2]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 2); # return b[0] + (b[1]<<8); # } # # static unsigned int # pe_get32 (fd, offset) # int fd; # int offset; # { # unsigned char b[4]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 4); # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # static unsigned int # pe_as32 (ptr) # void *ptr; # { # unsigned char *b = ptr; # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # int # main (argc, argv) # int argc; # char *argv[]; # { # int dll; # unsigned long pe_header_offset, opthdr_ofs, num_entries, i; # unsigned long export_rva, export_size, nsections, secptr, expptr; # unsigned long name_rvas, nexp; # unsigned char *expdata, *erva; # char *filename, *dll_name; # # filename = argv[1]; # # dll = open(filename, O_RDONLY|O_BINARY); # if (dll < 1) # return 1; # # dll_name = filename; # # for (i=0; filename[i]; i++) # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') # dll_name = filename + i +1; # # pe_header_offset = pe_get32 (dll, 0x3c); # opthdr_ofs = pe_header_offset + 4 + 20; # num_entries = pe_get32 (dll, opthdr_ofs + 92); # # if (num_entries < 1) /* no exports */ # return 1; # # export_rva = pe_get32 (dll, opthdr_ofs + 96); # export_size = pe_get32 (dll, opthdr_ofs + 100); # nsections = pe_get16 (dll, pe_header_offset + 4 +2); # secptr = (pe_header_offset + 4 + 20 + # pe_get16 (dll, pe_header_offset + 4 + 16)); # # expptr = 0; # for (i = 0; i < nsections; i++) # { # char sname[8]; # unsigned long secptr1 = secptr + 40 * i; # unsigned long vaddr = pe_get32 (dll, secptr1 + 12); # unsigned long vsize = pe_get32 (dll, secptr1 + 16); # unsigned long fptr = pe_get32 (dll, secptr1 + 20); # lseek(dll, secptr1, SEEK_SET); # read(dll, sname, 8); # if (vaddr <= export_rva && vaddr+vsize > export_rva) # { # expptr = fptr + (export_rva - vaddr); # if (export_rva + export_size > vaddr + vsize) # export_size = vsize - (export_rva - vaddr); # break; # } # } # # expdata = (unsigned char*)malloc(export_size); # lseek (dll, expptr, SEEK_SET); # read (dll, expdata, export_size); # erva = expdata - export_rva; # # nexp = pe_as32 (expdata+24); # name_rvas = pe_as32 (expdata+32); # # printf ("EXPORTS\n"); # for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) mv -f "${ofile}T" "$ofile" || \ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") chmod +x "$ofile" fi ])# _LT_AC_LTCONFIG_HACK # AC_LIBTOOL_DLOPEN - enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) # AC_ENABLE_SHARED - implement the --enable-shared flag # Usage: AC_ENABLE_SHARED[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(shared, changequote(<<, >>)dnl << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], changequote([, ])dnl [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. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$ac_save_ifs" ;; esac], enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl ]) # AC_DISABLE_SHARED - set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no)]) # AC_ENABLE_STATIC - implement the --enable-static flag # Usage: AC_ENABLE_STATIC[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(static, changequote(<<, >>)dnl << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], changequote([, ])dnl [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. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$ac_save_ifs" ;; esac], enable_static=AC_ENABLE_STATIC_DEFAULT)dnl ]) # AC_DISABLE_STATIC - set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no)]) # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(fast-install, changequote(<<, >>)dnl << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], changequote([, ])dnl [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. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$ac_save_ifs" ;; esac], enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl ]) # AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no)]) # AC_LIBTOOL_PICMODE - implement the --with-pic flag # Usage: AC_LIBTOOL_PICMODE[(MODE)] # Where MODE is either `yes' or `no'. If omitted, it defaults to # `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default)]) # AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [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_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ;; *) ac_save_MAGIC_CMD="$MAGIC_CMD" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" 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="ifelse([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do 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 <&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 EOF fi ;; esac fi break fi done IFS="$ac_save_ifs" MAGIC_CMD="$ac_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 ]) # AC_PATH_MAGIC - find a file program which can recognise a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) else MAGIC_CMD=: fi fi ]) # AC_PROG_LD - find the path to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])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 GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | [[A-Za-z]]:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then 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 GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_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]) AC_PROG_LD_GNU ]) # AC_PROG_LD_GNU - AC_DEFUN([AC_PROG_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 ld's only accept -v. if $LD -v 2>&1 &5; then lt_cv_prog_gnu_ld=yes else lt_cv_prog_gnu_ld=no fi]) with_gnu_ld=$lt_cv_prog_gnu_ld ]) # AC_PROG_LD_RELOAD_FLAG - find reload flag for linker # -- PORTME Some linkers may need a different reload flag. AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], [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 test -n "$reload_flag" && reload_flag=" $reload_flag" ]) # AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], [AC_CACHE_CHECK([how to recognise 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 egrep 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 aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi4*) 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* | mingw* | pw32*) lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' lt_cv_file_magic_cmd='/usr/bin/file -L' case "$host_os" in rhapsody* | darwin1.[[012]]) lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ;; *) # Darwin 1.3 on lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ;; esac ;; freebsd*) 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)/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_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; irix5* | irix6* | nonstopux*) case $host_os in irix5* | nonstopux*) # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ;; *) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" ;; esac lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux-gnu*) case $host_cpu in alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | arm* | m68k) lt_cv_deplibs_check_method=pass_all ;; *) # glibc up to 2.1.1 does not perform some relocations on ARM lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; esac lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' 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 ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_test_file=/lib/libc.so ;; sysv5uw[[78]]* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) 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 ;; esac ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method ]) # AC_PROG_NM - find the path to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl AC_MSG_CHECKING([for BSD-compatible nm]) AC_CACHE_VAL(lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/${ac_tool_prefix}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 if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then lt_cv_path_NM="$tmp_nm -B" break elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then lt_cv_path_NM="$tmp_nm -p" break else 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 fi fi done IFS="$ac_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" AC_MSG_RESULT([$NM]) ]) # AC_CHECK_LIBM - check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32*) # These system don't have libm ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, main, LIBM="-lm") ;; esac ]) # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for # the libltdl convenience library and LTDLINCL to the include flags for # the libltdl header and adds --enable-ltdl-convenience to the # configure arguments. Note that LIBLTDL and LTDLINCL are not # AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not # provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed # with '${top_builddir}/' and LTDLINCL will be prefixed with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and # top_srcdir appropriately in the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ]) # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for # the libltdl installable library and LTDLINCL to the include flags for # the libltdl header and adds --enable-ltdl-install to the configure # arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is # AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed # libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will # be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed # with '${top_srcdir}/' (note the single quotes!). If your package is # not flat and you're not using automake, define top_builddir and # top_srcdir appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, main, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) # 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. # # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_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_executable_p="test -f" 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 if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" fi done done done # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/sed$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } _max=0 _count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for _sed in $_sed_list /usr/xpg4/bin/sed; do test ! -f ${_sed} && break cat /dev/null > "$tmp/sed.in" _count=0 echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" # Check for GNU sed and select it if it is found. if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then lt_cv_path_SED=${_sed} break fi while true; do cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" mv "$tmp/sed.tmp" "$tmp/sed.in" cp "$tmp/sed.in" "$tmp/sed.nl" echo >>"$tmp/sed.nl" ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break # 40000 chars as input seems more than enough test $_count -gt 10 && break _count=`expr $_count + 1` if test $_count -gt $_max; then _max=$_count lt_cv_path_SED=$_sed fi done done rm -rf "$tmp" ]) if test "X$SED" != "X"; then lt_cv_path_SED=$SED else SED=$lt_cv_path_SED fi AC_MSG_RESULT([$SED]) ]) sp-gxmlcpp-1.0.20040603/config.guess0000755000175000017500000011310607452050035012344 #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002 Free Software Foundation, Inc. timestamp='2002-03-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi dummy=dummy-$$ trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int dummy(){}" > $dummy.c ; for c in cc gcc c89 c99 ; do ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; if test $? = 0 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; rm -f $dummy.c $dummy.o $dummy.rel ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mipseb-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. cat <$dummy.s .data \$Lformat: .byte 37,100,45,37,120,10,0 # "%d-%x\n" .text .globl main .align 4 .ent main main: .frame \$30,16,\$26,0 ldgp \$29,0(\$27) .prologue 1 .long 0x47e03d80 # implver \$0 lda \$2,-1 .long 0x47e20c21 # amask \$2,\$1 lda \$16,\$Lformat mov \$0,\$17 not \$1,\$18 jsr \$26,printf ldgp \$29,0(\$26) mov 0,\$16 jsr \$26,exit .end main EOF eval $set_cc_for_build $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null if test "$?" = 0 ; then case `./$dummy` in 0-0) UNAME_MACHINE="alpha" ;; 1-0) UNAME_MACHINE="alphaev5" ;; 1-1) UNAME_MACHINE="alphaev56" ;; 1-101) UNAME_MACHINE="alphapca56" ;; 2-303) UNAME_MACHINE="alphaev6" ;; 2-307) UNAME_MACHINE="alphaev67" ;; 2-1307) UNAME_MACHINE="alphaev68" ;; esac fi rm -f $dummy.s $dummy echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD $dummy.c -o $dummy \ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy` if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi rm -f $dummy.c $dummy fi ;; esac echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3D:*:*:*) echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:3*) echo i386-pc-interix3 exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i386-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` rm -f $dummy.c test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` rm -f $dummy.c test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) echo `uname -p`-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: sp-gxmlcpp-1.0.20040603/config.h.in0000644000175000017500000000276110057656701012062 /* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `dl' library (-ldl). */ #undef HAVE_LIBDL /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* 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 version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION sp-gxmlcpp-1.0.20040603/config.sub0000755000175000017500000007054307452050035012016 #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002 Free Software Foundation, Inc. timestamp='2002-03-07' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dsp16xx \ | fr30 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | m32r | m68000 | m68k | m88k | mcore \ | mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el | mips64vr4300 \ | mips64vr4300el | mips64vr5000 | mips64vr5000el \ | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \ | mipsisa32 | mipsisa64 \ | mn10200 | mn10300 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[34] | sh[34]eb | shbe | shle | sh64 \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c54x-* \ | clipper-* | cydra-* \ | d10v-* | d30v-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | m32r-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \ | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \ | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; mmix*) basic_machine=mmix-knuth os=-mmixware ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon) basic_machine=i686-pc ;; pentiumii | pentium2) basic_machine=i686-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3d) basic_machine=alpha-cray os=-unicos ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; windows32) basic_machine=i386-pc os=-windows32-msvcrt ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh3eb | sh4eb) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; c4x*) basic_machine=c4x-none os=-coff ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto*) os=-nto-qnx ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -ptx*) vendor=sequent ;; -vxsim* | -vxworks*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: sp-gxmlcpp-1.0.20040603/configure0000755000175000017500000116753110057656704011761 #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for sp-gxmlcpp 1.0.20040603. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # Find the correct PATH separator. Usually this is `:', but # DJGPP uses `;' like DOS. if test "X${PATH_SEPARATOR+set}" != Xset; then UNAME=${UNAME-`uname 2>/dev/null`} case X$UNAME in *-DOS) lt_cv_sys_path_separator=';' ;; *) lt_cv_sys_path_separator=':' ;; esac PATH_SEPARATOR=$lt_cv_sys_path_separator fi # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${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 </dev/null && echo_test_string="`eval $cmd`" && (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. IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do 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="$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. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # NLS nuisances. # Support unset when possible. if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi (set +x; test -n "`(LANG=C; export LANG) 2>&1`") && { $as_unset LANG || test "${LANG+set}" != set; } || { LANG=C; export LANG; } (set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") && { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } || { LC_ALL=C; export LC_ALL; } (set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") && { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } || { LC_TIME=C; export LC_TIME; } (set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") && { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } || { LC_CTYPE=C; export LC_CTYPE; } (set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") && { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } || { LANGUAGE=C; export LANGUAGE; } (set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") && { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } || { LC_COLLATE=C; export LC_COLLATE; } (set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") && { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } || { LC_NUMERIC=C; export LC_NUMERIC; } (set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") && { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } || { LC_MESSAGES=C; export LC_MESSAGES; } # Name of the executable. as_me=`(basename "$0") 2>/dev/null || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conftest.sh echo "exit 0" >>conftest.sh chmod +x conftest.sh if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conftest.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. 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 ;; 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 { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); 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 sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; } # 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` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='sp-gxmlcpp' PACKAGE_TARNAME='sp-gxmlcpp' PACKAGE_VERSION='1.0.20040603' PACKAGE_STRING='sp-gxmlcpp 1.0.20040603' PACKAGE_BUGREPORT='' ac_unique_file="sp-gxmlcpp/XMLTree.hpp" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" # Initialize some variables set by options. ac_init_help= ac_init_version=false # 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. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= 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 ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -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 | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$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 ;; -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 ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) 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 ;; -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=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 ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && 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'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac 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 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 # 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 its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | 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 if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP # # 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 sp-gxmlcpp 1.0.20040603 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 \`..'] _ACEOF cat <<_ACEOF 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] --datadir=DIR read-only architecture-independent data [PREFIX/share] --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] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of sp-gxmlcpp 1.0.20040603:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking Speeds up one-time builds --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) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld default=no --with-pic try to use only PIC/non-PIC objects default=use both --with-xml2-library=PATH use xml2 library (specify location of xml2 library) --with-xml2-includes=DIR set directory for xml2 headers --with-xslt-library=PATH use xslt library (specify location of xslt library) --with-xslt-includes=DIR set directory for xslt headers Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXXCPP C++ preprocessor CC C compiler command CFLAGS C compiler flags 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. _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` cd $ac_dir # Check for guested configure; otherwise get Cygnus style 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 elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF sp-gxmlcpp configure 1.0.20040603 generated by GNU Autoconf 2.53 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by sp-gxmlcpp $as_me 1.0.20040603, which was generated by GNU Autoconf 2.53. Invocation command line was $ $0 $@ _ACEOF { 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` hostinfo = `(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=. echo "PATH: $as_dir" done } >&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. # Also quote any args containing shell meta-characters. ac_configure_args= ac_sep= for ac_arg do case $ac_arg in -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n ) continue ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ac_sep=" " ;; esac # Get rid of the leading space. done # 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: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. 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, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core core.* *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >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 # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 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. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 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 `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 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 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`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. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } 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 am__api_version="1.6" ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # 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" # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done 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. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # 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". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}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 $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="${MAKE}"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # Define the identity of the package. PACKAGE=sp-gxmlcpp VERSION=1.0.20040603 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"} AMTAR=${AMTAR-"${am_missing_run}tar"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Add the stamp file to the list of files AC keeps track of, # along with our hook. ac_config_headers="$ac_config_headers config.h" # See DEVELOPERS file for shared library versioning instructions #Guidelines for SO_VERSION changes for an official release (initial #version is always "0:0:0"): #One of A, B1 or B2 will be your path: # # A) If only the source code, but not the interface was changed, # the REVISION is increased by one. # B) If the interface changed, the INTERFACE number is increased by # one and REVISION is set to zero. # B1) If only new interfaces were added, the AGE is increased by # one. # B2) If interfaces were removed or there were incompatible # changes, the AGE is set to zero. # INTERFACE:REVISION:AGE SO_VERSION=2:5:1 # Checks for programs. ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe" # 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. echo "$as_me:$LINENO: checking for C++ compiler default output" >&5 echo $ECHO_N "checking for C++ compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null; ls a.out conftest 2>/dev/null; ls a.* conftest.* 2>/dev/null`; do case $ac_file in *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;; a.out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C++ compiler cannot create executables" >&5 echo "$as_me: error: C++ compiler cannot create executables" >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5 echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'." >&5 echo "$as_me: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ ''\ '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h 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 rm -f .deps 2>/dev/null mkdir .deps 2>/dev/null if test -d .deps; then DEPDIR=.deps else # MS-DOS does not allow filenames that begin with a dot. DEPDIR=_deps fi rmdir .deps 2>/dev/null ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' doit: @echo done END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-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="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # 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. echo '#include "conftest.h"' > conftest.c echo 'int i;' > conftest.h echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=conftest.c object=conftest.o \ depfile=conftest.Po tmpdepfile=conftest.TPo \ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && grep conftest.h conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then am_cv_CXX_dependencies_compiler_type=$depmode break fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # 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_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # 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 { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;} { (exit 1); exit 1; }; } 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 # 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" # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done 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. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="${MAKE}"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi # Check whether --enable-shared or --disable-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. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$ac_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-static or --disable-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. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$ac_save_ifs" ;; esac else enable_static=yes fi; # Check whether --enable-fast-install or --disable-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. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$ac_save_ifs" ;; esac else enable_fast_install=yes fi; # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done 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 set dummy "$as_dir/$ac_word" ${1+"$@"} shift ac_cv_prog_CC="$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$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 # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ ''\ '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext 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 depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 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 for depmode in $am_compiler_list; do # 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. echo '#include "conftest.h"' > conftest.c echo 'int i;' > conftest.h echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=conftest.c object=conftest.o \ depfile=conftest.Po tmpdepfile=conftest.TPo \ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && grep conftest.h conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then am_cv_CC_dependencies_compiler_type=$depmode break fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type # Find the correct PATH separator. Usually this is `:', but # DJGPP uses `;' like DOS. if test "X${PATH_SEPARATOR+set}" != Xset; then UNAME=${UNAME-`uname 2>/dev/null`} case X$UNAME in *-DOS) lt_cv_sys_path_separator=';' ;; *) lt_cv_sys_path_separator=':' ;; esac PATH_SEPARATOR=$lt_cv_sys_path_separator fi # Check whether --with-gnu-ld or --without-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. echo "$as_me:$LINENO: checking for ld used by GCC" >&5 echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&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. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then 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 GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_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 echo "$as_me:$LINENO: result: $LD" >&5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then lt_cv_prog_gnu_ld=yes else lt_cv_prog_gnu_ld=no fi fi echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/${ac_tool_prefix}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 if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then lt_cv_path_NM="$tmp_nm -B" break elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then lt_cv_path_NM="$tmp_nm -p" break else 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 fi fi done IFS="$ac_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi NM="$lt_cv_path_NM" echo "$as_me:$LINENO: result: $NM" >&5 echo "${ECHO_T}$NM" >&6 echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # 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_executable_p="test -f" 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 if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" fi done done done # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/sed$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } _max=0 _count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for _sed in $_sed_list /usr/xpg4/bin/sed; do test ! -f ${_sed} && break cat /dev/null > "$tmp/sed.in" _count=0 echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" # Check for GNU sed and select it if it is found. if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then lt_cv_path_SED=${_sed} break fi while true; do cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" mv "$tmp/sed.tmp" "$tmp/sed.in" cp "$tmp/sed.in" "$tmp/sed.nl" echo >>"$tmp/sed.nl" ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break # 40000 chars as input seems more than enough test $_count -gt 10 && break _count=`expr $_count + 1` if test $_count -gt $_max; then _max=$_count lt_cv_path_SED=$_sed fi done done rm -rf "$tmp" fi if test "X$SED" != "X"; then lt_cv_path_SED=$SED else SED=$lt_cv_path_SED fi echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 egrep 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 aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi4*) 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* | mingw* | pw32*) lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' lt_cv_file_magic_cmd='/usr/bin/file -L' case "$host_os" in rhapsody* | darwin1.[012]) lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ;; *) # Darwin 1.3 on lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ;; esac ;; freebsd*) 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)/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_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; irix5* | irix6* | nonstopux*) case $host_os in irix5* | nonstopux*) # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ;; *) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" ;; esac lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux-gnu*) case $host_cpu in alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | arm* | m68k) lt_cv_deplibs_check_method=pass_all ;; *) # glibc up to 2.1.1 does not perform some relocations on ARM lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; esac lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' else lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' 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 ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_test_file=/lib/libc.so ;; sysv5uw[78]* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) 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 ;; esac ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output" >&5 echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris* | sysv5*) symcode='[BDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $host_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then symcode='[ABCDGISTW]' fi # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$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=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && 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 egrep ' nm_test_var$' "$nlist" >/dev/null; then if egrep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[] = { EOF sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS="$save_LIBS" CFLAGS="$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 -f 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 global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" if test -z "$lt_cv_sys_global_symbol_pipe"; then global_symbol_to_cdecl= global_symbol_to_c_name_address= else global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" fi if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&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 echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&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 echo $ECHO_N "(cached) $ECHO_C" >&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. # 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 >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # 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 echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # 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 { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} { (exit 1); exit 1; }; } 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 echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include #include #include #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include _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 >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include _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 >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include #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)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF 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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc in yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in /*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; ?:/*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ;; *) ac_save_MAGIC_CMD="$MAGIC_CMD" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="/usr/bin:$PATH" for ac_dir in $ac_dummy; do 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 <&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 EOF fi ;; esac fi break fi done IFS="$ac_save_ifs" MAGIC_CMD="$ac_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in /*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; ?:/*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ;; *) ac_save_MAGIC_CMD="$MAGIC_CMD" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="/usr/bin:$PATH" for ac_dir in $ac_dummy; do 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 <&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 EOF fi ;; esac fi break fi done IFS="$ac_save_ifs" MAGIC_CMD="$ac_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-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 *-*-irix6*) # Find out which ABI we are using. echo '#line 4998 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then 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 rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f 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 echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$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 ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' 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' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" need_locks="$enable_libtool_lock" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o if test x"$host" != x"$build"; then ac_tool_prefix=${host_alias}- else ac_tool_prefix= fi # Transform linux* to *-*-linux-gnu*, to support old configure scripts. case $host_os in linux-gnu*) ;; linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac 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 # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Allow CC to be a program name with arguments. set dummy $CC compiler="$2" echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. objdir=_libs fi rmdir .libs 2>/dev/null echo "$as_me:$LINENO: result: $objdir" >&5 echo "${ECHO_T}$objdir" >&6 # Check whether --with-pic or --without-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 # We assume here that the value for lt_cv_prog_cc_pic will not be cached # in isolation, and that seeing it set (from the cache) indicates that # the associated values are set (in the cache) correctly too. echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "${lt_cv_prog_cc_pic+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_cc_pic= lt_cv_prog_cc_shlib= lt_cv_prog_cc_wl= lt_cv_prog_cc_static= lt_cv_prog_cc_no_builtin= lt_cv_prog_cc_can_build_shared=$can_build_shared if test "$GCC" = yes; then lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-static' case $host_os in aix*) # Below there is a dirty hack to force normal static linking with -ldl # The problem is because libdl dynamically linked with both libc and # libC (AIX C++ library), which obviously doesn't included in libraries # list by gcc. This cause undefined symbols with -static flags. # This hack allows C programs to be linked with "-static -ldl", but # not sure about C++ programs. lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ;; amigaos*) # 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_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_cv_prog_cc_pic='-fno-common' ;; cygwin* | mingw* | pw32* | os2*) # 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_cv_prog_cc_pic='-DDLL_EXPORT' ;; sysv4*MP*) if test -d /usr/nec; then lt_cv_prog_cc_pic=-Kconform_pic fi ;; *) lt_cv_prog_cc_pic='-fPIC' ;; esac else # PORTME Check for PIC flags for the system compiler. case $host_os in aix3* | aix4* | aix5*) lt_cv_prog_cc_wl='-Wl,' # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_cv_prog_cc_static='-Bstatic' else lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' fi ;; hpux9* | hpux10* | hpux11*) # Is there a better lt_cv_prog_cc_static that works with the bundled CC? lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" lt_cv_prog_cc_pic='+Z' ;; irix5* | irix6* | nonstopux*) lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-non_shared' # PIC (with -KPIC) is the default. ;; cygwin* | mingw* | pw32* | os2*) # 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_cv_prog_cc_pic='-DDLL_EXPORT' ;; newsos6) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' ;; osf3* | osf4* | osf5*) # All OSF/1 code is PIC. lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-non_shared' ;; sco3.2v5*) lt_cv_prog_cc_pic='-Kpic' lt_cv_prog_cc_static='-dn' lt_cv_prog_cc_shlib='-belf' ;; solaris*) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Wl,' ;; sunos4*) lt_cv_prog_cc_pic='-PIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Wl,' ;; uts4*) lt_cv_prog_cc_pic='-pic' lt_cv_prog_cc_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_cv_prog_cc_pic='-Kconform_pic' lt_cv_prog_cc_static='-Bstatic' fi ;; *) lt_cv_prog_cc_can_build_shared=no ;; esac fi fi if test -z "$lt_cv_prog_cc_pic"; then echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 else echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5 echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6 # Check to make sure the pic_flag actually works. echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6 if test "${lt_cv_prog_cc_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then case $host_os in hpux9* | hpux10* | hpux11*) # On HP-UX, both CC and GCC only warn that PIC is supported... then # they create non-PIC objects. So, if there were any warnings, we # assume that PIC is not supported. if test -s conftest.err; then lt_cv_prog_cc_pic_works=no else lt_cv_prog_cc_pic_works=yes fi ;; *) lt_cv_prog_cc_pic_works=yes ;; esac else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 lt_cv_prog_cc_pic_works=no fi rm -f conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" fi if test "X$lt_cv_prog_cc_pic_works" = Xno; then lt_cv_prog_cc_pic= lt_cv_prog_cc_can_build_shared=no else lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" fi echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5 echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6 fi # Check for any special shared library compilation flags. if test -n "$lt_cv_prog_cc_shlib"; then { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5 echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;} if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : else { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} lt_cv_prog_cc_can_build_shared=no fi fi echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6 if test "${lt_cv_prog_cc_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_cc_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_prog_cc_static_works=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi # Belt *and* braces to stop my trousers falling down: test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5 echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6 pic_flag="$lt_cv_prog_cc_pic" special_shlib_compile_flags="$lt_cv_prog_cc_shlib" wl="$lt_cv_prog_cc_wl" link_static_flag="$lt_cv_prog_cc_static" no_builtin_flag="$lt_cv_prog_cc_no_builtin" can_build_shared="$lt_cv_prog_cc_can_build_shared" # Check to see if options -o and -c are simultaneously supported by compiler echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else $rm -r conftest 2>/dev/null mkdir conftest cd conftest echo "int some_variable = 0;" > conftest.$ac_ext mkdir out # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" compiler_c_o=no if { (eval echo configure:5530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && 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 if test -s out/conftest.err; then lt_cv_compiler_c_o=no else lt_cv_compiler_c_o=yes fi else # Append any errors to the config.log. cat out/conftest.err 1>&5 lt_cv_compiler_c_o=no fi CFLAGS="$save_CFLAGS" chmod u+w . $rm conftest* out/* rmdir out cd .. rmdir conftest $rm -r conftest 2>/dev/null fi compiler_c_o=$lt_cv_compiler_c_o echo "$as_me:$LINENO: result: $compiler_c_o" >&5 echo "${ECHO_T}$compiler_c_o" >&6 if test x"$compiler_c_o" = x"yes"; then # Check to see if we can write to a .lo echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6 if test "${lt_cv_compiler_o_lo+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_compiler_o_lo=no save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -c -o conftest.lo" save_objext="$ac_objext" ac_objext=lo cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { int some_variable = 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then lt_cv_compiler_o_lo=no else lt_cv_compiler_o_lo=yes fi else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext ac_objext="$save_objext" CFLAGS="$save_CFLAGS" fi compiler_o_lo=$lt_cv_compiler_o_lo echo "$as_me:$LINENO: result: $compiler_o_lo" >&5 echo "${ECHO_T}$compiler_o_lo" >&6 else compiler_o_lo=no fi # Check to see if we can do hard links to lock some files if needed hard_links="nottested" if test "$compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 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 if test "$GCC" = yes; then # Check to see if options -fno-rtti -fno-exceptions are supported by compiler echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 echo "int some_variable = 0;" > conftest.$ac_ext save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" compiler_rtti_exceptions=no cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { int some_variable = 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then compiler_rtti_exceptions=no else compiler_rtti_exceptions=yes fi else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5 echo "${ECHO_T}$compiler_rtti_exceptions" >&6 if test "$compiler_rtti_exceptions" = "yes"; then no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' else no_builtin_flag=' -fno-builtin' fi fi # See if the linker supports building shared libraries. echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6 allow_undefined_flag= no_undefined_flag= need_lib_prefix=unknown need_version=unknown # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments archive_cmds= archive_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_into_libs=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported runpath_var= link_all_deplibs=unknown always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' # 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 egrep regular expression 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_" # 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. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; 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}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX, the GNU linker is very broken # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ld_shlibs=no cat <&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. EOF ;; amigaos*) 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 # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # 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=yes extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ else $CC -o impgen impgen.c ; fi)~ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' # cygwin and mingw dlls have different entry points and sets of symbols # to exclude. # FIXME: what about values for MSVC? dll_entry=__cygwin_dll_entry@12 dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ case $host_os in mingw*) # mingw values dll_entry=_DllMainCRTStartup@12 dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ;; esac # mingw and cygwin differ, and it's simplest to just exclude the union # of the two symbol sets. dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 # recent cygwin and mingw systems supply a stub DllMain which the user # can override, but on older systems we have to supply one (in ltdll.c) if test "x$lt_cv_need_dllmain" = "xyes"; then ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' else ltdll_obj= ltdll_cmds= fi # Extract the symbol export list from an `--export-all' def file, # then regenerate the def file from the symbol export list, so that # the compiled dll only exports the symbol export list. # Be careful not to strip the DATA tag left be newer dlltools. export_symbols_cmds="$ltdll_cmds"' $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is. # If DATA tags from a recent dlltool are present, honour them! 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; _lt_hint=1; cat $export_symbols | while read symbol; do set dummy \$symbol; case \$# in 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; esac; _lt_hint=`expr 1 + \$_lt_hint`; done; fi~ '"$ltdll_cmds"' $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ;; 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 -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&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. EOF elif $LD --help 2>&1 | egrep ': 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 ;; 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 | egrep ': 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" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' case $host_os in cygwin* | mingw* | pw32*) # dlltool doesn't understand --whole-archive et. al. whole_archive_flag_spec= ;; *) # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi ;; esac 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 "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no 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].*|aix5*) 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. hardcode_direct=yes archive_cmds='' hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # 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' else # not using gcc if test "$host_cpu" = ia64; then shared_flag='${wl}-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall can do strange things, 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' hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${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 ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. allow_undefined_flag='${wl}-berok' # This is a bit strange, but is similar to how AIX traditionally builds # it's shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) 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 # see comment about different semantics on the GNU ld section ld_shlibs=no ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -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"`' ;; darwin* | rhapsody*) case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on allow_undefined_flag='-flat_namespace -undefined suppress' ;; esac # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. Also zsh mangles # `"' quotes if we put them in here... so don't! archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' # We need to add '_' to the symbols in $export_symbols first #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' hardcode_direct=yes hardcode_shlibpath_var=no whole_archive_flag_spec='-all_load $convenience' ;; 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*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9* | hpux10* | hpux11*) case $host_os in hpux9*) 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' ;; *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_minus_L=yes # Not in the search PATH, but as the default # location of the library. export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: 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 ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no 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' 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 ;; 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 ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi 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 ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' #Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) 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 export_dynamic_flag_spec='${wl}-Bexport' ;; solaris*) # gcc --version < 3.0 without binutils cannot create self contained # shared libraries reliably, requiring libgcc.a to resolve some of # the object symbols generated in some cases. Libraries that use # assert need libgcc.a to resolve __eprintf, for example. Linking # a copy of libgcc.a into every shared library to guarantee resolving # such symbols causes other problems: According to Tim Van Holder # , C++ libraries end up with a separate # (to the application) exception stack for one thing. no_undefined_flag=' -z defs' if test "$GCC" = yes; then case `$CC --version 2>/dev/null` in [12].*) cat <&2 *** Warning: Releases of GCC earlier than version 3.0 cannot reliably *** create self contained shared libraries on Solaris systems, without *** introducing a dependency on libgcc.a. Therefore, libtool is disabling *** -no-undefined support, which will at least allow you to build shared *** libraries. However, you may find that when you link such libraries *** into an application without using GCC, you have to manually add *** \`gcc --print-libgcc-file-name\` to the link command. We urge you to *** upgrade to a newer version of GCC. Another option is to rebuild your *** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. EOF no_undefined_flag= ;; esac fi # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now 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' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; 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' ;; sysv5*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now 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' hardcode_libdir_flag_spec= hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; 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.2uw2*) archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=no hardcode_shlibpath_var=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5uw7* | unixware7*) no_undefined_flag='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # Check hardcoding attributes. echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var"; then # We can hardcode non-existant 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 "$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 echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&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" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi reload_cmds='$LD$reload_flag -o $output$reload_objs' test -z "$deplibs_check_method" && deplibs_check_method=unknown # PORTME Fill in your ld.so characteristics echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= 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" sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}.so$versuffix $libname.a' shlibpath_var=LIBPATH # AIX has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}.so$major' ;; aix4* | aix5*) 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}.so$major ${libname}${release}.so$versuffix $libname.so' 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.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 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}.so$major' fi shlibpath_var=LIBPATH fi hardcode_into_libs=yes ;; amigaos*) 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' ;; beos*) library_names_spec='${libname}.so' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$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" export_dynamic_flag_spec=-rdynamic # 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*) version_type=windows need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin*) library_names_spec='$libname.dll.a' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog .libs/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' ;; yes,mingw*) library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ;; yes,pw32*) library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' ;; *) library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $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 # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd*-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU/FreeBSD ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; *) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' soname_spec='${libname}${release}.so$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. dynamic_linker="$host_os dld.sl" version_type=sunos need_lib_prefix=no need_version=no shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' soname_spec='${libname}${release}.sl$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) version_type=irix ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 ") 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}" ;; # No shared lib support for Linux oldld, aout, or coff. linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) dynamic_linker=no ;; # This must be Linux ELF. linux-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # 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 # 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}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' soname_spec='${libname}${release}.so$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}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no 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 library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; os2*) libname_spec='$name' need_lib_prefix=no library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_version=no need_lib_prefix=no soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 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" hardcode_into_libs=yes ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$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}.so$versuffix ${libname}.so$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.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' 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 ;; uts4*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' soname_spec='$libname.so.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no # Report the final consequences. echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&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 ;; aix4*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 if test "$hardcode_action" = relink; 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 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 "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 ;; cygwin* | mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. */ #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); char (*f) (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { /* 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_shl_load) || defined (__stub___shl_load) choke me #else f = shl_load; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. */ #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); char (*f) (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { /* 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_dlopen) || defined (__stub___dlopen) choke me #else f = dlopen; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" 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" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #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); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #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); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$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 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. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 if test "${lt_cv_archive_cmds_need_lc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else $rm conftest* echo 'static int dummy;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_cv_prog_cc_wl compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$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=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$save_allow_undefined_flag else cat conftest.err 1>&5 fi fi echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5 echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6 ;; esac fi need_lc=${lt_cv_archive_cmds_need_lc-yes} # The second clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then : else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. test -f Makefile && make "$ltmain" fi if test -f "$ltmain"; then trap "$rm \"${ofile}T\"; exit 1" 1 2 15 $rm -f "${ofile}T" echo creating $ofile # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS SED \ AR AR_FLAGS CC LD LN_S NM SHELL \ reload_flag reload_cmds wl \ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ library_names_spec soname_spec \ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ old_striplib striplib file_magic_cmd export_symbols_cmds \ deplibs_check_method allow_undefined_flag no_undefined_flag \ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ global_symbol_to_c_name_address \ hardcode_libdir_flag_spec hardcode_libdir_separator \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do case $var in reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ postinstall_cmds | postuninstall_cmds | \ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done cat <<__EOF__ > "${ofile}T" #! $SHELL # `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996-2000 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="${SED} -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$need_lc # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # The default C compiler. CC=$lt_CC # Is the compiler the GNU C compiler? with_gcc=$GCC # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_pic_flag pic_mode=$pic_mode # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_compiler_c_o # Can we write directly to a .lo ? compiler_o_lo=$lt_compiler_o_lo # Must we lock files when doing compilation ? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_link_static_flag # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_no_builtin_flag # 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 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # 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 and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # 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 # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$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 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_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 # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "${ofile}T" # 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 EOF ;; esac case $host_os in cygwin* | mingw* | pw32* | os2*) cat <<'EOF' >> "${ofile}T" # This is a source program that is used to create dlls on Windows # Don't remove nor modify the starting and closing comments # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ # This is a source program that is used to create import libraries # on Windows for dlls which lack them. Don't remove nor modify the # starting and closing comments # /* impgen.c starts here */ # /* Copyright (C) 1999-2000 Free Software Foundation, Inc. # # This file is part of GNU libtool. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # */ # # #include /* for printf() */ # #include /* for open(), lseek(), read() */ # #include /* for O_RDONLY, O_BINARY */ # #include /* for strdup() */ # # /* O_BINARY isn't required (or even defined sometimes) under Unix */ # #ifndef O_BINARY # #define O_BINARY 0 # #endif # # static unsigned int # pe_get16 (fd, offset) # int fd; # int offset; # { # unsigned char b[2]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 2); # return b[0] + (b[1]<<8); # } # # static unsigned int # pe_get32 (fd, offset) # int fd; # int offset; # { # unsigned char b[4]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 4); # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # static unsigned int # pe_as32 (ptr) # void *ptr; # { # unsigned char *b = ptr; # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # int # main (argc, argv) # int argc; # char *argv[]; # { # int dll; # unsigned long pe_header_offset, opthdr_ofs, num_entries, i; # unsigned long export_rva, export_size, nsections, secptr, expptr; # unsigned long name_rvas, nexp; # unsigned char *expdata, *erva; # char *filename, *dll_name; # # filename = argv[1]; # # dll = open(filename, O_RDONLY|O_BINARY); # if (dll < 1) # return 1; # # dll_name = filename; # # for (i=0; filename[i]; i++) # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') # dll_name = filename + i +1; # # pe_header_offset = pe_get32 (dll, 0x3c); # opthdr_ofs = pe_header_offset + 4 + 20; # num_entries = pe_get32 (dll, opthdr_ofs + 92); # # if (num_entries < 1) /* no exports */ # return 1; # # export_rva = pe_get32 (dll, opthdr_ofs + 96); # export_size = pe_get32 (dll, opthdr_ofs + 100); # nsections = pe_get16 (dll, pe_header_offset + 4 +2); # secptr = (pe_header_offset + 4 + 20 + # pe_get16 (dll, pe_header_offset + 4 + 16)); # # expptr = 0; # for (i = 0; i < nsections; i++) # { # char sname[8]; # unsigned long secptr1 = secptr + 40 * i; # unsigned long vaddr = pe_get32 (dll, secptr1 + 12); # unsigned long vsize = pe_get32 (dll, secptr1 + 16); # unsigned long fptr = pe_get32 (dll, secptr1 + 20); # lseek(dll, secptr1, SEEK_SET); # read(dll, sname, 8); # if (vaddr <= export_rva && vaddr+vsize > export_rva) # { # expptr = fptr + (export_rva - vaddr); # if (export_rva + export_size > vaddr + vsize) # export_size = vsize - (export_rva - vaddr); # break; # } # } # # expdata = (unsigned char*)malloc(export_size); # lseek (dll, expptr, SEEK_SET); # read (dll, expdata, export_size); # erva = expdata - export_rva; # # nexp = pe_as32 (expdata+24); # name_rvas = pe_as32 (expdata+32); # # printf ("EXPORTS\n"); # for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) mv -f "${ofile}T" "$ofile" || \ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") chmod +x "$ofile" fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then echo "$as_me:$LINENO: result: $PERL" >&5 echo "${ECHO_T}$PERL" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test x"$PERL" = x && { { echo "$as_me:$LINENO: error: \"perl not found in PATH\"" >&5 echo "$as_me: error: \"perl not found in PATH\"" >&2;} { (exit 1); exit 1; }; } UNSET=true if unset UNSET 2>/dev/null; then UNSET=unset; fi # Checks for libraries. # check for dl lib ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu $UNSET ac_cv_header_dlfcn_h if test "${ac_cv_header_dlfcn_h+set}" = set; then echo "$as_me:$LINENO: checking for dlfcn.h" >&5 echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6 if test "${ac_cv_header_dlfcn_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5 echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking dlfcn.h usability" >&5 echo $ECHO_N "checking dlfcn.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking dlfcn.h presence" >&5 echo $ECHO_N "checking dlfcn.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc in yes:no ) { echo "$as_me:$LINENO: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: dlfcn.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: dlfcn.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: dlfcn.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for dlfcn.h" >&5 echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6 if test "${ac_cv_header_dlfcn_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_dlfcn_h=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5 echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6 fi if test $ac_cv_header_dlfcn_h = yes; then : else { { echo "$as_me:$LINENO: error: \"error: libdl include file dlfcn.h not found\"" >&5 echo "$as_me: error: \"error: libdl include file dlfcn.h not found\"" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBDL 1 _ACEOF LIBS="-ldl $LIBS" else { { echo "$as_me:$LINENO: error: \"error: failed to detect libdl\"" >&5 echo "$as_me: error: \"error: failed to detect libdl\"" >&2;} { (exit 1); exit 1; }; } 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 # check for xml2 lib ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # try to guess the libxml2 path if test "${with_xml2_includes+set}" != set; then if test -d /usr/local/include/libxml2 ; then with_xml2_includes=/usr/local/include/libxml2 with_xml2_includesset=set elif test -d /include/libxml2 ; then with_xml2_includes=/include/libxml2 with_xml2_includesset=set elif test -d /usr/include/libxml2 ; then with_xml2_includes=/usr/include/libxml2 with_xml2_includesset=set fi fi if test "${with_xml2_includes+set}" != set; then { { echo "$as_me:$LINENO: error: \"error: libxml2 include file libxml/xmlversion.h not found\"" >&5 echo "$as_me: error: \"error: libxml2 include file libxml/xmlversion.h not found\"" >&2;} { (exit 1); exit 1; }; } fi $UNSET ac_cv_header_xmlversion_h $UNSET ac_cv_lib_xml2_xmlCheckVersion smr_lib=xml2 smr_header=libxml/xmlversion.h smr_lib=xml2 # Check whether --with-xml2-library or --without-xml2-library was given. if test "${with_xml2_library+set}" = set; then withval="$with_xml2_library" if test "$withval" = yes; then with_xml2=yes xml2_LIBS="-l${smr_lib}" elif test "$withval" = no; then with_xml2=no xml2_LIBS= else with_xml2=yes if test -f "$withval"; then xml2_LIBS=$withval elif test -d "$withval"; then xml2_LIBS="-L$withval -l${smr_lib}" else { { echo "$as_me:$LINENO: error: argument must be boolean" >&5 echo "$as_me: error: argument must be boolean" >&2;} { (exit file); exit file; }; } fi fi else with_xml2=maybe xml2_LIBS="-l${smr_lib}" fi; if test "$with_xml2" != no; then echo "$as_me:$LINENO: checking for xmlCheckVersion in -lxml2" >&5 echo $ECHO_N "checking for xmlCheckVersion in -lxml2... $ECHO_C" >&6 if test "${ac_cv_lib_xml2_xmlCheckVersion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lxml2 ${xml2_LIBS} -pthread $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char xmlCheckVersion (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { xmlCheckVersion (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_xml2_xmlCheckVersion=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_lib_xml2_xmlCheckVersion=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_xml2_xmlCheckVersion" >&5 echo "${ECHO_T}$ac_cv_lib_xml2_xmlCheckVersion" >&6 if test $ac_cv_lib_xml2_xmlCheckVersion = yes; then smr_havelib=yes else smr_havelib=no; problem_xml2=": Can't find working lib$smr_lib" fi if test "$smr_havelib" = yes -a "$smr_header" != ""; then # Check whether --with-xml2-includes or --without-xml2-includes was given. if test "${with_xml2_includes+set}" = set; then withval="$with_xml2_includes" if test -d "$withval"; then xml2_CFLAGS="-I${withval}" else { { echo "$as_me:$LINENO: error: argument must be a directory" >&5 echo "$as_me: error: argument must be a directory" >&2;} { (exit 1); exit 1; }; } fi fi; smr_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS ${xml2_CFLAGS}" for ac_header in $smr_header do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc in yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done CPPFLAGS=$smr_save_CPPFLAGS smr_safe=`echo "$smr_header" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$ac_cv_header_'$smr_safe`\" != yes"; then smr_havelib=no problem_xml2=": Can't find working $smr_header" fi fi if test "$smr_havelib" = yes; then with_xml2=yes problem_xml2= else xml2_LIBS= xml2_CFLAGS= with_xml2=no fi else problem_xml2=": Explicitly disabled" fi if test ${with_xml2} != yes ; then { { echo "$as_me:$LINENO: error: \"error: failed to detect libxml2\"" >&5 echo "$as_me: error: \"error: failed to detect libxml2\"" >&2;} { (exit 1); exit 1; }; } 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 # check for xslt lib (needs libxml2) ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu $UNSET ac_cv_header_libxslt_xsltInternals_h $UNSET ac_cv_lib_xslt_xsltApplyStylesheet smr_lib=xslt smr_header=libxslt/xsltInternals.h smr_lib=xslt # Check whether --with-xslt-library or --without-xslt-library was given. if test "${with_xslt_library+set}" = set; then withval="$with_xslt_library" if test "$withval" = yes; then with_xslt=yes xslt_LIBS="-l${smr_lib}" elif test "$withval" = no; then with_xslt=no xslt_LIBS= else with_xslt=yes if test -f "$withval"; then xslt_LIBS=$withval elif test -d "$withval"; then xslt_LIBS="-L$withval -l${smr_lib}" else { { echo "$as_me:$LINENO: error: argument must be boolean" >&5 echo "$as_me: error: argument must be boolean" >&2;} { (exit file); exit file; }; } fi fi else with_xslt=maybe xslt_LIBS="-l${smr_lib}" fi; if test "$with_xslt" != no; then echo "$as_me:$LINENO: checking for xsltApplyStylesheet in -lxslt" >&5 echo $ECHO_N "checking for xsltApplyStylesheet in -lxslt... $ECHO_C" >&6 if test "${ac_cv_lib_xslt_xsltApplyStylesheet+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lxslt ${xslt_LIBS} -pthread $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char xsltApplyStylesheet (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { xsltApplyStylesheet (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_xslt_xsltApplyStylesheet=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_lib_xslt_xsltApplyStylesheet=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_xslt_xsltApplyStylesheet" >&5 echo "${ECHO_T}$ac_cv_lib_xslt_xsltApplyStylesheet" >&6 if test $ac_cv_lib_xslt_xsltApplyStylesheet = yes; then smr_havelib=yes else smr_havelib=no; problem_xslt=": Can't find working lib$smr_lib" fi if test "$smr_havelib" = yes -a "$smr_header" != ""; then # Check whether --with-xslt-includes or --without-xslt-includes was given. if test "${with_xslt_includes+set}" = set; then withval="$with_xslt_includes" if test -d "$withval"; then xslt_CFLAGS="-I${withval}" else { { echo "$as_me:$LINENO: error: argument must be a directory" >&5 echo "$as_me: error: argument must be a directory" >&2;} { (exit 1); exit 1; }; } fi fi; smr_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS ${xslt_CFLAGS}" CPPFLAGS="$CPPFLAGS ${xml2_CFLAGS} " for ac_header in $smr_header do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc in yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done CPPFLAGS=$smr_save_CPPFLAGS smr_safe=`echo "$smr_header" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$ac_cv_header_'$smr_safe`\" != yes"; then smr_havelib=no problem_xslt=": Can't find working $smr_header" fi fi if test "$smr_havelib" = yes; then with_xslt=yes problem_xslt= else xslt_LIBS= xslt_CFLAGS= with_xslt=no fi else problem_xslt=": Explicitly disabled" fi if test ${with_xslt} != yes ; then { { echo "$as_me:$LINENO: error: \"error: failed to detect libxslt\"" >&5 echo "$as_me: error: \"error: failed to detect libxslt\"" >&2;} { (exit 1); exit 1; }; } 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 # check for cppunit lib ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu $UNSET ac_cv_header_cppunit_TestCase_h if test "${ac_cv_header_cppunit_TestCase_h+set}" = set; then echo "$as_me:$LINENO: checking for cppunit/TestCase.h" >&5 echo $ECHO_N "checking for cppunit/TestCase.h... $ECHO_C" >&6 if test "${ac_cv_header_cppunit_TestCase_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_cppunit_TestCase_h" >&5 echo "${ECHO_T}$ac_cv_header_cppunit_TestCase_h" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking cppunit/TestCase.h usability" >&5 echo $ECHO_N "checking cppunit/TestCase.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking cppunit/TestCase.h presence" >&5 echo $ECHO_N "checking cppunit/TestCase.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc in yes:no ) { echo "$as_me:$LINENO: WARNING: cppunit/TestCase.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: cppunit/TestCase.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: cppunit/TestCase.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: cppunit/TestCase.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: cppunit/TestCase.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: cppunit/TestCase.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: cppunit/TestCase.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: cppunit/TestCase.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: cppunit/TestCase.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: cppunit/TestCase.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for cppunit/TestCase.h" >&5 echo $ECHO_N "checking for cppunit/TestCase.h... $ECHO_C" >&6 if test "${ac_cv_header_cppunit_TestCase_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_cppunit_TestCase_h=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_cppunit_TestCase_h" >&5 echo "${ECHO_T}$ac_cv_header_cppunit_TestCase_h" >&6 fi if test $ac_cv_header_cppunit_TestCase_h = yes; then : else { { echo "$as_me:$LINENO: error: \"error: libcppunit include file cppunitfcn.h not found\"" >&5 echo "$as_me: error: \"error: libcppunit include file cppunitfcn.h not found\"" >&2;} { (exit 1); exit 1; }; } fi cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { CppUnit::TestCase t; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: \"error: failed to detect libcppunit\"" >&5 echo "$as_me: error: \"error: failed to detect libcppunit\"" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_objext 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 ac_config_files="$ac_config_files Makefile Doxyfile doc/Makefile examples/Makefile sp-gxmlcpp/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 overriden 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, don't put newlines in cache variables' values. # 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. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *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 \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if cmp -s $cache_file confcache; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" 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}' # 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 DEFS=-DHAVE_CONFIG_H if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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 SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # NLS nuisances. # Support unset when possible. if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi (set +x; test -n "`(LANG=C; export LANG) 2>&1`") && { $as_unset LANG || test "${LANG+set}" != set; } || { LANG=C; export LANG; } (set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") && { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } || { LC_ALL=C; export LC_ALL; } (set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") && { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } || { LC_TIME=C; export LC_TIME; } (set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") && { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } || { LC_CTYPE=C; export LC_CTYPE; } (set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") && { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } || { LANGUAGE=C; export LANGUAGE; } (set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") && { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } || { LC_COLLATE=C; export LC_COLLATE; } (set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") && { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } || { LC_NUMERIC=C; export LC_NUMERIC; } (set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") && { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } || { LC_MESSAGES=C; export LC_MESSAGES; } # Name of the executable. as_me=`(basename "$0") 2>/dev/null || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conftest.sh echo "exit 0" >>conftest.sh chmod +x conftest.sh if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conftest.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. 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 ;; 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 { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); 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 sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; } exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by sp-gxmlcpp $as_me 1.0.20040603, which was generated by GNU Autoconf 2.53. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -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 ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ sp-gxmlcpp config.status 1.0.20040603 configured by $0, generated by GNU Autoconf 2.53, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` shift set dummy "$ac_option" "$ac_optarg" ${1+"$@"} shift ;; -*);; *) # This is not an option, so the user has probably given explicit # arguments. ac_need_defaults=false;; esac case $1 in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion" exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;; _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) shift CONFIG_FILES="$CONFIG_FILES $1" ac_need_defaults=false;; --header | --heade | --head | --hea ) shift CONFIG_HEADERS="$CONFIG_HEADERS $1" ac_need_defaults=false;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "Doxyfile" ) CONFIG_FILES="$CONFIG_FILES Doxyfile" ;; "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "sp-gxmlcpp/Makefile" ) CONFIG_FILES="$CONFIG_FILES sp-gxmlcpp/Makefile" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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 # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/cs$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@AMTAR@,$AMTAR,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@SO_VERSION@,$SO_VERSION,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@LN_S@,$LN_S,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@ECHO@,$ECHO,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@PERL@,$PERL,;t t s,@xml2_LIBS@,$xml2_LIBS,;t t s,@xml2_CFLAGS@,$xml2_CFLAGS,;t t s,@xslt_LIBS@,$xslt_LIBS,;t t s,@xslt_CFLAGS@,$xslt_CFLAGS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { case "$ac_dir" in [\\/]* | ?:[\\/]* ) as_incr_dir=;; *) as_incr_dir=.;; esac as_dummy="$ac_dir" for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do case $as_mkdir_dir in # Skip DOS drivespec ?:) as_incr_dir=$as_mkdir_dir ;; *) as_incr_dir=$as_incr_dir/$as_mkdir_dir test -d "$as_incr_dir" || mkdir "$as_incr_dir" || { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5 echo "$as_me: error: cannot create \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; } ;; esac done; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # 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. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; *) # Relative if test -f "$f"; then # Build tree echo $f elif test -f "$srcdir/$f"; then # Source tree echo $srcdir/$f else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; *) # Relative if test -f "$f"; then # Build tree echo $f elif test -f "$srcdir/$f"; then # Source tree echo $srcdir/$f else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #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. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # egrep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # 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. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if cmp -s $ac_file $tmp/config.h 2>/dev/null; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { case "$ac_dir" in [\\/]* | ?:[\\/]* ) as_incr_dir=;; *) as_incr_dir=.;; esac as_dummy="$ac_dir" for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do case $as_mkdir_dir in # Skip DOS drivespec ?:) as_incr_dir=$as_mkdir_dir ;; *) as_incr_dir=$as_incr_dir/$as_mkdir_dir test -d "$as_incr_dir" || mkdir "$as_incr_dir" || { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5 echo "$as_me: error: cannot create \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; } ;; esac done; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi # Run the commands associated with the file. case $ac_file in config.h ) # update the timestamp echo 'timestamp for config.h' >"./stamp-h1" ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; 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. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || 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 grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # 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 -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //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=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { case $dirpart/$fdir in [\\/]* | ?:[\\/]* ) as_incr_dir=;; *) as_incr_dir=.;; esac as_dummy=$dirpart/$fdir for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do case $as_mkdir_dir in # Skip DOS drivespec ?:) as_incr_dir=$as_mkdir_dir ;; *) as_incr_dir=$as_incr_dir/$as_mkdir_dir test -d "$as_incr_dir" || mkdir "$as_incr_dir" || { { echo "$as_me:$LINENO: error: cannot create $dirpart/$fdir" >&5 echo "$as_me: error: cannot create $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; } ;; esac done; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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=: exec 5>/dev/null $SHELL $CONFIG_STATUS || 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 || { (exit 1); exit 1; } fi sp-gxmlcpp-1.0.20040603/configure.ac0000644000175000017500000000674410057655755012342 # Process this file with autoconf to produce a configure script. AC_PREREQ(2.53) dnl ====================================================================== dnl Setup dnl dnl NEW version (automake1.6) dnl AC_INIT(sp-gxmlcpp, 1.0.20040603) AC_CONFIG_SRCDIR(sp-gxmlcpp/XMLTree.hpp) AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) # See DEVELOPERS file for shared library versioning instructions #Guidelines for SO_VERSION changes for an official release (initial #version is always "0:0:0"): #One of A, B1 or B2 will be your path: # # A) If only the source code, but not the interface was changed, # the REVISION is increased by one. # B) If the interface changed, the INTERFACE number is increased by # one and REVISION is set to zero. # B1) If only new interfaces were added, the AGE is increased by # one. # B2) If interfaces were removed or there were incompatible # changes, the AGE is set to zero. # INTERFACE:REVISION:AGE SO_VERSION=2:5:1 AC_SUBST(SO_VERSION) # Checks for programs. AC_PROG_CXX AC_PROG_CXXCPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_LIBTOOL AC_PROG_AWK dnl ### Needed for doxygen (delete if not needed otherwwise) AC_PATH_PROG(PERL, perl) test x"$PERL" = x && AC_MSG_ERROR("perl not found in PATH") AC_SUBST(PERL) dnl 'unset' is not portable, but setting to null is not enough to avoid using dnl the cached value! For ancient shells "rm config.cache" is a solution. UNSET=true if unset UNSET 2>/dev/null; then UNSET=unset; fi # Checks for libraries. # check for dl lib AC_LANG_PUSH(C++) $UNSET ac_cv_header_dlfcn_h AC_CHECK_HEADER(dlfcn.h, , [ AC_MSG_ERROR("error: libdl include file dlfcn.h not found")]) AC_CHECK_LIB(dl, dlopen, , [ AC_MSG_ERROR("error: failed to detect libdl")]) AC_LANG_POP # check for xml2 lib AC_LANG_PUSH(C++) # try to guess the libxml2 path if test "${with_xml2_includes+set}" != set; then if test -d /usr/local/include/libxml2 ; then with_xml2_includes=/usr/local/include/libxml2 with_xml2_includesset=set elif test -d /include/libxml2 ; then with_xml2_includes=/include/libxml2 with_xml2_includesset=set elif test -d /usr/include/libxml2 ; then with_xml2_includes=/usr/include/libxml2 with_xml2_includesset=set fi fi if test "${with_xml2_includes+set}" != set; then AC_MSG_ERROR( "error: libxml2 include file libxml/xmlversion.h not found") fi $UNSET ac_cv_header_xmlversion_h $UNSET ac_cv_lib_xml2_xmlCheckVersion smr_CHECK_LIB(xml2, xml2, specify location of xml2 library, xmlCheckVersion, libxml/xmlversion.h, [-pthread]) AC_SUBST(xml2_LIBS) AC_SUBST(xml2_CFLAGS) if test ${with_xml2} != yes ; then AC_MSG_ERROR("error: failed to detect libxml2") fi AC_LANG_POP # check for xslt lib (needs libxml2) AC_LANG_PUSH(C++) $UNSET ac_cv_header_libxslt_xsltInternals_h $UNSET ac_cv_lib_xslt_xsltApplyStylesheet smr_CHECK_LIB( xslt, xslt, specify location of xslt library, xsltApplyStylesheet, libxslt/xsltInternals.h, [-pthread], [${xml2_CFLAGS}] ) AC_SUBST(xslt_LIBS) AC_SUBST(xslt_CFLAGS) if test ${with_xslt} != yes ; then AC_MSG_ERROR("error: failed to detect libxslt") fi AC_LANG_POP # check for cppunit lib AC_LANG_PUSH(C++) $UNSET ac_cv_header_cppunit_TestCase_h AC_CHECK_HEADER(cppunit/TestCase.h, , [ AC_MSG_ERROR("error: libcppunit include file cppunitfcn.h not found") ]) AC_TRY_COMPILE([#include ], [CppUnit::TestCase t;], , [ AC_MSG_ERROR("error: failed to detect libcppunit") ]) AC_LANG_POP AC_CONFIG_FILES([ Makefile Doxyfile doc/Makefile examples/Makefile sp-gxmlcpp/Makefile ]) AC_OUTPUT sp-gxmlcpp-1.0.20040603/depcomp0000755000175000017500000002753307722662175011427 #! /bin/sh # depcomp - compile a program generating dependencies as side-effects # Copyright 1999, 2000 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. if test -z "$depfile"; then base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` dir=`echo "$object" | sed 's,/.*$,/,'` if test "$dir" = "$object"; then dir= fi # FIXME: should be _deps on DOS. depfile="$dir.deps/$base" fi tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. This file always lives in the current directory. # Also, the AIX compiler puts `$object:' at the start of each line; # $object doesn't have directory information. stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" outname="$stripped.o" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a space and a tab in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. We will use -o /dev/null later, # however we can't do the remplacement now because # `-o $object' might simply not be used IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; -*) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 sp-gxmlcpp-1.0.20040603/install-sh0000755000175000017500000001435007722662174012046 #!/bin/sh # # install - install a program, script, or datafile # # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f "$src" ] || [ -d "$src" ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 sp-gxmlcpp-1.0.20040603/ltmain.sh0000644000175000017500000043131507672505603011663 # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Check that we have a working $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, and then maybe $echo will work. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" # Parse our command line options once, thoroughly. while test $# -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" exit 0 ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 exit 0 ;; --debug) echo "$progname: enabling shell trace mode" set -x ;; --dry-run | -n) run=: ;; --features) echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit 0 ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then case $nonopt in *cc | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= prev= lastarg= srcfile="$nonopt" suppress_output= user_target=no for arg do case $prev in "") ;; xcompiler) # Aesthetically quote the previous argument. prev= lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac # Add the previous argument to base_compile. if test -z "$base_compile"; then base_compile="$lastarg" else base_compile="$base_compile $lastarg" fi continue ;; esac # Accept any command-line options. case $arg in -o) if test "$user_target" != "no"; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit 1 fi user_target=next ;; -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; -Xcompiler) prev=xcompiler continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. if test -z "$base_compile"; then base_compile="$lastarg" else base_compile="$base_compile $lastarg" fi continue ;; esac case $user_target in next) # The next one is the -o target name user_target=yes continue ;; yes) # We got the output file user_target=set libobj="$arg" continue ;; esac # Accept the current argument as the source file. lastarg="$srcfile" srcfile="$arg" # Aesthetically quote the previous argument. # Backslashify any backslashes, double quotes, and dollar signs. # These are the only characters that are still specially # interpreted inside of double-quoted scrings. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $lastarg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac # Add the previous argument to base_compile. if test -z "$base_compile"; then base_compile="$lastarg" else base_compile="$base_compile $lastarg" fi done case $user_target in set) ;; no) # Get the name of the library object. libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; *) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit 1 ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSfmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit 1 ;; esac if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $libobj" else removelist="$libobj" fi $run $rm $removelist trap "$run $rm $removelist; exit 1" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit 1" 1 2 15 else need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$0" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi echo $srcfile > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then # All platforms use -DPIC, to notify preprocessed assembler code. command="$base_compile $srcfile $pic_flag -DPIC" else # Don't build PIC code command="$base_compile $srcfile" fi if test "$build_old_libs" = yes; then lo_libobj="$libobj" dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$libobj"; then dir="$objdir" else dir="$dir/$objdir" fi libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` if test -d "$dir"; then $show "$rm $libobj" $run $rm $libobj else $show "$mkdir $dir" $run $mkdir $dir status=$? if test $status -ne 0 && test ! -d $dir; then exit $status fi fi fi if test "$compiler_o_lo" = yes; then output_obj="$libobj" command="$command -o $output_obj" elif test "$compiler_c_o" = yes; then output_obj="$obj" command="$command -o $output_obj" fi $run $rm "$output_obj" $show "$command" if $run eval "$command"; then : else test -n "$output_obj" && $run $rm $removelist exit 1 fi if test "$need_locks" = warn && test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi # Just move the object if needed, then go on to compile the next one if test x"$output_obj" != x"$libobj"; then $show "$mv $output_obj $libobj" if $run $mv $output_obj $libobj; then : else error=$? $run $rm $removelist exit $error fi fi # If we have no pic_flag, then copy the object into place and finish. if (test -z "$pic_flag" || test "$pic_mode" != default) && test "$build_old_libs" = yes; then # Rename the .lo from within objdir to obj if test -f $obj; then $show $rm $obj $run $rm $obj fi $show "$mv $libobj $obj" if $run $mv $libobj $obj; then : else error=$? $run $rm $removelist exit $error fi xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` # Now arrange that obj and lo_libobj become the same file $show "(cd $xdir && $LN_S $baseobj $libobj)" if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then # Unlock the critical section if it was locked if test "$need_locks" != no; then $run $rm "$lockfile" fi exit 0 else error=$? $run $rm $removelist exit $error fi fi # Allow error messages only from the first compilation. suppress_output=' >/dev/null 2>&1' fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $srcfile" else # All platforms use -DPIC, to notify preprocessed assembler code. command="$base_compile $srcfile $pic_flag -DPIC" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" output_obj="$obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" $run $rm "$output_obj" $show "$command" if $run eval "$command"; then : else $run $rm $removelist exit 1 fi if test "$need_locks" = warn && test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi # Just move the object if needed if test x"$output_obj" != x"$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Create an invalid libtool object if no PIC, so that we do not # accidentally link it into a program. if test "$build_libtool_libs" != yes; then $show "echo timestamp > $libobj" $run eval "echo timestamp > \$libobj" || exit $? else # Move the .lo from within objdir $show "$mv $libobj $lo_libobj" if $run $mv $libobj $lo_libobj; then : else error=$? $run $rm $removelist exit $error fi fi fi # Unlock the critical section if it was locked if test "$need_locks" != no; then $run $rm "$lockfile" fi exit 0 ;; # libtool link mode link | relink) modename="$modename: link" case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invokation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args="$nonopt" compile_command="$nonopt" finalize_command="$nonopt" compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= # We need to know -static, to get the right output filenames. for arg do case $arg in -all-static | -static) if test "X$arg" = "X-all-static"; then if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi fi build_libtool_libs=no build_old_libs=yes prefer_static_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test $# -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit 1 fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit 1 ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n $prev prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit 1 fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | no/*-*-nonstopux*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit 1 fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-mingw* | *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -o) prev=output ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit 1 ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -Kthread | -mthreads | -mt | -pthread | -pthreads | -threads | -qthreaded | -kthread ) compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.lo | *.$objext) # A library or standard object. if test "$prev" = dlfiles; then # This file was specified with -dlopen. if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $arg" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` prev= else case $arg in *.lo) libobjs="$libobjs $arg" ;; *) objs="$objs $arg" ;; esac fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d $output_objdir; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir status=$? if test $status -ne 0 && test ! -d $output_objdir; then exit $status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit 1 ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test $linkmode = prog; then # Determine which files to process case $pass in dlopen) libs="$dlfiles" save_deplibs="$deplibs" # Collect dlpreopened libraries deplibs= ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi for deplib in $libs; do lib= found=no case $deplib in -l*) if test $linkmode = oldlib && test $linkmode = obj; then $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 continue fi if test $pass = conv; then deplibs="$deplib $deplibs" continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do # Search the libtool library lib="$searchdir/lib${name}.la" if test -f "$lib"; then found=yes break fi done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test $pass = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test $pass = conv; then deplibs="$deplib $deplibs" continue fi if test $pass = scan; then deplibs="$deplib $deplibs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test $pass = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test $pass = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) if test "$deplibs_check_method" != pass_all; then echo echo "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not used here." else echo echo "*** Warning: Linking the shared library $output against the" echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test $pass != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test $found = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib'" 1>&2 exit 1 fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variable installed. installed=yes # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test $linkmode = oldlib && test $linkmode = obj; }; then # Add dl[pre]opened files of deplib test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test $pass = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit 1 fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test $linkmode != prog && test $linkmode != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit 1 fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit 1 fi # This library was specified with -dlopen. if test $pass = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit 1 fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. dlprefiles="$dlprefiles $lib" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test $pass = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit 1 fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test $linkmode = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" fi continue fi if test $linkmode = prog && test $pass != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test $linkalldeplibs = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... link_static=no # Whether the deplib will be linked statically if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # Link against this shared library if test "$linkmode,$pass" = "prog,link" || { test $linkmode = lib && test $hardcode_into_libs = yes; }; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac if test $linkmode = prog; then # We need to hardcode the library path if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi fi fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' eval cmds=\"$extract_expsyms_cmds\" for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' eval cmds=\"$old_archive_from_expsyms_cmds\" for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n $old_archive_from_expsyms_cmds if test $linkmode = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\/]*) add_dir="-L$inst_prefix_dir$libdir $add_dir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit 1 fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test $linkmode = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test $linkmode = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\/]*) add_dir="-L$inst_prefix_dir$libdir $add_dir" ;; esac fi add="-l$name" fi if test $linkmode = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test $linkmode = prog; then if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi # Try to link the static library # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo echo "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else convenience="$convenience $dir/$old_library" old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test $linkmode = lib; then if test -n "$dependency_libs" && { test $hardcode_into_libs != yes || test $build_old_libs = yes || test $link_static = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test $link_all_deplibs != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="-L$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit 1 fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="-L$absdir" fi ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$deplibs $path" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test $pass = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test $pass != dlopen; then test $pass != scan && dependency_libs="$newdependency_libs" if test $pass != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do case $deplib in -L*) new_libs="$deplib $new_libs" ;; *) case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi if test "$pass" = "conv" && { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then libs="$deplibs" # reset libs deplibs= fi done # for pass if test $linkmode = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit 1 fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit 1 else echo echo "*** Warning: Linking the shared library $output against the non-libtool" echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test $# -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. libext=al oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi current="$2" revision="$3" age="$4" # Check that each of the things are valid numbers. case $current in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac case $revision in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac case $age in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test $age -gt $current; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test $loop != 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test $loop != 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= verstring="0.0" case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring="" ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs. $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test $hardcode_into_libs != yes || test $build_old_libs = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. ;; *) # Add libc to deplibs on all other systems if necessary. if test $build_libtool_need_lc = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behaviour. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | egrep "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done if test -n "$a_deplib" ; then droppeddeps=yes echo echo "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then echo "*** with $libname but no candidates were found. (...for file magic test)" else echo "*** with $libname and none of the candidates passed a file format test" echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name="`expr $a_deplib : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check below in file_magic test if eval echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | egrep "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done if test -n "$a_deplib" ; then droppeddeps=yes echo echo "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then echo "*** with $libname but no candidates were found. (...for regex pattern test)" else echo "*** with $libname and none of the candidates passed a file format test" echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | grep . >/dev/null; then echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" echo "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test $allow_undefined = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test $hardcode_into_libs = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi test -z "$dlname" && dlname=$soname lib="$output_objdir/$realname" for link do linknames="$linknames $link" done # Ensure that we have .o objects for linkers which dislike .lo # (e.g. aix) in case we are running --disable-static for obj in $libobjs; do xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` if test ! -f $xdir/$oldobj; then $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? fi done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols eval cmds=\"$export_symbols_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` done fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval cmds=\"$archive_expsym_cmds\" else save_deplibs="$deplibs" for conv in $convenience; do tmp_deplibs= for test_deplib in $deplibs; do if test "$test_deplib" != "$conv"; then tmp_deplibs="$tmp_deplibs $test_deplib" fi done deplibs="$tmp_deplibs" done eval cmds=\"$archive_cmds\" deplibs="$save_deplibs" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? exit 0 fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` done fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" eval cmds=\"$reload_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit 0 fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. $show "echo timestamp > $libobj" $run eval "echo timestamp > $libobj" || exit $? exit 0 fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" eval cmds=\"$reload_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" else # Just create a symlink. $show $rm $libobj $run $rm $libobj xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$libobj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` $show "(cd $xdir && $LN_S $oldobj $baseobj)" $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit 0 ;; prog) case $host in *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac ;; esac compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$output.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' else $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval 'echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DPIC";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit 1 ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test $need_relink = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit 0 fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $0 --fallback-echo"; then case $0 in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; *) qecho="$SHELL `pwd`/$0 --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe ;; *) exeext= ;; esac $rm $output trap "$rm $output; exit 1" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit 1 fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 ${SED} $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # win32 systems need to use the prog path for dll # lookup to work *-*-cygwin* | *-*-pw32*) $echo >> $output "\ exec \$progdir/\$program \${1+\"\$@\"} " ;; # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \$progdir\\\\\$program \${1+\"\$@\"} " ;; *) $echo >> $output "\ # Export the path to the program. PATH=\"\$progdir:\$PATH\" export PATH exec \$program \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit 1 fi else # The program doesn't exist. \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " chmod +x $output fi exit 0 ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" # Add in members from convenience archives. for xlib in $addlibs; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` done fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then eval cmds=\"$old_archive_from_new_cmds\" else # Ensure that we have .o objects in place in case we decided # not to build a shared library, and have fallen back to building # static libs even though --disable-static was passed! for oldobj in $oldobjs; do if test ! -f $oldobj; then xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$oldobj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` $show "(cd $xdir && ${LN_S} $obj $baseobj)" $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? fi done eval cmds=\"$old_archive_cmds\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit 1 fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test $need_relink = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit 0 ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg="$nonopt" fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest="$arg" continue fi case $arg in -d) isdir=yes ;; -f) prev="-f" ;; -g) prev="-g" ;; -m) prev="-m" ;; -o) prev="-o" ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest="$arg" continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test $# -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit 1 fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit 1 fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test $# -gt 0; then # Delete the old symlinks, and create new ones. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" eval cmds=\"$postinstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit 0 ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $wrapper ;; *) . ./$wrapper ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit 1 fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $wrapper ;; *) . ./$wrapper ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : else $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyways case $install_prog,$host in /usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. eval cmds=\"$old_postinstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $0 --finish$current_libdirs' else exit 0 fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. eval cmds=\"$finish_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = ":" && exit 0 echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do echo " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" echo "more information, such as the ld(1) and ld.so(8) manual pages." echo "----------------------------------------------------------------------" exit 0 ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved enviroment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit 0 fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi rmdirs= for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$objdir" else objdir="$dir/$objdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test $mode = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test $mode = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" if test $mode = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. eval cmds=\"$postuninstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" if test $? != 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. eval cmds=\"$old_postuninstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" if test $? != 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. fi fi ;; *.lo) if test "$build_old_libs" = yes; then oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` rmfiles="$rmfiles $dir/$oldobj" fi ;; *) # Do a test to see if this is a libtool program. if test $mode = clean && (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$file rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit 1 fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE." exit 0 ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac echo $echo "Try \`$modename --help' for more information about other modes." exit 0 # Local Variables: # mode:shell-script # sh-indentation:2 # End: sp-gxmlcpp-1.0.20040603/missing0000755000175000017500000002403607722662175011444 #! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.4 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. You can get \`$1Help2man' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 sp-gxmlcpp-1.0.20040603/mkinstalldirs0000755000175000017500000000341107722662175012645 #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case "${1}" in -h | --help | --h* ) # -h for help echo "${usage}" 1>&2; exit 0 ;; -m ) # -m PERM arg shift test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } dirmode="${1}" shift ;; -- ) shift; break ;; # stop option processing -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option * ) break ;; # first non-opt arg esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 3 # End: # mkinstalldirs ends here sp-gxmlcpp-1.0.20040603/ChangeLog.historic.schlund_cvs0000644000175000017500000001457607564737413015766 2002-09-04 15:34 luthien * ChangeLog, Doxyfile.in, Makefile.am, configure.ac, doc/Makefile.am, doc/autoadd/.cvsignore, doc/autoadd/Makefile.am: * Fixed documentation building and distributing. 2002-09-04 15:00 luthien * .cvsignore, ChangeLog, Doxyfile, Doxyfile.in, Makefile.am, configure.ac, doc/DEVELOPERS, doc/Makefile.am: * Restored old autodoc/doxygen rules. 2002-08-29 19:37 suerken * releases/: sp-gxmlcpp-0.1.20020829.tar.gz, sp-gxmlcpp-0.1.20020829.tar.gz.asc: SPRelease: Tarballs for 0.1.20020829. 2002-08-29 19:35 suerken * ChangeLog: SPRelease: ChangeLog update. Final change for Release 0.1.20020829. 2002-08-29 19:35 suerken * NEWS: SPRelease: 0.1.20020829 (CVS tag: SP_GXMLCPP_0_1_20020829) released. 2002-08-29 19:31 suerken * releases/: sp-gxmlcpp-0.1.20020829.tar.gz, sp-gxmlcpp-0.1.20020829.tar.gz.asc: Damn. Will make a new release. ;( 2002-08-29 19:22 suerken * releases/: sp-gxmlcpp-0.1.20020829.tar.gz, sp-gxmlcpp-0.1.20020829.tar.gz.asc: SPRelease: Tarballs for 0.1.20020829. 2002-08-29 19:19 suerken * ChangeLog: SPRelease: ChangeLog update. Final change for Release 0.1.20020829. 2002-08-29 19:19 suerken * releases/CVSDUMMY: SPRelease: 0.1.20020829 (CVS tag: SP_GXMLCPP_0_1_20020829) released. 2002-08-29 19:08 suerken * ChangeLog: SPRelease: ChangeLog update. Final change for Release 0.1.20020829. 2002-08-29 19:08 suerken * NEWS, SPRelease.package, configure.ac: SPRelease: 0.1.20020829 (CVS tag: SP_GXMLCPP_0_1_20020829) released. 2002-08-29 17:19 suerken * .cvsignore, ChangeLog, Doxyfile.in, Makefile.am, configure.ac: * FIX: autodoc rules (this fix went straight down to sp-utilcpp and templates). No need to have Doxyfile.in any more; bug removed with distclean; removed bug that docs would be regenereated even in a dist tarball (see configure.ac). 2002-08-29 17:14 suerken * Doxyfile: In place for Doxyfile.in. 2002-08-29 12:36 suerken * .cvsignore, Doxyfile.in, Makefile.am, NEWS, OOD.dia, README, SPRelease.package, configure.ac, doc/ANNOUNCE, doc/Makefile.am, doc/OOD.dia, doc/autoadd/autoadd.txt, examples/.cvsignore, examples/Makefile.am, examples/XMLTest.cpp, examples/XMLTest.h, sp-gxmlcpp/.cvsignore, sp-gxmlcpp/Makefile.am, sp-gxmlcpp/Util.h, sp-gxmlcpp/XMLDump.cpp, sp-gxmlcpp/XMLDump.h, sp-gxmlcpp/XMLException.cpp, sp-gxmlcpp/XMLException.h, sp-gxmlcpp/XMLNode.cpp, sp-gxmlcpp/XMLNode.h, sp-gxmlcpp/XMLNodeSet.cpp, sp-gxmlcpp/XMLNodeSet.h, sp-gxmlcpp/XMLTree.cpp, sp-gxmlcpp/XMLTree.h, sp-gxmlcpp/XSLTrans.cpp, sp-gxmlcpp/XSLTrans.h, sp-gxmlcpp/sp-gxmlcpp.h: * FIX: directory src -> sp-gxmlcpp. Yes, we really want this. * FIX: All include paths. We want one unig'fied synopsis. * FIX: Namespace LibGXML -> GXML. "Lib" just does not make sense in namespace context. * FIX: SPUtil.h -> Util.h, namespace SP:Util --> SP::GXML: Severe bug, namesapce clashes, this library formerly could not be used together with sp-utilcpp. * FIX: Unified all "no double inclusion ifdefs". * FIX: Util.h: ifstream2string obsolete removed. * FIX: Added library versions (formerly, library had _NO_ SO_VERSION) * Using SPRelease -- don't want to re-introduce former more error prone release mechanism; using versioning scheme as currently "standard". * Fixing versioning scheme, as documentet in README. * FIX: Make it compile with -pthread - makes it usable for programs using pthread. * FIX: Removed all checks/flags whatever for CommonC++ -- no one ordered these. Couple of other needless tests removed. * FIX: Did not travers "doc". * FIX: Moved XMLTest to examples directory. No need to depend on cppunit for the so. * Added autodoc/doxygen support. * Removing all former releases, beginning new with 0.1.DATE. * Removing all obsolete refrences to static library targets. * Added doxygen file header for all header files. * FIX: Make XMLTest program exit #0 if test fails. * FIX: Fixing one Dump test (Dump will now always create UTF-8). * Adding automated local check via XMLTest. * Adding doc/autoadd. Creating mainpage, namespace and example docs. 2002-08-28 18:51 suerken * releases/: XMLTest-0.1.tar.gz, sp-gxmlcpp-0.3.tar.gz: Removing these releases. They must not be used. 2002-08-28 12:41 luthien * ChangeLog, configure.ac: * Removed a stray echo command. 2002-08-28 12:36 luthien * ChangeLog, NEWS, configure.ac: * Set _GNU_SOURCE via configure.ac. 2002-08-28 12:18 luthien * ChangeLog, NEWS, configure.ac: * Portability fix for ccgnu library check. 2002-08-27 15:04 luthien * ChangeLog: * Use AM_CPPFLAGS and AM_CXXFLAGS. 2002-08-26 15:21 luthien * ChangeLog, configure.ac: * Install headers in include/@PACKAGE@ 2002-08-26 14:09 luthien * ChangeLog, NEWS, configure.ac: * Released 0.3.0, updated for 0.5.5-devel. 2002-08-26 14:07 luthien * releases/sp-gxmlcpp-0.3.tar.gz: * Added 0.3.0 tarball. 2002-08-26 14:05 luthien * ChangeLog, NEWS, configure.ac, doc/.cvsignore, doc/ANNOUNCE, doc/Makefile.am: * Updated for 0.3.0. 2002-08-26 13:45 luthien * ChangeLog: * Removed -Werror compile flag. 2002-08-26 13:43 luthien * AUTHORS, ChangeLog, INSTALL.sp-gxmlcpp, Makefile.am, NEWS, README: * Added copyright statements. * Preparations to go open source. 2002-08-26 12:34 luthien * ChangeLog, configure.ac: * Reindented files; general clean up. 2002-08-26 11:47 luthien * configure.ac: * Imported tincas sources. 2002-08-22 16:02 luthien * ChangeLog, configure.ac: * spxml++ -> sp-gxmlcpp 2002-08-22 15:24 luthien * ChangeLog, configure.ac: * Use latest templates for library checks. 2002-08-13 12:32 muc * README: syncronized source with README 2002-08-07 11:15 luthien * configure.ac: changed configure.ac 2002-08-06 17:05 luthien * configure.ac: * Finished autoconf/automake setup. 2002-08-06 16:39 luthien * acinclude.m4, configure.ac: * Autoconf work. 2002-08-06 12:37 luthien * .cvsignore, configure.ac: * autoconf work. 2002-08-05 18:21 luthien * configure.ac: * removed a comment 2002-08-05 18:03 luthien * acconfig.h, configure.ac, configure.in: * autoconf/automake. 2002-08-05 17:21 muc * .cvsignore, AUTHORS, ChangeLog, Makefile.am, NEWS, OOD.dia, README, acconfig.h, acinclude.m4, configure.in, releases/XMLTest-0.1.tar.gz: Initial revision 2002-08-05 17:21 muc * .cvsignore, AUTHORS, ChangeLog, Makefile.am, NEWS, OOD.dia, README, acconfig.h, acinclude.m4, configure.in, releases/XMLTest-0.1.tar.gz: initial sp-gxmlcpp-1.0.20040603/ChangeLog.historic.tincas0000644000175000017500000035106707564737413014733 2002-11-13 12:43 mark13 * CGIFormEdit/CGIFormEdit.cpp: Increased the max length of button labels to 20 chars 2002-11-13 12:36 mark13 * flavor-werner/stylesheets/formedit.xsl, web/formedit/script/functions.js: Fixed errors in IE (Sebastian Werner) 2002-11-12 16:36 mark13 * CGIFormEdit/CGIFormEdit.cpp: Bugfixing : Job "buttonAction" display the actual form if the "back" button is pressed and the history is empty (which means the actual form is the first displayed form). 2002-11-12 11:52 mark13 * web/formedit/images/: b_down2_na.psd, b_liste_auswahlaendern_d.psd, b_liste_auswahlloeschen_d.psd, b_liste_neuereintrag_d.psd, b_up2_na.psd, bestellung_tablebottom.psd, bestellung_tablebottom_helpbox.psd, bestellung_tablehead_helpbox.psd, bl_speichernvorschau.psd, bl_speichernweiter.psd, bl_zurueck.psd, fehlerrahmen_unten.psd, tablebottom_398_app.psd, topnavi_tablebottom.psd, warnrahmen_oben.psd, warnrahmen_unten.psd: psd files ar not needed 2002-11-12 11:50 mark13 * web/formedit/: script/functions.js, script/help.js, script/helputf8.js, style/index.css: Extended (Sebastian Werner) 2002-11-12 11:49 mark13 * web/formedit/images/: b_abbrechen2.gif, b_abbrechen3.gif, b_down2.gif, b_down2_na.gif, b_down2_na.psd, b_erweiterteeinstellungen.gif, b_felddaten.gif, b_feldtyp.gif, b_liste_auswahlaendern_d.gif, b_liste_auswahlaendern_d.psd, b_liste_auswahlloeschen_d.gif, b_liste_auswahlloeschen_d.psd, b_liste_neuereintrag_d.gif, b_liste_neuereintrag_d.psd, b_speichern3.gif, b_up2.gif, b_up2_na.gif, b_up2_na.psd, b_zuklappen.gif, bestellung_tablebottom.psd, br_state11_0.gif, br_state11_1.gif, br_state11_2.gif, br_state12_0.gif, br_state12_1.gif, br_state12_2.gif, br_state13_0.gif, br_state13_1.gif, br_state13_2.gif, br_state14_0.gif, br_state14_1.gif, br_state14_2.gif, br_state15_0.gif, br_state15_1.gif, br_state15_2.gif, br_state16_0.gif, br_state16_1.gif, br_state16_2.gif, br_state17_0.gif, br_state17_1.gif, br_state17_2.gif, br_state18_0.gif, br_state18_1.gif, br_state18_2.gif, topnavi_tablebottom.gif, topnavi_tablebottom.psd, warnrahmen_oben.gif, warnrahmen_oben.psd, warnrahmen_unten.gif, warnrahmen_unten.psd: Initial checkin 2002-11-12 11:25 mark13 * web/formedit/script/functions.js, flavor-werner/configs/formedit.xml, flavor-werner/stylesheets/formedit.xsl: Extended (Sebastian Werner) 2002-11-08 13:26 mark13 * flavor-testing/stylesheets/formedit.xsl: Changed error display of fields(displayForm) to check for errors in a error subsection 2002-11-08 13:25 mark13 * CGIFormEdit/FEFormData.cpp: Changed error handling in "merge" to put errors in an error subsection by using "addToFieldSubsection" 2002-11-08 13:21 mark13 * CGIFormEdit/CGIFormEdit.cpp: removed already commented code and reformated some comments 2002-11-07 13:08 mark13 * CGIFormEdit/CGIFormEdit.cpp, CGIFormEdit/CGIFormEdit.h, flavor-testing/stylesheets/formedit.xsl: changed names for the redirect targets 2002-11-06 13:45 mark13 * CGIFormEdit/CGIFormEdit.cpp: Corrected the "takeButtons" error handling (bugfix) 2002-10-31 16:08 mark13 * CGIFormEdit/CGIFormEdit.cpp: changed takeButtons : prevent preview and page switching if a error occurred 2002-10-30 17:07 mark13 * flavor-testing/stylesheets/formedit.xsl: Adepetd "wizard fields to search error flags in errors/... 2002-10-30 17:06 mark13 * CGIFormEdit/: FEForm.cpp, FEForm.h: Added new methods: addToFieldSubsection and delFromFieldSubsection 2002-10-30 17:04 mark13 * CGIFormEdit/CGIFormEdit.cpp: Adapted Methods fieldErrorHandling and fieldDimErrorHandling to use the new methods to add and remove error-flags s. FEForm.cpp 2002-10-24 14:38 mark13 * CGIFormEdit/FEFormData.cpp: Corrected method "storeData" 2002-10-24 13:41 mark13 * XMLDump.cpp, XMLDump.h, XMLException.cpp, XMLException.h, XMLNode.cpp, XMLNode.h, XMLNodeSet.cpp, XMLNodeSet.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h, spgxml.h: this files are obsolete since the libgxmlcpp will be used 2002-10-24 13:39 mark13 * CGIModule.cpp, CGIModule.h, CGIResult.cpp, Conf.cpp, Conf.h, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, DBCursor.cpp, Dispatcher.cpp, EMail.cpp, EMail.h, Image.cpp, ImageRes.cpp, ImageRes.h, LibXMLConf.cpp, Listener.cpp, Main.cpp, Makefile.am, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, TincasThread.cpp, UnitTests.cpp, configure.ac, CGIFormEdit/CGIFormEdit.cpp, CGIFormEdit/CGIFormEdit.h, CGIFormEdit/FEAbstractForm.cpp, CGIFormEdit/FEAbstractForm.h, CGIFormEdit/FEButton.cpp, CGIFormEdit/FEButton.h, CGIFormEdit/FECField.cpp, CGIFormEdit/FECField.h, CGIFormEdit/FEDirectory.cpp, CGIFormEdit/FEException.h, CGIFormEdit/FEField.cpp, CGIGuestbook/CGIGuestbook.cpp, CGIGuestbook/CGIGuestbook.h, CGIMessageboard/CGIMessageboard.cpp, CGIMessageboard/CGIMessageboard.h, CGIMessageboard/MBIndex.cpp, CGITime/CGITime.cpp, CGITime/CGITime.h, CGIAdmin/CGIAdmin.cpp, CGIAdmin/CGIAdmin.h, CGIBlackboard/CGIBlackboard.cpp, CGIBlackboard/CGIBlackboard.h, CGICounter/CGICounter.cpp, CGICustom/CGICustom.cpp, CGICustom/CGICustom.h, CGIEcho/CGIEcho.cpp, CGIEcho/CGIEcho.h, CGIFeedback/CGIFeedback.cpp, CGIFeedback/CGIFeedback.h, CGIFormEdit/FEField.h, CGIFormEdit/FEFieldException.h, CGIFormEdit/FEForm.cpp, CGIFormEdit/FEForm.h, CGIFormEdit/FEFormData.cpp, CGIFormEdit/FEFormData.h, CGIFormEdit/FEFormException.h, CGIFormEdit/FEMlField.cpp, CGIFormEdit/FEMlField.h, CGIFormEdit/FENumGen.cpp, CGIFormEdit/FENumGen.h, CGIFormEdit/FESession.cpp, CGIFormEdit/FESlField.cpp, CGIFormEdit/FESlField.h: Adaptions for using libgxmlcpp done 2002-10-21 19:53 mark13 * CGIFeedback/CGIFeedback.cpp, CGIFeedback/CGIFeedback.h, CGIFeedback/Makefile.am, CGIEcho/CGIEcho.cpp, CGIEcho/CGIEcho.h, CGIEcho/Makefile.am, CGICustom/CGICustom.cpp, CGICustom/CGICustom.h, CGICustom/Makefile.am, CGICounter/CGICounter.cpp, CGICounter/CGICounter.h, CGICounter/Makefile.am, CGIBlackboard/CGIBlackboard.cpp, CGIBlackboard/CGIBlackboard.h, CGIBlackboard/Makefile.am, CGIAdmin/CGIAdmin.cpp, CGIAdmin/CGIAdmin.h, CGIAdmin/Makefile.am: Moved from the upper directory 2002-10-21 19:27 mark13 * CGIFormEdit/Makefile.am: Adapted to consistent appearance 2002-10-21 18:14 mark13 * CGIMessageboard/: CGIMessageboard.cpp, CGIMessageboard.h, MBIndex.cpp, MBIndex.h, Makefile.am: [no log message] 2002-10-21 18:14 mark13 * CGITime/CGITime.cpp, CGITime/CGITime.h, CGITime/Makefile.am, CGIGuestbook/CGIGuestbook.cpp, CGIGuestbook/CGIGuestbook.h, CGIGuestbook/Makefile.am: Moved from the upper directory 2002-10-21 18:14 mark13 * Makefile.am, configure.ac: Changes to consider more subdirectories (modules) done 2002-10-21 18:13 mark13 * CGIAdmin.cpp, CGIAdmin.h: Moved these files to the subdirectory "CGIAdmin" 2002-10-21 18:12 mark13 * CGIBlackboard.cpp, CGIBlackboard.h: Moved these files to the subdirectory "CGIBlackboard" 2002-10-21 18:12 mark13 * CGICounter.cpp, CGICounter.h: Moved these files to the subdirectory "CGICounter" 2002-10-21 18:11 mark13 * CGICustom.cpp, CGICustom.h: Moved these files to the subdirectory "CGICustom" 2002-10-21 18:11 mark13 * CGIEcho.cpp, CGIEcho.h: Moved these files to the subdirectory "CGIEcho" 2002-10-21 18:11 mark13 * CGIFeedback.cpp, CGIFeedback.h: Moved these files to the subdirectory "CGIFeedBack" 2002-10-21 18:10 mark13 * CGIGuestbook.cpp, CGIGuestbook.h: Moved these files to the subdirectory "CGIGuestbook" 2002-10-21 18:09 mark13 * CGITime.cpp, CGITime.h: Moved these files to the subdirectory "CGITime" 2002-10-21 18:08 mark13 * MBIndex.cpp, MBIndex.h, CGIMessageboard.cpp, CGIMessageboard.h: Moved these files to the subdirectory "CGIMessageboard" 2002-10-21 16:27 mark13 * CGIFormEdit/Makefile.am: initial checkin 2002-10-21 16:26 mark13 * Makefile.am, configure.ac: Changes to consider the subdirectories (modules) done 2002-10-21 16:19 mark13 * CGIFormEdit.cpp, CGIFormEdit.h, FEAbstractForm.cpp, FEAbstractForm.h, FEButton.cpp, FEButton.h, FECField.cpp, FECField.h, FEDirectory.cpp, FEDirectory.h, FEException.cpp, FEException.h, FEField.cpp, FEField.h, FEFieldException.cpp, FEFieldException.h, FEForm.cpp, FEForm.h, FEFormData.cpp, FEFormData.h, FEFormException.cpp, FEFormException.h, FEMlField.cpp, FEMlField.h, FENumGen.cpp, FENumGen.h, FESession.cpp, FESession.h, FESlField.cpp, FESlField.h: Moved these files to the subdirectory "CGIFormEdit" 2002-10-21 16:18 mark13 * CGIFormEdit/: CGIFormEdit.cpp, CGIFormEdit.h, FEAbstractForm.cpp, FEAbstractForm.h, FEButton.cpp, FEButton.h, FECField.cpp, FECField.h, FEDirectory.cpp, FEDirectory.h, FEException.cpp, FEException.h, FEField.cpp, FEField.h, FEFieldException.cpp, FEFieldException.h, FEForm.cpp, FEForm.h, FEFormData.cpp, FEFormData.h, FEFormException.cpp, FEFormException.h, FEMlField.cpp, FEMlField.h, FENumGen.cpp, FENumGen.h, FESession.cpp, FESession.h, FESlField.cpp, FESlField.h: Moved from the upper directory 2002-10-18 16:54 mark13 * Main.cpp: Removed "SP:Util:daemonize(bool closeStdFds=true, bool changeToRootdir=true, bool resetUMask=true)" since this Function is part of libsp-utilcpp and defined in ToolboxSys.hpp 2002-10-18 15:27 mark13 * FEFormData.cpp, FEFormData.h, CGIFormEdit.cpp, flavor-testing/stylesheets/formedit.xsl: Changed error handling(UserMode) 2002-10-17 19:51 mark13 * flavor-testing/stylesheets/formedit.xsl, CGIFormEdit.cpp, CGIFormEdit.h: Changed error handling(Wizard) 2002-10-16 13:55 mark13 * FEForm.cpp, FEForm.h: Added new method "eMail" 2002-10-16 13:54 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Adapted job "buttonAction", enabled mail sending 2002-10-16 13:52 mark13 * flavor-werner/stylesheets/formedit.xsl: Fixes done (Sebastian Werner) 2002-10-16 13:52 mark13 * flavor-testing/stylesheets/formedit.xsl: Added "generatemail" job 2002-10-16 13:51 mark13 * flavor-testing/configs/formedit.xml: added mail defaults 2002-10-16 10:53 mark13 * FESession.cpp, FESession.h: Added new method "getHistory" 2002-10-16 10:46 mark13 * FEFormData.cpp, FEFormData.h: Adapted method "storeData" 2002-10-16 10:43 mark13 * FEForm.cpp, FEForm.h: Added new methods "addToWarning", "delFromWarning" and "review" 2002-10-16 10:40 mark13 * FEButton.h: Deleted constants which are no longer needed 2002-10-16 10:39 mark13 * FEAbstractForm.cpp: Added debug message 2002-10-16 10:38 mark13 * flavor-testing/stylesheets/formedit.xsl: Added new Template "displayReview" 2002-10-16 10:37 mark13 * jobs/formedit.xml: Added new job "redirect" 2002-10-16 10:37 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Added new job "redirect" Added new method "extractPage" 2002-10-10 19:44 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Adapted method calls of FESession::FESession and FESession::registerNewUser to there new signature 2002-10-10 19:43 mark13 * FESession.cpp, FESession.h: changed "constructor" and "registerNewUser" 2002-10-10 19:41 mark13 * flavor-testing/stylesheets/formedit.xsl: added user Id field whict is needed for the session management 2002-10-10 14:27 mark13 * jobs/formedit.xml: Added new job "showform" 2002-10-10 14:26 mark13 * Makefile.am: Added new files "FESession.h" and "FESession.cpp" 2002-10-10 14:25 mark13 * FESession.cpp, FESession.h: initial checkin 2002-10-10 14:25 mark13 * FEFormData.cpp, FEFormData.h: Added new method : "merge" 2002-10-10 14:24 mark13 * FEDirectory.cpp, FEDirectory.h: Added new method : "getLastEntry" 2002-10-10 14:23 mark13 * FEAbstractForm.cpp, FEAbstractForm.h: Added new methods : "getTag" and "erase" 2002-10-10 14:22 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Added new job "showForm" Changed "buttonAction" : + usage of FESession + usage of merge (Back Button) + store user Data (OK and Next Button) 2002-10-10 14:15 mark13 * flavor-werner/: configs/formedit.xml, stylesheets/formedit.xsl: [no log message] 2002-10-07 13:41 mark13 * FEAbstractForm.cpp, FEAbstractForm.h: + changed methods names "loadForm/SaveForm" to "load/save" 2002-10-07 13:39 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: + changed calls of method saveForm/loadForm because this methods are now named save/load + changed method takeDesign to store an additional hex value if the select value is "own" 2002-10-04 19:38 mark13 * flavor-testing/stylesheets/formedit.xsl: adapted color mask 2002-10-04 19:38 mark13 * FEFormData.cpp, FEFormData.h: changed/extended method "storeData" 2002-10-04 19:36 mark13 * FEForm.cpp: changed call of delFomTag to delTag (new name) 2002-10-04 19:35 mark13 * FEAbstractForm.cpp, FEAbstractForm.h: changed method name : delFormTag is now delTag 2002-10-04 19:34 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: changed takeDesign due to different input data extended the form-data-storage functionality 2002-10-02 15:53 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Added design data storing functionality (job: takeDesign) 2002-10-02 14:31 suerken * Main.cpp: Adding function SP::Util::daemonize (currently local here); updating daemonize routine. This fixes the "fd 0,1,2 still there with --daemon" problem. 2002-10-01 16:18 mark13 * CGIAdmin.cpp, CGIBlackboard.cpp, CGICounter.cpp, CGICustom.cpp, CGIEcho.cpp, CGIFeedback.cpp, CGIFormEdit.cpp, CGIFormEdit.h, CGIGuestbook.cpp, CGIMessageboard.cpp, CGIModule.cpp, CGITime.cpp, Conf.cpp, Connection.cpp, DBAccess.cpp, Dispatcher.cpp, EMail.cpp, FEAbstractForm.cpp, FEButton.cpp, FECField.cpp, FEDirectory.cpp, FEField.cpp, FEForm.cpp, FEFormData.cpp, FEMlField.cpp, FENumGen.cpp, FESlField.cpp, Image.cpp, ImageRes.cpp, LibXMLConf.cpp, Listener.cpp, MBIndex.cpp, Main.cpp, ReqThread.cpp, ResManager.cpp, TincasThread.cpp, UnitTests.cpp, XMLDump.cpp, XMLTree.cpp, XSLTrans.cpp: Adaptions done for using new designed libsputil 2002-09-30 15:40 mark13 * flavor-werner/configs/formedit.xml: removed german/non UTF8 characters 2002-09-30 14:18 mark13 * flavor-werner/configs/formedit.xml: initial checkin 2002-09-30 12:18 mark13 * web/common/style/.cvsEmtpyDir, web/formedit/images/b_abbrechen.gif, web/formedit/images/b_down.gif, web/formedit/images/b_down_na.gif, web/formedit/images/b_formular_aendern.gif, web/formedit/images/b_formular_loeschen.gif, web/formedit/images/b_formular_vorschau.gif, web/formedit/images/b_formularuebersicht.gif, web/formedit/images/b_liste_auswahlaendern.gif, web/formedit/images/b_liste_auswahlloeschen.gif, web/formedit/images/b_liste_neuereintrag.gif, web/formedit/images/b_neues_formular.gif, web/formedit/images/b_neues_formularfeld.gif, web/formedit/images/b_neuesformularfeld2.gif, web/formedit/images/b_neuesformularfeld2_weiss.gif, web/formedit/images/b_neuesformularfeld_weiss1.gif, web/formedit/images/b_speichern.gif, web/formedit/images/b_speichern2.gif, web/formedit/images/b_up.gif, web/formedit/images/b_up_na.gif, web/formedit/images/b_weiter.gif, web/formedit/images/b_zurueck.gif, web/formedit/images/bestellung_tablebottom.gif, web/formedit/images/bestellung_tablebottom_helpbox.gif, web/formedit/images/bestellung_tablebottom_helpbox.psd, web/formedit/images/bestellung_tablehead.gif, web/formedit/images/bestellung_tablehead_helpbox.gif, web/formedit/images/bestellung_tablehead_helpbox.psd, web/formedit/images/bl_speichernvorschau.gif, web/formedit/images/bl_speichernvorschau.psd, web/formedit/images/bl_speichernvorschau_na.gif, web/formedit/images/bl_speichernweiter.gif, web/formedit/images/bl_speichernweiter.psd, web/formedit/images/bl_speichernweiter_na.gif, web/formedit/images/bl_vorschau.gif, web/formedit/images/bl_weiter.gif, web/formedit/images/bl_zurueck.gif, web/formedit/images/bl_zurueck.psd, web/formedit/images/bl_zurueck_na.gif, web/formedit/images/fehler_an.gif, web/formedit/images/fehlerrahmen_oben.gif, web/formedit/images/fehlerrahmen_unten.gif, web/formedit/images/fehlerrahmen_unten.psd, web/formedit/images/i_fehlergross.gif, web/formedit/images/ic_stern.gif, web/formedit/images/tabellenfooter_links.gif, web/formedit/images/tabellenfooter_rechts.gif, web/formedit/images/tablebottom_398.gif, web/formedit/images/tablebottom_398_app.psd, web/formedit/images/tablehead_398.gif, web/formedit/images/trenner.gif, web/formedit/script/functions.js, web/formedit/script/help.js, web/formedit/script/helputf8.js, web/formedit/style/index.css, web/formedit/style/index_plus.css, flavor-werner/stylesheets/formedit.xsl: initial checkin 2002-09-30 12:12 mark13 * web/common/: images/blank.gif, script/mm.js: initial checkin 2002-09-30 12:06 mark13 * CGIModule.cpp: Changeb iconurl to weburl, also changed path from http://[:8000]/tinc/spicon to http:[:8000]/tinc/web this directory will contain the following directory hierarchy: common --> module common images, scripts, etc. images --> icons, images, etc. script --> Java Script etc style --> css Style Sheets etc. images --> icons, images, etc. script --> Java Script etc style --> css Style Sheets etc. etc... 2002-09-27 18:46 mark13 * FEFormData.cpp, FEFormData.h: Added storeData 2002-09-27 18:45 mark13 * FEForm.cpp, FEForm.h: Moved loadForm and saveForm to FEAbstractForm 2002-09-27 18:44 mark13 * FEAbstractForm.cpp, FEAbstractForm.h: moved loadForm and saveForm from FEForm 2002-09-27 18:42 mark13 * CGIFormEdit.cpp: changed FEForm->addTag method calls because parameter number has changed 2002-09-27 18:41 mark13 * flavor-testing/stylesheets/formedit.xsl: Added support for multi value fields (check-box) 2002-09-26 19:39 mark13 * FEFormData.cpp, FEFormData.h, FEAbstractForm.cpp, FEAbstractForm.h: Initial checkin 2002-09-26 19:38 mark13 * Makefile.am: Added new files FEAbstractForm.h FEAbstractForm.cpp, FEFormData.h and FEFormData.cpp 2002-09-26 19:37 mark13 * FEFormException.cpp, FEFormException.h: change the status type to int, now this exception class can be used without knowing anything about the class FEForm 2002-09-26 19:36 mark13 * FEForm.cpp, FEForm.h: various changes done : This class has now an abstract base class which implements common functionality. 2002-09-26 19:31 mark13 * FEField.h: moved the "FieldNamePrefix" from FEForm 2002-09-26 19:30 mark13 * FEFieldException.cpp, FEFieldException.h: change the status type to int, now this exception class can be used without knowing anything about the class FEField 2002-09-26 19:28 mark13 * FEField.cpp: Corrected FEField::FEField to use the "FieldNamePrefix" constant instead of hard coded text 2002-09-26 19:26 mark13 * FEDirectory.h: Corrected a method description 2002-09-26 19:25 mark13 * CGIFormEdit.cpp: Adapted method calls besome FEForm(class) methods have changed 2002-09-25 17:06 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Added an additional take/page parameter evaluation to the following methods : takeCommon, takeDesign, takeButtons 2002-09-25 16:56 mark13 * CGIFormEdit.cpp, CGIFormEdit.h, FEMlField.cpp, FEMlField.h: changed html field : the html code is now stored in a node value Added : the html code will be checked (xml conform !), if not xml conform a error tag will be added. 2002-09-25 16:53 mark13 * flavor-testing/stylesheets/formedit.xsl: changed html field : the html code is now stored in a node value 2002-09-25 16:06 mark13 * XMLTree.cpp: removed debugging messages 2002-09-24 18:05 mark13 * FEForm.cpp: Bugfixing : FEForm.cpp:addField : call of "field.getFieldTagValue" fails if "field" is the temporary field created in "movefield" 2002-09-24 16:50 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Bugfixing : The "JSChangeFieldType" switch must be checked if its value is "SwitchOn" 2002-09-24 15:31 mark13 * CGIFormEdit.cpp: adapted method "fieldAction" zu accept the switch "jsfieldtypechange" -> change the field type. This switch will be set if a Java Script enabled Browser changes the field type 2002-09-24 14:47 mark13 * CGIFormEdit.cpp, FECField.cpp, FECField.h, FEField.cpp, FEField.h, FEForm.cpp, FEMlField.cpp, FEMlField.h, FESlField.cpp, FESlField.h: adpated FEField constructor and constructor calls to take/provide an FENumGen object. This object is used to create form wide unique field names. 2002-09-24 12:52 mark13 * FENumGen.cpp, FENumGen.h: Initial checkin 2002-09-24 12:51 mark13 * Makefile.am: Added new files FENumGen.h and FENumGen.cpp 2002-09-24 12:50 mark13 * FEForm.cpp, FEForm.h: removed the methods getFieldNumber, incFieldNumber and decFieldNumber since this functionality is now implemented in the new class "FENumGen" 2002-09-24 12:49 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Adapted takeCommon, takeDesign and TakeButtons to accept the page switches ending with .X Added the usage of new class "FENumGen" to store and get the field numbering numbers 2002-09-20 18:04 mark13 * flavor-testing/stylesheets/formedit.xsl, CGIFormEdit.cpp: changed again some old Button names from nextpage to actualpage 2002-09-20 17:05 mark13 * flavor-testing/stylesheets/formedit.xsl, CGIFormEdit.cpp: changed some old Button names from nextpage to actualpage 2002-09-20 14:43 mark13 * flavor-testing/stylesheets/formedit.xsl, CGIFormEdit.cpp: Completed the transport of the page (actual page) information to all neccessary jobs 2002-09-19 19:56 mark13 * flavor-testing/stylesheets/formedit.xsl, CGIFormEdit.cpp, CGIFormEdit.h: Added fully page numbering support 2002-09-19 14:37 mark13 * flavor-testing/stylesheets/formedit.xsl, CGIFormEdit.cpp, CGIFormEdit.h, FEForm.cpp, FEForm.h: Added page numbering 2002-09-19 14:36 mark13 * jobs/formedit.xml: Added page numbering Added new job "newwizardpage" 2002-09-18 14:20 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Adapted jobs "takecommon", "takedesign", "newfield" and "takebuttons" to accept an additional switch "preview". This switch causes the methods to call the "displayForm" job (preview Mode) in oposition to the normal behavior calling "updatewizard" 2002-09-18 14:16 mark13 * flavor-testing/stylesheets/formedit.xsl: Added an Additional Button "preview" to the Wizard-Sections 2002-09-17 19:11 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Adapted job switches : a.) put job-switch names in constants b.) allow the also the specific job-switch with an ".x" ending Adapted job(Method) "formAction" to call job "updateFormDir" if not all neccessary parametes (switches) are provided. This prevents an ugly error message if sombody presses enter in an input field. 2002-09-17 17:02 mark13 * FEForm.cpp, FEForm.h: + new tag "number" which descripes the field position, but dosn't recognize fields of type "html" and "image" + new methods to handle the "number" tag : getFieldNumber, incFieldNumber, decFieldNumber, reorganizeFieldNumber and getFieldTagValue 2002-09-17 16:57 mark13 * FECField.cpp, FECField.h, FEField.cpp, FEField.h, FEMlField.cpp, FEMlField.h, FESlField.cpp, FESlField.h: added new tag "number" which descripes the field position, but dosn't recognize fields of type "html" and "image" 2002-09-17 16:16 mark13 * CGIFormEdit.cpp: Adapted methods (jobs) "fieldAction", "formAction" and "newField" to handle the new tag "number" which descripes the field position, but dosn't recognize fields of type "html" and "image" 2002-09-17 16:14 mark13 * flavor-testing/stylesheets/formedit.xsl: Adapted field display to show the new tag "number" whitch descripes the field position, but dosn't recognize fields of type "html" and "image" 2002-09-13 20:03 mark13 * CGIFormEdit.cpp, FECField.h, FEField.cpp, FEField.h, FEForm.cpp, FEForm.h: Adaption to use the tag "order" to store the position of a field and have an unique field name (tag : "fieldname"). Step 1 : Added the new tag "order" and changed several methods to use this tag. 2002-09-13 20:00 mark13 * flavor-testing/stylesheets/formedit.xsl: added new "field" tag order 2002-09-12 17:31 mark13 * flavor-testing/stylesheets/formedit.xsl: changed the form Tag to selform ( template nextbutton) 2002-09-12 14:42 mark13 * CGIFormEdit.cpp: Added "mail-Flags" needed by the "ok"-Button 2002-09-12 14:41 mark13 * FEDirectory.cpp: Fixed crash in "deleteEntry" when last entry was deleted 2002-09-12 14:39 mark13 * FEButton.cpp, FEButton.h: Added new method "addMailTag" 2002-09-11 20:15 mark13 * flavor-testing/: configs/formedit.xml, stylesheets/formedit.xsl: Added button functionality 2002-09-11 20:15 mark13 * jobs/formedit.xml: Added new jobs "buttonAction" and "takebuttons" 2002-09-11 20:14 mark13 * Makefile.am: Added new files FEButton.h and FEButton.cpp 2002-09-11 20:13 mark13 * FEForm.cpp, FEForm.h: Added new methods "addButtons" and "deleteButtons" 2002-09-11 20:12 mark13 * FEDirectory.cpp, FEDirectory.h: Added new methods "hasDirChanged" and "setChanged" 2002-09-11 20:11 mark13 * FEButton.cpp, FEButton.h: initial checkin 2002-09-11 20:10 mark13 * CGIModule.cpp, CGIModule.h: Added ne method "createCustomResult" 2002-09-11 20:10 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Added new jobs "buttonAction" and "takebuttons" 2002-09-04 13:33 mark13 * FEField.h: changed only some comments 2002-09-03 13:36 mark13 * flavor-testing/stylesheets/formedit.xsl: Added new field type image 2002-09-03 13:31 mark13 * FEField.h, FEForm.cpp: Modifications for the new field type "image" done. 2002-09-03 13:30 mark13 * FEDirectory.cpp: changed method "addEntry" (creation of the first directory entry) 2002-09-02 17:05 mark13 * FECField.cpp, FEField.cpp, FEField.h, FEMlField.cpp, FESlField.cpp: changed method name from "addContentField" to "addSpecificTag" 2002-09-02 17:04 mark13 * CGIFormEdit.cpp: change maintenace(development only) method "maintain" 2002-09-02 15:38 mark13 * Makefile.am: Added new files FEDirectory.cpp and FEDirectory.h 2002-09-02 15:37 mark13 * FEMlField.cpp, FEMlField.h: changed constructor to store the textarea content as XMLTree if building a field of type html 2002-09-02 15:35 mark13 * FEForm.cpp, FEForm.h: Changed methods "loadForm" and "saveForm" to use the new directory class "FEDirectory" 2002-09-02 15:34 mark13 * FEField.cpp, FEField.h: Modifications for usage of the new external libsp-utilcpp 2002-09-02 15:32 mark13 * FEDirectory.cpp, FEDirectory.h: initial checkin 2002-09-02 15:31 mark13 * configure.ac: enabled the GNU source switch 2002-09-02 15:30 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Added new jobs "updateformdir" and "formaction", also added usage of the directory class 2002-09-02 15:27 mark13 * flavor-testing/stylesheets/formedit.xsl: Added display for new jobs "updateformdir" and "formaction" 2002-09-02 15:25 mark13 * jobs/formedit.xml: Added jobs "updateformdir" and "formaction" 2002-08-27 17:34 mark13 * configure.ac: changed sp-utilcpp test 2002-08-27 17:33 mark13 * CGIAdmin.cpp, CGICounter.cpp, CGICustom.cpp, CGIEcho.cpp, CGIFeedback.cpp, CGIFormEdit.cpp, CGIMessageboard.cpp, CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGITime.cpp, Conf.cpp, Connection.cpp, DBAccess.cpp, DBCursor.cpp, Dispatcher.cpp, EMail.cpp, FECField.cpp, FEField.cpp, FEForm.cpp, FEMlField.cpp, FESlField.cpp, Image.cpp, ImageRes.cpp, ImageRes.h, LibXMLConf.cpp, LibXMLConf.h, Listener.cpp, MBIndex.cpp, Main.cpp, Makefile.am, ReqThread.cpp, ResManager.cpp, ResManager.h, TincasThread.cpp, UnitTests.cpp, XMLDump.cpp, XMLTree.cpp, XSLTrans.cpp: Adapted to use the new library "libsp-utilcpp" 2002-08-27 15:49 mark13 * GetOpt.cpp, GetOpt.h, Log.cpp, Log.h, SMLog.h, SPUtil.h: Obsolete since there is a external library called sp-utilcpp 2002-08-27 15:41 mark13 * Makefile.am: update for Automake 1.5 2002-08-27 15:39 mark13 * configure.ac: update for Automake 1.5 adapted test for libxml2 added test for libsp-utilcpp 2002-08-27 15:37 mark13 * acinclude.m4: initial checkin 2002-08-27 12:33 mark13 * FECField.cpp, FEForm.h: defined new constant 2002-08-27 12:33 mark13 * CGIFormEdit.cpp: moved some strings to constants 2002-08-27 12:31 mark13 * jobs/formedit.xml: completed comments 2002-08-26 11:31 mark13 * spgxml.h: Added file description 2002-08-20 12:07 mark13 * spgxml.h: initial checkin 2002-08-20 12:02 mark13 * SPUtil.h: removed forgotten conflict marker 2002-08-20 10:50 mark13 * FECField.cpp, FECField.h, FEException.cpp, FEException.h, FEField.cpp, FEField.h, FEFieldException.cpp, FEFieldException.h, FEFormException.cpp, FEFormException.h, FEMlField.cpp, FEMlField.h, FESlField.cpp, FESlField.h: initial checkin end of WP 2.2 2002-08-20 10:48 mark13 * FEForm.cpp, FEForm.h, CGIFormEdit.cpp, CGIFormEdit.h: end of WP 2.2 2002-08-20 10:47 mark13 * XMLDump.cpp, XMLDump.h, XMLException.cpp, XMLException.h, XMLNode.cpp, XMLNode.h, XMLNodeSet.cpp, XMLNodeSet.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h: Added / replaced this file from a newer C++ wrapper library 2002-08-20 10:42 mark13 * Makefile.am: Added new spUtil files Added new FormEdit files 2002-08-20 10:31 mark13 * CGIAdmin.cpp, CGIAdmin.h, CGIBlackboard.cpp, CGIBlackboard.h, CGICounter.cpp, CGICounter.h, CGICustom.cpp, CGICustom.h, CGIEcho.cpp, CGIEcho.h, CGIFeedback.cpp, CGIFeedback.h, CGIGuestbook.cpp, CGIGuestbook.h, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGIResult.h, CGITime.cpp, CGITime.h, Conf.cpp, Conf.h, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, DBCursor.cpp, DBCursor.h, Dispatcher.cpp, Dispatcher.h, EMail.cpp, EMail.h, GetOpt.cpp, GetOpt.h, Image.cpp, Image.h, ImageRes.cpp, ImageRes.h, LibXMLConf.cpp, LibXMLConf.h, Listener.cpp, Listener.h, Log.cpp, Log.h, MBIndex.cpp, MBIndex.h, Main.cpp, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPUtil.h, TincasThread.cpp, TincasThread.h, UnitTests.cpp, UnitTests.h: adapt namespace (sp::tincas) (re)moved some header includes in header files 2002-08-20 10:22 mark13 * flavor-testing/configs/formedit.xml, flavor-testing/stylesheets/formedit.xsl, jobs/formedit.xml: end of WP 2.2 2002-08-19 14:45 suerken * SPRelease: SPRelease's source is now in sp-util++. Add path to that CVS Working dir, or install (new release of) sp-util++. 2002-08-16 16:48 suerken * Makefile.in, SPRelease, configure, configure.ac: SPRelease: Improved automated cvs log messages. configure.ac: Update to version "1.1.*". Removing last auto-generated autoconf/automake files. 2002-08-16 16:38 suerken * Makefile.in, configure, releases/tincas-1.0.20020816.tar.gz, releases/tincas-1.0.20020816.tar.gz.asc: Release tarballs. 2002-08-16 16:20 suerken * ChangeLog: ChangeLog automatically updated via cvs2cl 2002-08-16 16:17 suerken * configure.ac: SPRelease: tincas-1.0.20020816 2002-08-16 16:16 suerken * AUTHORS, COPYING, ChangeLog, Conf.cpp, INSTALL, Makefile.am, Makefile.in, NEWS, README, SPRelease, SPRelease.package, SPUtil.h, UnitTests.cpp, aclocal.m4, config.guess, config.sub, configure, configure.ac, configure.in, install-sh, missing, mkinstalldirs, flavor-testing/configs/GenerateXMLSchemas, flavor-testing/configs/counter.xml, flavor-testing/configs/feedback.xml, flavor-testing/configs/library.xsd, flavor-testing/configs/messageboard.xml, flavor-testing/configs/time.xml: automake/autoconf: Specifying required versions (autoconf 2.13, automake 1.4). Regenerated "ChangeLog" file using "cvs2cl" (locally using ChangeLog.STS). Automated with SPRelease, if available. configure.in: Relabeling version base from 0.9 to 1.0. CVS remove: Some (all?) automatically produced automake/autoconf files. AUTHORS, COPYING: Some cosmetics. configure.in -> ac, SPRelease: Now using autoconf 2.53. SPRelease update: Featuring autoClean, autoUpdate for convenience. SPRelease update: Sourcing SPRelease.package, making the main script package-independant. SPRelease.package: add. You can customize: autoUpdate, autoClean, packageChecks. SPUtil.h, UnitTests.cpp: Removing exp(), CountAdapter Conf: Disabling user/inet port in default config. README: Update, add some info from README.Debian that naturally belong here. 2002-08-16 14:30 suerken * flavor-werner/configs/: counter.xml, feedback.xml, messageboard.xml, time.xml: Thes files are now symlinked from flavor-testing. 2002-08-05 12:33 muc * tt/README: added HowTo in README 2002-08-02 19:09 muc * tt/: Channel.cpp, GetOpt.cpp, GetOpt.h, README, ReqBlock.cpp, SMLog.h, TESTCOMMON.sh, TTMain.cpp, TTMain.h, makefile: TT now uses library spxml++: 1. checkout tinc 2. install spxml++ library (currently in dir: tinc/tincas/tt/sp-xml++) via release tar.gz or by running: aclocal autoheader automake -a autoconf automake autoreconf ./configure [options] make make install ldconfig -v ## the library will be installed in /usr/local/... 3. build TT by running: make 4. start TINCas and TINCam 5. start skript TESTFUNC.sh (or any other TEST* script) as root the TEST* scripts all rely on TESTCOMMON.sh where the global definitions are made. you can change any exported variable in that file to suit your needs. the TT_HOST defines the host on which to test tincas and tincam. all other (for detailed info see README) 2002-08-02 18:59 cschlenk * tincnagios.sh: socket durch nc (netcat) ersetzt - arbeitet mit timeout. 2002-08-02 18:40 muc * tt/sp-xml++/releases/XMLTest-0.1.tar.gz: distcheck: OK added resleas 0.1 2002-08-02 18:12 muc * tt/sp-xml++/: Makefile.am, configure.in: ,... 2002-08-02 16:56 muc * tt/sp-xml++/: .cvsignore, configure.in, src/.cvsignore, src/Makefile.am: now builds shared library also 2002-08-02 15:40 muc * tt/sp-xml++/acinclude.m4: acinclude.m4 added 2002-08-02 15:24 muc * tt/sp-xml++/src/: XMLException.cpp, XMLTree.cpp: config.h includes 2002-08-02 15:23 muc * tt/sp-xml++/: .cvsignore, src/.cvsignore: added .cvsignore's 2002-08-02 15:13 muc * tt/sp-xml++/: COPYING, INSTALL, OOD.dia: static library libxml++.a 2002-08-02 15:12 muc * tt/sp-xml++/: Makefile.am, NEWS, autogen.sh, configure.in, install-sh, missing, mkinstalldirs, src/Makefile.am, src/XMLDump.cpp, src/XMLDump.h, src/XMLNode.cpp, src/XMLNodeSet.cpp, src/XMLTest.cpp, src/XMLTree.cpp, src/XMLTree.h: exporting spxml++ as library 2002-08-02 13:45 mark13 * tt/sp-xml++/src/: XMLTree.cpp, XMLTree.h: Added new method : "addSiblingTag" 2002-08-01 14:19 cschlenk * tincnagios.sh: nagios-conformes testskript fr tinc. 2002-07-31 16:21 suerken * Makefile.in: Clean Makefile.in && configure for convenience. 2002-07-31 16:18 suerken * CGIAdmin.cpp, ChangeLog, DBAccess.cpp, Makefile.in, configure, configure.in, tt/TESTCOMMON.sh, tt/TESTSTRESS.sh: 2002-07-31 Stephan A Suerken * --CVSCI-- * CGIAdmin: Check keys on job "save". * configure.in: Support to disable keys check for job "save" (regression tests). * configure.in: Some cleanup. 2002-07-20 Stephan "Sauron" Suerken * Release: tincas-0.9.20020720. * flavor-werner: "final-rc7.tar.gz" added. * flavor-tincas: Moving all EMail-Adresses to something "really not-existing". 2002-07-18 Stephan "Sauron" Suerken * configure.in: Cosmetics, better docs. 2002-07-31 10:47 suerken * libs/: commonc++-1.9.3.tar.gz, commonc++-1.9.7.tar.gz, commoncpp2-0.99.2.tar.gz, db-4.0.14.tar.gz, libxml2-2.4.12.tar.gz, libxml2-2.4.19.tar.gz, libxml2.so.2.4.12, libxslt-1.0.15.tar.gz, libxslt-1.0.9.tar.gz, libxslt.so.1.0.9: Removing obsolete files. 2002-07-31 10:33 suerken * libs/recommended/libxml2-2.4.23.tar.bz2: Forgot this one... 2002-07-31 10:32 suerken * libs/recommended/: CommonC++-1.9.7.tar.gz, CommonC++-1.9.7.tar.gz.sig, CommonC++-1.9.7.tar.gz.src, cppunit-1.8.0.tar.gz, cppunit-1.8.0.tar.gz.sig, cppunit-1.8.0.tar.gz.src, db-4.0.14.tar.gz, db-4.0.14.tar.gz.sig, db-4.0.14.tar.gz.src, libxml2-2.4.23.tar.bz2.sig, libxml2-2.4.23.tar.bz2.src, libxslt-1.0.19.tar.gz, libxslt-1.0.19.tar.gz.sig, libxslt-1.0.19.tar.gz.src: Checkin new "recommended" core librarries. 2002-07-25 12:23 mark13 * FEForm.cpp, FEForm.h: Initial checkin 2002-07-25 12:22 mark13 * ReqThread.cpp: Added new module "FormEdit" 2002-07-25 12:21 mark13 * Makefile.am: Added new source files : FEForm.cpp FEForm.h 2002-07-25 12:20 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Added new jobs "updatewizard", "takecommon" Moved job "display" to "displayform" 2002-07-25 12:18 mark13 * jobs/formedit.xml: Added new jobs: "updatewizard", "takecommon", "maintain"(internal) 2002-07-25 12:17 mark13 * flavor-testing/stylesheets/formedit.xsl: Added new job template "updatewizard" 2002-07-25 12:16 mark13 * flavor-testing/configs/formedit.xml: Added new configuration Tag -> lang 2002-07-22 12:31 muc * tt/: Channel.cpp, Channel.h, GetOpt.cpp, GetOpt.h, README, SMLog.h, TTMain.cpp, TTMain.h, makefile, tt.conf, tt.sh, tt_users.sh, ttconf.head, sp-xml++/AUTHORS, sp-xml++/COPYING, sp-xml++/ChangeLog, sp-xml++/INSTALL, sp-xml++/Makefile.am, sp-xml++/NEWS, sp-xml++/README, sp-xml++/acconfig.h, sp-xml++/autogen.sh, sp-xml++/configure.in, sp-xml++/install-sh, sp-xml++/missing, sp-xml++/mkinstalldirs, sp-xml++/src/Makefile.am, sp-xml++/src/SPUtil.h, sp-xml++/src/XMLDump.cpp, sp-xml++/src/XMLDump.h, sp-xml++/src/XMLException.cpp, sp-xml++/src/XMLException.h, sp-xml++/src/XMLNode.cpp, sp-xml++/src/XMLNode.h, sp-xml++/src/XMLNodeSet.cpp, sp-xml++/src/XMLNodeSet.h, sp-xml++/src/XMLTest.cpp, sp-xml++/src/XMLTest.h, sp-xml++/src/XMLTree.cpp, sp-xml++/src/XMLTree.h: added sp-xml++ wrapper for libxml used in Channel.cpp cleaned up for distribution. 2002-07-20 13:05 suerken * releases/tincas-0.9.20020720.tar.gz.asc: Signing the release. 2002-07-20 13:05 suerken * ChangeLog, Makefile.in, NEWS, ReqThread.cpp, configure, configure.in, flavor-testing/configs/feedback.xml, flavor-testing/configs/messageboard.xml, flavor-werner/configs/counter.xml, flavor-werner/configs/feedback.xml, flavor-werner/configs/messageboard.xml, flavor-werner/configs/time.xml, flavor-werner/images/CVSDUMMY, flavor-werner/stylesheets/counter.xsl, flavor-werner/stylesheets/feedback.xsl, flavor-werner/stylesheets/messageboard.xsl, releases/tincas-0.9.20020720.tar.gz, tt/TESTSTRESS.sh: 2002-07-20 Stephan "Sauron" Suerken * Release: tincas-0.9.20020720. * flavor-werner: "final-rc7.tar.gz" added. * flavor-tincas: Moving all EMail-Adresses to something "really not-existing". 2002-07-18 Stephan "Sauron" Suerken * configure.in: Cosmetics, better docs. 2002-07-18 14:02 mark13 * configure.in: fix for version. 2002-07-18 13:45 suerken * ChangeLog, Connection.cpp, Makefile.in, NEWS, ReqThread.cpp, configure, configure.in, tt/TESTCOMMON.sh, tt/TESTFUNC.sh: 2002-07-18 Stephan "Sauron" Suerken * --CVSCI-- * ReqThread: More Real Life Checks Against Wrong Requests: Rejecting if "home" does not exists, or owneruid(home) != "uid". 2002-07-17 Stephan "Sauron" Suerken * ReqThread: Rejecting UID=0. 2002-07-18 13:18 muc * tt/: Channel.cpp, Channel.h, ReqTempl.cpp, Start.cpp, TESTCOMMON.sh, TESTSEGVBUG.sh, TTMain.cpp, TTMain.h, makefile, segvtcp.conf, tt.conf.readme, tt.sh, ttconf.head, ttconf.test.blackboard, ttconf.test.guestbook: added option --clog and --help improved duration-calculation of requests 2002-07-17 18:38 mark13 * CGICustom.cpp: Changed job methods "store" and "drop" to don't use MBIndex for db key storage 2002-07-17 13:15 suerken * ChangeLog, DBAccess.cpp, DBAccess.h, Makefile.in, NEWS, configure, configure.in: 2002-07-17 Stephan "Sauron" Suerken * --CVSCI-- * DBAccess: Making Lock File Existence fatal. * configure.in: Options to ignore db lock files ;). 2002-07-17 10:27 suerken * ChangeLog, Makefile.in, SPRelease: 2002-07-17 Stephan "Sauron" Suerken * --CVSCI-- * SPRelease: Cleanup function: Adding regeneration of Makefile && make distclean. 2002-07-16 19:51 mark13 * Listener.cpp: removed :: in the htons(...) call (line 244) due to a compiler error 2002-07-16 18:45 mark13 * CGICustom.h: Added 2 new jobs : "store" -> store a xslt stylesheet in the db "drop" -> delete a xslt stylesheet from db 2002-07-16 18:45 mark13 * CGICustom.cpp, jobs/custom.xml: Added 2 new jobs : "store" -> store a xslt stylesheet in the db "drop" -> delete a xslt stylesheet from db 2002-07-16 12:01 suerken * NEWS: Just to bring cvs ion sync ;). 2002-07-16 11:58 suerken * ChangeLog, Conf.cpp, Makefile.in, NEWS, SPRelease, configure, configure.in: 2002-07-16 Stephan "Sauron" Suerken * --CVSCI-- * SPRelease: Yet another small fix for the cleanup function. * [Markus]: CGICustom, CGIFormEdit added. * Conf: Making "flavor-werner" default config. 2002-07-15 19:41 suerken * flavor-werner/: configs/counter.xml, configs/feedback.xml, configs/messageboard.xml, configs/time.xml, stylesheets/counter.xsl, stylesheets/feedback.xsl, stylesheets/messageboard.xsl: o Fixing forgotten cis. 2002-07-15 19:38 suerken * ChangeLog, SPRelease, configure, configure.in: 2002-07-15 Stephan "Sauron" Suerken * --CVSCI-- * SPRelease: Adding a script cleanup function. 2002-07-15 19:25 suerken * ChangeLog, SPRelease, aclocal.m4: 2002-07-15 Stephan "Sauron" Suerken * --CVSCI-- * SPRelease: Addin aclocal.m4 to CVS (for convenience). Adding "aclocal" before "autoconf" run. This will fix some problems with autotools. 2002-07-15 19:09 suerken * Makefile.in, configure: Fix ***. 2002-07-15 19:08 suerken * Makefile.in, configure.in: Fixing configure.in version to snapshot. 2002-07-15 19:04 suerken * CGICounter.cpp, CGIFeedback.cpp, CGIMessageboard.cpp, ChangeLog, Listener.cpp, Main.cpp, Makefile.am, Makefile.in, SPRelease, config.guess, config.sub, configure, configure.in, flavor-testing/stylesheets/counter.xsl, flavor-testing/stylesheets/custom.xsl, flavor-testing/stylesheets/feedback.xsl, flavor-testing/stylesheets/messageboard.xsl, flavor-testing/stylesheets/time.xsl, tt/TESTCOMMON.sh, tt/TESTSTRESS.sh: 2002-07-15 Stephan "Sauron" Suerken * --CVSCI-- * SPRelease: Note about using the script as checker. * Makefile.am: Better integrity checks. * CVS, Makefile.am: Preparations for flavor-werner + webicons. * Flavor testing: Move all GET forms to POST. * CGIMessageboard, CGIFeedback, CGICounter: FIX: "submiturl" now without "key=..." parameter. * CGIMessageboard: Adding "displayurl" to Jobs activate/erase. 2002-07-15 18:17 mark13 * flavor-testing/stylesheets/formedit.xsl: initial checkin 2002-07-15 17:03 mark13 * jobs/: custom.xml, formedit.xml: initial checkin 2002-07-15 16:23 mark13 * flavor-testing/configs/formedit.xml: initial checkin 2002-07-15 16:23 mark13 * flavor-testing/configs/custom.xml: intitial checkin 2002-07-12 16:59 suerken * CGIModule.h, ChangeLog, Conf.cpp, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, Listener.cpp, Listener.h, Main.cpp, Makefile.in, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPRelease, SPUtil.h, configure, configure.in, flavor-testing/configs/messageboard.xml, tt/TESTCOMMON.sh, tt/TESTFUNC.sh, tt/TESTSEGVBUG.sh, tt/TESTSPEED.sh, tt/TESTSTRESS.sh, tt/makefile, tt/segvtcp.conf, tt/segvunix.conf: 2002-07-12 Stephan "Sauron" Suerken * --CVSCI-- * Main: Now Using PureInetListener. * tt/: Adding new testscripts + segfault producing config. * Listener.cpp: New Class PureInetListener. This class does not have the rare SEGV bug that comes freely with ost::TCPStream. * configure.in, ReqThread: ENABLE_LINUX22_COMPAT now more general: ENABLE_REQUEST_TIMEOUT, including option to set timeout value. 2002-07-11 Stephan "Sauron" Suerken * ReqThread: Moving back to auto_ptr again ;). * SPUtil: DoScopeAsReal now the more general "EUIDSwap". * ResManager: Update to EUIDSwap. * ReqThread: setUID, revertUID, etc.. obsoleted by EUIDSwap. * Main: Cosmetic: Giving some explanatory text to cerr on SIGINT. 2002-07-10 Stephan "Sauron" Suerken * SPRelease: Check to compile with all log levels. 2002-07-09 Stephan "Sauron" Suerken * ResManager: Not logging data dir ("passwd"). * DoScopeAsReal: Own class in SPUtil (from ResManager). * DBAccess: Odds and Ends: - (Partly As Real User): Add Lock File to see errors with duplicate keys. - (Partly As Real User): Auto-Removing Zero-Sized DB-Files. Zero-Sized DB-Files might emerge on disk full/quota exceeded. 2002-07-08 Stephan "Sauron" Suerken * ReqThread, configure.in: TINCAS_ENABLE_LINUX22_COMPAT. Just to be able to run full tests under linux <2.4. 2002-07-10 15:40 mark13 * CGIFormEdit.cpp, CGIFormEdit.h: Module CGIFormEdit - initial checkin 2002-07-10 15:36 mark13 * CGICustom.cpp, CGICustom.h: Module CGICustom - initial checkin 2002-07-10 15:34 mark13 * Makefile.am: Added new module CGICustom Added new module CGIFormEdit 2002-07-10 15:27 mark13 * ReqThread.cpp: Added new module CGICustom 2002-07-10 14:48 cschlenk * tools/socket.tar.bz2: socket-tool 2002-07-10 13:04 cschlenk * ResManager.cpp: == anstatt = 2002-07-08 18:05 suerken * tt/: MASTERTEST.sh, TESTCOMMON.sh, TESTSEGVBUG.sh: ... 2002-07-05 15:27 suerken * Makefile.in, configure, tt/MASTERTEST.sh: o new configure, some changes. 2002-07-05 14:49 suerken * CGIEcho.cpp, CGIMessageboard.cpp, ChangeLog, Conf.cpp, Connection.cpp, Listener.cpp, Listener.h, Main.cpp, Makefile.in, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPRelease, XMLDump.cpp, XMLTree.cpp, configure.in, flavor-testing/stylesheets/messageboard.xsl, tt/MASTERTEST.sh: 2002-07-05 Stephan "Sauron" Suerken * --CVSCI-- * All: Optimizing Loglevel 6 for regression tests. * All: Cosmetic: Removing all double final "." from logs ;) * techdoc: Update. * ResManager: Some obsolete debugging code removed. * SPRelease: Adding optional tarball digning with gpg. * SPRelease: Reverting configure.in to avoid confusion. * Main: Cosmetic: Generalising tincasID. 2002-07-04 Stephan "Sauron" Suerken * CGIMessageboard: FEATURE: "replyurl" per entry. 2002-07-03 Stephan "Sauron" Suerken * Main: Moving "Finished"-Note to more appropriate place. * Listener: "return 0" to suppress warning with -DNDEBUG. 2002-07-04 13:41 suerken * releases/tincas-0.9.20020703.tar.gz.asc: adding sig file for release. 2002-07-03 13:52 suerken * CGICounter.cpp, CGIFeedback.cpp, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, ChangeLog, Conf.cpp, Connection.cpp, DBAccess.cpp, DBAccess.h, DBCursor.cpp, Dispatcher.cpp, Dispatcher.h, EMail.cpp, EMail.h, GetOpt.h, Listener.cpp, Main.cpp, Makefile.in, NEWS, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPRelease, SPUtil.h, UnitTests.cpp, XMLTree.cpp, XMLTree.h, configure, configure.in, flavor-testing/configs/messageboard.xml, releases/tincas-0.9.20020618.tar.gz.asc, releases/tincas-0.9.20020703.tar.gz, tools/xsltproc/Makefile, tools/xsltproc/XSLTProc.cpp, tt/MASTERTEST.sh: 2002-07-03 Stephan "Sauron" Suerken * Release: tincas-0.9.20020703. * CGIModule: Generating "/req/iconurl". * Big STS Final Wipeout. 2002-07-02 Stephan "Sauron" Suerken * ResManager: "Security By Obscurity" for tincas user data. - The "UserRoot" is now created as real user, rwx--x---. - Underneath, there is now a new data directory, belonging the user (effective uid), "rwx------". * Main: Class Main is no longer a thread of its own (this also fixes the strange behaviour that with --clog && --daemon, some first lines to cerr would still be shown...) * CGIMessageboard: FIX: adminurl for Job=activate. * EMail, CGIMessageboard, CGIFeedback: FIX: Get EMail Header For Encoding in sync with RFC 1521. * CGIMessageboard: FIX: Subject-Texts now in German. 2002-07-01 Stephan "Sauron" Suerken * Conf, Main, Dispatcher, ReqThread: - HangWarnTimeout and HangRelaunchTimeout to monitor / relaunch tincas when threads hang, resp. * SPUtil: Reverse find template for lists. * New Signal Handling: - Master Signal Handler is now in Real Main - Shutdown: SIGTERM, SIGINT (SIGQUIT removed, not ANSI C) - Restart : SIGHUP - Implicit Relaunch: SIGABRT on ReqThreads, HangRelaunchTimeout 2002-06-25 Stephan "Sauron" Suerken * ResManager: Using ost::AtomicCounter for reference count (instead of Mutex). * Conf, Main, Dispatcher, ReqThread: Adding "HangWarnTimeout" per Port for better debugging. * Adding support to disable mail sending at compile time (regression tests). * ResManager: New limiting cache. * DBAccess: Support to set default cache size. * Conf, Main: New DbCache Section; OLD: "70100" NEW: "7032" I.e., (max) memory needed for DBCache is approx.: Limit x EntryCache KBytes 2002-06-24 Stephan "Sauron" Suerken * tools/xsltproc: Added Usage infomation. * Conf.cpp: Changed default configuration (-c). 2002-06-20 Stephan "Sauron" Suerken * Dispatcher.cpp: BUGFIX: deleteStoppedThreads() * ReqThread: FIX: Only Stopping Threads ASAP on SIGABRT. Threads will live on after all other signals. SIGABRT triggers a LOGCRIT (this should not happen), other signals trigger a LOGWARNING. * ReqThread: Adding getRequestTime() for Dispatcher to debug if a thread "hangs". "iAmBusy" is now "busyStamp". * Dispatcher: Adding LOGERR info for hanging threads. Currently fixed timeout: 10 seconds. 2002-06-19 Stephan "Sauron" Suerken * Main.cpp: Logging tincas version, loglevel && build time on startup. 2002-07-01 19:38 suerken * tt/MASTERTEST.sh: o the new MASTERTEST 2002-07-01 19:37 suerken * tt/makefile: - libxslt missing 2002-06-27 21:35 muc * tt/: Channel.cpp, Channel.h, ReqBlock.cpp, ReqBlock.h, ReqTempl.cpp, ReqTempl.h, Start.cpp, TTMain.cpp, TTMain.h, makefile, tt.sh, ttconf.head: tt ganz NEU jetzt mit: 1. tcp und unix connections 2. signal handling zur steuerung waehrend dem betrieb 3. configurierbare abort-rate, die zufaellig requests abbricht 4. syslog logging 5. locale mailadresse (anti-SPAM schutz ;) 6. detailliertere response-auswertung und status-meldung 7. Timeouts werden abgefangen u.v.m. ... 2002-06-18 19:35 suerken * EMail.cpp, Makefile.am, Makefile.in, NEWS, flavor-testing/stylesheets/messageboard.xsl, releases/tincas-0.9.20020618.tar.gz: Last Changes for New Release. 2002-06-18 18:17 suerken * ChangeLog, Makefile.am, Makefile.in, configure, configure.in, flavor-testing/configs/feedback.xml, tools/xsltproc/Makefile, tools/xsltproc/XSLTProc.cpp: * Adding tools/xsltproc. "./xsltproc test.xsl test.xml" should produce the same output as the "real" xsltproc. 2002-06-18 17:50 suerken * CGIAdmin.cpp, CGICounter.cpp, CGICounter.h, CGIFeedback.cpp, CGIMessageboard.cpp, CGIMessageboard.h, CGIResult.h, ChangeLog, Connection.cpp, DBAccess.cpp, DBCursor.cpp, EMail.cpp, HTMLDump.cpp, HTMLDump.h, Listener.cpp, Main.cpp, Makefile.am, Makefile.in, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SMLog.h, UnitTests.cpp, XMLDump.cpp, configure, configure.in, flavor-id/stylesheets/id.xsl, flavor-testing/configs/counter.xml, flavor-testing/configs/feedback.xml, flavor-testing/configs/messageboard.xml, flavor-testing/images/A.png, flavor-testing/images/A.xml, flavor-testing/stylesheets/counter.xsl, flavor-testing/stylesheets/echo.xsl, flavor-testing/stylesheets/feedback.xsl, flavor-testing/stylesheets/messageboard.xsl, tt/MASTERTEST.sh: 2002-06-18 Stephan "Sauron" Suerken * ---CHECKIN--- * Tech Doc: Some Updates. * configs/: Obsolete, removed. 2002-06-17 Stephan "Sauron" Suerken * Makefile.am: Updates, check, etc... * HTMLDump: Is obsolete, removed. * Stylesheets, Flavor testing: Making them all real UTF-8. * Main: Removing "--stop --pidfile=PIDFILE" in favor of "kill -SIGQUIT `cat PIDFILE`". Reason: Confusing, obsoleted by kill, obsoleted (Debian) by start-stop-daemon, code bloat. * ResManager: BUGFIX: ResRef Destructor for empty ResRefs. * CGIResult: FIX: "Access DB Error" changed to "Admin DB Error". * ResManager/DBAccess: SEVERE BUGFIX: All DBs now have their own file. * Main: FIX: Now Saving process group id in pid file. * SMLog: Feature: Logging the process group. 2002-06-14 Stephan "Sauron" Suerken * Connection: FIX: Disabling THROW for TCPStream: This will avoid unwanted SIGABRT. * CGIAdmin: FIX: Jobs "init", "save": Return WRONG_PARAMETER if jobmod/config not given. 2002-06-13 Stephan "Sauron" Suerken * Stylesheets, Flavor Testing: Output method set to . * Stylesheets, Flavor Testing: All Forms Set to
. * Stylesheets, Flavor id. id.xsl: . * CVS flavor-testing/images: Cleanup for new images. * CVS Makefile.am: Adapted for new images; adapted flavor id. * Connection: Hardcoding charset=utf-8 in ContentType. * Encoding for Mails set to UTF-8. 2002-06-12 Stephan "Sauron" Suerken * CGIMessageboard: Wish: New Feature: Show "Current Number" for each entry. * CGICounter: Fix: Do not save empty "lastIps". * CGICounter: Fix: Error for job "formset" if value is too big. * CGIMessageboard: Bugfix: pageback, pageforward, epp (misplaced } ;). * Main: Some nicer error output. 2002-06-11 Stephan "Sauron" Suerken * ResManager: Improving Referenced Cache Items (copy constructor, =operator). 2002-06-10 Stephan "Sauron" Suerken * DBAccess: Configure db4 to log to SM_LOG*. * DBAccess: DB4-Oddity fixed (Db::open/close && Exceptions) * TincasThread: Adding a default Tincas Thread Class (merely for better debugging). * ...: Misc smaller changes... 2002-06-07 Stephan "Sauron" Suerken * LibXMLConf: Pseudo Class to configure/deconfigure libxml2 + libxslt. Essentially, this now logs everything to SM_LOG* (instead of stderr). 2002-06-10 17:23 suerken * CGICounter.cpp, ChangeLog, Conf.cpp, DBAccess.cpp, DBAccess.h, Dispatcher.cpp, Dispatcher.h, EMail.cpp, HTMLDump.cpp, LibXMLConf.cpp, LibXMLConf.h, Main.cpp, Makefile.am, Makefile.in, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, TincasThread.cpp, TincasThread.h, XMLDump.cpp, XMLDump.h, XMLTree.cpp, XSLTrans.cpp, XSLTrans.h, flavor-testing/stylesheets/counter.xsl, flavor-testing/stylesheets/feedback.xsl, flavor-testing/stylesheets/messageboard.xsl: 2002-06-10 Stephan "Sauron" Suerken * DBAccess: Configure db4 to log to SM_LOG*. * DBAccess: DB4-Oddity fixed (Db::open/close && Exceptions) * TincasThread: Adding a default Tincas Thread Class (merely for better debugging). * ...: Misc smaller changes... 2002-06-07 Stephan "Sauron" Suerken * LibXMLConf: Pseudo Class to configure/deconfigure libxml2 + libxslt. Essentially, this now logs everything to SM_LOG* (instead of stderr). 2002-06-06 Stephan "Sauron" Suerken * XSLTrans, XMLDump: Fix for stylesheet transformation. New Class XSLTOutputBuf. * Updates for New Counter Images (Norbert). 2002-06-03 Stephan "Sauron" Suerken * Default Config: "www-data" to "www". This will let it work "out-of-the-box" on the current infongd (and disable this behaviour on pure debian systems ;) 2002-05-29 Stephan "Sauron" Suerken * ResManager: Update to support new image layout. * Flavor testing: New counter images (Norbert). * configure.in: Adding "png" to list of checked libraries. * NEWS: Adding Summary for release 0.9.20020525. * Now using common ChangeLog format... 2002-05-28 Stephan "Sauron" Suerken * NEWS: Added some meaningful text, making lintain happier. * README: Added some meaningful text, making lintain happier. * tincascheck: Add check for default config file validity. * More trash from ditribution removed (*~, CVSDUMMY). * tincasctrl: Removed in favor of debian's /etc/init.d/sp-tincas. * Email: Enabled again (Cannot reproduce bug anymore; Tested with commonc++ 1.9.4|5|6). * Local cc++/ deleted (obsoleted by PACKAGE/VERSION bugfix in commonc++ 1.9.7) 2002-06-10 16:00 muc * tt/: ttconf.save.blackboard, ttconf.save.counter, ttconf.save.feedback, ttconf.save.guestbook, ttconf.save.time, ttconf.test.blackboard, ttconf.test.feedback, ttconf.test.guestbook: changed e-mail adress and corrected fonttype-values. -Muc- 2002-06-06 11:51 kaufmann * flavor-testing/configs/: counter.xml, time.xml: new counter/time - pngs. 2002-06-04 13:59 kaufmann * Image.cpp, Image.h: bugfixes 2002-05-29 17:59 suerken * ChangeLog, Conf.cpp, EMail.cpp, Main.cpp, Makefile.am, Makefile.in, NEWS, README, ResManager.cpp, configure, configure.in, tincasctrl, flavor-testing/stylesheets/feedback.xsl, releases/tincas-0.9.20020524.tar.gz.asc: o Checkin for Norbert. 2002-05-29 16:05 kaufmann * flavor-testing/images/: counter1.xml, counter1a.png, counter1b.png, counter1c.png, counter2.xml, counter2a.png, counter2b.png, counter2c.png, counter3.xml, counter3a.png, counter3b.png, counter3c.png, counter4.xml, counter4a.png, counter4b.png, counter4c.png, counter5.png, counter5.xml: new counter-images 2002-05-29 15:59 kaufmann * Image.cpp, Image.h: new counterimages, new problems 2002-05-24 19:35 suerken * SPRelease: o Adding cvs tagging to SPRelease. 2002-05-24 19:34 suerken * Makefile.in, SPRelease, releases/tincas-0.9.20020524.tar.gz: o First Unstable Release 0.9.20020524. o Below are some changes not yet mentioned: o New Resources "Layout" (I) "Flavor"-Directories include "images", "stylesheets" and "configs" subdirs. (I) Flavor-Directories belong into Server Root. (I) Other directories under Server Root May be used for "static" data (jobs!) - New: ResManager using "Flavor"-Directorive. - New Dir: "jobs" : Static List of Module Jobs as XML (-> ServerRoot/jobs). - New Dir: "flavor-testing": Flavor for testing. - New Dir: "flavor-id" : Flavor to get XML Input of XSL Transformations. o Config, ResManager, Main: - "Flavor"-Directive to Conffile. - Using Flavor for XSLT, Config and ImageRes Resources. o Stylesheets, flavor testing - Small Bugfix in feedback default testing config. - Adding debug info (plain input XML) to end of all pages. - All forms now have 'accept-charset="iso-8859-1"'. o DBCursor: - Fixed the toXML()-hack, now works more often ;) 2002-05-24 18:27 suerken * ChangeLog, Makefile.am, Makefile.in, SPRelease, UnitTests.cpp, configure, configure.in: o Much improved SPRelease. o Updated Makefiles etc... 2002-05-24 16:09 suerken * ChangeLog, Connection.cpp, HTMLDump.cpp, HTMLDump.h, Main.cpp, Makefile.am, Makefile.in, ResManager.cpp, UnitTests.cpp, XMLDump.cpp, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h, flavor-testing/configs/messageboard.xml, flavor-testing/stylesheets/counter.xsl, flavor-testing/stylesheets/feedback.xsl, flavor-testing/stylesheets/messageboard.xsl: More changes (desc later). 2002-05-23 16:26 suerken * flavor-id/stylesheets/id.xsl: Adding id.xsl. 2002-05-23 16:24 suerken * ChangeLog, DBCursor.cpp, Main.cpp, Makefile.am, Makefile.in: Resources Setup Fixes: Makefile Fixes 2002-05-23 14:43 suerken * ResManager.cpp, ResManager.h: Resources Setup Fixes: ResManager Fixes 2002-05-23 14:34 suerken * ChangeLog, Conf.cpp, Main.cpp, ResManager.cpp, ResManager.h, UnitTests.cpp: Resources Setup Fixes: Config, ResManager, Main 2002-05-23 14:05 suerken * Conf.cpp: Resources Setup Fixes 2002-05-23 14:00 suerken * flavor-id/configs/CVSDUMMY, flavor-id/images/CVSDUMMY, flavor-testing/configs/GenerateXMLSchemas, flavor-testing/configs/counter.xml, flavor-testing/configs/echo.xml, flavor-testing/configs/feedback.xml, flavor-testing/configs/library.xsd, flavor-testing/configs/messageboard.xml, flavor-testing/configs/time.xml, flavor-testing/images/A.png, flavor-testing/images/A.xml, flavor-testing/stylesheets/counter.xsl, flavor-testing/stylesheets/echo.xsl, flavor-testing/stylesheets/feedback.xsl, flavor-testing/stylesheets/messageboard.xsl: Resources Setup Fixes 2002-05-23 13:51 suerken * Conf.cpp: Resources Setup Fixes 2002-05-23 13:22 suerken * ChangeLog, Makefile.am, Makefile.flat, Makefile.in, jobs/admin.xml, jobs/blackboard.xml, jobs/counter.xml, jobs/echo.xml, jobs/feedback.xml, jobs/guestbook.xml, jobs/messageboard.xml, jobs/time.xml: o New Resources Setup, First Try. 2002-05-03 15:42 muc * SPUtil.h, XMLTree.cpp, XMLTree.h: added functions for istream in addition to ifstream -Muc- 2002-05-03 10:51 suerken * SPRelease, configure.in: o Adding first unfinished version of SPRelease. 2002-05-02 18:05 suerken * ChangeLog, Makefile.in, configure, configure.in: o This is just to save all my last changes... 2002-05-02 16:27 suerken * ChangeLog, Makefile.am: o FIX: acktxt for Feedback in library.xsd. 2002-04-30 13:01 suerken * ChangeLog, STSLOG: STSLOG now in autotools ChangeLog. 2002-04-30 12:58 suerken * AUTHORS, ChangeLog, INSTALL, NEWS, README, missing, mkinstalldirs: autotools ;(. 2002-04-30 12:56 suerken * Makefile.in: We need this too, althought it's no proper source. 2002-04-30 12:50 suerken * config.guess: we need this, too. 2002-04-30 12:47 suerken * config.sub: We need this too. 2002-04-30 12:45 suerken * install-sh: o We need this file. 2002-04-30 12:42 suerken * Makefile.am, configure.in: o CVS Fight won? 2002-04-30 12:41 suerken * Makefile.am, configure.in: o Still fighting with them CVS. 2002-04-30 12:34 suerken * AUTOMAKE_CLEAN, CGIAdmin.cpp, CGIAdmin.h, CGICounter.cpp, CGICounter.h, CGIEcho.cpp, CGIEcho.h, CGIFeedback.cpp, CGIFeedback.h, CGIImage.cpp, CGIImage.h, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGIResult.h, CGITime.cpp, CGITime.h, COPYING, Conf.cpp, Conf.h, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, DBCursor.cpp, DBCursor.h, Dispatcher.cpp, Dispatcher.h, EMail.cpp, EMail.h, GetOpt.cpp, GetOpt.h, Image.cpp, Image.h, ImageRes.cpp, ImageRes.h, Listener.cpp, Listener.h, Log.h, MBIndex.cpp, MBIndex.h, Main.cpp, Makefile.flat, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SMLog.h, SPUtil.h, STSLOG, UnitTests.cpp, UnitTests.h, XMLDump.cpp, XMLDump.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h, configure, makefile: o Doc: New Section: Installation (with some raw brainstorm currently). o CGI*: Turning to Exception Error Handling - Conf Key generation unified (reqthread, cgiadmin). - obsoleting checkPara - Exceptionize: MBIndex. - f.a. CGIModules: no need for methods to return CGIResult Error Code. o CGIMessageboard, CGIFeedback: - email String Validation via regular expression - FIX: debug messages with Log (no.getIndex()!). - FIX: Invalid start/no-Parameters now correctly produce WRONG_PARAMETER (was: MODULE_FAILED). o SPUtil: - New Function eMailIsValid(), adding libregexx to needed libraries. o Complete Exception Handling, Last Checks - all asserts real logical asserts: Done. - each throw has a debug_ << "CLASS:METHOD():E:...": Done. o ResManager: - FIX: CGIImageRes --> CGIImageRes *. - Merging (unused) DbEnv Resource Support back in. o Test pseudo-Round-Robin. o ReqThread: - FIX: moduleDBRes, adminDBRes. - Complete throw/catch Error Handling Rethink && Rewrite o Listener: - FIX: Hardcoded "Convenience for testing " removed. o Main: - FIX: Do not start if pid file exists. - New option "--pidfile". - FIX: Catching Listener Exceptions. o UnitTests: - FIX: ResManger Test. - Playfield: +bugCache(), +testLog() o "CGIImage" --> "Image" o Rebirth of autotools - Preserving old Makefiles under "Makefile.flat". - all to-change data (compiler flags, tincas version, etc) in configure.in. ok. - build target: ok. - Main: --version: Sane version, release time, build time. "blder hack" obsoleted. - Migrating help targets to Makefile.am: brequests(now requests), check(now tincascheck), xmlwfcheck, xmlxscheck, symlinks. ok. - install target: seems ok. - Note: Compile time again (-g -O2) decreased to ~1:55'' (from ~3:00'') - dist target: build ok?. install ok? o Debian: - 2002-04-25: cppunit 1.8.0 now in Debian Woody; removing local install. - 2002-04-25: Mathew Wilcox indicates to finally have uploaded db4 packages to sid. o CGICounter: - Doku...Ok. - Job: formset: Add tags to tree...Ok. - Job: set: Add tags to tree...Ok. - Job: set, formset: parse xslt...Ok. - Stylesheet...Ok. - All jobs: Validate parameters...Ok. - New Feature: Recalling job "formset" when set value is wrong...Ok. - New Feature: Do not count up if "ip" matches ip of last call...Ok. - FIX: "newValue" --> "value"..Ok. - FIX: Value check would let empty string pass...Ok. o CGITime: - Doku...Ok. - Stylesheet...removing..Ok. o Stylesheets/configs: Add some more functionality for better tt-testing: - +acktxt: Messageboard, Feedback. - CGIMessageboard: head, backlink, acktxt...OK. - CGIFeedback: head, backlink, acktxt...OK. - All XML-Resources (jobs, stylesheets, config, tincas-config, now have an explicit encoding. o Log: - FIX: getuid() to geteuid(). o SMLog: "Syslog Macro Log" *NEW* - New log additionally has File:Line (no need to add Class/function manually into log messages any more). - Updating log messages...puh...ok. o Doc: - Howto configure syslog for convenient debugging o tt/tests: - MASTERTEST script. - Added some patterns back in. 2002-04-30 12:25 suerken * tt/makefile: o Re-Adding makefile. 2002-04-30 12:22 suerken * tt/: MASTERTEST.sh, makefile, ttconf.save.blackboard, ttconf.save.feedback, ttconf.save.guestbook, ttconf.test.blackboard, ttconf.test.feedback, ttconf.test.guestbook: o Adding some more patterns. o New (yet incomplete) "MASTERTEST.sh". Merely for my personla use. 2002-04-22 14:19 muc * tt/tt.conf.readme: added tt.conf.readme: "doku" for tt.conf File -Muc- 2002-04-22 11:35 suerken * CGIAdmin.cpp, CGIAdmin.h, CGICounter.cpp, CGIEcho.cpp, CGIEcho.h, CGIFeedback.cpp, CGIFeedback.h, CGIImage.cpp, CGIImage.h, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, CGIResult.h, CGITime.cpp, Conf.cpp, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, DEBIAN_BRAINSTORM, EMail.cpp, GetOpt.cpp, Listener.cpp, Listener.h, Log.h, MBIndex.cpp, MBIndex.h, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPUtil.h, STSLOG, UnitTests.cpp, XMLDump.cpp, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h, makefile, tt/makefile: o Technical checkin, Docs later. 2002-04-16 19:37 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIBlackboard.cpp, CGIBlackboard.h, CGICounter.cpp, CGICounter.h, CGIEcho.cpp, CGIEcho.h, CGIFeedback.cpp, CGIFeedback.h, CGIGuestbook.cpp, CGIGuestbook.h, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGIResult.h, Conf.cpp, Conf.h, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, DBCursor.cpp, DBCursor.h, DEBIAN_BRAINSTORM, Dispatcher.cpp, Dispatcher.h, EMail.cpp, EMail.h, GetOpt.cpp, GetOpt.h, Listener.cpp, Listener.h, MBIndex.cpp, MBIndex.h, Main.cpp, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPUtil.h, TestAll.cpp, TestAll.h, UnitTests.cpp, UnitTests.h, XMLDump.cpp, XMLDump.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h, makefile: o XMLTree, DBAccess: Now handle errors competely with exceptions. Appropriate changes throughout tincas. o configs/*: - Adding XML Schema for messageboard. - Adding 1st versions of request.xsd && response.xsd for Tobi. o Dispatcher: Fixed the "hang forever" with --stop (hard shutdown after 10 soft shutdown tries). o DBAccess: Added unofficial job "initAndSave" to simplify Testing. (With XSD, Comments in the XML-Files, the hacky sed-Condtruct does not work well any more ;) Appropriate changes in makefile. o ResManager: Making tincas a "Berkeley DB Concurrent Data Store application". o DBAccess: Removed cursor support from DBAccess - Locking does not work with a permanent cursor. - Only the admin module needs a cursor. o DBCursor: New Class; enables cursor access to database _only_ when needed. o Docu Update: + CGIAdmin Doku. + admin.jobs.xml + Thorough Styleguide update (with corresponding Source-Renicing) o DBEnv removed // Databases via ResManager // ResManager rewrite (useCount!) Solves: - Expensive "open" calls per requests are now cached. - Selected db locking can be done with simple per-database Mutex (avoiding DbEnv overhead). aka: Module can and must avoid access race conditions. - "tinc.db" is now hardcoded in one place (ResManager). - No need to copy ImageRes Resource any more. - ResManager much more generic o can handle cache limits o mutexes are now perfect o no longer dependent on specific constructor (we really can cache _any_ class now) Obsoletes: - Two maps for ImageRes. Caveats: - No db recovery. o Conf: - Exceptionized. - ++DbCache-Configuration. - appr. changes: Main (much nicer output), ResManager. *** MOVED MY DEVELEPMONT ENVIRONMENT FROM "sid" TO "woody" *** o MBIndex: Class outsourced from CGIMessageboard. o The Big Cleanup: includes, def/dec, spacing, debug-messages, STS CGIAdmin.cpp OK, ++: CGIResult::Error, CGIAdmin:genKey --> SPUtil::genKey. CGIBlackboard.cpp OK. CGICounter.cpp --. CGIEcho.cpp OK. CGIFeedback.cpp OK, ++: Removing 2 obsolete functions. CGIGuestbook.cpp OK. CGIImage.cpp --. CGIMessageboard.cpp OK. CGIModule.cpp OK. CGIResult.cpp OK. CGITime.cpp -- Conf.cpp OK. Connection.cpp OK. DBAccess.cpp OK. DBCursor.cpp OK. Dispatcher.cpp OK. EMail.cpp OK. GetOpt.cpp OK. ImageRes.cpp --. Listener.cpp OK. Log.cpp --. Main.cpp OK. MBIndex.cpp OK. ReqThread.cpp OK. ResManager.cpp ok. SPUtil.h OK, ++: delAnySeqContainer, delStringMap optimized. TestAll.cpp --...OK. XMLDump.cpp OK. XMLTree.cpp OK. XSLTrans.cpp OK. Note: This Cleanup reduced compile time with -O2 from 6 to 3 minutes. o TestAll.cpp - Tests (re)written/cleaned: ResManager, XMLTree(+XMLDump), Conf, XSLTrans, Connection, DBAccess(+DBCursor), EMail, CGIEcho. - Added test "debug" for use for temporary debug code. - Renamed to "UnitTests". o Main: New option "--debug/-T" see above. 2002-04-10 15:39 muc * tt/tt.sh: Homedirs now with trailing '/' -Muc- 2002-04-09 12:50 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIBlackboard.h, CGICounter.cpp, CGICounter.h, CGIEcho.h, CGIFeedback.h, CGIGuestbook.h, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, Conf.h, Connection.h, DBAccess.cpp, DBAccess.h, DBCursor.h, Dispatcher.cpp, EMail.cpp, Main.cpp, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h: o DBEnv version (this will be tagged STS_DBENV) 2002-04-08 11:00 suerken * Dispatcher.cpp, Dispatcher.h, EMail.cpp, EMail.h, Main.cpp, ReqThread.cpp, TestAll.h: o Technical checkin, desc later. 2002-04-08 10:29 muc * tt/: ReqBlock.cpp, ReqBlock.h, TTMain.cpp, ttconf.test.corrupt: Added "modul" for corrupt requests "corrupt". Added total request-count output -Muc- 2002-04-05 17:49 suerken * CGIAdmin.cpp, CGIAdmin.h, CGICounter.cpp, CGIEcho.cpp, CGIFeedback.cpp, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, CGIResult.h, DBAccess.cpp, DBAccess.h, DBCursor.cpp, DBCursor.h, Dispatcher.cpp, EMail.cpp, GetOpt.cpp, ReqThread.cpp, ResManager.cpp, ResManager.h, TestAll.cpp, XMLTree.cpp, XMLTree.h, makefile: o Security Checkin, logs later... 2002-04-04 18:41 suerken * tt/tt_env.sh: Removin obsolete tt_env.sh 2002-04-04 11:29 suerken * tt/tt.sh: o Adding some sanity "ses. 2002-04-02 15:58 suerken * DBAccess.cpp, Main.cpp, ResManager.cpp, TestAll.cpp, TestAll.h, XMLTree.cpp: o XMLTree(char *, int) constructor bug fixed. 2002-04-02 13:13 suerken * CGIMessageboard.cpp, DBAccess.cpp, DBAccess.h, ReqThread.cpp, ReqThread.h, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h: o Main: Cleanup: - "Port" class to encapsulate creation/starting/stopping of Listener/Dispatcher pairs (aka "Port") - Main now has a vector of ports o Conf: - Support for new config value: ConnTimeout. - ./tincas -c now shows all field descriptions inline. o Listener: - Handle conn timeout down to Connection. o Connection: - Support for Connection Timeout: o Unix Socket: With POSIX-conform socket flags (will work with linux 2.4+). o Inet Socket: With Common C++-Abstraction. - Exceptions: READ_ERR, WRITE_ERR. o ReqThread: o Thorough Cleanup. o Connection timeouts are now in Connection. o Thread will now free all resource correctly when terminated via Terminate() (external) or Exit() internal. o a ReqThread has handlers for: SIGABRT, SIGPIPE, SIGHUP, SIGALRM. All these signals cause the Thread to terminate cleanly. o CGIMessagebord: o Memory hole fixed in getNextNo(). Thanks Muc.... o XMLTree: Now using ParseMemory instead of parserDoc: - xmlChar *-Construktor now char *-Konstuktor - char * -Constructor can now optionally be given the size of the data block (DBAccess!) o XSLTrans: dito. - Obsolete warning in destructor removed. o DBAccess: - getXMLTree()-Method to speed up (get rid of at least one copy). o Appropriate changes: ReqThread, CGIMessageboard. - Memory hole in get() fixed. 2002-03-28 19:40 suerken * ReqThread.cpp: o Fixed segfault. 2002-03-28 19:14 muc * tt/tt.sh: added option "-p" -Muc- 2002-03-28 19:12 suerken * CGIMessageboard.cpp, CGIResult.h, Conf.cpp, Connection.cpp, Connection.h, DBAccess.cpp, Listener.cpp, Listener.h, Main.cpp, ReqThread.cpp, ReqThread.h, ResManager.cpp, SPUtil.h, TestAll.cpp, XSLTrans.cpp: o Intermediate Beta-Test Checkin... 2002-03-28 12:37 muc * tt/: tt.sh, tt_users.sh: minor corrections -Muc- 2002-03-27 15:00 muc * tt/: tt.sh, tt_users.sh, ttconf.foot, ttconf.head, ttconf.init, ttconf.mid, ttconf.save.blackboard, ttconf.save.counter, ttconf.save.feedback, ttconf.save.guestbook, ttconf.save.time, ttconf.test.blackboard, ttconf.test.counter, ttconf.test.feedback, ttconf.test.guestbook, ttconf.test.time: added testscript tt.sh, tt_user.sh and needed config-files ttconf.* -Muc- 2002-03-27 14:58 suerken * libs/: libxml2-2.4.19.tar.gz, libxslt-1.0.15.tar.gz: Adding newest (27 MAR 2002) versions of libxslt, libxml2. 2002-03-26 20:04 suerken * CGIModule.cpp, CGIModule.h, Connection.cpp, ReqThread.cpp, ReqThread.h, SPUtil.h, XMLTree.cpp, XSLTrans.cpp, XSLTrans.h, makefile: o Framework: New StyleGuide: Class Methods that return pointers that are allocated inside the methods, and need to be deallocated outside, must use auto_ptr. (Changes: XSLTrans:trans*, SPUtil: +auto_ptr_copy) o Connection: Fixed Header Reading to stop at CR's too (readline only removes LF's from line) 2002-03-26 14:06 muc * CGICounter.cpp: bugfix: setform => formset -Muc- 2002-03-26 13:56 suerken * libs/: commonc++-1.9.7.tar.gz, commoncpp2-0.99.2.tar.gz: o Adding latest "stable" commonc++ library (1.9.7). o Adding latest "pre-2.0" commonc++ library. 2.0 is not source compatible with 1.9.x versions. Includes UnixSocket support. 2002-03-26 13:35 muc * CGICounter.cpp, CGIImage.cpp: fixed some endl => lendl -Muc- 2002-03-26 13:11 muc * CGICounter.cpp: Bugfix, if countervalue="" no crash. -Muc- 2002-03-26 11:28 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIEcho.cpp, CGIFeedback.cpp, CGIMessageboard.cpp, CGIModule.cpp, CGIModule.h, DBAccess.cpp, DBAccess.h, Listener.cpp, Main.cpp, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, TestAll.cpp, TestAll.h, XMLDump.cpp, XMLDump.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h, makefile, tt/TTMain.cpp, tt/makefile: o RFC: DbEnv - ResManager: Support for the DbEnv (per user) Resource - DBAccess supports this resource - User Root Dir Creation is done when creating a User DbEnv Resource - Everything (now ;) seems to work as before. - Open Questions: a) Ok to have a per user static DbEnv resource? b) Configuring the LOCKING subsystem. o DBAccess: - dbt2String private tool function. - toXML() public tool function (was: CGIModule db2XML). o ReqThread: - Much more renicing. - "access" db is now named "admin" analog to other CGIModules. Makes everything much nicer (!). o XMLDump: New class for much better (c++-like) serialization handling. - XSLTrans: new much more intuitive phalanx of "trans"-methods (were: "parse" methods ;) - Obsoletes: XMLTree:createDump, freeDump, copyDump, copyDump (now: getXML) - Trivializes: XMLTree:getXML (was: getTreeAsString) - Appropriate changes throughout tincas, tt 2002-03-26 10:57 muc * tt/: Channel.cpp, Channel.h, ReqBlock.cpp, TTMain.cpp: UnixDomainSockets now available in Channel.cpp -Muc- 2002-03-22 11:34 suerken * ReqThread.cpp: Changed timeout 1s->10s. 2002-03-22 11:22 suerken * CGIAdmin.cpp, CGIMessageboard.cpp, CGIModule.cpp, Conf.cpp, Connection.cpp, Dispatcher.h, Listener.cpp, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPUtil.h, XMLTree.cpp, XMLTree.h, makefile, tt/TTMain.cpp: o Framework: Error Handling is now done throughout Tincas via Exceptions (cmp Soustroup, 14.1). I.e. NO MORE things like: XMLTree * x = new XMLTree("abc"); if x->isValid() ... Rather: XMLTree * x = new XMLTree("abc"); Here, "x" is a valid, non-NULL, XMLTree. Program assertion if exceptions are not catched somewhere. This solves a number of problems: - All asserts() that currently are rather Errors than hard logical faults can now be Exceptions. E.g.: ResManager file open err. - Existing third party exceptions will just be catched as it should be. E.g.: DB4. - The unnice If-Cascade in ReqThread is no more. o SPUtil : Added "auto_ptr_set": Help to set a auto_ptr with gcc-2.95. o ReqThread: All "Per-Request-new-objects" are now auto_ptr's. o images/* : "symlink"-Target now produces symlinks for font types B,D,C. 2002-03-21 15:22 muc * tt/: ReqBlock.cpp, ReqBlock.h, TTMain.cpp: pre-exeptions 2002-03-20 11:20 suerken * DUMMYTESTEST: Removing DUMMYTESTES again IGNORE!!! 2002-03-20 11:20 suerken * DUMMYTESTEST: small cvs test ;) IGNORE 2002-03-20 10:40 suerken * makefile, tools/TincError/TincError.pm: o makefile target to create symlinks for blackboard, guestbook. o Make TincError ... better. 2002-03-19 19:18 suerken * CGIAdmin.cpp, CGIFeedback.cpp, CGIGuestbook.cpp, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, DBAccess.h, EMail.cpp, ReqThread.cpp, ResManager.cpp, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h: o tech-Doc: + CGIGuestbook, CGIBlackboard. + CGIFeedback. o Added Custom Error Handling Perl Script Apache Handler under "tincas/tools/TincError". o XMLTree: + Added setValue() function. + Added getName(), getAddrName() functions (needed to get tag name when iterating with XPath) + addTag(), addTree(), addXML() changed to more intuitive parameter order (old order was leftover from the optional "pos" parameter). o configs/*: + Added configs for all counters (1-5) (i.e.: counter nos 2-5 will now work) + Added messageboard[.jobs].xml. + guestbook|blackboard[.jobs].xml now all use messageboard[.jobs].xml. 2002-03-19 15:19 cschlenk * libs/commonc++-1.9.3.tar.gz: CommonC++-Lib 1.9.3 2002-03-18 16:36 muc * tt/: Channel.cpp, ReqBlock.cpp, ReqBlock.h, ReqTempl.cpp, tt_env.sh: added script: tt_env.sh, which creates or deletes standardized testusers. 2002-03-15 13:35 suerken * tools/TincError/TincError.pm: o Some changes... 2002-03-15 13:19 suerken * tools/TincError/TincError.pm: o Adding Tinc Custom Error Handler for 500 Internal Error. 2002-03-14 18:20 suerken * CGIFeedback.cpp, CGIMessageboard.cpp, CGIMessageboard.h, ReqThread.cpp: o Intermediate update. Fixes at least 1 sever bug ;). 2002-03-14 15:45 muc * tt/TTMain.cpp: minor change 2002-03-12 17:59 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, Connection.cpp, ReqThread.cpp, ReqThread.h: o CGIAdmin : get,set => init,save o ReqThread: - Doing key -> module,job on admin port, too. - "setupUserRoot" moved to ReqThread() - Resetting old effective uid of threads in ReqThread Run. o CGIMessageboard: Rewrite of MBIndex! 2002-03-12 10:12 kaufmann * makefile: changed linking with -lpthread to -pthread ( should be the better way, ask comp.programming.threads why ) 2002-03-11 19:18 suerken * ReqThread.cpp: ahem. 2002-03-11 19:11 suerken * ReqThread.cpp: o Yet another bug fix. 2002-03-11 18:57 suerken * ReqThread.cpp: o Bugfix: Doing key->module.job on admin port as well. 2002-03-11 18:00 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIMessageboard.cpp, CGIModule.cpp, Connection.h, DBAccess.h, Listener.cpp, Listener.h, ReqThread.cpp, ReqThread.h, makefile: o Intermediate update. 2002-03-11 13:38 kaufmann * ReqThread.h, ResManager.h, tt/tt.conf: move counter to images 2002-03-08 16:51 suerken * CGIBlackboard.h, CGIGuestbook.cpp, CGIGuestbook.h: o +CGIMessageboard: CGIGuestbook, CGIBlackboard are now spezialized CGIMessageboards. 2002-03-08 16:43 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIBlackboard.cpp, CGIBlackboard.h, CGIEcho.cpp, CGIEcho.h, CGIFeedback.cpp, CGIFeedback.h, CGIGuestbook.cpp, CGIGuestbook.h, CGIMessageboard.cpp, CGIMessageboard.h, CGIModule.cpp, CGIModule.h, EMail.cpp, ReqThread.cpp, SPUtil.h, makefile: o CGIGuestbook: - adminkey-- - email++ o CGIFeedback: Logik. o SPUtil: +getTimeValSec(), getTimeValUSec(). o CGIAdmin: genKey() now uses micro-second-seed. This really should suffice. o CGI*: Slight overall changes in CGI-"Template". 2002-03-07 16:52 kaufmann * CGICounter.cpp, CGICounter.h, CGIImage.cpp, CGIImage.h, CGITime.cpp, CGITime.h, ImageRes.cpp, ImageRes.h: ImageRes new implemented, some changes to the classes using this 2002-03-06 14:03 suerken * CGIAdmin.cpp, CGICounter.cpp, CGIFeedback.cpp, CGIFeedback.h, CGIModule.cpp, CGIModule.h, CGITime.cpp, ResManager.cpp, ResManager.h: o ResManager: - General Cleanup - HTTPStup removed. - Better locking. - Removing unneeded static variables. - New ImageRes handling. 2002-03-06 13:25 kaufmann * ImageRes.cpp, ImageRes.h: two new classes for handling the imagewidth of each strip oImageResImage oImageResWidth 2002-03-05 10:12 suerken * CGIFeedback.cpp, CGIFeedback.h, Listener.h, ResManager.cpp, ResManager.h: o ResManager: File Resources are now thread safe. o Added XML-ID to all configs/* stylesheets/* 2002-03-04 15:32 cschlenk * SPUtil.h: ato beschleunigt. 2002-03-04 14:24 suerken * EMail.cpp, EMail.h: o Abstracting the Mime-Type. 2002-03-04 13:56 suerken * CGIModule.h, EMail.cpp, EMail.h, TestAll.cpp, TestAll.h, makefile: o EMail: Support to send EMail. 2002-02-28 19:30 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIBlackboard.cpp, CGICounter.cpp, CGIEcho.cpp, CGIEcho.h, CGIFeedback.cpp, CGIGuestbook.cpp, CGIGuestbook.h, CGIImage.cpp, CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGIResult.h, CGITime.cpp, Conf.cpp, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, Dispatcher.cpp, Dispatcher.h, GetOpt.cpp, GetOpt.h, ImageRes.h, Listener.cpp, Listener.h, Log.h, Main.cpp, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPUtil.h, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h, makefile: o makefile: + target xmlwfcheck: Are all XMLs well-formed? (xmllint) + target xmlxscheck: Are all XMLs well formed && pass X Schema? (SAX2Count) Run one of these targets before running tincas! o XMLTree: Some optimisations... o CGIModule: New tools/helpers/simplifications for Modules. See: http://manwe.schlund.de/~absurd/tinc/tech-HTML/ , Chapter "Tincas/CGIModule". o CGIEcho : Is now a real CGIModule (own file, jobs, etc...). o Source Code Cleanup: - All includes to .h-Files. - Made all unqualified identifiers qualified or explicitly declared. - Compiles more or less gcc-3.0; "Less": - Connection: fstream does not seem to have a constructor from fd anymore ?! - Log.h currently adds global namespace "std". - does not link... o SPUtils - Template spezializations fixed form gcc-2.95. ("ato" no really works ...) - Much faster ifstream2String (ResManager!). o Log.h: - (GCC 3.0 compliance): Logging must now use "Tincas::lendl" instead of "std::endl"; (all changes done). i.e.: debug_ << "hjsadjhsdajh" << lendl; o CGIGuestbook: Logic completed. o % 2002-02-25 16:01 suerken * CGIGuestbook.cpp, Conf.cpp, Conf.h, Connection.cpp, Main.cpp, SPUtil.h, TestAll.cpp: o SPUtil: - Removing crashTemplates as it does not crash templates... o Conf : - Changes for better error handling. o Main : - New tincas.conf-Defaults: root => /etc/tincas.conf user => $HOME/.tincas.conf - New tincas.pid-Location: root => /var/run//tincas.pid user => $HOME/.tincas.pid - Nicer errors for false configs... o Connection: Removing debug-dump in connection (seems to freeze terminal and/or syslog with pngs)... 2002-02-25 14:39 suerken * makefile: Makefile Update... 2002-02-25 14:36 kaufmann * CGICounter.cpp, CGICounter.h, CGITime.cpp: updates for resource-manager 2002-02-25 14:35 kaufmann * CGIImage.cpp, CGIImage.h: changes for resource-manager 2002-02-25 12:58 suerken * ResManager.cpp, ResManager.h, TestAll.cpp, makefile: ResManager Update for ImageRes... 2002-02-25 12:26 kaufmann * ImageRes.h: missing fstream - header added 2002-02-25 11:03 kaufmann * ImageRes.cpp, ImageRes.h: image-resource for resourcemanager added 2002-02-22 17:52 suerken * CGIGuestbook.cpp, CGIModule.cpp, CGIModule.h, SPUtil.h, XSLTrans.cpp: o Re-fixed SPUtils to work with gcc-2.95. This FIX should be fixed... 2002-02-22 16:19 cschlenk * CGICounter.cpp, CGIImage.h, SPUtil.h, makefile: SPUtil.h Initialisierungsfehler im Template bei string = 0 behoben. Makefile: tempfile-Aufruf ersetzt CGI*: Return in der letzten Zeile hinzugefgt um Warnung loszuwerden. 2002-02-22 15:28 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIBlackboard.h, CGIFeedback.h, CGIGuestbook.cpp, CGIGuestbook.h, CGIModule.cpp, CGIModule.h, CGITime.h, Connection.cpp, ReqThread.cpp, SPUtil.h, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h: Intermediate Framework Update: o XMLTree : - add functions for (char *) analogous to (xmlChar *) - Removed all obsolete reference to libxml2, "xmlChar" (all but the to-be-fixed-later dump-thing) => I.e.: moving all casts to XMLTree - Bug in Destructor fixed (doc_,tree_ can now be NULL, Christoph...) - Memory-Hole-Bugs in getCount, getNodeFromPath fixed. - Removed obsolete "pos" argument from all methods. o CGIModule: Common Module Utility Function Brainwork: - getPara[](), checkPara(): Maked reading && checking module parameters easier. - getKey: Utility to get job key from config. - db2XML: Debug Utility to dump database. - dbGet: get && convert from database. o SPUtil: - Added Template function to crash templates (or only ato?); "./tincas -t" should currently perform this feature. o CGIGuestbook: Work in progress % .. 2002-02-20 18:10 cschlenk * tt/: ReqBlock.cpp, ReqBlock.h, ReqTempl.h, TTMain.cpp, TTMain.h, makefile, tt.conf: Ohne Unixsockets fertig. Vorlufige Version 1.0beta. public! :) 2002-02-19 14:34 suerken * Main.cpp: Bug fix in Main.cpp. 2002-02-19 14:33 kaufmann * CGICounter.cpp, CGIImage.cpp, CGIImage.h, CGITime.cpp, CGITime.h: added CGITime - functionality some changes to CGIImage for the timer some error-handling in CGICounter.cpp 2002-02-19 14:32 kaufmann * ReqThread.cpp, ReqThread.h: count of busy threads changed 2002-02-19 14:29 kaufmann * Dispatcher.cpp, Dispatcher.h: count of busy ReqThread's changed 2002-02-19 11:25 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIGuestbook.cpp, CGIModule.cpp, CGIModule.h, Conf.cpp, Connection.cpp, Connection.h, GetOpt.cpp, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPUtil.h, XSLTrans.cpp, XSLTrans.h, makefile: Framework Enriching: o Conf: Checked that Schema really checks conf (SAX2Count), added locator. I.e., this should work: $ tincas -c >tincas.conf $ tincas -x >tincas.conf.xsd $ SAX2Count tincas.conf o ResManager: - Adding new resource "getJob": - File Names : "/configs/.jobs.xml" - ResManager-Method: "getJobs()" - The *.jobs.xml should look like: display updateform ... - "config" now caches XMLTrees as well. - Added config/jobs files for all known modules. - Template (!;) utility function for file resources. o SPUtil: Added two more Template-Utils - delAnySeqContainer(vector & l) (--> ~GetOpt) - delStringMap(map & l) (--> ~ResManager) Christoph: macht das Sinn, geht das einfacher? o CGIAdmin: Update to new setup; valid jobs are now: set, get (,dumpDB, clearDB). o makefile: + New, better(tm) target: brequest. See makefile; all values are now real defaults, everything can be adjusted. + Hack target "gendefaults": Producing keys && defaults for all known modules. Example: make REQ_HOME=/var/www REQ_UID=1000 gendefaults 2002-02-18 15:11 cschlenk * tt/: Channel.cpp, ReqBlock.cpp, ReqTempl.cpp: Fehlende Files fr tt 2002-02-18 15:04 cschlenk * CGIAdmin.cpp, CGIModule.cpp, SPUtil.h, tt/Channel.h, tt/ReqBlock.h, tt/ReqTempl.h, tt/TTMain.cpp, tt/makefile, tt/tt.conf: tt erweitert - Probleme mit "zu schnellen Threads" 2002-02-15 16:47 kaufmann * CGIAdmin.h, CGICounter.cpp, CGICounter.h, CGIImage.cpp, CGIImage.h, CGIModule.h, DBAccess.h, makefile: CGIImage - class completed 2002-02-15 14:17 cschlenk * Main.cpp: Langsame Dispatcher-Beendungs-Routine rausgeworfen. 2002-02-15 14:17 cschlenk * ReqThread.cpp, ReqThread.h: Exit() bei SIGABRT aufrufen -> Thread stirbt "sauber" -> Framework luft weiter. 2002-02-15 11:41 cschlenk * ReqThread.cpp: Eine abgebrochene Verbindung gibt keinen Abort mehr. 2002-02-15 11:14 kaufmann * Main.cpp, ReqThread.cpp: SIGCHLD - handling added 2002-02-14 17:10 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIGuestbook.cpp, CGIGuestbook.h, CGIModule.cpp, CGIModule.h, DBAccess.cpp, DBAccess.h, ReqThread.cpp, ReqThread.h, ResManager.cpp, ResManager.h, SPUtil.h, TestAll.cpp, Util.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h: o XMLTree: New methods: - addXML: Like addTree, but takes a string as input - copyDump: Like Util-Function copyDump, but member function. o CGIAdmin: Added debug job "clearDB" (with the obvious functionality). o DBAccess: - Added method "clear()". - Removed obsolete "non-STL" methods... o ResManager: Added Support for default configs: - File Names : "/configs/.xml" - ResManager-Method: "getDefaultConfig" I.E.: Each Module should add its own default Config File into the dir "configs" of the cvs tree. I will update CGIAdmin when the Docs are ready. o CVS Tree: Adding dir "configs" + stubs (empty files) for our modules. o SPUtil: ArrDelAdapter added, file "Util.h" removed. o CGIGuestbook: first testing release. 2002-02-14 12:50 kaufmann * CGICounter.cpp, CGICounter.h: new jobs ( setform & set implemented ) 2002-02-13 17:01 suerken * Main.cpp: Fixed bug that would keep "disable" For Admin-Ports from disabling... 2002-02-13 15:35 cschlenk * Log.cpp, Log.h, Main.cpp, makefile, tt/Start.cpp, tt/TTMain.cpp, tt/makefile, tt/tt.conf: Umbruchfehler aus Log vernichtet. Statische Vars aus Log ausgelagert in Log.cpp. 2002-02-13 13:50 suerken * CGIAdmin.cpp: Yet another cosmetic change in dumpDB. 2002-02-13 13:44 suerken * CGIAdmin.cpp: o Changed "dumpDB" to create valid XML. 2002-02-13 13:38 cschlenk * XMLTree.cpp: Vergessen isValid_ zu initialisieren. 2002-02-13 13:32 cschlenk * CGIAdmin.cpp, Connection.cpp, ReqThread.cpp, TestAll.cpp, XMLTree.cpp, XMLTree.h, tt/TTMain.cpp, tt/tt.conf: throw aus XMLTree ausgebaut, dafr existiert die Funktion isValid(). Funktionsaufrufe entsprechend angepasst... XMLTree::getTag umbenannt: XMLTree::getTreeAsString 2002-02-13 13:24 suerken * CGIAdmin.cpp, CGIAdmin.h: o Fixing a "connot read error": put to set. 2002-02-13 11:25 suerken * CGIAdmin.cpp, ReqThread.cpp: o some cosmetics o CGIAdmin's XML now has id. 2002-02-12 19:34 suerken * CGIResult.h: fix in docu. 2002-02-12 18:00 suerken * CGIFeedback.cpp, ReqThread.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h: Framework Update Part ato("42") of 42 o DOC update - Cleanup && Update Web page http://manwe.schlund.de/~absurd/tinc/ - ArgoUML: More Bugs. - Removing obsolete tinc-cvs-guide, tincas-ood (from web page and cvs, that is) - Update of the ArgoUML diagrams - Update of "tech"; new secions for ReqThread, CGI-Module. o Tincas update: - XSLTrans, XMLTree: Some cosmetics.... 2002-02-12 17:19 cschlenk * XMLTree.cpp, XMLTree.h, tt/Channel.h, tt/ReqBlock.h, tt/ReqTempl.h, tt/TTMain.cpp, tt/TTMain.h, tt/makefile: tt ist ready to test (TCP only). XMLTree erweitert um eine XMLTree-Erzeugungsfunktion. 2002-02-12 15:50 cschlenk * tt/: Channel.h, ReqBlock.h, ReqTempl.h, TTMain.cpp: Sicherung 2002-02-12 15:16 cschlenk * tt/: Channel.h, ReqBlock.h, Start.cpp, TTMain.cpp, TTMain.h, makefile, tt.conf: Sicherheitskopie. Version kompliert, linked aber nicht. 2002-02-12 14:02 cschlenk * SPUtil.h: Bug im ato<>-gefixed. 0 wenn Leersting bergeben wird. 2002-02-12 08:40 cschlenk * tt/: TTMain.cpp, makefile, tt.conf: Neues Projekt tt mit dummy-configuration 2002-02-12 08:39 cschlenk * makefile: tt in eigenes Makefile 2002-02-12 08:29 cschlenk * CGIAdmin.cpp, Conf.cpp, Conf.h, GetOpt.h, Main.cpp, ReqThread.cpp, SPUtil.h, XMLTree.cpp, makefile: Funktion ifstream2string nach neu generierter SPUtil.h ausgelagert. ato<> und toa<>-Funktion ebenfalls nach SPUtil.h. 2002-02-11 19:29 suerken * CGIAdmin.cpp, CGIGuestbook.cpp, Connection.cpp, DBAccess.cpp, DBAccess.h, ReqThread.cpp, ReqThread.h, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h: Framework update part 40.1 of 42 o DBAccess: STL-reniced. o Fixed bug in XMLTree::addTree(). 2002-02-11 19:12 cschlenk * GetOpt.cpp: Crash wegen Bug in Descructor beseitigt. 2002-02-11 18:30 cschlenk * GetOpt.h: toString (tos) eingebaut. 2002-02-11 13:57 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIBlackboard.cpp, CGIBlackboard.h, CGICounter.h, CGIFeedback.cpp, CGIFeedback.h, CGIGuestbook.cpp, CGIGuestbook.h, CGIModule.h, CGITime.cpp, CGITime.h, ReqThread.cpp, TestAll.cpp, makefile: Framework Update 41 of 42 o CGIAdmin: Key generation is now perfect. o CGIModules: Each individual Module must now inherit from Log. o Stubs (C++, Stylesheet) added for CGIModules: Blackboard, Feedback, Time. o ReqThread: Updated the createCGIModule(). 2002-02-08 19:39 suerken * CGIAdmin.cpp: o Let "dumpDB" return OK... 2002-02-08 19:37 suerken * CGIModule.h, Connection.h, DBAccess.h, ReqThread.h, ResManager.cpp, ResManager.h, TestAll.h, XSLTrans.h: o Adding all tests in again. o Makeing all Logs false but Main. 2002-02-08 19:30 suerken * CGIAdmin.cpp, CGIAdmin.h, CGIGuestbook.cpp, CGIResult.h, Conf.cpp, Connection.cpp, DBAccess.cpp, Main.cpp, ReqThread.cpp, ReqThread.h, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h, makefile: Framework Update, Part n-m of n o XMLTree: - All "xpath" functions now come with optional "pos" parameter. - addTree function added (adding a tree into an existing tree). - getTag function added (get a tag recursively). - Parse errors will throw exception now (instead of assert) (appropriate catches to all "new XMLTree"-Code; tincas will no longer break on parse errors, but return CONNECTION_ERR) o CGIAdmin: - Rewrite. Completed error handling. - Added utility function to create the User Dir. o ReqThread: - -Tag is now handled correctly. (Note for tests: This means, too, that if the supplied tag itself is not well-formed, tincas will return CONNECTION_ERR) - UserDir is now set up whenever a request over an ADMIN-Port comes in. o CGIResult: - ErrorCodes have changed slightly (imho, they are now complete). o Conf: - tincas.conf now uses an empty tag like to disable a port. (Note: The old false will still disable now, so tincas.conf most likely needs some editing...) - XML Schema updated. o DBAccess: - get the key in cget right... 2002-02-08 11:46 kaufmann * CGICounter.cpp, CGICounter.h: four framecolors implemented 2002-02-08 11:46 kaufmann * DBAccess.cpp: return a 'string' - copy of database-values 2002-02-07 16:04 suerken * DBAccess.cpp: o hsjdfjh 2002-02-07 15:18 suerken * CGICounter.cpp, Connection.h, DBAccess.cpp, ReqThread.cpp: Bugfix update o Closing db counter o minor changes 2002-02-06 17:38 suerken * makefile: Technical checkin ... 2002-02-06 17:36 suerken * makefile: Added ID tag to makefile.... 2002-02-06 17:35 suerken * makefile: o Replaced whoami with id -u 2002-02-06 17:26 cschlenk * ADMINREQUEST.DUMPDB, ADMINREQUEST.xml, MAKEREQUEST, USERREQUEST.xml, makefile: makefile umgebaut: make request M=module J=job P=parameter erzeugt eine HTTP-Anfrage auf stdout make admdumpdbrequest und make userrequest erzeugen die ehemaligen USERREQUEST.xml und ADMINREQUEST.xml Knnen irgendwann mal berschrieben werden. 2002-02-06 17:09 suerken * libs/unsockcat.tar.gz, tools/unsockcat/makefile, tools/unsockcat/unsockcat.c: o Moving unsockcat to tools/unsockcat. 2002-02-06 17:02 cschlenk * libs/unsockcat.tar.gz: Fehlermeldung ausgegeben bei fehlendem Pfad. 2002-02-06 16:17 cschlenk * libs/unsockcat.tar.gz: Unsockcat.tar.gz hinzugefgt. Kleines Tool zum Schreiben auf Unix-Sockets. 2002-02-06 16:10 cschlenk * makefile: tincas.conf aufgenommen. 2002-02-06 16:05 kaufmann * libs/: freetype-2.0.6.tar.bz2, gd-2.0.1.tar.gz: new libs for counter 2002-02-06 15:29 suerken * tincas.conf: o Now, I really remove this from CVS. Use --create if necessary... 2002-02-06 15:26 suerken * makefile: And now for the new makefile... 2002-02-06 15:19 suerken * XSLTrans.cpp, XSLTrans.h: o Re-adding these ... 2002-02-06 15:18 suerken * ADMINREQUEST.xml, CGIAdmin.cpp, CGICounter.cpp, CGIGuestbook.cpp, CGIModule.cpp, CGIResult.h, Main.cpp, ReqThread.cpp, ResManager.cpp, ResManager.h, TestAll.cpp, USERREQUEST.xml, XSLTManager.cpp, XSLTManager.h, XSLTrans.cpp, XSLTrans.h: Framework Update Part atoi("Bug Enhancing Update") of n o ResManager replacing XSLTManager. o We can now test over admin ports (without keys). o -tag is now mandatory. o Countless bug enhancers. 2002-02-06 09:36 kaufmann * makefile: few more libs ( -lpng -lfreetype -ljpeg -lgd -L/usr/X11/lib ) hope this works on all the machines ;-) 2002-02-05 19:17 suerken * ADMINREQUEST.DUMPDB, ADMINREQUEST.xml, CGIAdmin.cpp, CGIAdmin.h, DBAccess.cpp, DBAccess.h, ReqThread.cpp, TestAll.cpp, TestAll.h, USERREQUEST.xml, makefile: Framework Update Part of n o Added --stop,s with (temporarily) "/tmp/tincas.pid" o Main update to support adminListener. Just dirtily added. Needs renicing. o Conf: + ServerRoot, UserRoot o Listener Mutexes are non-static. o DBAccess: Support for iterations through the database. o Added: CGIAdmin: Works. o Removing "tincas.conf" from cvs (just leave your old config, or use "./tincas -c" to update... o New Test for DBAccess. 2002-02-05 18:26 kaufmann * CGICounter.cpp, CGICounter.h: hope the frames are working, now 2002-02-05 13:58 kaufmann * ReqThread.cpp: added CGICounter 2002-02-05 13:57 kaufmann * CGICounter.cpp, CGICounter.h: first try to implement the counter 2002-02-05 13:15 suerken * ADMINREQUEST.xml, CGIAdmin.cpp, CGIAdmin.h, CGIModule.cpp, CGIResult.h, Conf.cpp, Conf.h, Connection.cpp, Listener.cpp, Listener.h, MAKEREQUEST, Main.cpp, ReqThread.cpp, ReqThread.h, TESTREQUEST.make, TESTREQUEST.xml, USERREQUEST.xml, makefile, tincas.conf: Intermdiate Update. Description later.... 2002-02-05 11:51 cschlenk * Connection.cpp: Typo im Comment 2002-02-04 12:03 suerken * Conf.cpp: o New version of --create... 2002-02-01 17:44 suerken * CGIGuestbook.cpp, CGIGuestbook.h, CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGIResult.h, Conf.cpp, DBAccess.cpp, DBAccess.h, ReqThread.cpp, TestAll.cpp, makefile: The FYB intermediate update o DBAccess: can access more than one database in a file. o ReqThread does now open first acces adatabase, then module database, and handles this over. o Neccessary changes in CGIModules. o Added stylesheet, file for Guestbook Module. o Added stylesheet conf to default conf (--creste). o ... 2002-02-01 14:51 suerken * CGIModule.cpp, CGIResult.cpp, CGIResult.h, Connection.cpp: Imtermediate Update o Abstracting even the mime type into CGIResult. 2002-02-01 14:23 suerken * CGIResult.h, Connection.h, Main.cpp, XSLTManager.cpp, XSLTManager.h, XSLTrans.cpp, XSLTrans.h, tincas.conf: Framework Update, Part 3 of n o Stylesheets are now stored as files: - path is configuarable via tag "StylesheetPath" in tincas.conf - file naming scheme is: /.xsl - + local stylesheet dir in sync with tincas.conf... 2002-02-01 11:46 suerken * ReqThread.cpp, TESTREQUEST.xml, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h: Framework Update, Part 2 of n o XMLTree can now add/del tags. o ReqThread does now update tree (key -> module, job) "from db". o read "from db": It can, but currently it is hardcoded to "echo" to be able to test still. 2002-01-31 13:54 suerken * CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGIResult.h, Conf.cpp, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, Main.cpp, ReqThread.cpp, ReqThread.h, TESTREQUEST.xml, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h, XSLTrans.cpp, XSLTrans.h, makefile: Framework Update, Part I o Rewrite XMLTree, XSLTrans: Framework is now FREE of unnecessary copy operations. o Update CGIResult: - Now holds a "HTTP Response" - Body of HTTP respionse is a buffer pointer + size (bytes). - Includes Content type. - Now Handles HTTP Status String (as I see it now as HTTP Response) - All reasons for seperating Connection/CGIResult are now void, hence it has its own file again ;) o Rewrite ReqThread::run(): - Is now rather complete; does some/enough error handling. - opens User Database in "$home/.tinc/" - is temporarily still hardcoded to use "echo". o Update of (most/all?) Log messages; adding "ClassName:" to all log strings. o More automatic Tests. o Unknown amount of needed, uneeded and buggy changes. 2002-01-30 14:37 kaufmann * Connection.h: changes for output of binary-data 2002-01-30 14:37 kaufmann * Connection.cpp: changes for output of a byte-stream ( .png binary-data ) 2002-01-29 17:45 cschlenk * Log.h: slog_ vergessen 2002-01-29 17:07 cschlenk * Log.h: Schnere Debugausgabe. 2002-01-29 14:27 suerken * Connection.cpp, Connection.h: o Some Changes. 2002-01-28 15:19 suerken * Conf.cpp, Connection.cpp, Listener.cpp, TestAll.cpp, TestAll.h, XMLTree.cpp: o Got log output right. o Added test for connection. o Other "improvements". 2002-01-28 13:46 suerken * Conf.cpp, Listener.cpp, Listener.h, Main.cpp, tincas.conf: o Conf local to Main Constructor. o Now using "AcceptTimeout". 2002-01-28 13:16 cschlenk * Log.h, Main.cpp: Main.cpp: ...unused variable... ausgebaut Log.h: lastlevel eingefhrt um ein Flash des Logs sicher zu stellen. 2002-01-28 12:48 cschlenk * Main.cpp: Bug durch nichtinitialisierte Zeiger gelscht. 2002-01-28 11:32 cschlenk * CGIModule.cpp, CGIModule.h, Conf.cpp, Conf.h, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, Dispatcher.cpp, Dispatcher.h, GetOpt.cpp, GetOpt.h, Listener.cpp, Listener.h, Log.h, Main.cpp, ReqThread.cpp, ReqThread.h, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h, XSLTManager.cpp, XSLTManager.h, XSLTrans.cpp, XSLTrans.h: Logfile auf Template und slog umgestellt. Schnellere Laufzeiten erwartet. 2002-01-28 11:08 suerken * Conf.cpp, Conf.h, Main.cpp: o Conf: Added XML Schema. o Conf: Added default config. o Main: --create works now. o Main: Added --schema: prints out schema file for config. 2002-01-25 19:42 suerken * Conf.cpp, Conf.h, Connection.cpp, Dispatcher.cpp, Dispatcher.h, GetOpt.cpp, Listener.cpp, Main.cpp, ReqThread.cpp, ReqThread.h, TestAll.cpp, TestAll.h, XMLTree.cpp, XMLTree.h, tincas.conf: o New "Conf". o + Conf Test. o - rootdb. 2002-01-24 19:28 suerken * XMLTree.cpp: o Now freeing Context as well in destructor. This should fix memory leaks. 2002-01-24 11:28 suerken * Main.cpp, tincasctrl: o Adding tincasctrl. o Changes in Main for tincasctrl (unlink pid file on shutdown). 2002-01-23 16:12 suerken * Listener.h: o Set accept timeout to 1 second. 2002-01-23 16:06 kaufmann * Main.cpp: SIGINT doesn't interrupt anymore -> normal shutdown 2002-01-23 15:51 kaufmann * Main.cpp: signalhandler installed in class Main. the pid is stored under /tmp/tincas.pid, should be configurable. 2002-01-22 13:55 suerken * CGIModule.cpp, CGIResult.cpp, CGIResult.h, Connection.cpp, Connection.h, Listener.cpp, ReqThread.cpp, TestAll.cpp, makefile: o Class CGIResult is now in file "Connection"; files CGIResult.h|cpp are removed. o Connection http status strings are now constant (but sill not perfect;) o Some more cleanups. 2002-01-21 19:39 suerken * Conf.cpp, Conf.h, GetOpt.h, Main.cpp: o Added --daemon to Main. o Some Cleanups. 2002-01-21 18:45 suerken * Main.cpp: Some cleanups only. 2002-01-21 18:21 suerken * CGIResult.cpp, Conf.cpp, Connection.cpp, Listener.cpp, Listener.h: o Only some Clean-Ups. 2002-01-21 17:54 suerken * GetOpt.cpp, GetOpt.h, Main.cpp: o New, bigger, better version of GetOpt.h. 2002-01-21 16:29 kaufmann * XMLTree.cpp: xmlDocPtrToString without tmpfile 2002-01-21 14:16 suerken * ReqThread.cpp, XMLTree.cpp, XMLTree.h: o Added destructor for XMLTree (+ delete in ReqThread). 2002-01-21 11:40 suerken * Connection.cpp, Main.cpp, TESTREQUEST.xml, tincas.conf: o Main.cpp: Unix OR Inet instead of Unix XOR Inet. o cerr --> debug_ in Connection. o TESTREQUEST macht nun "echo". 2002-01-18 17:24 suerken * XMLTree.cpp: We must close file desriptors. really. 2002-01-18 16:38 cschlenk * XSLTManager.cpp: Fehler im XSL von CGIEcho 2002-01-18 16:31 suerken * Connection.cpp, Connection.h: o Fix for the fstream.close() behaviour (Unix Sockets). 2002-01-18 16:19 suerken * Log.h: o Make it work for debug=false. 2002-01-18 16:00 cschlenk * TestAll.cpp: Testcases 2002-01-18 15:41 cschlenk * CGIModule.cpp, ReqThread.cpp, XSLTManager.cpp: dummy durch echo ersetzt - gerade eben beim einchecken vergessen. 2002-01-18 15:38 cschlenk * CGIModule.cpp, CGIModule.h, Conf.cpp, Conf.h, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, Dispatcher.cpp, Dispatcher.h, GetOpt.cpp, GetOpt.h, Listener.cpp, Listener.h, Log.h, Main.cpp, ReqThread.cpp, ReqThread.h, TestAll.h, XMLTree.cpp, XMLTree.h, XSLTManager.cpp, XSLTManager.h, XSLTrans.cpp, XSLTrans.h, makefile: Log-Logik eingebaut. Test-Bibliothek begonnen mit einem Test. 2002-01-18 13:00 suerken * Listener.cpp: o For testing: Make Unix Socket File rw for anyone. 2002-01-18 12:50 suerken * Listener.cpp: o UnixListener: For testing: Asserts to error messages (chown, chmod, getpwnam). 2002-01-17 18:43 suerken * Connection.cpp: o Removed deprecated "read" method. 2002-01-17 18:32 cschlenk * Main.cpp, TestAll.h, makefile: nderungen um CppUnit zum Laufen zu bringen. 2002-01-17 18:27 cschlenk * libs/: cppunit-1.6.2.tar.gz, cppunit-docs-1.6.2.tar.gz, libcppunit-1.6.so.0.0.2, libcppunit.a: Zum Testen hinzugefgt - cppunit 2002-01-17 17:21 suerken * XMLTree.cpp: o XMLTree::getValue/getString functions now do not assert, but deliver 0/"". 2002-01-17 16:37 suerken * CGIModule.cpp: o A bug removed. 2002-01-17 16:32 suerken * CGIResult.cpp, CGIResult.h, Connection.cpp, Connection.h, Listener.cpp, Listener.h, ReqThread.cpp: o Misc "improvements". o Unix Sockets will work now. 2002-01-17 14:11 kaufmann * Dispatcher.cpp, ReqThread.cpp: dispatcher optimized 2002-01-16 16:59 cschlenk * Connection.cpp, Connection.h, Dispatcher.cpp, Dispatcher.h, Listener.cpp, Main.cpp, ReqThread.cpp, ReqThread.h: Exceptionhandling ausprobiert - im Zusammenhang mit der CommonC++ 2002-01-15 11:28 cschlenk * GetOpt.cpp, GetOpt.h, Main.cpp: GetOpt hat jetzt parse()-Funktion - sieht hbscher aus :) 2002-01-14 19:41 suerken * CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGIResult.h, Conf.cpp, Connection.cpp, Connection.h, Dispatcher.cpp, Listener.cpp, Listener.h, ReqThread.cpp, ReqThread.h, TESTREQUEST.make, TESTREQUEST.xml, XMLTree.cpp, XMLTree.h, tincas.conf: Making Requests Work (somewhat). 2002-01-11 17:59 cschlenk * Connection.cpp, Dispatcher.cpp, Dispatcher.h, GetOpt.cpp, GetOpt.h, Listener.cpp, Main.cpp, ReqThread.cpp, ReqThread.h: BerkleyDB-Schnittstelle DBAccess funktioniert. Kleinigkeiten... 2002-01-11 14:58 kaufmann * Dispatcher.cpp: cosmetics 2002-01-11 14:38 kaufmann * ThreadEngine.cpp, ThreadEngine.h: removed ThreadEngine.cpp ThreadEngine.h from CVS - Tree 2002-01-11 14:36 kaufmann * Dispatcher.cpp, Dispatcher.h, ReqThread.cpp, ReqThread.h, ThreadEngine.h, makefile: threads are working now, ThreadEngine is not used anymore! 2002-01-11 13:35 suerken * Main.cpp: Only Spaces -> Tabs conversion. 2002-01-10 17:28 suerken * GetOpt.cpp: Some more optimizations. 2002-01-10 16:46 suerken * Conf.cpp, Conf.h, Connection.cpp, GetOpt.cpp, GetOpt.h, Listener.cpp, Listener.h: o Added some more asserts... o GetOpt + CVS ID. o Changed some function arguments from var to reference. 2002-01-10 16:34 cschlenk * Dispatcher.cpp, Listener.cpp, Listener.h, ReqThread.cpp, ThreadEngine.cpp: TCPSocket und TCPStream eingebaut - bisschen chaos in Dispatcher, ReqThread hinterlassen. 2002-01-10 15:28 suerken * Conf.cpp, Conf.h, Connection.cpp, Connection.h, GetOpt.cpp, GetOpt.h, Listener.cpp: - Removed actual code from assert(...). - \n -> endl, + -> << - Indenting with TABS. 2002-01-10 11:17 suerken * makefile: o Added INCLUDEDIR to depend (will avaoid some strnge warnings @ manwe) 2002-01-10 10:47 cschlenk * Main.cpp: Zu Debugzwecken wird ./tincas.conf verwendet. 2002-01-10 09:55 cschlenk * CGIModule.cpp, Dispatcher.cpp, Dispatcher.h, GetOpt.cpp, Main.cpp, ReqThread.cpp, ReqThread.h, ThreadEngine.cpp, ThreadEngine.h, makefile: nderungen in ThreadEngine & Co. 2002-01-09 17:08 suerken * Conf.cpp, Conf.h, Listener.cpp, Listener.h, XMLTree.cpp, XMLTree.h: o Conf file parsing. o From now on, tincas MUST have a config file o Call example: "./tincas --file=./tincas.conf". 2002-01-09 16:48 suerken * tincas.conf: Commented out UNIX for now. 2002-01-09 16:29 suerken * tincas.conf: Yet another typo fixed ;). 2002-01-09 16:16 suerken * tincas.conf: o in <-> un type fixed. 2002-01-09 15:49 kaufmann * Dispatcher.cpp, Dispatcher.h, ReqThread.cpp, ReqThread.h, ThreadEngine.cpp, ThreadEngine.h, makefile: new object ThreadEngine 2002-01-09 14:16 suerken * tincas.conf: Adding an example conf file... 2002-01-09 11:56 suerken * GetOpt.cpp, GetOpt.h, Main.cpp: o Changes for new GetOpt... 2002-01-09 10:29 suerken * Connection.cpp, Connection.h: o Some changes. o Destructor now closes connection file descriptor. 2002-01-09 10:26 suerken * makefile: UND SO. 2002-01-09 10:24 suerken * makefile: o SO! 2002-01-08 19:48 suerken * Listener.cpp, Listener.h: o accept(2) now does not use any filled in addresses. o Listener::accept() is now actually _one_ function for all Listeners. 2002-01-08 18:44 suerken * makefile: o + -f, so now clean works. o + /usr/include/libxml (needed on melkor). 2002-01-08 18:17 kaufmann * Dispatcher.cpp, Dispatcher.h, Listener.cpp, Main.cpp, ReqThread.cpp, ReqThread.h, makefile: inserted mutex 2002-01-07 19:35 cschlenk * Conf.h, DBAccess.cpp, DBAccess.h, Dispatcher.cpp, Dispatcher.h, Listener.cpp, Main.cpp, ReqThread.cpp, makefile: Vorbereitung der BerkleyDb. Noch funktioniert der Aufruf in Multithreaded-Umgebung nicht. 2002-01-07 19:34 cschlenk * libs/: db-4.0.14.tar.gz, libdb_cxx-4.0.so: BerkleyDB inkl library 2002-01-07 17:30 suerken * Conf.cpp, Conf.h, InetListener.cpp, Listener.cpp, Listener.h, Main.cpp, Socket.cpp, Socket.h, UnixListener.cpp, makefile: o InetListener.cpp + UnixListener.cpp removed ( ==> Listener.cpp) o Conf ready, but for xml pasrsing the config file ;) o InetListener ++ UnixListener im pre-Beta Status... o Main.cpp adjusted... 2002-01-04 17:53 cschlenk * AUTOMAKE_CLEAN, AUTOMAKE_UPDATE, Conf.cpp, Dispatcher.cpp, Main.cpp, Makefile.am, XSLTrans.cpp, configure.in, makefile: Versionstring angepasst, kleinigkeiten 2002-01-04 17:04 kaufmann * Dispatcher.cpp, Dispatcher.h, Main.cpp, ReqThread.cpp, ReqThread.h: termination of threads implemented 2002-01-04 10:51 kaufmann * Dispatcher.cpp, Dispatcher.h, Main.cpp, ReqThread.cpp, ReqThread.h: Dispatcher and ReqThread are cc++ - threads now 2002-01-03 17:32 kaufmann * Main.cpp, makefile: initial check in for makefile 2002-01-03 16:40 cschlenk * libs/: libxslt-1.0.9.tar.gz, libxslt.so.1.0.9: Aktuelle Version der xslt-lib. 2002-01-03 16:09 cschlenk * XSLTrans.cpp: XSLTrans funktioniert bis 100000 Zeichen. Ist mehr ein Proof of Concept - muss dringend verschnert werden. 2002-01-03 15:45 cschlenk * CGIModule.cpp, CGIResult.h, Dispatcher.cpp, Main.cpp, Makefile.am, ReqThread.cpp, ReqThread.h, XMLTree.h, XSLTManager.cpp, XSLTManager.h, XSLTProc.cpp, XSLTProc.h, XSLTrans.cpp, XSLTrans.h: Kleinere nderungen damit alles bersetzt. XSLTrans ist nicht einsatzfhig!! 2002-01-03 15:17 cschlenk * configure.in: _GNU_SOURCE gesetzt, damit common cc++ richtig bersetzt wird. 2002-01-03 12:44 kaufmann * ReqThread.cpp, ReqThread.h: error in #include 2002-01-02 17:15 cschlenk * XMLTree.h: include hat nicht funktioniert wie erwartet - wieder rckgngig gemacht... 2002-01-02 17:13 cschlenk * XMLTree.h: includes standardisiert 2002-01-02 17:07 cschlenk * XSLTManager.cpp, XSLTManager.h: [no log message] 2002-01-02 16:56 cschlenk * CGIModule.cpp, CGIModule.h, CGIResult.h, Conf.cpp, Connection.cpp, Connection.h, DBAccess.cpp, Dispatcher.cpp, Dispatcher.h, InetListener.cpp, Listener.cpp, Listener.h, Main.cpp, Makefile.am, ReqProc.cpp, ReqProc.h, ReqThread.cpp, ReqThread.h, Socket.cpp, UnixListener.cpp, XSLTProc.cpp, XSLTProc.h: Design gendert -> Dispatcher ruft Listener mit Threads auf, nicht anders herum. 2002-01-02 14:17 kaufmann * Dispatcher.cpp, ReqProc.cpp, ReqProc.h: threads should block in accept 2001-12-27 14:53 cschlenk * Connection.cpp, Dispatcher.cpp, Main.cpp, Makefile.am, ReqProc.cpp, Util.h, XMLTree.cpp, XMLTree.h, configure.in, libs/libxml2-2.4.12.tar.gz, libs/libxml2.so.2.4.12: XMLTree vervollstndigt. 2001-12-19 16:00 cschlenk * CGIModule.cpp, CGIModule.h, CGIResult.cpp, CGIResult.h, Conf.h, Connection.cpp, Connection.h, DBAccess.h, Dispatcher.cpp, Dispatcher.h, GetOpt.cpp, GetOpt.h, InetListener.cpp, Listener.cpp, Listener.h, Main.cpp, Makefile.am, ReqProc.cpp, ReqProc.h, Socket.h, UnixListener.cpp, XMLTree.cpp, XMLTree.h, XSLTProc.h: Funktionsstubs um Aufrufparameter erweitert. 2001-12-19 13:29 cschlenk * Conf.cpp, Conf.h, GetOpt.h, InetListener.cpp, Listener.cpp, Listener.h, Main.cpp, Makefile.am, UnixListener.cpp: Unterklassen fr die verschiedenen Listener eingefhrt. 2001-12-19 10:04 cschlenk * GetOpt.cpp, GetOpt.h, Main.cpp, Makefile.am: GetOpt als Utility eingebaut. Rudimentre Versionsnummernausgabe eingebaut. 2001-12-18 19:13 suerken * CGIModule.cpp, CGIModule.h, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, Listener.cpp, Listener.h, Main.cpp, Makefile.am, ReqProc.cpp, ReqProc.h, Socket.cpp, Socket.h, configure.in: o Merged Makefile.am o Added all _files_ for the framework. 2001-12-18 18:56 cschlenk * Makefile.am: TINCVersion eingebaut. 2001-12-18 16:17 suerken * Makefile.am: This file is needed... 2001-12-18 16:15 suerken * AUTOMAKE_CLEAN, AUTOMAKE_UPDATE, CGIModule.cpp, CGIModule.h, Conf.cpp, Conf.h, Connection.cpp, Connection.h, DBAccess.cpp, DBAccess.h, Dispatcher.cpp, Dispatcher.h, Listener.cpp, Listener.h, Main.cpp, ReqProc.cpp, ReqProc.h, Socket.cpp, Socket.h, XSLTProc.cpp, XSLTProc.h, configure.in: First Version of the Implementation Framework. sp-gxmlcpp-1.0.20040603/.strap_auto0000755000175000017500000000167307716160455012231 #!/bin/bash -e function autoStrap { aclocal libtoolize --force autoheader automake --add-missing autoconf } function autoClean { # run distclean if available make distclean 2>/dev/null || true # Delete these files if they are created automatically for f in NEWS README AUTHORS ChangeLog missing install-sh mkinstalldirs config.guess config.sub depcomp INSTALL COPYING ltmain.sh; do if [ ! -s "${f}" ] || [ -L "${f}" ]; then # file does not exists or has size 0 or is a symlink rm -f -v ${f}; fi; done # Always delete these files rm -f -v *~ configure config.h.in config.h stamp-h.in stamp-h1 config.cache config.log config.status aclocal.m4 libtool rm -r -f -v autom4te.cache } if [ "${1}" == "clean" ]; then autoClean ; elif [ "${1}" == "all" ]; then autoClean ; autoStrap ; elif [ "${1}" == "" ]; then autoStrap ; else echo "Usage: $0 [clean|all]: No arg=strap only, \"clean\"=clean only, \"all\"=clean+strap." >&2 exit 1 fi sp-gxmlcpp-1.0.20040603/.strap_dev0000755000175000017500000000055007620215165012021 #!/bin/bash -e cd `dirname $0` # This can cause trouble with libtool when linking if set echo export LD_LIBRARY_PATH="" if [ "${CPLUS_INCLUDE_PATH}" = "" ]; then echo export CPLUS_INCLUDE_PATH="`pwd`" else echo export CPLUS_INCLUDE_PATH="`pwd`:${CPLUS_INCLUDE_PATH}" fi # Linking with g++ echo export LIBRARY_PATH="`pwd`/sp-gxmlcpp/.libs:${LIBRARY_PATH}" sp-gxmlcpp-1.0.20040603/.strap_run0000755000175000017500000000027007576143072012055 #!/bin/bash -e cd `dirname $0` # Run-time linking echo export LD_LIBRARY_PATH="`pwd`/sp-gxmlcpp/.libs:${LD_LIBRARY_PATH}" # Execution paths echo export PATH="`pwd`/examples:${PATH}" sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/0002777000175000017500000000000010057656714012215 5sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/Util.hpp0000644000175000017500000000263207600361335013550 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * @file Util.hpp * @version @$Id: Util.hpp,v 1.7 2002/12/19 15:16:45 spabsurd Exp $ * @author Schlund + Partner AG * @brief *ps* * * (C) Copyright by Schlund+Partner AG * * Synopsis: @#include * */ #ifndef SP_GXML_UTIL_HPP #define SP_GXML_UTIL_HPP // STDC++ #include #include namespace SP { namespace GXML { // // istream to string conversion // inline std::string istream2String( std::istream & f) { std::string result; const int buflen(1024); char buffer[buflen]; while (!f.eof()) { f.read(buffer, buflen); result.append(buffer, f.gcount()); } return(result); } }} #endif sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLTree.hpp0000644000175000017500000001473007627415705014127 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef SP_GXML_XMLTREE_HPP #define SP_GXML_XMLTREE_HPP /** * @file XMLTree.hpp * @version @$Id: XMLTree.hpp,v 1.9 2003/02/27 14:06:49 geye Exp $ * @author Schlund + Partner AG * @brief *ps* * * (C) Copyright by Schlund+Partner AG * * Synopsis: @#include * */ // STDC++ #include #include #include // Local #include #include /* NOTES o xmlChar is one byte. o "xmlChar" is compatible to "char"; xmlChar * Strings are always 0-terminated; (xmlChar *) is compatible to (char *)/string.c_str() o Simply using char *, string makes us still compatible with: UTF-8, ASCII, ISO-8859-*, ... (basically, all "up-to-8-Bits-Encodings"). o UCS-2/UCS-4 encodings might be a problem. UNICODE ISO 10646 All characters of the planet listed and labeled.... UCS-2: 16-Bit Encoding of UNICODE. UCS-4: 32-Bit Encoding of UNICODE. UTF-8: 8-Bit Encoding of UNICODE. All todays ISO-8859-1 texts qualify as UTF-8. This is what UNIXses will do. */ namespace SP { namespace GXML { // // XMLTree // class XMLTree { /* enum Exceptions { PARSE_ERR=1, // XML could not be parsed CONTEXT_ERR, // Could not create (XPath) context for Tree NO_NODE_FROM_PATH_ERR, // Could not find node from specified path NODE_CREATION_ERR, // Could not create a node NODE_ADDING_ERR, // Could not add a creted node TREE_INVALID_ERR // Could not add a creted node }; */ public: // Creators for char-Buffer, C++ string, ifstream XMLTree(const xmlDocPtr doc); XMLTree(const char * xmlBuffer, int size=-1); // if size < 0, xmlBuffer must be a valid C-String! XMLTree(const std::string & xmlString); XMLTree(std::ifstream & xmlStream); XMLTree(std::istream & xmlStream); ~XMLTree(); std::string getString( const std::string& xpath ); bool getBool( const std::string& xpath ); double getFloat( const std::string& xpath ); // REMARK : the returned XMLNodeSet has to be freed by the calling method std::auto_ptr getNodeSet( const std::string& xpath ); //////////////////////////////////////////////////////////////////////// // Get internal libxml2 Pointers // - this will allow us to call libxml2-Functions on the tree directly. // (i.e., helling the abstraction for speed) xmlDocPtr getDocPtr() const; xmlXPathContextPtr getXPathContextPtr() const; //////////////////////////////////////////////////////////////////////// // "Get Methods" based on "XPath"; paths are XPath Expressions; // all paths can be given an optional position // - Methods delivering (xmlChar *) point into the tree // - Methods delivering (std::string, int) obviously copy from tree // - getValue-Methods will deliver the contents of the first child only // e.g.: getValue("/req/X", 0) on // "a b cdef" returns: "a b c" only. // "libxml2"-Functions. Do not use if you want to be abstract. xmlChar * getXmlCharValue(const xmlChar * path) const; xmlChar * getXmlCharValue(const std::string & path) const; // "C++"-functions char * getAddrValue(const std::string & path) const; std::string getValue(const std::string & path) const; char * getAddrName(const std::string & path) const; std::string getName(const std::string & path) const; void setValue(const std::string & path, char * value); void setValue(const std::string & path, const std::string & value); /* Obsoleted by XMLDump // getTreeAsString=recursive: This gets the complete contents of the tag // e.g.: getTreeAsString("/req/X", 0) on "a b cdef // " returns: "a b cdef". std::string getTreeAsString(const std::string & path) const; */ int getCount(const xmlChar * path) const; int getCount(const char * path) const; int getCount(const std::string & path) const; //////////////////////////////////////////////////////////////////////// // "Modifying Methods" based on "XPath"; paths are XPath Expressions // - Methods delivering (xmlChar *) point into the tree // - Methods delivering (std::string, int) copy from tree void delTag(const std::string & path); void addTag(const std::string & path, const std::string & name, const std::string & content); /** * Add a new node at the same level(tree depth) the given xpath points to * * @param path to sibling node * @param name the name of the new node * @param content the content of the new node */ void addSiblingTag(const std::string & path, const std::string & name, const std::string & content); /** * return sibling nodes beneath the given xpath expression * * @param path to parent node * * @return all nodes beneath the given xpath */ std::string getSiblingXML( const std::string& path = "/*" ); // addTree: Adds the whole tree as new child for node // This will COPY. No other method available from libxml2. We cannot mix trees. void addTree(const std::string & path, XMLTree * xmlTree); void addXML(const std::string & path, const std::string & xml); std::string getXML(const std::string & path="/") const; std::auto_ptr getTree(const std::string &path="/"); //////////////////////////////////////////////////////////////////////// // Utility functions // // Node from Path static xmlNodePtr nodeFromPath(xmlXPathContextPtr context, const xmlChar * path); // Node from Path static xmlNodePtr nodeFromPath(xmlXPathContextPtr context, const std::string & path); private: xmlDocPtr tree_; xmlXPathContextPtr context_; // Constructor helper function void genTree(const char * xmlBuffer, int size=-1); xmlXPathObjectPtr createXPathObject( const std::string& xpath ); void destroyXPathObject( xmlXPathObjectPtr obj ); }; }} #endif sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLDump.hpp0000644000175000017500000000554707600361335014131 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * @file XMLDump.hpp * @version @$Id: XMLDump.hpp,v 1.7 2002/12/19 15:16:45 spabsurd Exp $ * @author Schlund + Partner AG * @brief *ps* * * (C) Copyright by Schlund+Partner AG * * Synopsis: @#include * * Serializing XML Trees. * */ #ifndef SP_GXML_XMLDUMP_HPP #define SP_GXML_XMLDUMP_HPP // STDC++ #include // C libraries #include #include #include #include #include #include #include // Local #include #include namespace SP { namespace GXML { // toDo class XSLTOutputBuf { public: enum Exceptions { MEM_ERR, // Mem Error RESULT_INVALID, // Result Doc invalid (0 or no children) STYLE_INVALID // Style invalid (0) }; XSLTOutputBuf(xmlDocPtr result, xsltStylesheetPtr style); ~XSLTOutputBuf(); char * getAddr() const; int getSize() const; private: xmlCharEncodingHandlerPtr encoder_; xmlOutputBufferPtr buf_; }; class XMLDump { public: enum Exceptions { MEM_ERR, // XML could not be parsed NODE_NOT_FOUND_ERR // Node could not be found from path }; XMLDump(const xmlDocPtr doc, const xmlXPathContextPtr ctxt, const std::string & path="/"); XMLDump(const XMLTree * tree, const std::string & path="/"); XMLDump(const xmlDocPtr doc); // toDo XMLDump(const XSLTOutputBuf * buf); ~XMLDump(); char * getAddr() const; std::string get() const; int getSize() const; private: xmlBufferPtr nodeDump_; // This is used to dump XML from some path other than "/" std::pair docDump_; // This is used to dump the whole XML document (path = "/"). // toDo XSLTOutputBuf * xsltDump_; // This is used when dumping was actually done outside. Currently only for XSL Transformations. // genDump: Master Create Dump Function. Must be used in Constructors only void genDump(const xmlDocPtr doc, const xmlXPathContextPtr ctxt, const std::string & path); static char * nullString_; }; }} #endif sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLNode.hpp0000644000175000017500000000607007651257267014117 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * @file XMLNode.hpp * @version @$Id: XMLNode.hpp,v 1.9.2.1 2003/04/22 15:24:39 spabsurd Exp $ * @author Schlund + Partner AG * @brief *ps* * * (C) Copyright by Schlund+Partner AG * * Synopsis: @#include * */ #ifndef SP_GXML_XMLNODE_HPP #define SP_GXML_XMLNODE_HPP // STDC++ #include // C libraries #include #include #include namespace SP { namespace GXML { class XMLNode { public: XMLNode(); XMLNode( const xmlNodePtr node ); ~XMLNode(); enum Exceptions { NO_NODE=1, // NodePtr is NULL LAST_NODE, // node has no following sibling FIRST_NODE, // node has no preceding sibling DOC_NODE, // node is document node (has no parent) NO_CHILD, // node has no children NO_CONTENT, // node has no content (no child text-node) NO_ATTRIBUTES, // node has no attributes NO_VALUE // attribute has no value (should never happen) }; // XMLTree getDoc(); makes no sense till there is a doc-object //////////////////////////////////////////////////////////////////////// // hint: // EVERY group of spcaes or characters is contained within a invisible // text-node. // i.e. expands to // return next node in order (every space between tags is a text node!) // throws LAST_NODE if no following sibling exists XMLNode getNext(); // return previous node in order // throws FIRST_NODE if no preceding sibling exists XMLNode getPrev(); // return parent of current node // throws DOC_NODE if no parent exists XMLNode getParent(); // return first child of node (text-node if node has content) // throws XMLNode getChild(); // return last child of node XMLNode getLast(); // return node type (i.e. XML_ELEMENT_NODE, XML_ATTRIBUTE_NODE, // XML_TEXT_NODE, ... ) int getType(); // return name of node-tag std::string getName(); // return content of node (which is the content of the first child text-node) std::string getContent(); // return attribute value by name std::string getAttribute( const std::string& name ); // XMLAttributeSet getAttributeSet( XMLNode* node ); // returns XML subtree of node std::string getNodeDump(); xmlNodePtr getNodePtr(); private: xmlNodePtr node_; }; }} #endif sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLNodeSet.hpp0000644000175000017500000000352107600361335014553 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * @file XMLNodeSet.hpp * @version @$Id: XMLNodeSet.hpp,v 1.9 2002/12/19 15:16:45 spabsurd Exp $ * @author Schlund + Partner AG * @brief *ps* * * (C) Copyright by Schlund+Partner AG * * Synopsis: @#include * */ #ifndef SP_GXML_XMLNODESET_HPP #define SP_GXML_XMLNODESET_HPP // C libraries #include #include #include // Local #include #include namespace SP { namespace GXML { // forward declarations class XMLTree; class XMLNodeSet { public: XMLNodeSet( const std::string& xpath, const XMLTree* tree ); ~XMLNodeSet(); class Iterator { public: Iterator(); Iterator( const xmlNodeSetPtr set ); ~Iterator(); Iterator operator ++(); bool operator !=( const Iterator& iter); XMLNode operator *(); int getPosition(); private: int pos_; xmlNodeSetPtr set_; }; int size(); Iterator begin(); Iterator end(); //Iterator rbegin(); //Iterator rend(); private: xmlXPathObjectPtr xPathObj_; }; }} #endif sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLException.hpp0000644000175000017500000000455707600361335015162 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * @file XMLException.hpp * @version @$Id: XMLException.hpp,v 1.6 2002/12/19 15:16:45 spabsurd Exp $ * @author Schlund + Partner AG * @brief *ps* * * (C) Copyright by Schlund+Partner AG * * Synopsis: @#include * */ #ifndef SP_GXML_XMLEXCEPTION_HPP #define SP_GXML_XMLEXCEPTION_HPP // STDC++ #include namespace SP { namespace GXML { class XMLException { public: XMLException( int exception ); int getException(); std::string getMessage(); enum Exceptions { XMLTREE_PARSE=1, // Error parsing XML tree XMLTREE_CREATE_CONTEXT, // Could not create XPath context XMLTREE_CREATE_NODE, // Could not create node XMLTREE_ADD_NODE, // Could not add node XMLTREE_TREE_INVALID, // Invalid XML tree XMLTREE_NO_NODE_FROM_PATH, // Path matches no node XMLTREE_NO_STRING_FROM_PATH, // Path returns no string XMLTREE_NO_BOOL_FROM_PATH, // Path returns no boolean XMLTREE_NO_FLOAT_FROM_PATH, // Path returns no float XMLNODE_NO_NODE, // Node pointer is NULL XMLNODE_LAST_NODE, // Node has no following sibling XMLNODE_FIRST_NODE, // Node has no preceding sibling XMLNODE_NO_PARENT, // Node has no parent node XMLNODE_NO_CHILD, // Node has no child node XMLNODE_NO_CONTENT, // Node contains no text XMLNODE_NO_ATTRIBUTE, // Node has no attributes XMLNODE_BUFFER_CREATE, // Could not create XML buffer XMLNODE_NODE_DUMP, // Could not dump the node XMLNODESET_EVAL, // Could not evaluate XPath XMLNODESET_NO_SET, // XPath delivers no node set XMLNODESET_NO_MATCH // XPath doesn't exist }; private: int exception_; }; }} #endif sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XSLTrans.hpp0000644000175000017500000000435207616216307014317 /* * (C) Copyright 2002-2003, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * @file XSLTrans.hpp * @version @$Id: XSLTrans.hpp,v 1.11 2003/01/30 12:38:31 spabsurd Exp $ * @author Schlund + Partner AG * @brief *ps* * * (C) Copyright by Schlund+Partner AG * * Synopsis: @#include * */ #ifndef SP_GXML_XSLTRANS_HPP #define SP_GXML_XSLTRANS_HPP // STDC++ #include // C++ Libraries #include #include // C libraries #include #include #include namespace SP { namespace GXML { class XSLTrans { public: enum Exceptions { PARSE_ERR=1, // Stylesheet not parsed (not well formed XML) STYLE_ERR, // Not a valid stylesheet TRANS_ERR // Transforming error }; XSLTrans(const char * xmlBuffer, int size=-1, const std::string & baseURI=""); XSLTrans(const std::string & xmlString, const std::string & baseURI=""); XSLTrans(std::ifstream & f, const std::string & baseURI=""); ~XSLTrans(); xsltStylesheetPtr getStylesheetPtr(); // Trans into XMLTree std::auto_ptr transToXMLTree(const xmlDocPtr doc) const; std::auto_ptr trans(const xmlDocPtr doc) const; std::auto_ptr trans(const XMLTree * xmlTree) const; std::auto_ptr trans(const std::string & xmlString) const; private: xmlDocPtr doc_; xsltStylesheetPtr style_; void genTrans(const char * xmlBuffer, int size=-1, const std::string & baseURI=""); static char * defaultEncoding_; }; }} #endif sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/Makefile.am0000644000175000017500000000121307715705314014156 ## Process this file with automake to produce Makefile.in AM_CPPFLAGS = \ -I$(top_srcdir) $(xml2_CFLAGS) $(xslt_CFLAGS) AM_CXXFLAGS = \ -pthread \ -Wall # # Library # incdir = $(includedir)/$(PACKAGE) inc_HEADERS = Util.hpp \ XMLTree.hpp XMLDump.hpp XMLNode.hpp XMLNodeSet.hpp XMLException.hpp XSLTrans.hpp lib_LTLIBRARIES = libsp-gxmlcpp.la libsp_gxmlcpp_la_SOURCES = \ Util.hpp \ XMLTree.hpp XMLTree.cpp \ XMLDump.hpp XMLDump.cpp \ XMLNode.hpp XMLNode.cpp \ XMLNodeSet.hpp XMLNodeSet.cpp \ XMLException.hpp XMLException.cpp \ XSLTrans.hpp XSLTrans.cpp libsp_gxmlcpp_la_LDFLAGS = -version-info @SO_VERSION@ $(xml2_LIBS) $(xslt_LIBS) sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/Makefile.in0000644000175000017500000003056410057656703014202 # Makefile.in generated by automake 1.6.3 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # 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@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ PATH_SEPARATOR = @PATH_SEPARATOR@ AMTAR = @AMTAR@ AS = @AS@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CXXCPP = @CXXCPP@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ OBJDUMP = @OBJDUMP@ PACKAGE = @PACKAGE@ PERL = @PERL@ RANLIB = @RANLIB@ SO_VERSION = @SO_VERSION@ STRIP = @STRIP@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ install_sh = @install_sh@ xml2_CFLAGS = @xml2_CFLAGS@ xml2_LIBS = @xml2_LIBS@ xslt_CFLAGS = @xslt_CFLAGS@ xslt_LIBS = @xslt_LIBS@ AM_CPPFLAGS = \ -I$(top_srcdir) $(xml2_CFLAGS) $(xslt_CFLAGS) AM_CXXFLAGS = \ -pthread \ -Wall # # Library # incdir = $(includedir)/$(PACKAGE) inc_HEADERS = Util.hpp \ XMLTree.hpp XMLDump.hpp XMLNode.hpp XMLNodeSet.hpp XMLException.hpp XSLTrans.hpp lib_LTLIBRARIES = libsp-gxmlcpp.la libsp_gxmlcpp_la_SOURCES = \ Util.hpp \ XMLTree.hpp XMLTree.cpp \ XMLDump.hpp XMLDump.cpp \ XMLNode.hpp XMLNode.cpp \ XMLNodeSet.hpp XMLNodeSet.cpp \ XMLException.hpp XMLException.cpp \ XSLTrans.hpp XSLTrans.cpp libsp_gxmlcpp_la_LDFLAGS = -version-info @SO_VERSION@ $(xml2_LIBS) $(xslt_LIBS) subdir = sp-gxmlcpp mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(lib_LTLIBRARIES) libsp_gxmlcpp_la_LIBADD = am_libsp_gxmlcpp_la_OBJECTS = XMLTree.lo XMLDump.lo XMLNode.lo \ XMLNodeSet.lo XMLException.lo XSLTrans.lo libsp_gxmlcpp_la_OBJECTS = $(am_libsp_gxmlcpp_la_OBJECTS) DEFS = @DEFS@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/XMLDump.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/XMLException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/XMLNode.Plo ./$(DEPDIR)/XMLNodeSet.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/XMLTree.Plo ./$(DEPDIR)/XSLTrans.Plo CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ CXXFLAGS = @CXXFLAGS@ CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(libsp_gxmlcpp_la_SOURCES) HEADERS = $(inc_HEADERS) DIST_COMMON = $(inc_HEADERS) Makefile.am Makefile.in SOURCES = $(libsp_gxmlcpp_la_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu sp-gxmlcpp/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) libLTLIBRARIES_INSTALL = $(INSTALL) install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ 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 -z "$dir" && dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsp-gxmlcpp.la: $(libsp_gxmlcpp_la_OBJECTS) $(libsp_gxmlcpp_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libsp_gxmlcpp_la_LDFLAGS) $(libsp_gxmlcpp_la_OBJECTS) $(libsp_gxmlcpp_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLDump.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLNodeSet.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLTree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSLTrans.Plo@am__quote@ distclean-depend: -rm -rf ./$(DEPDIR) .cpp.o: @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(CXXCOMPILE) -c -o $@ `cygpath -w $<` .cpp.lo: @AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< CXXDEPMODE = @CXXDEPMODE@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: incHEADERS_INSTALL = $(INSTALL_HEADER) install-incHEADERS: $(inc_HEADERS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(incdir) @list='$(inc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(incHEADERS_INSTALL) $$d$$p $(DESTDIR)$(incdir)/$$f"; \ $(incHEADERS_INSTALL) $$d$$p $(DESTDIR)$(incdir)/$$f; \ done uninstall-incHEADERS: @$(NORMAL_UNINSTALL) @list='$(inc_HEADERS)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(incdir)/$$f"; \ rm -f $(DESTDIR)$(incdir)/$$f; \ done ETAGS = etags ETAGSFLAGS = tags: TAGS 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; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ 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; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$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: $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(incdir) 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_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_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 \ mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-compile distclean-depend \ distclean-generic distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-incHEADERS install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool uninstall-am: uninstall-incHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES .PHONY: GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool distclean distclean-compile \ distclean-depend distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-incHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool tags uninstall \ uninstall-am uninstall-incHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES # 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: sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLTree.cpp0000644000175000017500000002415207770607341014117 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Local configuration #include "config.h" // Implementation #include "XMLTree.hpp" // STDC++ #include #include #include // C libraries #include #include // Local #include "Util.hpp" #include "XMLNodeSet.hpp" #include "XMLException.hpp" #include "XMLDump.hpp" namespace SP { namespace GXML { // XPathContext class // // For 1.0 stable, this is an internal class only so we do not change symbol table // 1.2 should update this class, and use it thoroughly // Note: xpath context associated to xmlDocs are not constant, and cannot be shared between threads. class XPathContext { public: XPathContext(xmlDocPtr const doc) :_context(xmlXPathNewContext(doc)) { if (!_context) { throw XMLException(XMLException::XMLTREE_CREATE_CONTEXT); } } ~XPathContext() { xmlXPathFreeContext(_context); } xmlXPathContextPtr get() const { return _context; } private: xmlXPathContextPtr const _context; }; void XMLTree::genTree(const char * xmlBuffer, int size) { assert(xmlBuffer); // if size < 0, we must have a valid, NULL-Terminated C-String if (size < 0) size = ::strlen(xmlBuffer); // xmlParseMemory does not change Buffer xmlBuffer (const, cast) tree_ = xmlParseMemory(xmlBuffer, size); if (!tree_) { throw XMLException( XMLException::XMLTREE_PARSE ); } context_ = xmlXPathNewContext(tree_); if (!context_) { xmlFreeDoc(tree_); throw XMLException( XMLException::XMLTREE_CREATE_CONTEXT ); } } XMLTree::XMLTree(const xmlDocPtr doc) :tree_(doc) { assert(tree_); context_ = xmlXPathNewContext(tree_); if (!context_) { xmlFreeDoc(tree_); throw XMLException( XMLException::XMLTREE_CREATE_CONTEXT ); } } XMLTree::XMLTree(const char * xmlBuffer, int size) { genTree(xmlBuffer, size); } XMLTree::XMLTree(const std::string & xmlString) { genTree(xmlString.c_str()); } XMLTree::XMLTree(std::ifstream & xmlStream) { assert(xmlStream); genTree(istream2String(xmlStream).c_str()); } XMLTree::XMLTree(std::istream & xmlStream) { assert(xmlStream); genTree(istream2String(xmlStream).c_str()); } XMLTree::~XMLTree() { xmlXPathFreeContext(context_); xmlFreeDoc(tree_); } std::string XMLTree::getString( const std::string& xpath ) { xmlXPathObjectPtr obj = createXPathObject( xpath ); if ( obj->stringval == NULL || obj->type != XPATH_STRING ) { throw XMLException( XMLException::XMLTREE_NO_STRING_FROM_PATH ); } assert( obj->stringval ); std::string result = (char*)obj->stringval; destroyXPathObject( obj ); return result; } bool XMLTree::getBool( const std::string& xpath ) { bool result; xmlXPathObjectPtr obj = createXPathObject( xpath ); if ( obj->type != XPATH_BOOLEAN ) { throw XMLException( XMLException::XMLTREE_NO_BOOL_FROM_PATH ); } if ( obj->boolval == 1 ) { result = true; } else if ( obj->boolval == 0 ) { result = false; } else { throw XMLException( XMLException::XMLTREE_NO_BOOL_FROM_PATH ); } destroyXPathObject( obj ); return result; } double XMLTree::getFloat( const std::string& xpath ) { double result; xmlXPathObjectPtr obj = createXPathObject( xpath ); if ( obj->type != XPATH_NUMBER ) { throw XMLException( XMLException::XMLTREE_NO_FLOAT_FROM_PATH ); } else { result = obj->floatval; } destroyXPathObject( obj ); return result; } std::auto_ptr XMLTree::getNodeSet( const std::string& xpath ) { return std::auto_ptr( new XMLNodeSet( xpath, this ) ); } // // libxml2 Pointers; these are a Mockery to Abstraction // xmlDocPtr XMLTree::getDocPtr() const { return tree_; } xmlXPathContextPtr XMLTree::getXPathContextPtr() const { return context_; } // // Get Values from XPath Expressions // // This is the master "getValue" function // STS "xmlNodeGetContent" might do the same ? xmlChar * XMLTree::getXmlCharValue(const xmlChar * path) const { XPathContext context(tree_); xmlChar * result(0); xmlNodePtr node = nodeFromPath(context.get(), path); if (node && node->children) { result = node->children->content; } return result; } xmlChar * XMLTree::getXmlCharValue(const std::string & path) const { return getXmlCharValue((xmlChar *) path.c_str()); } char * XMLTree::getAddrValue(const std::string & path) const { return (char *) getXmlCharValue(path); } std::string XMLTree::getValue(const std::string & path) const { char * result = getAddrValue(path); if (result) { return result; } else { return ""; } } char * XMLTree::getAddrName(const std::string & path) const { XPathContext context(tree_); char * result(0); xmlNodePtr node = nodeFromPath(context.get(), path); if (node) { result = (char *) node->name; } return result; } std::string XMLTree::getName(const std::string & path) const { char * result(getAddrName(path)); if (result) { return result; } else { return ""; } } void XMLTree::setValue(const std::string & path, char * value) { XPathContext context(tree_); xmlNodePtr node = XMLTree::nodeFromPath(context.get(), path); if (!node) { throw XMLException( XMLException::XMLTREE_NO_NODE_FROM_PATH ); } xmlNodeSetContent(node, (xmlChar *) value); } void XMLTree::setValue(const std::string & path, const std::string & value) { setValue(path, (char *) value.c_str()); } std::string XMLTree::getSiblingXML(const std::string& path) { std::string result; if ( path == "/" ) { // Note: xmlNodeDump segfaults with path="/" see XMLDump.h result = getXML(); } else { std::auto_ptr ns = this->getNodeSet( path ); for ( XMLNodeSet::Iterator i = (ns.get())->begin() ; i != (ns.get())->end(); ++i ) { result.append((*i).getNodeDump()); } } return result; } std::string XMLTree::getXML(const std::string & path) const { return XMLDump(this, path).get(); } int XMLTree::getCount(const xmlChar * path) const { XPathContext context(tree_); int result(0); xmlXPathObjectPtr obj = xmlXPathEvalExpression(path, context.get()); if (obj) { if (obj->nodesetval) result = obj->nodesetval->nodeNr; xmlXPathFreeObject(obj); } return result; } int XMLTree::getCount(const char * path) const { return getCount((xmlChar *) path); } int XMLTree::getCount(const std::string & path) const { return getCount(path.c_str()); } void XMLTree::delTag(const std::string & path) { XPathContext context(tree_); xmlNodePtr node = XMLTree::nodeFromPath(context.get(), path); if (!node) { throw XMLException( XMLException::XMLTREE_NO_NODE_FROM_PATH ); } xmlUnlinkNode(node); xmlFreeNode(node); } void XMLTree::addTag(const std::string & path, const std::string & name, const std::string & content) { XPathContext context(tree_); xmlNodePtr node = nodeFromPath(context.get(), path); if (!node) { throw XMLException( XMLException::XMLTREE_NO_NODE_FROM_PATH ); } xmlNodePtr newNode = xmlNewChild(node, 0, (xmlChar *) name.c_str(), (xmlChar *) content.c_str()); if (!newNode) { throw XMLException( XMLException::XMLTREE_CREATE_NODE ); } } void XMLTree::addSiblingTag(const std::string & path, const std::string & name, const std::string & content) { XPathContext context(tree_); xmlNodePtr node = nodeFromPath(context.get(), path); if (!node) { throw XMLException( XMLException::XMLTREE_NO_NODE_FROM_PATH ); } xmlNodePtr inNode = xmlNewNode( NULL, (xmlChar *)name.c_str() ); if (inNode) { xmlNodeAddContent( inNode, (xmlChar *)content.c_str() ); } else { throw XMLException( XMLException::XMLTREE_CREATE_NODE ); } xmlNodePtr newNode = xmlAddNextSibling( node, inNode ); if (!newNode) { throw XMLException( XMLException::XMLTREE_CREATE_NODE ); } } void XMLTree::addTree(const std::string & path, XMLTree * tree) { assert(tree); XPathContext context(tree_); xmlNodePtr node(XMLTree::nodeFromPath(context.get(), path)); if (!node) { throw XMLException( XMLException::XMLTREE_NO_NODE_FROM_PATH ); } std::auto_ptr ns(tree->getNodeSet("/*")); for (XMLNodeSet::Iterator i(ns.get()->begin()); i != ns.get()->end(); ++i) { xmlNodePtr newNode(xmlCopyNode((*i).getNodePtr(), 1)); if (!newNode) { throw XMLException(XMLException::XMLTREE_CREATE_NODE); } if (xmlAddChild(node, newNode) == 0) { xmlFreeNode(newNode); throw XMLException(XMLException::XMLTREE_ADD_NODE); } } } void XMLTree::addXML(const std::string & path, const std::string & xml) { std::auto_ptr xmlTree(new XMLTree(xml)); return addTree(path, xmlTree.get()); } //////////////////////////////////////////////////////////////////////// // Utility functions // xmlNodePtr XMLTree::nodeFromPath(xmlXPathContextPtr context, const xmlChar * path) { assert(context); xmlNodePtr result(0); xmlXPathObjectPtr obj = xmlXPathEvalExpression(path, context); if (obj) { if (obj->nodesetval && (obj->nodesetval->nodeNr > 0)) { result = obj->nodesetval->nodeTab[0]; } xmlXPathFreeObject(obj); } return result; } xmlNodePtr XMLTree::nodeFromPath(xmlXPathContextPtr context, const std::string & path) { return nodeFromPath(context, (xmlChar *) path.c_str()); } std::auto_ptr XMLTree::getTree(const std::string & path) { return std::auto_ptr(new XMLTree(getXML(path))); } xmlXPathObjectPtr XMLTree::createXPathObject( const std::string& xpath ) { XPathContext context(tree_); xmlXPathObjectPtr obj = xmlXPathEval( (xmlChar*)xpath.c_str(), context.get()); if ( obj == NULL ) { throw XMLException( XMLException::XMLTREE_NO_NODE_FROM_PATH ); } assert( obj ); return obj; } void XMLTree::destroyXPathObject( xmlXPathObjectPtr obj ) { xmlXPathFreeObject(obj); } }} sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLDump.cpp0000644000175000017500000001051310000520234014070 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Local configuration #include "config.h" // Implementation #include "XMLDump.hpp" // STDC++ #include namespace SP { namespace GXML { // Copy of XPathContext from XMLTree.cpp class XPathContextDP { public: XPathContextDP(xmlDocPtr const doc) :_context(xmlXPathNewContext(doc)) { if (!_context) { throw XMLException(XMLException::XMLTREE_CREATE_CONTEXT); } } ~XPathContextDP() { xmlXPathFreeContext(_context); } xmlXPathContextPtr get() const { return _context; } private: xmlXPathContextPtr const _context; }; // // XSLTDump // XSLTOutputBuf::XSLTOutputBuf(xmlDocPtr result, xsltStylesheetPtr style) :encoder_(0) { const xmlChar *encoding; if ((result == 0) || (result->children == 0)) { throw RESULT_INVALID; } if (style == NULL) { throw STYLE_INVALID; } XSLT_GET_IMPORT_PTR(encoding, style, encoding) ; if (encoding != NULL) { encoder_ = xmlFindCharEncodingHandler((char *)encoding); if ((encoder_ != NULL) && (xmlStrEqual((const xmlChar *)encoder_->name, (const xmlChar *) "UTF-8"))) { encoder_ = 0; } buf_ = xmlAllocOutputBuffer(encoder_); } else { buf_ = xmlAllocOutputBuffer(0); } if (buf_ == 0) { throw MEM_ERR; } xsltSaveResultTo(buf_, result, style); } XSLTOutputBuf::~XSLTOutputBuf() { xmlOutputBufferClose(buf_); } char * XSLTOutputBuf::getAddr() const { if (encoder_) { return (char *) buf_->conv->content; } else { return (char *) buf_->buffer->content; } } int XSLTOutputBuf::getSize() const { if (encoder_) { return buf_->conv->use; } else { return buf_->buffer->use; } } // // XMLDump // char * XMLDump::nullString_ = ""; // genDump: Master Create Dump Function. Must be used in Constructors only // Note: xmlNodeDump segfaults with path="/"; this is the only reason why differentiate docDump, nodeDump... :( void XMLDump::genDump(const xmlDocPtr doc, const xmlXPathContextPtr ctxt, const std::string & path) { xsltDump_ = 0; assert(doc); if (path == "/") { nodeDump_ = 0; xmlDocDumpMemoryEnc(doc, &docDump_.first, &docDump_.second, "UTF-8"); if (!docDump_.first) { throw MEM_ERR; } } else { assert(ctxt); nodeDump_ = xmlBufferCreate(); if (!nodeDump_) { throw MEM_ERR; } xmlNodePtr node = XMLTree::nodeFromPath(ctxt, path); if (!node) { xmlBufferFree(nodeDump_); throw NODE_NOT_FOUND_ERR; } xmlNodeDump(nodeDump_, doc, node, 0, 0); if (!nodeDump_->content) { xmlBufferFree(nodeDump_); throw MEM_ERR; } } }; XMLDump::XMLDump(const xmlDocPtr doc, const xmlXPathContextPtr ctxt, const std::string & path) { genDump(doc, ctxt, path); } XMLDump::XMLDump(const XMLTree * tree, const std::string & path) { XPathContextDP context(tree->getDocPtr()); genDump(tree->getDocPtr(), context.get(), path); } XMLDump::XMLDump(const xmlDocPtr doc) { genDump(doc, 0, "/"); } XMLDump::XMLDump(const XSLTOutputBuf * buf) :nodeDump_(0), docDump_(std::make_pair((xmlChar *)0,0)), xsltDump_((XSLTOutputBuf *) buf) {} XMLDump::~XMLDump() { if (nodeDump_) xmlBufferFree(nodeDump_); if (docDump_.first) xmlFree(docDump_.first); if (xsltDump_) delete xsltDump_; } char * XMLDump::getAddr() const { if (xsltDump_) { return xsltDump_->getAddr(); } else if (nodeDump_) { return (char *) nodeDump_->content; } else if (docDump_.first) { return (char *) docDump_.first; } return nullString_; } std::string XMLDump::get() const { return getAddr(); } int XMLDump::getSize() const { if (xsltDump_) { return xsltDump_->getSize(); } else if (nodeDump_) { return xmlBufferLength(nodeDump_); } else if (docDump_.first) { return docDump_.second; } return 0; } }} sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLNode.cpp0000644000175000017500000001022510057655502014073 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Local configuration #include "config.h" // Implementation #include "XMLNode.hpp" // STDC++ #include // Local #include "XMLException.hpp" namespace SP { namespace GXML { XMLNode::XMLNode() { node_ = NULL; } XMLNode::XMLNode( const xmlNodePtr node ) { if ( node == NULL ) { throw XMLException( XMLException::XMLNODE_NO_NODE ); } assert( node ); node_ = node; } XMLNode::~XMLNode() {} int XMLNode::getType() { return node_->type; } XMLNode XMLNode::getNext() { if ( node_->next == NULL ) { throw XMLException( XMLException::XMLNODE_LAST_NODE ); } assert( node_->next ); XMLNode result( node_->next ); return result; } XMLNode XMLNode::getPrev() { if ( node_->prev == NULL ) { throw XMLException( XMLException::XMLNODE_FIRST_NODE ); } assert( node_->prev ); XMLNode result( node_->prev ); return result; } XMLNode XMLNode::getParent() { if ( node_->parent == NULL ) { throw XMLException( XMLException::XMLNODE_NO_PARENT ); } assert( node_->parent ); XMLNode result( node_->parent ); return result; } XMLNode XMLNode::getLast() { if ( node_->last == NULL ) { // node_->last points to the last child of the node throw XMLException( XMLException::XMLNODE_NO_CHILD ); } assert( node_->last ); XMLNode result( node_->last ); return result; } XMLNode XMLNode::getChild() { if ( node_->children == NULL ) { // should only happen if the node has no content AND no child nodes. throw XMLException( XMLException::XMLNODE_NO_CHILD ); } assert( node_->children ); XMLNode result( node_->children ); return result; } std::string XMLNode::getName() { // node with no name should not exist assert( node_->name ); return (std::string)(char*)node_->name; } std::string XMLNode::getContent() { if ( node_->children == NULL ) { throw XMLException( XMLException::XMLNODE_NO_CHILD ); } assert( node_->children ); // if node has content it will be the content of the first child (text-node) if ( node_->children->content == NULL ) { throw XMLException( XMLException::XMLNODE_NO_CONTENT ); } assert( node_->children->content ); return (std::string)(char*)node_->children->content; } std::string XMLNode::getAttribute(const std::string& name) { if (node_->properties == 0) { throw XMLException(XMLException::XMLNODE_NO_ATTRIBUTE); } // search for attribute by 'name' xmlAttrPtr attr(node_->properties); while (attr != 0 && std::strcmp((char *)attr->name, name.c_str()) != 0) attr = attr->next; if (!attr) throw XMLException(XMLException::XMLNODE_NO_ATTRIBUTE); // Attribute found assert( attr->children ); if (attr->children->content == 0) { // will never happen, cause child of attribute is always text-node (although it might be empty) throw XMLException(XMLException::XMLNODE_NO_CONTENT); } assert( attr->children->content ); return (std::string)(char*)attr->children->content; } std::string XMLNode::getNodeDump() { xmlBufferPtr nodeDump = xmlBufferCreate(); if ( !nodeDump ) { throw XMLException( XMLException::XMLNODE_BUFFER_CREATE ); } if ( node_ ) { xmlNodeDump( nodeDump, node_->doc, node_, 0, 0 ); if ( !nodeDump->content ) { xmlBufferFree( nodeDump ); throw XMLException( XMLException::XMLNODE_NODE_DUMP ); } } else { throw XMLException( XMLException::XMLNODE_NODE_DUMP ); } std::string result((char*)nodeDump->content); xmlBufferFree( nodeDump ); return result; } xmlNodePtr XMLNode::getNodePtr() { return node_; } }} sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLNodeSet.cpp0000644000175000017500000000650410000520224014530 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Local configuration #include "config.h" // Implementation #include "XMLNodeSet.hpp" // STDC++ #include // Local #include "XMLTree.hpp" namespace SP { namespace GXML { // Copy of XPathContext from XMLTree.cpp class XPathContextNS { public: XPathContextNS(xmlDocPtr const doc) :_context(xmlXPathNewContext(doc)) { if (!_context) { throw XMLException(XMLException::XMLTREE_CREATE_CONTEXT); } } ~XPathContextNS() { xmlXPathFreeContext(_context); } xmlXPathContextPtr get() const { return _context; } private: xmlXPathContextPtr const _context; }; XMLNodeSet::XMLNodeSet( const std::string& xpath, const XMLTree* tree ) { XPathContextNS context(tree->getDocPtr()); xPathObj_ = xmlXPathEval( (xmlChar*)xpath.c_str(), context.get()); // this seem never to happen... if ( xPathObj_ == NULL ) { throw XMLException( XMLException::XMLNODESET_EVAL ); } assert( xPathObj_ ); // happens if xpath doesn't point to node(s) if ( xPathObj_->nodesetval == NULL ) { throw XMLException( XMLException::XMLNODESET_NO_SET ); } assert( xPathObj_->nodesetval ); // happens if xpath doesn't exist if ( xPathObj_->nodesetval->nodeNr <= 0 ) { throw XMLException( XMLException::XMLNODESET_NO_MATCH ); } assert( xPathObj_->nodesetval->nodeNr > 0 ); } XMLNodeSet::~XMLNodeSet() { xmlXPathFreeObject( xPathObj_ ); } int XMLNodeSet::size() { assert( xPathObj_ && xPathObj_->nodesetval ); return xPathObj_->nodesetval->nodeNr; } XMLNodeSet::Iterator XMLNodeSet::begin() { assert( xPathObj_ && xPathObj_->nodesetval ); return XMLNodeSet::Iterator( xPathObj_->nodesetval ); } XMLNodeSet::Iterator XMLNodeSet::end() { return XMLNodeSet::Iterator(); } //////////////////////////////////////////////////////////////////////////////// // NodeSet Iterator // XMLNodeSet::Iterator::Iterator() { pos_ = 0; set_ = NULL; } XMLNodeSet::Iterator::Iterator( const xmlNodeSetPtr set ) { pos_ = 0; set_ = set; } XMLNodeSet::Iterator::~Iterator() {} XMLNodeSet::Iterator XMLNodeSet::Iterator::operator ++() { assert( set_ ); if ( pos_ < set_->nodeNr - 1 ) { ++pos_; } else { pos_ = 0; set_ = NULL; } return *this; } bool XMLNodeSet::Iterator::operator !=( const XMLNodeSet::Iterator& iter ) { if ( ( this->pos_ != iter.pos_ ) || ( this->set_ != iter.set_ ) ) { return true; } else { return false; } } XMLNode XMLNodeSet::Iterator::operator *() { assert( set_ && set_->nodeTab[pos_] ); XMLNode result( set_->nodeTab[pos_] ); // return copy of XMLNode return result; } int XMLNodeSet::Iterator::getPosition() { assert( set_ ); return pos_; } }} sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XMLException.cpp0000644000175000017500000000531707620757652015165 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Local configuration #include "config.h" // Implementation #include "XMLException.hpp" namespace SP { namespace GXML { XMLException::XMLException( int exception ) { exception_ = exception; } int XMLException::getException() { return exception_; } std::string XMLException::getMessage() { switch ( exception_ ) { case XMLTREE_PARSE: return (std::string)"Error parsing XML tree"; case XMLTREE_CREATE_CONTEXT: return (std::string)"Could not create XPath context"; case XMLTREE_CREATE_NODE: return (std::string)"Could not create node"; case XMLTREE_ADD_NODE: return (std::string)"Could not add node"; case XMLTREE_TREE_INVALID: return (std::string)"Invalid XML tree"; case XMLTREE_NO_NODE_FROM_PATH: return (std::string)"Path matches no node"; case XMLTREE_NO_STRING_FROM_PATH: return (std::string)"Path returns no string"; case XMLTREE_NO_BOOL_FROM_PATH: return (std::string)"Path returns no boolean"; case XMLTREE_NO_FLOAT_FROM_PATH: return (std::string)"Path returns no float"; case XMLNODE_NO_NODE: return (std::string)"Node pointer is NULL"; case XMLNODE_LAST_NODE: return (std::string)"Node has no following sibling"; case XMLNODE_FIRST_NODE: return (std::string)"Node has no preceding sibling"; case XMLNODE_NO_PARENT: return (std::string)"Node has no parent node"; case XMLNODE_NO_CHILD: return (std::string)"Node has no child node"; case XMLNODE_NO_CONTENT: return (std::string)"Node contains no text"; case XMLNODE_NO_ATTRIBUTE: return (std::string)"Node has no attributes"; case XMLNODE_BUFFER_CREATE: return (std::string)"Could not create XML buffer"; case XMLNODE_NODE_DUMP: return (std::string)"Could not dump the node"; case XMLNODESET_EVAL: return (std::string)"Could not evaluate XPath"; case XMLNODESET_NO_SET: return (std::string)"XPath delivers no node set"; case XMLNODESET_NO_MATCH: return (std::string)"XPath doesn't exist"; default: return (std::string)"Uknown exception"; } } }} sp-gxmlcpp-1.0.20040603/sp-gxmlcpp/XSLTrans.cpp0000644000175000017500000000666310032564166014314 /* * (C) Copyright 2002-2003, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Local configuration #include "config.h" // Implementation #include "XSLTrans.hpp" // STDC++ #include #include // C libraries #include #include #include // Local #include "Util.hpp" #include "XMLTree.hpp" #include "XMLDump.hpp" namespace SP { namespace GXML { char * XSLTrans::defaultEncoding_ = "UTF-8"; // Private helper function for constructors void XSLTrans::genTrans(const char * xmlBuffer, int size, const std::string & baseURI) { // if size < 0, we must have a valid, NULL-Terminated C-String if (size < 0) size = std::strlen(xmlBuffer); // Step 1: Create an "xmlDocPtr" doc_ = xmlParseMemory(xmlBuffer, size); if (!doc_) { throw(PARSE_ERR); } // Support for local includes/imports // See: http://mail.gnome.org/archives/xslt/2001-August/msg00037.html if (doc_->URL == 0 && baseURI != "") { doc_->URL = (xmlChar *)xmlMalloc(baseURI.size()+1); if (!doc_->URL) { xmlFreeDoc(doc_); throw(PARSE_ERR); } std::memcpy((void *)doc_->URL, baseURI.c_str(), baseURI.size()+1); } // Step 2: Create an "xsltStylesheetPtr" style_ = xsltParseStylesheetDoc(doc_); if (!style_) { xmlFreeDoc(doc_); throw(STYLE_ERR); } } XSLTrans::XSLTrans(const char * xmlBuffer, int size, const std::string & baseURI) { genTrans(xmlBuffer, size, baseURI); } XSLTrans::XSLTrans(const std::string & xmlString, const std::string & baseURI) { genTrans(xmlString.c_str(), -1, baseURI); } XSLTrans::XSLTrans(std::ifstream & f, const std::string & baseURI) { genTrans(istream2String(f).c_str(), -1, baseURI); } XSLTrans::~XSLTrans() { // This frees doc_ as well xsltFreeStylesheet(style_); } // Trans into XMLTree std::auto_ptr XSLTrans::transToXMLTree(const xmlDocPtr doc) const { assert(doc); xmlDocPtr resultTree = xsltApplyStylesheet(style_, doc, 0); if (!resultTree) { throw(TRANS_ERR); } return std::auto_ptr(new XMLTree(resultTree)); } // This is the master trans method std::auto_ptr XSLTrans::trans(const xmlDocPtr doc) const { assert(doc); xmlDocPtr resultTree = xsltApplyStylesheet(style_, doc, 0); if (!resultTree) { throw(TRANS_ERR); } XSLTOutputBuf * obuf = new XSLTOutputBuf(resultTree, style_); xmlFreeDoc(resultTree); XMLDump * result = new XMLDump(obuf); return std::auto_ptr(result); } std::auto_ptr XSLTrans::trans(const XMLTree * xmlTree) const { assert(xmlTree); return trans(xmlTree->getDocPtr()); } std::auto_ptr XSLTrans::trans(const std::string & xmlString) const { XMLTree xmlTree(xmlString); return trans(&xmlTree); } xsltStylesheetPtr XSLTrans::getStylesheetPtr() { return style_; } }} sp-gxmlcpp-1.0.20040603/examples/0002777000175000017500000000000010057656714011741 5sp-gxmlcpp-1.0.20040603/examples/Makefile.am0000644000175000017500000000120607715705440013704 # $Id: Makefile.am,v 1.7.2.2 2003/08/11 12:25:04 spabsurd Exp $ AM_CPPFLAGS = \ -I$(top_srcdir) $(xml2_CFLAGS) $(xslt_CFLAGS) AM_CXXFLAGS = \ -pthread \ -Wall bin_PROGRAMS = sp-gxmlcpp-test sp-gxmlcpp-xsltproc docdir = $(datadir)/doc/$(PACKAGE)/examples doc_DATA = UnitTests.cpp sp_gxmlcpp_test_SOURCES = UnitTests.cpp sp_gxmlcpp_test_LDADD = $(xml2_LIBS) $(xslt_LIBS) -lcppunit ../sp-gxmlcpp/.libs/libsp-gxmlcpp.so sp_gxmlcpp_xsltproc_SOURCES = XSLTProc.cpp sp_gxmlcpp_xsltproc_LDADD = $(xml2_LIBS) $(xslt_LIBS) ../sp-gxmlcpp/.libs/libsp-gxmlcpp.so -lexslt check-local: export LD_LIBRARY_PATH=../sp-gxmlcpp/.libs/ && ./sp-gxmlcpp-test sp-gxmlcpp-1.0.20040603/examples/Makefile.in0000644000175000017500000003015710057656703013724 # Makefile.in generated by automake 1.6.3 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # 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@ # $Id: Makefile.am,v 1.7.2.2 2003/08/11 12:25:04 spabsurd Exp $ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ PATH_SEPARATOR = @PATH_SEPARATOR@ AMTAR = @AMTAR@ AS = @AS@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CXXCPP = @CXXCPP@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ OBJDUMP = @OBJDUMP@ PACKAGE = @PACKAGE@ PERL = @PERL@ RANLIB = @RANLIB@ SO_VERSION = @SO_VERSION@ STRIP = @STRIP@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ install_sh = @install_sh@ xml2_CFLAGS = @xml2_CFLAGS@ xml2_LIBS = @xml2_LIBS@ xslt_CFLAGS = @xslt_CFLAGS@ xslt_LIBS = @xslt_LIBS@ AM_CPPFLAGS = \ -I$(top_srcdir) $(xml2_CFLAGS) $(xslt_CFLAGS) AM_CXXFLAGS = \ -pthread \ -Wall bin_PROGRAMS = sp-gxmlcpp-test sp-gxmlcpp-xsltproc docdir = $(datadir)/doc/$(PACKAGE)/examples doc_DATA = UnitTests.cpp sp_gxmlcpp_test_SOURCES = UnitTests.cpp sp_gxmlcpp_test_LDADD = $(xml2_LIBS) $(xslt_LIBS) -lcppunit ../sp-gxmlcpp/.libs/libsp-gxmlcpp.so sp_gxmlcpp_xsltproc_SOURCES = XSLTProc.cpp sp_gxmlcpp_xsltproc_LDADD = $(xml2_LIBS) $(xslt_LIBS) ../sp-gxmlcpp/.libs/libsp-gxmlcpp.so -lexslt subdir = examples mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = sp-gxmlcpp-test$(EXEEXT) sp-gxmlcpp-xsltproc$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_sp_gxmlcpp_test_OBJECTS = UnitTests.$(OBJEXT) sp_gxmlcpp_test_OBJECTS = $(am_sp_gxmlcpp_test_OBJECTS) sp_gxmlcpp_test_DEPENDENCIES = ../sp-gxmlcpp/.libs/libsp-gxmlcpp.so sp_gxmlcpp_test_LDFLAGS = am_sp_gxmlcpp_xsltproc_OBJECTS = XSLTProc.$(OBJEXT) sp_gxmlcpp_xsltproc_OBJECTS = $(am_sp_gxmlcpp_xsltproc_OBJECTS) sp_gxmlcpp_xsltproc_DEPENDENCIES = ../sp-gxmlcpp/.libs/libsp-gxmlcpp.so sp_gxmlcpp_xsltproc_LDFLAGS = DEFS = @DEFS@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/UnitTests.Po ./$(DEPDIR)/XSLTProc.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ CXXFLAGS = @CXXFLAGS@ DIST_SOURCES = $(sp_gxmlcpp_test_SOURCES) $(sp_gxmlcpp_xsltproc_SOURCES) DATA = $(doc_DATA) DIST_COMMON = Makefile.am Makefile.in SOURCES = $(sp_gxmlcpp_test_SOURCES) $(sp_gxmlcpp_xsltproc_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done sp-gxmlcpp-test$(EXEEXT): $(sp_gxmlcpp_test_OBJECTS) $(sp_gxmlcpp_test_DEPENDENCIES) @rm -f sp-gxmlcpp-test$(EXEEXT) $(CXXLINK) $(sp_gxmlcpp_test_LDFLAGS) $(sp_gxmlcpp_test_OBJECTS) $(sp_gxmlcpp_test_LDADD) $(LIBS) sp-gxmlcpp-xsltproc$(EXEEXT): $(sp_gxmlcpp_xsltproc_OBJECTS) $(sp_gxmlcpp_xsltproc_DEPENDENCIES) @rm -f sp-gxmlcpp-xsltproc$(EXEEXT) $(CXXLINK) $(sp_gxmlcpp_xsltproc_LDFLAGS) $(sp_gxmlcpp_xsltproc_OBJECTS) $(sp_gxmlcpp_xsltproc_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnitTests.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSLTProc.Po@am__quote@ distclean-depend: -rm -rf ./$(DEPDIR) .cpp.o: @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(CXXCOMPILE) -c -o $@ `cygpath -w $<` .cpp.lo: @AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< CXXDEPMODE = @CXXDEPMODE@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: docDATA_INSTALL = $(INSTALL_DATA) install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(docdir) @list='$(doc_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(docDATA_INSTALL) $$d$$p $(DESTDIR)$(docdir)/$$f"; \ $(docDATA_INSTALL) $$d$$p $(DESTDIR)$(docdir)/$$f; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(docdir)/$$f"; \ rm -f $(DESTDIR)$(docdir)/$$f; \ done ETAGS = etags ETAGSFLAGS = tags: TAGS 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; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ 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; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$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) $(DATA) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(docdir) 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_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-compile distclean-depend \ distclean-generic distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-docDATA install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool uninstall-am: uninstall-binPROGRAMS uninstall-docDATA uninstall-info-am .PHONY: GTAGS all all-am check check-am check-local clean \ clean-binPROGRAMS clean-generic clean-libtool distclean \ distclean-compile distclean-depend distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-binPROGRAMS install-data \ install-data-am install-docDATA install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool tags uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-docDATA \ uninstall-info-am check-local: export LD_LIBRARY_PATH=../sp-gxmlcpp/.libs/ && ./sp-gxmlcpp-test # 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: sp-gxmlcpp-1.0.20040603/examples/UnitTests.cpp0000644000175000017500000003545210057655550014327 /* * (C) Copyright 2002, Schlund+Partner AG * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Local configuration #include "config.h" // C++ Libraries #include #include #include #include #include #include #include #include #include #include namespace SP { namespace GXML { // // XMLTree (&& XMLDump) // class TestXMLTreeOld: public CppUnit::TestCase { public: TestXMLTreeOld() {} void testRun() { // ^^ Note: dump will always use " (not ') to quote, so we must do this here too for string compare const std::string xmlString( "\n" "\n" " 5\n" " /home/absurd\n" " AAAABBBBCCCCDDDD\n" "\n" " \n" " \n" " Wert1\n" " \n" " \n" " Wert 2\n" " \n" " \n" "\n" " 5\n" "\n" " -42\n" " 17\n" " 0\n" " abc def \n" "\n" " 13\n" "\n" "\n" " EINS\n" "\n" "\n" " \n" " ZWEI\n" " \n" "\n" " 17\n" "\n" "\n"); // ^^ Note: dump will always add a \n to the last line (in a full ("/") dump, that is), so our string should have this too for string compare // Note2: It's a bit dumb to literally compare dumps here, as the default way of producing dumps might change... STS // Partial Tree && Dump XMLTree xmlTree1(xmlString.c_str(), xmlString.size()); std::string dump1 = XMLDump(&xmlTree1, "/req/tags").get(); CPPUNIT_ASSERT(dump1 == "\n" " EINS\n" ""); // Full Tree && Dump XMLTree xmlTree(xmlString.c_str(), xmlString.size()); std::string dump = XMLDump(&xmlTree, "/").get(); // STS This does not work anymore with default encoding added in XMLDump //CPPUNIT_ASSERT(dump == xmlString); // XMLTree methods CPPUNIT_ASSERT(xmlTree.getValue("/req/string") == " abc def "); CPPUNIT_ASSERT(xmlTree.getCount("/req/int") == 2); CPPUNIT_ASSERT(xmlTree.getValue("/req/int") == "-42"); CPPUNIT_ASSERT(xmlTree.getValue("/req/int[position()=2]") == "17"); CPPUNIT_ASSERT(xmlTree.getCount("/req/tags/subtag") == 2); CPPUNIT_ASSERT(xmlTree.getValue("/req/tags/subtag") == "EINS"); CPPUNIT_ASSERT(xmlTree.getCount("/req/nonexisting") == 0); CPPUNIT_ASSERT(xmlTree.getCount("/nonexisting/tag") == 0); CPPUNIT_ASSERT(xmlTree.getValue("/nonexisting/tag") == ""); xmlTree.delTag("/req/int"); CPPUNIT_ASSERT(xmlTree.getCount("/req/int") == 1); xmlTree.addTag("/req", "newtag", "contents of new tag"); CPPUNIT_ASSERT(xmlTree.getValue("/req/newtag") == "contents of new tag"); } }; ////////////////////////////////////////////////////////////////////// // XSLTrans Test // class TestXSLTrans : public CppUnit::TestCase { public: TestXSLTrans() {} void testRun() { std::string xmlString( "\n" "\n" "\n" "\n" " \n" " kurt\n" " 2.3.01\n" " \n" " find ich total klasse, koennte aber noch besser sein\n" " \n" " \n" " \n" " kurt\n" " 2.3.01\n" " \n" " find ich total klasse, koennte aber noch besser sein\n" " \n" " \n" "\n"); std::string xslString( "\n" "\n" "\n" "\n" "\n" " \n" " \n" " Gaestebuch\n" " \n" " \n" "

Mein Gaestebuch

\n" "
\n" " \n" " \n" " \n" " \n" "
\n" "
\n" " \n" " \n" "
\n" "\n" "\n" " \n" " \n" " Name\n" " \n" " \n" " \n" " Datum\n" " \n" " \n" " \n" " Text\n" " \n" " \n" " \n" "
\n" " \n" " \n" "
\n" "
\n"); XMLTree xmlTree(xmlString); XSLTrans xslTrans(xslString); std::auto_ptr resultTree = xslTrans.transToXMLTree(xmlTree.getDocPtr()); CPPUNIT_ASSERT(resultTree.get()->getValue("/html/head/title") == "Gaestebuch"); CPPUNIT_ASSERT(resultTree.get()->getValue("/html/body/h1") == "Mein Gaestebuch"); CPPUNIT_ASSERT(resultTree.get()->getCount("/html/body/center/table") == 1); } }; ////////////////////////////////////////////////////////////////////// // TestXMLTree // class TestXMLTree : public CppUnit::TestCase { public: TestXMLTree() :tree_(NULL) { // test XMLTree's following functions: // getString // getBool (XSLT-functions: boolean, false, true, not) // getFloat // getNodeSet // getXML // getTree xmlTree_ = "\n" "\n" " StringValue\n" " \n" " Also a string value\n" " \n" " 1\n" " 0\n" " -1\n" " 3.5\n" " 1.6\n" " -123.2\n" ""; tree_ = new XMLTree( xmlTree_.c_str() ); } ~TestXMLTree() { delete tree_; } void testRun() { CPPUNIT_ASSERT( tree_ ); testGetString(); testGetBool(); testGetFloat(); testGetNodeSet(); testGetXML(); testGetTree(); } void testGetString() { // test getString // string( xpath ) returns content of first xpath-node // string( invalid_xpath ) returns "" CPPUNIT_ASSERT( tree_->getString( "string( /test/string )" ) == "StringValue" ); CPPUNIT_ASSERT( tree_->getString( "string( /test/string[position() = 2] )" ) == "\n\t\tAlso a string value\n\t" ); CPPUNIT_ASSERT( tree_->getString( "string( /test/something )" ) == "" ); try { // xpath won't return a string tree_->getString( "/test/string" ); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( GXML::XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_STRING_FROM_PATH ); } try { // xpath won't return a string tree_->getString( "/test/something" ); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_STRING_FROM_PATH ); } } void testGetBool() { // test getBool // 0 = false else true, "" = false else true CPPUNIT_ASSERT( tree_->getBool( "boolean( number( /test/boolean ) )" ) ); CPPUNIT_ASSERT( ! tree_->getBool( "boolean( number( /test/boolean[position() = 2] ) )" ) ); CPPUNIT_ASSERT( tree_->getBool( "boolean( number( /test/boolean[position() = 3] ) )" ) ); CPPUNIT_ASSERT( tree_->getBool( "true()" ) ); CPPUNIT_ASSERT( ! tree_->getBool( "false()" ) ); CPPUNIT_ASSERT( tree_->getBool( "not( /test/something )" ) ); CPPUNIT_ASSERT( ! tree_->getBool( "not( /test/string )" ) ); CPPUNIT_ASSERT( tree_->getBool( "boolean( /test/string )" ) ); CPPUNIT_ASSERT( ! tree_->getBool( "boolean( /test/something )" ) ); CPPUNIT_ASSERT( tree_->getBool( "boolean( 'anything' )" ) ); CPPUNIT_ASSERT( ! tree_->getBool( "boolean( '' )" ) ); try { // xpath won't return a boolean tree_->getBool( "/test/string" ); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_BOOL_FROM_PATH ); } } void testGetFloat() { // test getFloat CPPUNIT_ASSERT_DOUBLES_EQUAL( double(-118.1), tree_->getFloat( "sum( /test/float )" ), 1E-10 ); CPPUNIT_ASSERT_DOUBLES_EQUAL( double(-123.2), tree_->getFloat( "number( /test/float[position() = 3 ])" ), 1E-10 ); CPPUNIT_ASSERT( tree_->getFloat( "count( /test/boolean )" ) == 3 ); try { // xpath won't return a number tree_->getFloat( "/test/string" ); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_FLOAT_FROM_PATH ); } } void testGetNodeSet() { std::auto_ptr set = tree_->getNodeSet( "/test/*" ); CPPUNIT_ASSERT( set->size() == 8 ); try { // xpath will return an empty set std::auto_ptr set = tree_->getNodeSet( "/something" ); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODESET_NO_MATCH ); } try { // xpath won't return a set std::auto_ptr set = tree_->getNodeSet( "true()" ); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODESET_NO_SET ); } } void testGetXML() { CPPUNIT_ASSERT( xmlTree_+"\n" == tree_->getXML( "/" ) ); } void testGetTree() { CPPUNIT_ASSERT( tree_->getXML() == tree_->getTree()->getXML() ); } private: std::string xmlTree_; XMLTree *tree_; }; ////////////////////////////////////////////////////////////////////// // TestXMLNode // class TestXMLNode : public CppUnit::TestCase { public: TestXMLNode() { // test XMLNode's following functions: // getNext // getPrev // getParent // getLast // getChild // getName // getContent // getAttribute( name ) xmlTree_ = "\n" "node1node2child of node 2last node"; tree_ = new XMLTree( xmlTree_.c_str() ); } void testRun() { XMLNode node1 = XMLNode(); XMLNode node2 = XMLNode(); XMLNode node3 = XMLNode(); std::auto_ptr set = tree_->getNodeSet( "/test/node" ); for ( XMLNodeSet::Iterator iter = set->begin(); iter != set->end(); ++iter ) { switch ( iter.getPosition() ) { case 0: node1 = *iter; break; case 1: node2 = *iter; break; case 2: node3 = *iter; break; default: CPPUNIT_ASSERT( false ); //should never get here. } } CPPUNIT_ASSERT( node1.getName() == "node" ); CPPUNIT_ASSERT( node1.getContent() == "node1" ); CPPUNIT_ASSERT( node1.getNext().getContent() == node2.getContent() ); // CPPUNIT_ASSERT( node1.getLast().getContent() == node3.getContent() ); CPPUNIT_ASSERT( node2.getContent() == "node2" ); CPPUNIT_ASSERT( node2.getNext().getContent() == node3.getContent() ); CPPUNIT_ASSERT( node2.getAttribute( "name" ) == "node2" ); // first child of node2 is its content text-node, therefore take child->next CPPUNIT_ASSERT( node2.getChild().getNext().getContent() == "child of node 2" ); CPPUNIT_ASSERT( node3.getPrev().getContent() == node2.getContent() ); CPPUNIT_ASSERT( node3.getParent().getName() == node2.getParent().getName() ); CPPUNIT_ASSERT( node3.getParent().getChild().getContent() == node1.getContent() ); CPPUNIT_ASSERT( node3.getParent().getLast().getContent() == node3.getContent() ); // first child of node with content is a text-node CPPUNIT_ASSERT( node3.getChild().getName() == "text" ); // test for exceptions try { node3 = node3.getNext(); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_LAST_NODE ); } try { node1 = node1.getPrev(); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_FIRST_NODE ); } try { // parent of parent is document node, which has no parent node1 = node1.getParent().getParent().getParent(); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_NO_PARENT ); } try { node1 = node1.getPrev(); CPPUNIT_ASSERT( ! "Exception expected!!!" ); } catch ( XMLException & e ) { CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_FIRST_NODE ); } } private: std::string xmlTree_; XMLTree *tree_; }; ////////////////////////////////////////////////////////////////////// // XMLNodeSet Test // class TestXMLNodeSet : public CppUnit::TestCase { public: TestXMLNodeSet() {}; void testRun() {} }; ////////////////////////////////////////////////////////////////////// // Master Class for all tests // class UnitTests: public CppUnit::TestSuite { public: UnitTests() { addTest(new CppUnit::TestCaller("Testing XMLTree (old)", &TestXMLTreeOld::testRun)); addTest(new CppUnit::TestCaller ("Testing XMLTree", &TestXMLTree::testRun)); addTest(new CppUnit::TestCaller ("Testing XSLTrans", &TestXSLTrans::testRun)); addTest(new CppUnit::TestCaller ("Testing XMLNode", &TestXMLNode::testRun)); addTest(new CppUnit::TestCaller("Testing XMLNodeSet", &TestXMLNodeSet::testRun)); } }; }} // create binary that tests the XML* stuff int main(int argc, char **argv) { CppUnit::TextTestRunner runner; // This must be an object, and must be created with new, as it is deleted by runner (this is braindead, but well). SP::GXML::UnitTests * unitTests = new SP::GXML::UnitTests(); runner.addTest(unitTests); if (runner.run()) return(0); else return(1); } sp-gxmlcpp-1.0.20040603/examples/XSLTProc.cpp0000644000175000017500000000145507616220073013772 // $Id: XSLTProc.cpp,v 1.4 2003/01/30 12:38:31 spabsurd Exp $ // STDC++ #include #include // C libraries #include // Needed to enable exslt // Local #include #include #include int main(int argc, char** argv) { // Support for exslt exsltRegisterAll(); if (argc < 3) { std::cerr << "Usage: " << argv[0] << " XSL-FILE XML-FILE" << std::endl; exit(1); } std::ifstream xslFile(argv[1], std::ios::in); assert(xslFile.is_open()); std::ifstream xmlFile(argv[2], std::ios::in); assert(xmlFile.is_open()); SP::GXML::XSLTrans trans(xslFile); SP::GXML::XMLTree tree(xmlFile); std::auto_ptr dump(trans.trans(&tree)); std::cout << dump.get()->get() << std::flush; } sp-gxmlcpp-1.0.20040603/doc/0002777000175000017500000000000010057656714010670 5sp-gxmlcpp-1.0.20040603/doc/Makefile.am0000644000175000017500000000040307631621016012622 ## -*- Makefile -*- mode # standard documentation man1_MANS = sp-gxmlcpp-test.1 sp-gxmlcpp-xsltproc.1 doc_EXTRA_DIST = OOD.dia EXTRA_DIST = ANNOUNCE DEVELOPERS $(doc_EXTRA_DIST) $(man1_MANS) docdir = $(datadir)/doc/$(PACKAGE) doc_DATA = $(doc_EXTRA_DIST) sp-gxmlcpp-1.0.20040603/doc/Makefile.in0000644000175000017500000002005010057656703012642 # Makefile.in generated by automake 1.6.3 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # 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@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ PATH_SEPARATOR = @PATH_SEPARATOR@ AMTAR = @AMTAR@ AS = @AS@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CXXCPP = @CXXCPP@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ OBJDUMP = @OBJDUMP@ PACKAGE = @PACKAGE@ PERL = @PERL@ RANLIB = @RANLIB@ SO_VERSION = @SO_VERSION@ STRIP = @STRIP@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ install_sh = @install_sh@ xml2_CFLAGS = @xml2_CFLAGS@ xml2_LIBS = @xml2_LIBS@ xslt_CFLAGS = @xslt_CFLAGS@ xslt_LIBS = @xslt_LIBS@ # standard documentation man1_MANS = sp-gxmlcpp-test.1 sp-gxmlcpp-xsltproc.1 doc_EXTRA_DIST = OOD.dia EXTRA_DIST = ANNOUNCE DEVELOPERS $(doc_EXTRA_DIST) $(man1_MANS) docdir = $(datadir)/doc/$(PACKAGE) doc_DATA = $(doc_EXTRA_DIST) subdir = doc mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = NROFF = nroff MANS = $(man1_MANS) DATA = $(doc_DATA) DIST_COMMON = Makefile.am Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: man1dir = $(mandir)/man1 install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(man1dir) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \ $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \ rm -f $(DESTDIR)$(man1dir)/$$inst; \ done docDATA_INSTALL = $(INSTALL_DATA) install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(docdir) @list='$(doc_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(docDATA_INSTALL) $$d$$p $(DESTDIR)$(docdir)/$$f"; \ $(docDATA_INSTALL) $$d$$p $(DESTDIR)$(docdir)/$$f; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(docdir)/$$f"; \ rm -f $(DESTDIR)$(docdir)/$$f; \ done tags: TAGS TAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$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 $(MANS) $(DATA) installdirs: $(mkinstalldirs) $(DESTDIR)$(man1dir) $(DESTDIR)$(docdir) 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_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-docDATA install-man install-exec-am: install-info: install-info-am install-man: install-man1 installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool uninstall-am: uninstall-docDATA uninstall-info-am uninstall-man uninstall-man: uninstall-man1 .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am info info-am install install-am install-data \ install-data-am install-docDATA install-exec install-exec-am \ install-info install-info-am install-man install-man1 \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool uninstall uninstall-am \ uninstall-docDATA uninstall-info-am uninstall-man \ uninstall-man1 # 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: sp-gxmlcpp-1.0.20040603/doc/ANNOUNCE0000644000175000017500000000004107537123046011722 This file is currently not used. sp-gxmlcpp-1.0.20040603/doc/DEVELOPERS0000644000175000017500000003355307540123772012202 Notes for Developers: -*-text-*- --------------------- Last updated on 9-Sep-2002 You will need to install several GNU tools to be able to use the CVS sources. If you do not have these tools available, build from the tar file distributions instead. To build from the CVS sources, you will need: * GNU gcc * GNU make * autoconf (version >= 2.53) * automake (version >= 1.4) After the *initial* checkout of the sources, you will need to execute the following commands from the top of the source tree. libtoolize --force aclocal autoheader automake --add-missing autoconf Because of what seems to be a bug in automake, sometimes the file depcomp is not automatically installed. This leads to a compile error later. In this case, just run automake --add-missing autoconf again and you should be fine. There will be some warnings, which are ignorable as long as you get a working configure script: the configure script will fix all those problems. Now, configure and build as per INSTALL. and INSTALL. If configure fails, please look through `config.log' for clues. Development Rules of the Road: ------------------------------ 1) _Every_ change must be properly ChangeLogged. If you use Emacs, you can do this oh-so-trivially with the "C-x 4 a" command; it will add a header (if it's a new day), the name of the file, and even the name of the function you're currently in. If you start adding them as you change functions, it'll soon become second-nature and we'll get proper ChangeLogs. If you don't use Emacs, please mimic the format of all the other log entries when adding your own. 2) If you make a user-visible change please add a blurb about it to the NEWS file. A couple sentences is fine; don't repeat the documentation but give folks enough of an idea so they can decide if they want to learn more. Bug fixes (unless they're _really_ user visible) shouldn't be noted in the NEWS file. 3) If you add a new user-visible feature, don't forget to update the appropriate man pages at the same time! ** Of course, compile and test before committing! ** Dealing with CVS: ----------------- Consult the CVS documentation for details. One thing worth mentioning here is that _no_ files that are generated in the build process belong into CVS. Changing a Makefile: -------------------- First of all, NEVER edit anything named Makefile or Makefile.in. These are both derived from the corresponding Makefile.am. The most common reason for editing is to change the list of sources. Steps: 1. edit foo/blah/Makefile.am 2. re-run "make" from the top of the build directory Step 2 will take care of rebuilding the Makefile.in and Makefile from your changed Makefile.am. Makefile.am has a simple format, basically: bin_PROGRAMS = myprog myprog_SOURCES = blah.c blah.h foo.c foo.h ... Notice that you have to add all files, C-code *and* headers, to the _SOURCES line. This is vital, because this is the list of files that are packed into the distribution. If you leave one out, nobody will be able to build the distributed tar file! Changing configure.ac: ---------------------- The most common reason to do this is to change the version string. If you're editing it for any other reason, I will assume you know what you're doing. Steps: 1. edit configure.ac, and find the line containing AM_INIT_AUTOMAKE(, x.y.z) at the top of the file 2. change x.y.z to the new version string 3. re-run "make" from the top of the build directory Step 3 will take care of rebuilding the configure script, and usually all the other Makefiles. Version numbers: ---------------- Version numbers are divided into three parts, the major release number, the minor release number and the patchlevel. The version number is appended to the name of the tarballs: -...tar.gz For example sputils-0.9.3.tar.gz A change in the major release number indicates major changes in the interfaces. Between minor releases, every effort should be made to keep the interfaces compatible. The patchlevels indicate the day to day work between the releases. Odd minor release numbers like 2.1.0 indicate unstable development releases while even numbers like 2.4.0 indicate stable releases. Shared library versioning: -------------------------- The SO_VERSION variable is set in configure.ac. If its value is INTERFACE:REVISION:AGE then the corresponding library version is INTERFACE-AGE.AGE.REVISION Examples: SO_VERSION LIBRARY_VERSION 0:0:0 -> 0.0.0 0:17:0 -> 0.0.17 7:17:3 -> 4.3.17 42:17:11 -> 31.11.17 Guidelines for SO_VERSION changes for an official release (initial version is always "0:0:0"): One of A, B1 or B2 will be your path: A) If only the source code, but not the interface was changed, the REVISION is increased by one. B) If the interface chenged, the INTERFACE number is increased by one and REVISION is set to zero. B1) If only new interfaces were added, the AGE is increased by one. B2) If interfaces were removed or there were incompatible changes, the AGE is set to zero. Building an official distribution: ---------------------------------- By this, I mean the file -x.y.z.tar.gz. It is important to do all steps in the given order! Preparations: - Make sure you have all optional libraries installed. - When building a release, update the CVS sources first. For a stable release it is best to throw away the whole source tree and check it out from scratch to ensure all source files have been added to CVS. - For a stable release, change the dates in doc/.lsm.in, .1 (if these files are used in your project) and fill in the release date in NEWS. Put the proper entries in the ChangeLog and commit these changes. - Set the correct version numbers in configure.ac in the AM_INIT_AUTOMAKE macro and the SO_VERSION variable. ChangeLog and commit this change. - For a stable release, update doc/ANNOUNCE file. For the first version of a major release (e.g. 2.6.0) all user visible changes have to be mentioned. For the following maintenance releases *all* code changes have to be listed. This is usually done by copying all entries from the NEWS file. Don't forget to proof read the file as it may be sent to the project announcement mailing list. Put the proper entries in the ChangeLog and commit these changes. Configuration tests: Note that you need to have actually built everything before packing the distribution. Among other things, this generates the proper dependency information for insertion into Makefile.in's generated by "make distcheck". - Run libtoolize --force && aclocal && autoheader && automake --add-missing && autoconf - If you are building a stable release, remove the config.cache file if there is one (autoconf 2.52 does no longer generate this file by default). Of course doing this for a development release won't hurt either. - Run ./configure - Make sure configure detects all optional libraries except the ones that are recommended not to be used. Repeat the previous step until configure finds everything. Building a release without all optional libraries should be a rare exception. Compile tests: - Run make clean - Double check that you get no warnings during the build: make CXXFLAGS="-g -O2 -Wall -Werror" On some systems, the system include files generate warnings. On such a system you have to omit the -Werror option and check the output of the compilation run for warnings manually. It is important to use the -O2 option (or -O1) because some versions of gcc seem to have a bug: when -Wall is used, but not -O2, no warnings are generated at all. - Fix all warnings and problems, commit the changes and repeat the previous step until no more warnings occur. Build and test the release tarballs: The next step will create the tar file, then unpack it and attempt to build the project from it and install to a scratch directory. This makes sure that you really *did* include all the files necessary to build the package into the tar file. It may be hard to appreciate how useful this is, until it has reminded you that you forgot file "foo.h" in some _SOURCES line. But trust me, it will save your bacon in this way some day! - Run make distcheck - Ensure that you see the message "-x.y.z.tar.gz is ready for distribution" Tag the release: * IMPORTANT NOTE: Before you proceed, please ask yourself if the code is ready to be released: * Have you committed patches only hours or even minutes ago? * Have there been any big changes in the last few days? * Are there any important parts that are not well tested? * Are you tired from work or have you been hacking for many hours in a row? Should your answer to any of these questions be 'yes', please do take a break now and reconsider, especially if this is going to be a stable release. The steps above are not critical and can not screw up anything bad. This is not true for what follows. If you do something wrong now, you will have a hard time cleaning up the mess. Should something go wrong and you are not sure about the correct fixes, please ask others for help. It's important that the files included in the release tarballs and the tagged files are identical. - Tag the CVS tree (replace x, y and z): CVS tag version-x_y_z Upload the release: Hopefully you didn't change any files after the last commit. Otherwise commit your changes and return to the previous sections, i.e. rebuild tarballs using "make distcheck" and retag the tree. - Put the release tarball at the usual places (ftp server, etc.) Update the version number: - Set the version numbers in configure.ac to the values used in the development cycle (e.g. x.y.z-devel). Update the AM_INIT_AUTOMAKE macro and the SO_VERSION variable. - Create a new section for future changes in the NEWS file. - Add a ChangeLog entry indicating that a new version started. - Commit these three changes. - For a stable release, copy the NEWS from the stable branch to the development branch (the contents, don't just overwrite the file). Announce the release: - Once the tarballs are in place, mail the ANNOUNCE file to the usual places. Maintaining the NEWS: --------------------- The following explanation was taken from the "GNU Coding Standards" documentation by Richard Stallman, Octorber 19, 2001. -- In addition to its manual, the package should have a file named "NEWS" which contains a list of user-visible changes worth mentioning. In each new release, add items to the front of the file and identify the version they pertain to. Don't discard old items; leave them in the file after the newer items. This way, a user upgrading from any previous version can see what is new. If the `NEWS' file gets very long, move some of the older items into a file named `ONEWS' and put a note at the end referring the user to that file. -- Maintaining the ChangeLog: -------------------------- The following explanation was taken from the "GNU Coding Standards" documentation by Richard Stallman, Octorber 19, 2001. -- Keep a change log to describe all the changes made to program source files. The purpose of this is so that people investigating bugs in the future will know about the changes that might have introduced the bug. Often a new bug can be found by looking at what was recently changed. More importantly, change logs can help you eliminate conceptual inconsistencies between different parts of a program, by giving you a history of how the conflicting concepts arose and who they came from. Change Log Concepts You can think of the change log as a conceptual "undo list" which explains how earlier versions were different from the current version. People can see the current version; they don't need the change log to tell them what is in it. What they want from a change log is a clear explanation of how the earlier version differed. The change log file is normally called "ChangeLog" and covers an entire directory. Each directory can have its own change log, or a directory can use the change log of its parent directory-it's up to you. Another alternative is to record change log information with a version control system such as RCS or CVS. This can be converted automatically to a "ChangeLog" file using rcs2log; in Emacs, the command C-x v a (vc-update-change-log) does the job. There's no need to describe the full purpose of the changes or how they work together. If you think that a change calls for explanation, you're probably right. Please do explain it-- but please put the explanation in comments in the code, where people will see it whenever they see the code. For example, "New function" is enough for the change log when you add a function, because there should be a comment before the function definition to explain what it does. However, sometimes it is useful to write one line to describe the overall purpose of a batch of changes. The easiest way to add an entry to "ChangeLog" is with the Emacs command M-x add- change-log-entry. An entry should have an asterisk, the name of the changed file, and then in parentheses the name of the changed functions, variables or whatever, followed by a colon. Then describe the changes you made to that function or variable. -- Example ChangeLog entry: -- 1998-08-17 Richard Stallman !rms@gnu.org? * register.el (insert-register): Return nil. (jump-to-register): Likewise. * sort.el (sort-subr): Return nil. * tex-mode.el (tex-bibtex-file, tex-file, tex-region): Restart the tex shell if process is gone or stopped. (tex-shell-running): New function. -- sp-gxmlcpp-1.0.20040603/doc/OOD.dia0000644000175000017500000000467207537114637011715 ]]o8}0TdIm ,n tf0omѶZYRTCRqbYmYehtx%y)jS̾iJ *9Y6di.p~mkbObY% oDXt͉'h&KzӜ9gm4RQ)oy5 >VTMkPv0הE*R2Q)WWW%EJT$|n8+24>1)*acq)a&Y!͏N%)e)q3b^C[✛FvC(R˃i־*{5'MzU:cg7ˤԴv/ᡘ ,<ó{jD8j/|SOw;nٳ Ӹi~ioޛ5&<[7a뇨)kMqdZIz.s>AtcQu]kCeZt92no;l 0ƻm! n;`ABd ncFlOpJC0\A9e>Ar]8ȓtd9.sN]w-pdKzR= 0iR~4qa^繫gp SLܕyKk]xF-}җȈ} M>W CwˀlUOf2* 2!9&Aǚ!؝.1Sf (*e_X܅kAQoLh Ƿ譌P4޾,m_&Kc;9D-$OߟI h0:n;$Yii0 +fkCOB %Dqq<<[ap5qm߂_ObϷd錠fP3Ԭ5dy !g/g?ֳ{f:YSQ)!'%FQcx;#puXƮyLZ/n8==iA qB%F~ML`|$¥Ğ[tԎMu:9ȋL-O7d#mCi=XPs}ƷC;ƕMYLTJ` S_CҠŢ%w$О&1Ny!ۼŶ|p0j|82/,I2 ϺQXuKmز;!I lؗ܏,Q<ѱOEt `*;2C ^cIEVGԐj'`g~aڠ.&/@V-X%'tnڕq$P(Im!"~d=)[)[)[t{6THjѸ\,Ɓ1L(ڑ:g UiEˏq[)Y~!dp0&fg['M2ۖe7 T msJ8WmouAtwjGծ@+QU(=QGuWݼec> j_Ѥv jVZ.ADKOeKt ݗ̝cvsUOc/XqYQ̆l( uz岳(Q"]$t\ނLt :V]rzN$ԆRb´ )?B N֊j* >֦-`[[PN[|]Oet|h ZbyE =:ZWpV +jۇ X}/8xFf ,(nE编X KG 5{z|$-BRu}k+@JOK}f!FMUQ{jԕA)+8OM 5s+,^6˭bH> _/!E't)ENTgHH|R~u2,+XyqYYQ~&CKsoC֭sp-gxmlcpp-1.0.20040603/doc/sp-gxmlcpp-test.10000644000175000017500000000163407631616677013747 .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH SP-GXMLCPP-TEST 1 "Mar 4, 2003" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME sp-gxmlcpp-test \- Run unit tests on libsp-gxmlcpp functionality. .SH DESCRIPTION This program is a very simple test suite for libsp-gxmlcpp. Simply run it without parameters. .SH AUTHOR Schlund + Partner, Karlsruhe. sp-gxmlcpp-1.0.20040603/doc/sp-gxmlcpp-xsltproc.10000644000175000017500000000174707631616677014653 .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH SP-GXMLCPP-XSLTPROC 1 "Mar 4, 2003" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME sp-gxmlcpp-xsltproc \- Example program to demonstrate libsp-gxmlcpp XSL transformation. .SH DESCRIPTION This program should roughly behave like xsltproc from libxslt -- i.e., when run without options. Usage: sp-gxmlcpp-xsltproc XSL-FILE XML-FILE .SH AUTHOR Schlund + Partner, Karlsruhe. sp-gxmlcpp-1.0.20040603/autodoc/0002777000175000017500000000000010057656714011561 5sp-gxmlcpp-1.0.20040603/autodoc/html/0002777000175000017500000000000010057656716012527 5sp-gxmlcpp-1.0.20040603/autodoc/html/doxygen.png0000644000175000017500000000446010057656714014626 PNG  IHDRn5/pItRNS7X}bKGDûJ3IDATxXklTUg44*TJw1)bD%`-&D%4"0!դ&FiEQ>V(],Ƕv#?JBQO;3=nwJfv73|{{53?JMYJO,- @eĎؕm:RBA#vdst\)3WJ̕1st\)iK٥J6=)ضEލؕ- 1&ZA>͎XKb6,'ixt@ ZV3]e`=ˎz `Ch ZT^3Pi4ϠA@0E##KV޸͉SRVM C)^XMGhϗ+ tS#Jw`eOUb VV+ؤjN*15r[ұ7+Q|A͐L}[G;!\㝖IBJҟqOd^iYM&;4M|:TTEZJc w$޸;8mYZI Lb RZiuT=B,s%=fL0#,5i6ZQ;.2գ+Mo"}D*AoWtr'ka )XI*씜iUNFHJ>yː̙X&2q#O`6Veۘf!q8G}Jݭ#xl&wa6gz #ݞ4@' ybz夤꨹2regqnjySxCAԛ yK pG͘$sS*MZk 49FM| Xt>wBJFWKG'F0侄6)/_~:YKzB'zHRj*F p㓽Wwkq`b$18ϣ"c?2c4';δoɸ3v|&d6Ν}z :YY)JџdòyYb罹-0Q3Ǿ~?\sFsѯŗ4&?X2 CUPT!FiK,rѹ%%R&ᖭaG*d̬ASi%U<ӢMLiPX㯲,%,mލIm2W5-\)3WJ̕1st\)3WJ̕1st\)3WJ̕1st\)3WJ̕1stc*:MCtEXtSoftware@(#)ImageMagick 4.2.7 99/07/01 cristy@mystic.es.dupont.comk*tEXtSignature5463a785bb11d367022701c77ebe81abctEXtPage110x53+0+0EBIENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/index.html0000644000175000017500000000171110057656714014434 sp-gxmlcpp -- Simple C++ Wrapper for Gnome libxml2/libxslt
Main Page   Namespace List   File List   Examples  

sp-gxmlcpp -- Simple C++ Wrapper for Gnome libxml2/libxslt

1.0.20040603


Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/files.html0000644000175000017500000000411510057656714014430 File Index
Main Page   Namespace List   File List   Examples  

sp-gxmlcpp File List

Here is a list of all documented files with brief descriptions:
Util.hpp [code]*ps*
XMLDump.hpp [code]*ps*
XMLException.hpp [code]*ps*
XMLNode.hpp [code]*ps*
XMLNodeSet.hpp [code]*ps*
XMLTree.hpp [code]*ps*
XSLTrans.hpp [code]*ps*

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/UnitTests_8cpp-example.html0000644000175000017500000010577210057656714017666 Example Documentation
Main Page   Namespace List   File List   Examples  

UnitTests.cpp

CPPUnit Tests for this library. Binary should be installed as sp-gxmlcpp-test.

/*
 * (C) Copyright 2002, Schlund+Partner AG
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

// Local configuration
#include "config.h"

// C++ Libraries
#include <cppunit/TestCase.h>
#include <cppunit/TestSuite.h>
#include <cppunit/TestCaller.h>
#include <cppunit/TextTestRunner.h>

#include <sp-gxmlcpp/XMLTree.hpp>
#include <sp-gxmlcpp/XMLDump.hpp>
#include <sp-gxmlcpp/XSLTrans.hpp>
#include <sp-gxmlcpp/XMLNode.hpp>
#include <sp-gxmlcpp/XMLNodeSet.hpp>
#include <sp-gxmlcpp/XMLException.hpp>

namespace SP {
namespace GXML {

//
// XMLTree (&& XMLDump)
//
class TestXMLTreeOld: public CppUnit::TestCase
{
public:
        TestXMLTreeOld()
        {}
        void testRun()
        {
                // ^^ Note: dump will always use " (not ') to quote, so we must do this here too for string compare
                const std::string xmlString(
                        "<?xml version=\"1.0\"?>\n"
                        "<req>\n"
                        " <uid>5</uid>\n"
                        " <home>/home/absurd</home>\n"
                        " <key>AAAABBBBCCCCDDDD</key>\n"
                        "\n"
                        " <a>\n"
                        "   <b>\n"
                        "     <c>Wert1</c>\n"
                        "   </b>\n"
                        "   <b>\n"
                        "     <c> Wert 2</c>\n"
                        "  </b>\n"
                        " </a>\n"
                        "\n"
                        " <X>5</X>\n"
                        "\n"
                        " <int>-42</int>\n"
                        " <int>17</int>\n"
                        " <bool>0</bool>\n"
                        " <string> abc def </string>\n"
                        "\n"
                        " <X>13</X>\n"
                        "\n"
                        "<tags>\n"
                        " <subtag>EINS</subtag>\n"
                        "</tags>\n"
                        "\n"
                        " <tags>\n"
                        "  <subtag>ZWEI</subtag>\n"
                        " </tags>\n"
                        "\n"
                        " <X>17</X>\n"
                        "\n"
                        "</req>\n");

                // ^^ Note: dump will always add a \n to the last line (in a full ("/") dump, that is), so our string should have this too for string compare
                // Note2: It's a bit dumb to literally compare dumps here, as the default way of producing dumps might change... STS

                // Partial Tree && Dump
                XMLTree xmlTree1(xmlString.c_str(), xmlString.size());
                std::string dump1 = XMLDump(&xmlTree1, "/req/tags").get();
                CPPUNIT_ASSERT(dump1 ==
                                                                         "<tags>\n"
                                                                         " <subtag>EINS</subtag>\n"
                                                                         "</tags>");

                // Full Tree && Dump
                XMLTree xmlTree(xmlString.c_str(), xmlString.size());
                std::string dump = XMLDump(&xmlTree, "/").get();
                // STS This does not work anymore with default encoding added in XMLDump
                //CPPUNIT_ASSERT(dump == xmlString);

                // XMLTree methods
                CPPUNIT_ASSERT(xmlTree.getValue("/req/string") == " abc def ");

                CPPUNIT_ASSERT(xmlTree.getCount("/req/int") == 2);
                CPPUNIT_ASSERT(xmlTree.getValue("/req/int") == "-42");
                CPPUNIT_ASSERT(xmlTree.getValue("/req/int[position()=2]") == "17");

                CPPUNIT_ASSERT(xmlTree.getCount("/req/tags/subtag") == 2);
                CPPUNIT_ASSERT(xmlTree.getValue("/req/tags/subtag") == "EINS");

                CPPUNIT_ASSERT(xmlTree.getCount("/req/nonexisting") == 0);
                CPPUNIT_ASSERT(xmlTree.getCount("/nonexisting/tag") == 0);
                CPPUNIT_ASSERT(xmlTree.getValue("/nonexisting/tag") == "");

                xmlTree.delTag("/req/int");
                CPPUNIT_ASSERT(xmlTree.getCount("/req/int") == 1);

                xmlTree.addTag("/req", "newtag", "contents of new tag");
                CPPUNIT_ASSERT(xmlTree.getValue("/req/newtag") == "contents of new tag");
        }
};


// XSLTrans Test
//
class TestXSLTrans : public CppUnit::TestCase
{
public:
        TestXSLTrans()
        {}
        void testRun()
        {
                std::string xmlString(
                        "<?xml version=\"1.0\"?>\n"
                        "<!DOCTYPE guestbook>\n"
                        "\n"
                        "<guestbook>\n"
                        "       <record>\n"
                        "               <name>kurt</name>\n"
                        "               <date>2.3.01</date>\n"
                        "               <text>\n"
                        "               find ich total klasse, koennte aber noch besser sein\n"
                        "               </text>\n"
                        "       </record>\n"
                        "       <record>\n"
                        "               <name>kurt</name>\n"
                        "               <date>2.3.01</date>\n"
                        "               <text>\n"
                        "               find ich total klasse, koennte aber noch besser sein\n"
                        "               </text>\n"
                        "       </record>\n"
                        "</guestbook>\n");

                std::string xslString(
                        "<?xml version=\"1.0\"?>\n"
                        "<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n"
                        "<!-- Basic stylesheet for GUESTBOOK -->\n"
                        "<xsl:output indent=\"yes\" />\n"
                        "<xsl:template match=\"guestbook\">\n"
                        "       <html>\n"
                        "               <head>\n"
                        "                       <title>Gaestebuch</title>\n"
                        "               </head> \n"
                        "               <body bgcolor=\"FFFFFF\">\n"
                        "                       <h1>Mein Gaestebuch</h1>\n"
                        "                       <center>\n"
                        "                       <table cellspacing=\"2\" cellpadding=\"3\" border=\"0\">\n"
                        "                       \n"
                        "                       <xsl:apply-templates/>\n"
                        "                       \n"
                        "                       </table>\n"
                        "                       </center>\n"
                        "               </body>\n"
                        "       </html>\n"
                        "</xsl:template>\n"
                        "\n"
                        "<xsl:template match=\"record\">\n"
                        "       \n"
                        "       <tr> \n"
                        "       <td bgcolor=\"336699\"><font face=\"Arial,helvitica\" size=\"-1\" color=\"FFFFFF\">Name</font></td>\n"
                        "       <td bgcolor=\"336699\"><font face=\"Arial,helvitica\" size=\"-1\" color=\"FFFFFF\"><xsl:value-of select=\"name\"/></font></td>\n"
                        "       </tr>\n"
                        "       <tr>\n"
                        "       <td bgcolor=\"336699\"><font face=\"Arial,helvitica\" size=\"-1\" color=\"FFFFFF\">Datum</font></td>\n"
                        "       <td bgcolor=\"336699\"><font face=\"Arial,helvitica\" size=\"-1\" color=\"FFFFFF\"><xsl:value-of select=\"date\"/></font></td>\n"
                        "       </tr>\n"
                        "       <tr>\n"
                        "       <td bgcolor=\"336699\"><font face=\"Arial,helvitica\" size=\"-1\" color=\"FFFFFF\">Text</font></td>\n"
                        "       <td bgcolor=\"336699\"><font face=\"Arial,helvitica\" size=\"-1\" color=\"FFFFFF\"><xsl:value-of select=\"text\"/></font></td>\n"
                        "       </tr>\n"
                        "       <tr >\n"
                        "       <td colspan=\"2\"><hr height=\"1\"/></td>\n"
                        "       </tr>\n"
                        "       \n"
                        "</xsl:template>\n"
                        "</xsl:stylesheet>\n");

                XMLTree xmlTree(xmlString);
                XSLTrans xslTrans(xslString);

                std::auto_ptr<XMLTree> resultTree = xslTrans.transToXMLTree(xmlTree.getDocPtr());

                CPPUNIT_ASSERT(resultTree.get()->getValue("/html/head/title") == "Gaestebuch");
                CPPUNIT_ASSERT(resultTree.get()->getValue("/html/body/h1") == "Mein Gaestebuch");
                CPPUNIT_ASSERT(resultTree.get()->getCount("/html/body/center/table") == 1);
        }
};


// TestXMLTree
//
class TestXMLTree : public CppUnit::TestCase
{
public:
        TestXMLTree()
                :tree_(NULL)
        {
                // test XMLTree's following functions:
                // getString
                // getBool (XSLT-functions: boolean, false, true, not)
                // getFloat
                // getNodeSet
                // getXML
                // getTree
                xmlTree_ = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
                        "<test>\n"
                        "       <string>StringValue</string>\n"
                        "       <string>\n"
                        "               Also a string value\n"
                        "       </string>\n"
                        "       <boolean>1</boolean>\n"
                        "       <boolean>0</boolean>\n"
                        "       <boolean>-1</boolean>\n"
                        "       <float>3.5</float>\n"
                        "       <float>1.6</float>\n"
                        "       <float>-123.2</float>\n"
                        "</test>";
                tree_ = new XMLTree( xmlTree_.c_str() );
        }

        ~TestXMLTree()
        {
                delete tree_;
        }
        void testRun()
        {
                CPPUNIT_ASSERT( tree_ );

                testGetString();
                testGetBool();
                testGetFloat();
                testGetNodeSet();
                testGetXML();
                testGetTree();
        }

        void testGetString()
        {
                // test getString
                // string( xpath ) returns content of first xpath-node
                // string( invalid_xpath ) returns ""
                CPPUNIT_ASSERT( tree_->getString( "string( /test/string )" ) == "StringValue" );
                CPPUNIT_ASSERT( tree_->getString( "string( /test/string[position() = 2] )" ) == "\n\t\tAlso a string value\n\t" );
                CPPUNIT_ASSERT( tree_->getString( "string( /test/something )" ) == "" );
                try {
                        // xpath won't return a string
                        tree_->getString( "/test/string" );
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( GXML::XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_STRING_FROM_PATH );
                }
                try {
                        // xpath won't return a string
                        tree_->getString( "/test/something" );
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_STRING_FROM_PATH );
                }
        }

        void testGetBool()
        {
                // test getBool
                // 0 = false else true, "" = false else true
                CPPUNIT_ASSERT( tree_->getBool( "boolean( number( /test/boolean ) )" ) );
                CPPUNIT_ASSERT( ! tree_->getBool( "boolean( number( /test/boolean[position() = 2] ) )" ) );
                CPPUNIT_ASSERT( tree_->getBool( "boolean( number( /test/boolean[position() = 3] ) )" ) );
                CPPUNIT_ASSERT( tree_->getBool( "true()" ) );
                CPPUNIT_ASSERT( ! tree_->getBool( "false()" ) );
                CPPUNIT_ASSERT( tree_->getBool( "not( /test/something )" ) );
                CPPUNIT_ASSERT( ! tree_->getBool( "not( /test/string )" ) );
                CPPUNIT_ASSERT( tree_->getBool( "boolean( /test/string )" ) );
                CPPUNIT_ASSERT( ! tree_->getBool( "boolean( /test/something )" ) );
                CPPUNIT_ASSERT( tree_->getBool( "boolean( 'anything' )" ) );
                CPPUNIT_ASSERT( ! tree_->getBool( "boolean( '' )" ) );
                try {
                        // xpath won't return a boolean
                        tree_->getBool( "/test/string" );
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_BOOL_FROM_PATH );
                }
        }

        void testGetFloat()
        {
                // test getFloat
                CPPUNIT_ASSERT_DOUBLES_EQUAL( double(-118.1), tree_->getFloat( "sum( /test/float )" ), 1E-10 );
                CPPUNIT_ASSERT_DOUBLES_EQUAL( double(-123.2), tree_->getFloat( "number( /test/float[position() = 3 ])" ), 1E-10 );
                CPPUNIT_ASSERT( tree_->getFloat( "count( /test/boolean )" ) == 3 );
                try {
                        // xpath won't return a number
                        tree_->getFloat( "/test/string" );
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_FLOAT_FROM_PATH );
                }
        }

        void testGetNodeSet()
        {
                std::auto_ptr<XMLNodeSet> set = tree_->getNodeSet( "/test/*" );
                CPPUNIT_ASSERT( set->size() == 8 );
                try {
                        // xpath will return an empty set
                        std::auto_ptr<XMLNodeSet> set = tree_->getNodeSet( "/something" );
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODESET_NO_MATCH );
                }
                try {
                        // xpath won't return a set
                        std::auto_ptr<XMLNodeSet> set = tree_->getNodeSet( "true()" );
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODESET_NO_SET );
                }
        }

        void testGetXML()
        {
                CPPUNIT_ASSERT( xmlTree_+"\n" == tree_->getXML( "/" ) );
        }
        void testGetTree()
        {
                CPPUNIT_ASSERT( tree_->getXML() == tree_->getTree()->getXML() );
        }
private:
        std::string xmlTree_;
        XMLTree *tree_;
};


// TestXMLNode
//
class TestXMLNode : public CppUnit::TestCase
{
public:
        TestXMLNode()
        {
                // test XMLNode's following functions:
                // getNext
                // getPrev
                // getParent
                // getLast
                // getChild
                // getName
                // getContent
                // getAttribute( name )
                xmlTree_ = "<?xml version=\"1.0\"?>\n"
                        "<test><node>node1</node><node name=\"node2\">node2<child>child of node 2</child></node><node>last node</node></test>";
                tree_ = new XMLTree( xmlTree_.c_str() );
        }
        void testRun()
        {
                XMLNode node1 = XMLNode();
                XMLNode node2 = XMLNode();
                XMLNode node3 = XMLNode();
                std::auto_ptr<XMLNodeSet> set = tree_->getNodeSet( "/test/node" );
                for ( XMLNodeSet::Iterator iter = set->begin(); iter != set->end(); ++iter )
                {
                        switch ( iter.getPosition() )
                        {
                        case 0: node1 = *iter;
                                break;
                        case 1: node2 = *iter;
                                break;
                        case 2: node3 = *iter;
                                break;
                        default: CPPUNIT_ASSERT( false ); //should never get here.
                        }
                }

                CPPUNIT_ASSERT( node1.getName() == "node" );
                CPPUNIT_ASSERT( node1.getContent() == "node1" );
                CPPUNIT_ASSERT( node1.getNext().getContent() == node2.getContent() );
                //      CPPUNIT_ASSERT( node1.getLast().getContent() == node3.getContent() );

                CPPUNIT_ASSERT( node2.getContent() == "node2" );
                CPPUNIT_ASSERT( node2.getNext().getContent() == node3.getContent() );
                CPPUNIT_ASSERT( node2.getAttribute( "name" ) == "node2" );
                // first child of node2 is its content text-node, therefore take child->next
                CPPUNIT_ASSERT( node2.getChild().getNext().getContent() == "child of node 2" );

                CPPUNIT_ASSERT( node3.getPrev().getContent() == node2.getContent() );
                CPPUNIT_ASSERT( node3.getParent().getName() == node2.getParent().getName() );
                CPPUNIT_ASSERT( node3.getParent().getChild().getContent() == node1.getContent() );
                CPPUNIT_ASSERT( node3.getParent().getLast().getContent() == node3.getContent() );

                // first child of node with content is a text-node
                CPPUNIT_ASSERT( node3.getChild().getName() == "text" );

                // test for exceptions
                try {
                        node3 = node3.getNext();
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_LAST_NODE );
                }
                try {
                        node1 = node1.getPrev();
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_FIRST_NODE );
                }
                try {
                        // parent of parent is document node, which has no parent
                        node1 = node1.getParent().getParent().getParent();
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_NO_PARENT );
                }
                try {
                        node1 = node1.getPrev();
                        CPPUNIT_ASSERT( ! "Exception expected!!!" );
                } catch ( XMLException & e ) {
                        CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_FIRST_NODE );
                }
        }

private:
        std::string xmlTree_;
        XMLTree *tree_;
};


// XMLNodeSet Test
//
class TestXMLNodeSet : public CppUnit::TestCase
{
public:
        TestXMLNodeSet()
        {};
        void testRun()
        {}
};

// Master Class for all tests
//
class UnitTests: public CppUnit::TestSuite
{
public:
        UnitTests()
        {
                addTest(new CppUnit::TestCaller<TestXMLTreeOld>("Testing XMLTree (old)", &TestXMLTreeOld::testRun));
                addTest(new CppUnit::TestCaller<TestXMLTree>   ("Testing XMLTree",       &TestXMLTree::testRun));
                addTest(new CppUnit::TestCaller<TestXSLTrans>  ("Testing XSLTrans",      &TestXSLTrans::testRun));
                addTest(new CppUnit::TestCaller<TestXMLNode>   ("Testing XMLNode",       &TestXMLNode::testRun));
                addTest(new CppUnit::TestCaller<TestXMLNodeSet>("Testing XMLNodeSet",    &TestXMLNodeSet::testRun));
        }
};

}}

// create binary that tests the XML* stuff
int
main(int argc, char **argv)
{
        CppUnit::TextTestRunner runner;
        // This must be an object, and must be created with new, as it is deleted by runner (this is braindead, but well).
        SP::GXML::UnitTests * unitTests = new SP::GXML::UnitTests();
        runner.addTest(unitTests);
        if (runner.run())
                return(0);
        else
                return(1);
}

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XSLTProc_8cpp-example.html0000644000175000017500000000525310057656714017333 Example Documentation
Main Page   Namespace List   File List   Examples  

XSLTProc.cpp

XSLTProc program; a simple clone of libxslt's xsltproc. Binary should be installed as sp-gxmlcpp-xsltproc.

// $Id: XSLTProc.cpp,v 1.4 2003/01/30 12:38:31 spabsurd Exp $

// STDC++
#include <iostream>
#include <cassert>

// C libraries
#include <libexslt/exslt.h>  // Needed to enable exslt

// Local
#include <sp-gxmlcpp/XMLTree.hpp>
#include <sp-gxmlcpp/XMLDump.hpp>
#include <sp-gxmlcpp/XSLTrans.hpp>

int main(int argc, char** argv)
{
        // Support for exslt
        exsltRegisterAll();

        if (argc < 3)
        {
                std::cerr << "Usage: " << argv[0] << " XSL-FILE XML-FILE" << std::endl;
                exit(1);
        }

        std::ifstream xslFile(argv[1], std::ios::in);
        assert(xslFile.is_open());
        std::ifstream xmlFile(argv[2], std::ios::in);
        assert(xmlFile.is_open());

        SP::GXML::XSLTrans trans(xslFile);
        SP::GXML::XMLTree tree(xmlFile);

        std::auto_ptr<SP::GXML::XMLDump> dump(trans.trans(&tree));
        std::cout << dump.get()->get() << std::flush;
}

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/Util_8hpp-source.html0000644000175000017500000000725710057656714016512 Util.hpp Source File
Main Page   Namespace List   File List   Examples  

Util.hpp

Go to the documentation of this file.
00001 /*
00002  * (C) Copyright 2002, Schlund+Partner AG
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 */
00018 
00031 #ifndef SP_GXML_UTIL_HPP
00032 #define SP_GXML_UTIL_HPP
00033 
00034 // STDC++
00035 #include <string>
00036 #include <fstream>
00037 
00038 namespace SP
00039 {
00040 namespace GXML
00041 {
00042 
00043 //
00044 // istream to string conversion
00045 //
00046 inline std::string istream2String( std::istream & f)
00047 {
00048         std::string result;
00049         const int buflen(1024);
00050         char buffer[buflen];
00051 
00052         while (!f.eof())
00053         {
00054                 f.read(buffer, buflen);
00055                 result.append(buffer, f.gcount());
00056         }
00057         return(result);
00058 }
00059 
00060 }}
00061 #endif

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLDump_8hpp-source.html0000644000175000017500000001564210057656714017060 XMLDump.hpp Source File
Main Page   Namespace List   File List   Examples  

XMLDump.hpp

Go to the documentation of this file.
00001 /*
00002  * (C) Copyright 2002, Schlund+Partner AG
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 */
00018 
00033 #ifndef SP_GXML_XMLDUMP_HPP
00034 #define SP_GXML_XMLDUMP_HPP
00035 
00036 // STDC++
00037 #include <string>
00038 
00039 // C libraries
00040 #include <libxslt/xsltInternals.h>
00041 #include <libxml/parser.h>
00042 #include <libxml/xpath.h>
00043 #include <libxml/tree.h>
00044 #include <libxslt/transform.h>
00045 #include <libxslt/xsltutils.h>
00046 #include <libxslt/imports.h>
00047 
00048 // Local
00049 #include <sp-gxmlcpp/Util.hpp>
00050 #include <sp-gxmlcpp/XMLTree.hpp>
00051 
00052 namespace SP
00053 {
00054 namespace GXML
00055 {
00056 
00057 // toDo
00058 class XSLTOutputBuf
00059 {
00060 public:
00061         enum Exceptions
00062         {
00063                 MEM_ERR,             // Mem Error
00064                 RESULT_INVALID,      // Result Doc invalid (0 or no children)
00065                 STYLE_INVALID        // Style invalid (0)
00066         };
00067 
00068         XSLTOutputBuf(xmlDocPtr result, xsltStylesheetPtr style);
00069         ~XSLTOutputBuf();
00070         char * getAddr() const;
00071         int getSize() const;
00072 
00073 private:
00074         xmlCharEncodingHandlerPtr encoder_;
00075         xmlOutputBufferPtr buf_;
00076 };
00077 
00078 class XMLDump
00079 {
00080 public:
00081         enum Exceptions
00082         {
00083                 MEM_ERR,             // XML could not be parsed
00084                 NODE_NOT_FOUND_ERR   // Node could not be found from path
00085         };
00086 
00087         XMLDump(const xmlDocPtr doc, const xmlXPathContextPtr ctxt, const std::string & path="/");
00088         XMLDump(const XMLTree * tree, const std::string & path="/");
00089         XMLDump(const xmlDocPtr doc);
00090         // toDo
00091         XMLDump(const XSLTOutputBuf * buf);
00092 
00093         ~XMLDump();
00094 
00095         char * getAddr() const;
00096         std::string get() const;
00097         int getSize() const;
00098 
00099 private:
00100         xmlBufferPtr nodeDump_;           // This is used to dump XML from some path other than "/"
00101         std::pair<xmlChar *, int> docDump_;    // This is used to dump the whole XML document (path = "/").
00102         // toDo
00103         XSLTOutputBuf * xsltDump_;        // This is used when dumping was actually done outside. Currently only for XSL Transformations.
00104 
00105         // genDump: Master Create Dump Function. Must be used in Constructors only
00106         void genDump(const xmlDocPtr doc, const xmlXPathContextPtr ctxt, const std::string & path);
00107 
00108         static char * nullString_;
00109 };
00110 
00111 }}
00112 #endif

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLException_8hpp-source.html0000644000175000017500000001303510057656714020103 XMLException.hpp Source File
Main Page   Namespace List   File List   Examples  

XMLException.hpp

Go to the documentation of this file.
00001 /*
00002  * (C) Copyright 2002, Schlund+Partner AG
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 */
00018 
00031 #ifndef SP_GXML_XMLEXCEPTION_HPP
00032 #define SP_GXML_XMLEXCEPTION_HPP
00033 
00034 // STDC++
00035 #include <string>
00036 
00037 namespace SP
00038 {
00039 namespace GXML
00040 {
00041 
00042 class XMLException
00043 {
00044 public:
00045         XMLException( int exception );
00046         int getException();
00047         std::string getMessage();
00048 
00049         enum Exceptions {
00050                 XMLTREE_PARSE=1,                // Error parsing XML tree
00051                 XMLTREE_CREATE_CONTEXT, // Could not create XPath context
00052                 XMLTREE_CREATE_NODE,            // Could not create node
00053                 XMLTREE_ADD_NODE,               // Could not add node
00054                 XMLTREE_TREE_INVALID,           // Invalid XML tree
00055                 XMLTREE_NO_NODE_FROM_PATH,      // Path matches no node
00056                 XMLTREE_NO_STRING_FROM_PATH,    // Path returns no string
00057                 XMLTREE_NO_BOOL_FROM_PATH,      // Path returns no boolean
00058                 XMLTREE_NO_FLOAT_FROM_PATH,     // Path returns no float
00059                 XMLNODE_NO_NODE,                // Node pointer is NULL
00060                 XMLNODE_LAST_NODE,              // Node has no following sibling
00061                 XMLNODE_FIRST_NODE,             // Node has no preceding sibling
00062                 XMLNODE_NO_PARENT,              // Node has no parent node
00063                 XMLNODE_NO_CHILD,               // Node has no child node
00064                 XMLNODE_NO_CONTENT,             // Node contains no text
00065                 XMLNODE_NO_ATTRIBUTE,           // Node has no attributes
00066                 XMLNODE_BUFFER_CREATE,  // Could not create XML buffer
00067                 XMLNODE_NODE_DUMP,              // Could not dump the node
00068                 XMLNODESET_EVAL,                // Could not evaluate XPath
00069                 XMLNODESET_NO_SET,              // XPath delivers no node set
00070                 XMLNODESET_NO_MATCH             // XPath doesn't exist
00071         };
00072 
00073 private:
00074         int exception_;
00075 };
00076 
00077 }}
00078 #endif

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLNode_8hpp-source.html0000644000175000017500000001507710057656714017042 XMLNode.hpp Source File
Main Page   Namespace List   File List   Examples  

XMLNode.hpp

Go to the documentation of this file.
00001 /*
00002  * (C) Copyright 2002, Schlund+Partner AG
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 */
00018 
00031 #ifndef SP_GXML_XMLNODE_HPP
00032 #define SP_GXML_XMLNODE_HPP
00033 
00034 // STDC++
00035 #include <string>
00036 
00037 // C libraries
00038 #include <libxslt/xsltInternals.h>
00039 #include <libxml/xpath.h>
00040 #include <libxml/tree.h>
00041 
00042 namespace SP {
00043 namespace GXML {
00044 
00045 class XMLNode
00046 {
00047 public:
00048         XMLNode();
00049         XMLNode( const xmlNodePtr node );
00050         ~XMLNode();
00051 
00052         enum Exceptions
00053         {
00054                 NO_NODE=1,        // NodePtr is NULL
00055                 LAST_NODE,        // node has no following sibling
00056                 FIRST_NODE,       // node has no preceding sibling
00057                 DOC_NODE,         // node is document node (has no parent)
00058                 NO_CHILD,         // node has no children
00059                 NO_CONTENT,       // node has no content (no child text-node)
00060                 NO_ATTRIBUTES,    // node has no attributes
00061                 NO_VALUE          // attribute has no value (should never happen)
00062         };
00063         // XMLTree getDoc(); makes no sense till there is a doc-object
00065         // hint:
00066         // EVERY group of spcaes or characters is contained within a invisible
00067         // text-node.
00068         // i.e. <node/>  <node/> expands to <node/><text>  </text><node/>
00069         // return next node in order (every space between tags is a text node!)
00070         // throws LAST_NODE if no following sibling exists
00071         XMLNode getNext();
00072         // return previous node in order
00073         // throws FIRST_NODE if no preceding sibling exists
00074         XMLNode getPrev();
00075         // return parent of current node
00076         // throws DOC_NODE if no parent exists
00077         XMLNode getParent();
00078         // return first child of node (text-node if node has content)
00079         // throws
00080         XMLNode getChild();
00081         // return last child of node
00082         XMLNode getLast();
00083 
00084         // return node type (i.e. XML_ELEMENT_NODE, XML_ATTRIBUTE_NODE,
00085         // XML_TEXT_NODE, ... )
00086         int getType();
00087         // return name of node-tag
00088         std::string getName();
00089         // return content of node (which is the content of the first child text-node)
00090         std::string getContent();
00091         // return attribute value by name
00092         std::string getAttribute( const std::string& name );
00093         // XMLAttributeSet getAttributeSet( XMLNode* node );
00094 
00095         // returns XML subtree of node
00096         std::string getNodeDump();
00097 
00098         xmlNodePtr getNodePtr();
00099 
00100 private:
00101         xmlNodePtr node_;
00102 };
00103 
00104 }}
00105 #endif

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLNodeSet_8hpp-source.html0000644000175000017500000001135710057656714017513 XMLNodeSet.hpp Source File
Main Page   Namespace List   File List   Examples  

XMLNodeSet.hpp

Go to the documentation of this file.
00001 /*
00002  * (C) Copyright 2002, Schlund+Partner AG
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 */
00018 
00031 #ifndef SP_GXML_XMLNODESET_HPP
00032 #define SP_GXML_XMLNODESET_HPP
00033 
00034 // C libraries
00035 #include <libxslt/xsltInternals.h>
00036 #include <libxml/xpath.h>
00037 #include <libxml/tree.h>
00038 
00039 // Local
00040 #include <sp-gxmlcpp/XMLNode.hpp>
00041 #include <sp-gxmlcpp/XMLException.hpp>
00042 
00043 namespace SP
00044 {
00045 namespace GXML
00046 {
00047 
00048 // forward declarations
00049 class XMLTree;
00050 
00051 class XMLNodeSet
00052 {
00053 public:
00054         XMLNodeSet( const std::string& xpath, const XMLTree* tree );
00055         ~XMLNodeSet();
00056 
00057         class Iterator
00058         {
00059         public:
00060                 Iterator();
00061                 Iterator( const xmlNodeSetPtr set );
00062                 ~Iterator();
00063                 Iterator operator ++();
00064                 bool operator !=( const Iterator& iter);
00065                 XMLNode operator *();
00066                 int getPosition();
00067 
00068         private:
00069                 int pos_;
00070                 xmlNodeSetPtr set_;
00071         };
00072 
00073         int size();
00074         Iterator begin();
00075         Iterator end();
00076         //Iterator rbegin();
00077         //Iterator rend();
00078 
00079 private:
00080         xmlXPathObjectPtr xPathObj_;
00081 };
00082 
00083 }}
00084 #endif

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLTree_8hpp-source.html0000644000175000017500000003225710057656714017053 XMLTree.hpp Source File
Main Page   Namespace List   File List   Examples  

XMLTree.hpp

Go to the documentation of this file.
00001 /*
00002  * (C) Copyright 2002, Schlund+Partner AG
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 */
00018 
00019 #ifndef SP_GXML_XMLTREE_HPP
00020 #define SP_GXML_XMLTREE_HPP
00021 
00034 // STDC++
00035 #include <string>
00036 #include <memory>
00037 #include <fstream>
00038 
00039 // Local
00040 #include <sp-gxmlcpp/XMLNodeSet.hpp>
00041 #include <sp-gxmlcpp/XMLException.hpp>
00042 
00043 
00044 /* NOTES
00045    o xmlChar is one byte.
00046    o "xmlChar" is compatible to "char"; xmlChar * Strings are always 0-terminated; (xmlChar *) is compatible to (char *)/string.c_str()
00047    o Simply using char *, string makes us still compatible with: UTF-8, ASCII, ISO-8859-*, ... (basically, all "up-to-8-Bits-Encodings").
00048    o UCS-2/UCS-4 encodings might be a problem.
00049 
00050    UNICODE  ISO 10646    All characters of the planet listed and labeled....
00051 
00052    UCS-2: 16-Bit Encoding of UNICODE.
00053    UCS-4: 32-Bit Encoding of UNICODE.
00054    UTF-8: 8-Bit Encoding of UNICODE. All todays ISO-8859-1 texts qualify as UTF-8. This is what UNIXses will do.
00055 */
00056 
00057 namespace SP
00058 {
00059 namespace GXML
00060 {
00061 
00062 //
00063 // XMLTree
00064 //
00065 class XMLTree
00066 {
00067         /* enum Exceptions
00068                  {
00069                  PARSE_ERR=1,           // XML could not be parsed
00070                  CONTEXT_ERR,           // Could not create (XPath) context for Tree
00071                  NO_NODE_FROM_PATH_ERR, // Could not find node from specified path
00072                  NODE_CREATION_ERR,     // Could not create a node
00073                  NODE_ADDING_ERR,       // Could not add a creted node
00074                  TREE_INVALID_ERR       // Could not add a creted node
00075                  }; */
00076 public:
00077         // Creators for char-Buffer, C++ string, ifstream
00078         XMLTree(const xmlDocPtr doc);
00079         XMLTree(const char * xmlBuffer, int size=-1);  // if size < 0, xmlBuffer must be a valid C-String!
00080         XMLTree(const std::string & xmlString);
00081         XMLTree(std::ifstream & xmlStream);
00082         XMLTree(std::istream & xmlStream);
00083 
00084         ~XMLTree();
00085 
00086         std::string getString( const std::string& xpath );
00087         bool getBool( const std::string& xpath );
00088         double getFloat( const std::string& xpath );
00089 
00090         // REMARK : the returned XMLNodeSet has to be freed by the calling method
00091         std::auto_ptr<XMLNodeSet> getNodeSet( const std::string& xpath );
00092 
00094         // Get internal libxml2 Pointers
00095         //  - this will allow us to call libxml2-Functions on the tree directly.
00096         //    (i.e., helling the abstraction for speed)
00097         xmlDocPtr getDocPtr() const;
00098         xmlXPathContextPtr getXPathContextPtr() const;
00099 
00101         // "Get Methods" based on "XPath"; paths are XPath Expressions;
00102         // all paths can be given an optional position
00103         //  - Methods delivering (xmlChar *) point into the tree
00104         //  - Methods delivering (std::string, int) obviously copy from tree
00105         //  - getValue-Methods will deliver the contents of the first child only
00106         //    e.g.: getValue("/req/X", 0) on
00107         // "<req><X>a b c<subtag>def</subtag></X></req>" returns: "a b c" only.
00108 
00109         // "libxml2"-Functions. Do not use if you want to be abstract.
00110         xmlChar * getXmlCharValue(const xmlChar * path) const;
00111         xmlChar * getXmlCharValue(const std::string & path) const;
00112 
00113         // "C++"-functions
00114         char * getAddrValue(const std::string & path) const;
00115         std::string getValue(const std::string & path) const;
00116 
00117         char * getAddrName(const std::string & path) const;
00118         std::string getName(const std::string & path) const;
00119 
00120         void setValue(const std::string & path, char * value);
00121         void setValue(const std::string & path, const std::string & value);
00122 
00123         /* Obsoleted by XMLDump
00124         // getTreeAsString=recursive: This gets the complete contents of the tag
00125         //  e.g.: getTreeAsString("/req/X", 0) on "<req><X>a b c<subtag>def</subtag>
00126         // </X></req>" returns: "<X>a b c<subtag>def</subtag></X>".
00127         std::string getTreeAsString(const std::string & path) const;
00128         */
00129 
00130         int getCount(const xmlChar * path) const;
00131         int getCount(const char * path) const;
00132         int getCount(const std::string & path) const;
00133 
00135         // "Modifying Methods" based on "XPath"; paths are XPath Expressions
00136         //  - Methods delivering (xmlChar *) point into the tree
00137         //  - Methods delivering (std::string, int) copy from tree
00138         void delTag(const std::string & path);
00139         void addTag(const std::string & path, const std::string & name, const std::string & content);
00140 
00148         void addSiblingTag(const std::string & path, const std::string & name, const std::string & content);
00149 
00157         std::string getSiblingXML( const std::string& path = "/*" );
00158 
00159         // addTree: Adds the whole tree as new child for node
00160         // This will COPY. No other method available from libxml2. We cannot mix trees.
00161         void addTree(const std::string & path, XMLTree * xmlTree);
00162         void addXML(const std::string & path, const std::string & xml);
00163 
00164         std::string getXML(const std::string & path="/") const;
00165 
00166         std::auto_ptr<XMLTree> getTree(const std::string &path="/");
00167 
00169         // Utility functions
00170         //
00171         // Node from Path
00172         static xmlNodePtr nodeFromPath(xmlXPathContextPtr context, const xmlChar * path);
00173         // Node from Path
00174         static xmlNodePtr nodeFromPath(xmlXPathContextPtr context, const std::string & path);
00175 
00176 private:
00177         xmlDocPtr tree_;
00178         xmlXPathContextPtr context_;
00179 
00180         // Constructor helper function
00181         void genTree(const char * xmlBuffer, int size=-1);
00182 
00183         xmlXPathObjectPtr createXPathObject( const std::string& xpath );
00184         void destroyXPathObject( xmlXPathObjectPtr obj );
00185 };
00186 
00187 }}
00188 #endif

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XSLTrans_8hpp-source.html0000644000175000017500000001325310057656714017244 XSLTrans.hpp Source File
Main Page   Namespace List   File List   Examples  

XSLTrans.hpp

Go to the documentation of this file.
00001 /*
00002  * (C) Copyright 2002-2003, Schlund+Partner AG
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 */
00018 
00031 #ifndef SP_GXML_XSLTRANS_HPP
00032 #define SP_GXML_XSLTRANS_HPP
00033 
00034 // STDC++
00035 #include <string>
00036 
00037 // C++ Libraries
00038 #include <sp-gxmlcpp/XMLDump.hpp>
00039 #include <sp-gxmlcpp/XMLTree.hpp>
00040 
00041 // C libraries
00042 #include <libxml/xpath.h>
00043 #include <libxml/tree.h>
00044 #include <libxslt/xsltInternals.h>
00045 
00046 namespace SP {
00047 namespace GXML {
00048 
00049 class XSLTrans
00050 {
00051 public:
00052         enum Exceptions
00053         {
00054                 PARSE_ERR=1,  // Stylesheet not parsed (not well formed XML)
00055                 STYLE_ERR,    // Not a valid stylesheet
00056                 TRANS_ERR     // Transforming error
00057         };
00058 
00059         XSLTrans(const char * xmlBuffer, int size=-1, const std::string & baseURI="");
00060         XSLTrans(const std::string & xmlString, const std::string & baseURI="");
00061         XSLTrans(std::ifstream & f, const std::string & baseURI="");
00062 
00063         ~XSLTrans();
00064 
00065         xsltStylesheetPtr getStylesheetPtr();
00066 
00067         // Trans into XMLTree
00068         std::auto_ptr<XMLTree> transToXMLTree(const xmlDocPtr doc) const;
00069 
00070         std::auto_ptr<XMLDump> trans(const xmlDocPtr doc) const;
00071         std::auto_ptr<XMLDump> trans(const XMLTree * xmlTree) const;
00072         std::auto_ptr<XMLDump> trans(const std::string & xmlString) const;
00073 
00074 private:
00075         xmlDocPtr doc_;
00076         xsltStylesheetPtr style_;
00077 
00078         void genTrans(const char * xmlBuffer, int size=-1, const std::string & baseURI="");
00079 
00080         static char * defaultEncoding_;
00081 };
00082 
00083 }}
00084 #endif

Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/Util_8hpp.html0000644000175000017500000000460010057656714015201 Util.hpp File Reference
Main Page   Namespace List   File List   Examples  

Util.hpp File Reference

*ps*. More...

#include <string>
#include <fstream>

Include dependency graph for Util.hpp:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Namespaces

namespace  SP
namespace  SP::GXML


Detailed Description

*ps*.

Version:
$Id: Util.hpp,v 1.7 2002/12/19 15:16:45 spabsurd Exp $
Author:
Schlund + Partner AG

(C) Copyright by Schlund+Partner AG

Synopsis: #include <sp-gxmlcpp/Util.hpp>


Generated on Thu Jun 3 19:20:12 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLDump_8hpp.html0000644000175000017500000000604110057656715015554 XMLDump.hpp File Reference
Main Page   Namespace List   File List   Examples  

XMLDump.hpp File Reference

*ps*. More...

#include <string>
#include <libxslt/xsltInternals.h>
#include <libxml/parser.h>
#include <libxml/xpath.h>
#include <libxml/tree.h>
#include <libxslt/transform.h>
#include <libxslt/xsltutils.h>
#include <libxslt/imports.h>
#include <sp-gxmlcpp/Util.hpp>
#include <sp-gxmlcpp/XMLTree.hpp>

Include dependency graph for XMLDump.hpp:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Namespaces

namespace  SP
namespace  SP::GXML


Detailed Description

*ps*.

Version:
$Id: XMLDump.hpp,v 1.7 2002/12/19 15:16:45 spabsurd Exp $
Author:
Schlund + Partner AG

(C) Copyright by Schlund+Partner AG

Synopsis: #include <sp-gxmlcpp/XMLDump.hpp>

Serializing XML Trees.


Generated on Thu Jun 3 19:20:13 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/Util_8hpp__incl.png0000644000175000017500000000132010057656714016161 PNG  IHDRvkwS!PLTEo___???HUtRNS7]IDATxOO0pW^  Gxȸ#pmIOi7V:hS W& wmJJumK>b9NY-݅b=Z AjYH!yM!gS'gqB&MvZkjˋYvpϋ$~[wIS^SA{baOW7oZWR9*&B!&ފEBz[ >_/[X^)+"ߣ+ ,aW{uglߙ%*>B$dXoUQE㣀%VY˂ A<Y`b2 h3'VYۂ+A-x 4 o|L` v bEbޏ7oO?0+ʕgD S+P{9L%馴Y]!]+kVZUZi}RMJ#mIENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLException_8hpp.html0000644000175000017500000000514110057656715016605 XMLException.hpp File Reference
Main Page   Namespace List   File List   Examples  

XMLException.hpp File Reference

*ps*. More...

#include <string>

Include dependency graph for XMLException.hpp:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Namespaces

namespace  SP
namespace  SP::GXML


Detailed Description

*ps*.

Version:
$Id: XMLException.hpp,v 1.6 2002/12/19 15:16:45 spabsurd Exp $
Author:
Schlund + Partner AG

(C) Copyright by Schlund+Partner AG

Synopsis: #include <sp-gxmlcpp/XMLException.hpp>


Generated on Thu Jun 3 19:20:13 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/Util_8hpp__dep__incl.png0000644000175000017500000000143610057656714017160 PNG  IHDRo!PLTEo___???HUtRNS7IDATxn@B}4$P"*|D>0S&x);!^ʎf;<^l 38q9#-0x)dTVX[VPS±>ò M_RX6pdwL ue NOa$Qla7Q@ $@ $P<$4! ! «?KNBZAax&lx(0 *[oAb,D% [AS=-IJyh2&*Id+]\-\cWp$[A~VCAj$[Alu(qiˎՀ X7.'ZAl5;/ !kCNDd&o*S.u $@ $@r҇ɃN;Q'G{?$I> L 2נ2 9HqE0^( jh9̝`3NgP (`rU&d$@?b=IENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLDump_8hpp__incl.png0000644000175000017500000001240210057656715016536 PNG  IHDR1$PLTEo___???}٭tRNS7IDATxKw6:v͜q'Zx$8婵$&>ɮ,\E Xӽ)ϋoWa~-fl%bvɶ]-fl%bvɶ]-fl%bvɶld \bЪ?7GIߒ:TH6JjSO@bjw04D6K&-mV0M{V5)N1Ş- ӁSy.ϡ1gCIl*q6tJzhG 0^n;tJz|'GtǨI>e׮$TĀybZp<1SjzܨanzzT橂ّcjckR/ߚZv?"f˃ _Lv6XL Ӫ;ŴN.氰a}z*l9F?``֎1/ĘY9_'IӒ;1I>$ N0S"fs;w HGI$q)29Uuq9)i6=gw$6ܩ~GMXz7]3ǴNݻՎ+%N@A53^Eif'W}59[x\S6Swi]\NX1ͥpF~_$23O.X^Ɖ;mFOւ6O ˙p&LbJl0O[rD;Mf~}òUBQ,&cĬUF3a<%_N1 pb2"`ee\g}Qk0cde([cVYzY vgClkV3=oo.`-mWd>1tx ʘ\9Dx|BۈM܅ʼn>1jw$Prb^C,_.WÙm8-wADf++TETvc vX􉉽w1bB0zbqcVembAvdeyk s b5^mwj50uAdS(N騾ȝSq)'v S`\䇝AN*)V7El*o/gk &Tڂewj5h _L2-(|2g'[N1rGTm1 6\B XJ!71xja:ldϫ7-6Yװ|m2۝ qJɌ̿yl<+&,mKy &+q$ojhByջ lL< fwgl:7R؎P1Ϙ; n=}(L`1r&7|1&nm`8 ﮇ$D_O.PLXLsKZEiĬ#o/| ?ۋp')@D]̝b;`u4wYi2򢇙Q'RrpArz@%_T$eE 3O+.(vFT*\:'[gޜ_3L,Sz5¬ M5N'ѳäR]#%&{i{bef1>`/x U"e[)`IU^S,_ h])3SZMAU}jYrfG:Gi=: .^̆^Lnc Sޡd1&QY3gwz6l)10.aŗF1fC¡ă)ip0n3{zvh8f=l=b%c'&I ҚM`l qzl8ӷMSytzl8fԜYdcډYCXLĦ\13KδY8㬰(W{@.&,`p1( (:WqglDl!\Dp2SoNѺ(~T&rFfN׀LɒL9u7M*jKrff$hH"6:fL֍;qXf ~DDlopt^,!(f>h\xs ϳ `ld݈fn~jcs6F[ H"6:fLᶩyDĶ;xDlt͘{^1EmI鷑{+6`1N4Θ 3K5H"epVb6{(EqJ&&f)Y;]q&"fރ̋I,lfdf,̱u099-XhE0[1fQg͙aZ0K\b6,LIVfYpM̊^̆IVt K8!-lXWۂLD*na4m6c?P,fZ,6c.~dVS\+1rQV £\7'13?&:ȕ!`uo7.o`pүEītUrO%^c &}s3 +1W0˫3\^ rEAc֕7xXݨyuO DcX>ƴlb6ʶbrl3m2c;"f>ػ4aYΆNVcl'1^fg1k5fIH (%, Yf̒4aٛ>$kیY̛%1[&ڏY,a#^fLUUS۶42$6a_ lhNIENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLNode_8hpp.html0000644000175000017500000000527210057656715015541 XMLNode.hpp File Reference
Main Page   Namespace List   File List   Examples  

XMLNode.hpp File Reference

*ps*. More...

#include <string>
#include <libxslt/xsltInternals.h>
#include <libxml/xpath.h>
#include <libxml/tree.h>

Include dependency graph for XMLNode.hpp:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Namespaces

namespace  SP
namespace  SP::GXML


Detailed Description

*ps*.

Version:
$Id: XMLNode.hpp,v 1.9.2.1 2003/04/22 15:24:39 spabsurd Exp $
Author:
Schlund + Partner AG

(C) Copyright by Schlund+Partner AG

Synopsis: #include <sp-gxmlcpp/XMLNode.hpp>


Generated on Thu Jun 3 19:20:13 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLDump_8hpp__dep__incl.png0000644000175000017500000000123610057656715017530 PNG  IHDRv!PLTEo___???KptRNS7+IDATxn@B=jH昨 >6>V8؞=53OCH*RJ#ͬ׃q:0–㾰W!CԄfk6*mtdqoSD<ڿ+hu^_Tm <_Fn][nIt*2ŵKe%Y NJ:8?|zBuyzLPc(\1$L{Q!1yBЈy)”J(OZiw-aRzN3\JHNWk!]?LnG\޸)8n#F0_ 0^&쇰 B~?rBp)<5X ?tB$h!:b`QOҡHTهw-%BS aKI4Z}"S<[Zœgȼs"KgKkPc(%DY[v]oAW X70> *Z>uxD Z ɄGN'aυ£`g~!GLOhIENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLException_8hpp__incl.png0000644000175000017500000000117610057656715017575 PNG  IHDRv)`,!PLTEo___???KptRNS7 IDATxԿo@ ^;-U7^aJx!^+h_w▸nRt'qb4hϤ͚U[rhjV-Хf%>9ٟBMC* ꜥv7%SgZ7nVRS+kFSbSEm7FjS?DQH+ZZ}C(ZCvH㎢b4hF3ьfA-dx X/TΕچA6Fv"VVz0m,|[HCf$ڮ17qw^ǃ'!_wWm..FHC.ăcOfK־DNY)0k,WZ 4RJmomMLN(ɾ5W}}+}}% y6?+/)d> |axVMKhF sڎ+ eIENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLNodeSet_8hpp.html0000644000175000017500000000574510057656715016222 XMLNodeSet.hpp File Reference
Main Page   Namespace List   File List   Examples  

XMLNodeSet.hpp File Reference

*ps*. More...

#include <libxslt/xsltInternals.h>
#include <libxml/xpath.h>
#include <libxml/tree.h>
#include <sp-gxmlcpp/XMLNode.hpp>
#include <sp-gxmlcpp/XMLException.hpp>

Include dependency graph for XMLNodeSet.hpp:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Namespaces

namespace  SP
namespace  SP::GXML


Detailed Description

*ps*.

Version:
$Id: XMLNodeSet.hpp,v 1.9 2002/12/19 15:16:45 spabsurd Exp $
Author:
Schlund + Partner AG

(C) Copyright by Schlund+Partner AG

Synopsis: #include <sp-gxmlcpp/XMLNodeSet.hpp>


Generated on Thu Jun 3 19:20:13 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLException_8hpp__dep__incl.png0000644000175000017500000000416410057656715020564 PNG  IHDRFLJ-?!PLTEo___???KptRNS7IDATxs8/pͱp,iR1 ɘ&-6ʕd8C2n֚->zm 0^d !2DHAbB {(s~H3b W55/[žGmhAk ˴Ժii%tZ;[#wIZ90:ۃ\j??@Yd4bDKzF 2QpWY16 G,b߹s>b⼯s+Kn^9CH' kdmlIGG!#%X54C4#1ΌȢ)nRl5RCFJ1IV3Ҁj1RO!:H=x#P6 DD{ G P5AQ"G P4# F `f(D!v54L#r#ndBbbd E# # T=m[6wNd 35>BH|>7B,.#5hyн_v_װ:.\ 0&uڪX  5, |䁕\j{u҉_A!1BV#_A!Vr.Bt aX]Qb#@ 5,wa (!`r]+Dew7,4 _#⨲?z^⚑K3FDۿ4!mݻ? XB!VN# 7BG;m]"!#+bIe~Qk@лMaba@adkMf#C f6Q8BEPA&ŐhW T* bd D RKCӽVrKvsEPB[_ 21Zm!Kۈ=t5W G)R|",M5F)_վSWEEHUWE#BҔz 1U4%†(tq3WE"Ҕd]\KS1~WE!)О& uw2dB!3ޣ6FYSypE!ЧH7h@<Ч$@h"Yt{qIX#?Z Gh\0)}~v"F T""TD%Ah|U !U"a'-!\{ dR{ dO#R*F$ Q0BZu{S\rλ~[j%Ĥ]bڳ<*M``c  ƥX\ Nbfib~z[WyXPbg@;tf{TR8|O q!NJy>PJGb#K ]Mk@ZX4VVCKΊE]3@xd=¸w6Y'y q#І7Pܭ0.cOڵj!$<d D™=Mzq{ARLwXC '`jZJ7<"Wyvz%zP4##j@P/`큉[60%.Zv Tt EfB65pBM^o Z롌B{e2+"AhZ>v)C/\X!:˚.fn[ O.+D^#.*"n7B>a0e !2" m3IENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLNode_8hpp__incl.png0000644000175000017500000000355110057656715016523 PNG  IHDRvEo!PLTEo___???KptRNS7IDATxS8/pfqwa; )ɽek%G[H $ر-I1/D}`K֫m@jjjU"c~rEu{KۡHB]"iISQ1\lՕ!%3GAhKڶM ,^o\&Gi|!Oycb_(K+Gƿ{u72iʎ=g~t)\|9Eu.d?W}4?{BYw<3hz3F|s Y>^ߝpx)!)qtc=jp׸.6=%qp26·a p!̵iLC1yHSG>+jpN?{"urPr{>.[_/Tϟ\a$s:"=LlOSñ?Qe\4 sEe&DrƟg"]qGEJ7@ ꊌuG /]T|B9$-`"^0f"3炆KEӧ73߆f{!߄O"y/+2rooV&v_/ސoQgsiL{*˞kM:<{ץ6gRHc+?jSP/u%t+ B)-u2 y 6ˆ·SƷ PXć'-uZGSJ_w)[ҁcSטyjp!E`l' ]g?2 #> k;!n؎q8%yQ׃/x5\46nAR-Z[Tl|Vl|Vl|VltFuIENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLNode_8hpp__dep__incl.png0000644000175000017500000000331510057656715017510 PNG  IHDRF1Ψ!PLTEo___???KptRNS7ZIDATxSHqVqwFS5r]Eȑgᮻpg#B ~ I/vW5 M"Iw-}FlXV-;:r{[p~ 'ߙ)w׵?W;n?v:=䖴7@gXKTNqv7xYqp;^;^9͡WCk7xTɴw3tH֭zڂG݉^X;Pl™xH'H#/n_#BF <"@pzIJo-Q :cj֠鍯 =0G+n}Z i]]VKvp/FL~y\)N\c6`tNs9(4\jׄ=lϷ|HD҉xz͏:@CeF{u{Y(!4TRIR:A_:m'H|JH.3FvՏNXl!|cFI'( `_`Ll_ax{:1qsWWfwvJvLkʴ ?vx¿CvC+'pl[E֣ՎwG{F+:!#z+Oc$l6N2pL3;p{gtJ5N-0IzE>30d7D$:D(=ذ|3c̲2 :8VibʴjL*M6&h"،Th 0BV81r2@kM u4,K'^IOM:9Dt4rݿh`Rkj v :9 ]+ί v:9 팝zpÇb5h49av :9 ^H':9:z i"Fߙ0鸅kTV2KyeܧLMָ\Җ-miK[Җ[N@k̨aZ#&6.a:/Ujc6SaNJ;:t=stľw꒦Vu4`N\hp3 g7.>t(u$7>z(q7?KA""U(c1spɥC9/ف.t?U{_%5ZG8wJA-|[{Q !R ~mkydiK[Җ-miK[ >&%}YL K`/3cxb~#87O@%%:=NfǕSc|@*u x(;ݐa+!X 9\|uN*NFBl7x@[sEV3tx/!g.F}AiSdgt;BZv"r!;5Vlc"%^xKtAlr+NYҖ}rIENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLTree_8hpp.html0000644000175000017500000000564210057656715015554 XMLTree.hpp File Reference
Main Page   Namespace List   File List   Examples  

XMLTree.hpp File Reference

*ps*. More...

#include <string>
#include <memory>
#include <fstream>
#include <sp-gxmlcpp/XMLNodeSet.hpp>
#include <sp-gxmlcpp/XMLException.hpp>

Include dependency graph for XMLTree.hpp:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Namespaces

namespace  SP
namespace  SP::GXML


Detailed Description

*ps*.

Version:
$Id: XMLTree.hpp,v 1.9 2003/02/27 14:06:49 geye Exp $
Author:
Schlund + Partner AG

(C) Copyright by Schlund+Partner AG

Synopsis: #include <sp-gxmlcpp/XMLTree.hpp>


Generated on Thu Jun 3 19:20:13 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLNodeSet_8hpp__incl.png0000644000175000017500000000753410057656715017204 PNG  IHDR^F!PLTEo___???KptRNS7IDATxW8_s4oq^trm2# $}/Npn$`l9 .^bǮJ?Keh#a2ixᅓN^8ixᅓN^8ixᅓN^8ixdNJɕeoX^Z$o3/k6,' /4p׽«taּk.64/R.F:3#q5SRQͥd5 KJ"tO֓%bEs]y3X"%%׿西Ou`O4]κ?PQ:uz@ۋ_fPSf Mٿr'y8?5g y^BE!e>/zy=}g|}jZ'a~Oϔ}dO#55bZ(qkaߔhqxPԜ-d96!(;r뎹sN:| Mc8 =F.%g`v^[/ mZX7%=CQsׯ@9=qYC'̱d}b0x/C*^O>aD+o+,o,YZzNٱ"Z^<]taᕷ'0.+^|G/;_nO;7#^+J2bgy^Q l;^9{ntx65?O';NHK/Yt;p|D{EaXZ==7z/6kxmXEBɶu}45k yZ|nxk^II+%ǼXUoՖ׷%W%#x3mD9 i`xj}ʤݎբt7 VbG%9h^AReO{QtS p9Hae*/7 [f+ +mJG2tmc^pZɚE U"s`̦ZICZE^߆)TJV44N/Ӂ H, NҨJm9.C%,8›~>oF]QnBQU}Prq:[?:HH^fteXaR4x\!JKxx“i?ƅC#Or_SDQW-r/BW!X^S^~Kl`QX5rzlW0D+Aj :oL 1^YG ߦTh^*ߍ8lxIQd{qx)kMςYiÒSp"\%ZsR mlVk$VwVx0wXܞD%८e꣑]/5lL/D5,.y.!^eJ瑕[HEZ5'vuZ,KNV ʆ+>UBnUdH]7ivsl #`b\nxU-/AJ,bvc&T,/GrcyLfW^DAE}>3]}HiᖕT%x:rcv~W buzt8)] 9/}I5J!dg$r> -)CsM_Ұwzj`7Y8? ߁puN?Oh+^$xI@1[w/* ri^B1I|w7O QzC)E 8d)\Ƽ!BSX@99 =/KZޥ/py~ `9Gj4=H$F[JQHs:sXWY@B3JKӔitwU'w"'SkyG rx.MJ|?גqz>/xGRPNy0'QP<ң=vD;IWy?CH(r q‹~hB.͸%y-C,Ɵ ) ^iE+ӰV'۸TY4 /)TBs3{I/\UW=/'EMlgEX_?-wϣh#F%/d_-w놖f%n>Q&qƋ׶յ!Pӓ E.?d?"jkf^ LGsLږi9Ma?ZU)DF>o2r.l@ls^_LJds?iDĢsnV 14#bJ?_"y@oV-c5|%/P5Ӥ*Afz+^ 2S[_ubqI 3k=~TxWތ4pI ' /l׬hLN|CjO""S w6Oy-3nfՇoN}?r^?16'zhW#^5#ki׋twʇ% a{]󺟳ߌ/ B?>` ~Hx}׼W>E# d̟K`_3' uӍ?ʖ+^Mov7Mto3,!&~o9cu}E|1&~}-ayΫϦ=Y^ / ix᤹>W# /4pI ' /4pI ' /4pI ' /g:+1IENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XSLTrans_8hpp.html0000644000175000017500000000404110057656716015743 XSLTrans.hpp File Reference
Main Page   Namespace List   File List   Examples  

XSLTrans.hpp File Reference

*ps*. More...

#include <string>
#include <sp-gxmlcpp/XMLDump.hpp>
#include <sp-gxmlcpp/XMLTree.hpp>

Include dependency graph for XSLTrans.hpp:

Include dependency graph

Go to the source code of this file.


Detailed Description

*ps*.

Version:
$Id: XSLTrans.hpp,v 1.11 2003/01/30 12:38:31 spabsurd Exp $
Author:
Schlund + Partner AG

(C) Copyright by Schlund+Partner AG

Synopsis: #include <sp-gxmlcpp/XSLTrans.hpp>


Generated on Thu Jun 3 19:20:14 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XMLNodeSet_8hpp__dep__incl.png0000644000175000017500000000300210057656715020155 PNG  IHDR#s!PLTEo___???KptRNS7IDATxOsF|9&-[OX5q+[s`u þO}0Ho; >9@[{ehCk3b#İvoRZU~\71د= Wp+RD?g0pűun{mNO}ĥ#.v:]%Bkq~vx{L,pnC ҪQ/f"+ڿGfIʂF>8=` Cɢ];F7<,ls{vIjbZ!#;׉QMHJ$gD&-OE޸5M:ΏiČF'0ZFH4-dHѤ&eY )aiJyBF4!}3QHgNK9>tFhO2p+V(HD.h=}4F-lGCzzkB=}S=}4hu5Z Ji(0Jp NOX50vP)7.˙?D?8հ N즣C&] HQQ"Qqfҍh,p,I X(NFna-saibV'/4C7VXW'h/7+^&MkQYÏ5E:'swO'ZeP쿤nF/= _{KNgRN:jd1N'n)Lg\Y-CPjҙOtҩk4:N:M6?:MIDgYkٖV'd|je-x/HgM [:iْ4*9=Wtg-i}`˲d!Pp>.3÷Ҵg|m&W3 ԨՌ8W3D絇na 6+jf_yc]U3IEĺF# t4.úFx5#-:tՌ]6N>݅zՌ5ga iԃV.2G}miCІ6 mhCІ-ח N+biPKK )h7EVs̙Xrh/}p.fwj̿g;F+ i* {O&첹~'킳f@S83c8bԵK6e^Mߍ[!pvpF6HۮxKB j!=lq\J8vvIS;/]c4{a%q M KEtw7>Ҵ\DP/< "ZU|`Z5|9 ly mhC)PcP>IENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLTree_8hpp__incl.png0000644000175000017500000001257410057656715016542 PNG  IHDR ř9!PLTEo___???KptRNS7 IDATxKwƒ_,qyόX׶شĥ$*!wn8$ZA +x`H#DWWWV_h}HKч}HKч}HKч}HKч}HKч}HKч}ȒsT ݻe\.jj˒"їK]B̯EZ>CZ>N16q(!PTU-}~ܫ4A1L ̧}C{y2o2e\V}QIVxF~gm)P2o b@!z05Ugjgm)ślKΎDW+\&a&G^- ``1hK޻$I0yq&>azz~$,4iC~IعK@X]5Fݯpɋx -&cž?=Ųk_Xlȡdbp&$#"MP|s(λ8o}ioo8_ p_ ?DܛX64y%we/~1[Ft&c[]ZEwأo pJs N~}٥h@nA&oCe!IЙKEcfVQQl|y&HNhgK}x8}nLX6` xce!FvFOE+ ؙq(XRl-)>d^BͻaIm0Ү^lez-(_ Ł$&śbdQFgEֳ0\ 'Mb{nz;vFRSѤd-N\Jq44Gk$ڥ+Y*!)RSr}EŎvM+E2!׼̒+ҵ0äoT=QKG&Z12e]3jJ+Ϡh/–JZW].yܑ{iJ.IwZ͑@z1ʻ] feWC^P9R(B Rn&%lH[8*8ŃBpgB6+GJJ+%>+|[0jjsݚF1ק;*E>pQ>`sAƭ[(F1QGX>L 6s.WFr*ӏ}PXlCn;( nTj\(I S9HXn`:݊ c`-S2O>*y#E#9.-vWL&!U.F"ENUAfnSjZ34P31(ZYg 2;maP4*)t5e)tuIXuQuAؗĩatdXzVk;,wPPa*EME :, %(&E(^psEvi>Q5 J2Hx]U٨GLQk0h.VK}ELZM~SJ z'4aZ1(JLrَZ}e:EC%# P^JyߓZIfMi2gU|!w{c@F(rnKàh`m_ wW~a~gĊ]CQ"+x_t.]p)'ֻ冩umቡS>z)Rp䑡3h,c+D_Yd ](E ,\i'Z{VƣM.+sy"?;uu[Xі,.K6P4eGG@=/)Vخrt[AbdV"Ǝi!Q9HLAt3`+(9P4Pk*g 'HK#9@+*AQ ż5Gf) %֗X[6SUn8E$hB i䒄MP5%E36Y5Q (Z]_P.Z7Z.)j$RZ?XdN1LI9v]WsJj+ŨIk|)#YQ,]O4ۍQ\6E u=/|Ww 0U_ s`^wt1t,Zhc!U`™YMfU(b\ "~g'ɧcx0ߗU90z׻ePt*Zhc7~Q 3 h25Ŭfy߁ G$w> ߬7BpO9O&"},r`^wˡR1v~Hxs1F(F &عII,CԅiUUe>TO\Q4_EE @S$H_3~k;w ~-Dh*0-o hV4Cx+b->_TPع)W:%<^g$Jūbe\Rt+dr\jt\\R PJ1vTTQ.¯ɑ8b@_wH Q2z/Rt+:cc/F?ˢ F"άlsSZ@nZLC*peAE8 (Zh PJ)E8jGDmɌZ7 EYb#KR H%ibd4I/,Y>;މrhh)6?Ka(}$/oQ0_rІpnᯛ wfLލ!S]q):vhU|4H;aʘ+q0):5Ŵ}]_7KQXg 34E{Kshy}W~m)Յ]NFs}wA)#3i`S 1jH6B|1RԀ՟9M܁7{EPk̨?h{XCUȏ?2;"OSvA9 7f(24?S}El9C4QmaҲ/XB4<4[ъ}4""?ϻby6;V]_ x܏Sp}1mo KeT6PD^ cyh~( a2򰤈#2ogcY ?R|2Ei9U epe+EU"C tf Qdbany8\ŷV%RWbF9R-p ?R|b%T1k!>T+<=ht?IC"F(^|0G(z~J(7ȑ4c"z% |SivӰpy##g1qihCstIL?~^+)b! 2AEQxa1NP|qY[ %*|JQ'V|S<|?)ob<֌}Sg P<:]rmj&n_w Jthw,bK{Ut=&E]XEۑ[@QV u|@E;[AQηG@eZ󌾣 [A1v_}#T$kpn6(RոG-5nmFHB1l]ՖQthJ5~e(p**EڛKtBJ!Έ.Q$ukE?/EJV4H >NrEB6_t)ud(ڻusAv[N'=βmݺ 9_Sv[f[5ǎR47GR霧,ERn&pw)u 'd)97nSwnEvfwc>8fV )PL3[ӳ'AvO1F^qRy2˧&=>!bk2d擢Xfg8)f>-në (uLvxG1j="{yRa,tR!-ER!-ER!O".8&œ' &_GA%""EuA"~I1Cp=xBl_KQ'I<&?bZ:'GAɊvtw>f̃k))\("-f7$k))> px; F`RlۢM~\wxspb;.$): w"F Gװ\`ɿN(.IRIKч}HCZ;--ER!-ER!-ER!-ER!-ER!-ER!-EL|IENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/XMLTree_8hpp__dep__incl.png0000644000175000017500000000233210057656715017520 PNG  IHDR>!PLTEo___???KptRNS7gIDATxAFv+8(p]%V"9VڴUl_kL- Va=?Cc˳..5q!İr/^˿[ԑkjsVfvEh|ߝbЏ>7踭ܭNoLja@bdXm17/}}؝X}"YukG3%1U8ȴ?\p+{z=AֽIDFq}|;Ah\cg)n A^#!a,錝2|Q/L+t56@>#}ajT7MHaNhČNahZg eF¾ ҔiJ' M&}&:ght R2pzY)JRʉ]1F/6Dcq^%>%ziF2"-ۗKF>CǁQk]/re+}]ĭ#Nci[NH3w5'ć)ޗp[Q# qpD^H5>htݮ&1-vDTD3v"jw$~GwQc5Sh|[!_[b:LoA7#9q7nƴw$C%?t5l bz+>CZϋޞEŔWC^ñ .Bzd!}o7 Df5@yDqv4AHCke;x%v`[0m QO .%]%]J[ָIENDB`sp-gxmlcpp-1.0.20040603/autodoc/html/namespaces.html0000644000175000017500000000233610057656716015452 Namespace Index
Main Page   Namespace List   File List   Examples  

sp-gxmlcpp Namespace List

Here is a list of all documented namespaces with brief descriptions:
SPNamespace for all Schlund+Partner Code
SP::GXMLNamespace for library project "sp-gxmlcpp"

Generated on Thu Jun 3 19:20:14 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/XSLTrans_8hpp__incl.png0000644000175000017500000000375510057656716016742 PNG  IHDRL($PLTEo___???}٭tRNS7wIDATx1s6ڕS=6c^D{bkIcvNH[6(/W<,JHsH ~BYige[T1dbRŐ!KC*,U YT1dbRŐ!KC*,U YT1dbRŐ!KC*,U YT1dbRŐ!KC*̡MݪfghJ+1wˡkǶxX]_ ZD`[ՂZ2Z|~i5,ET!X.-UT ZT _Ot!I]$RKHDCUPWh$`sS ֶ 'UJs\TwF6e*c3Su __S)HHMxcRj`R-歄YD)~PY6FF8JHrGI'Ǩ6]`j Sp45μTM\.>U֫)\}(vq0jj AJteO^7:MGJ#HuPA엩N7ƾ3eAOPen,:Mud~65BuڻM(6fjUGXƾ|5?hyٽ-ɐяl6TӓYٴ('n!z!@fӳ;2WS~t{i+Շn$lr{<fO|zaμɐ^ }39`!ն*i!r&^hF.drH6!m'T7ܞ杳eϪT=pHlfzF;AҬ'ccT*a6dQI:ciz)TT4>ʉ,f=h"Ua֊*E:F(Y+UY~5\B /8I2!nbMJgc-L3LqW昻v9=Y<쮨]]J%+*S}7AYZx%+$O_ky-vWdKT2ߩP*]1P ,]ũE\ ^I5:2O)k$ߝ#Ɏᮚ_Kw-.vWҳNwӱ̱6]_C€a}訇StZ=Rz]*mQsMJkф7}F }E5h<[xr0rFaikǪTHj䥽tže|Jq)Qu/Nt7U2Uv;QhN%q*jLTqTe" 귢tyˬ .}k]ir7g]/ĭ-rZIA|YjrH7 SP Namespace Reference
Main Page   Namespace List   File List   Examples  

SP Namespace Reference

Namespace for all Schlund+Partner Code. More...


Detailed Description

Namespace for all Schlund+Partner Code.
Generated on Thu Jun 3 19:20:14 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/namespaceSP_1_1GXML.html0000644000175000017500000000405410057656716016661 SP::GXML Namespace Reference
Main Page   Namespace List   File List   Examples  

SP::GXML Namespace Reference

Namespace for library project "sp-gxmlcpp". More...


Data Structures

class  Iterator
class  XMLDump
class  XMLException
class  XMLNode
class  XMLNodeSet
class  XMLTree
class  XSLTOutputBuf

Functions

std::string istream2String (std::istream &f)


Detailed Description

Namespace for library project "sp-gxmlcpp".
Generated on Thu Jun 3 19:20:14 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/examples.html0000644000175000017500000000177510057656716015157 Example Index
Main Page   Namespace List   File List   Examples  

sp-gxmlcpp Examples

Here is a list of all examples:
Generated on Thu Jun 3 19:20:14 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/graph_legend.dot0000644000175000017500000000400110057656716015563 digraph inheritance { Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",style="filled" fontcolor="white"]; Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"]; Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPublicBase.html"]; Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"]; Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="red",URL="$classTruncated.html"]; Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="Helvetica"]; Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classProtectedBase.html"]; Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="Helvetica"]; Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPrivateBase.html"]; Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"]; Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="grey75"]; Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"]; Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"]; Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="Helvetica"]; Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"]; Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="Helvetica"]; Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classUsed.html"]; } sp-gxmlcpp-1.0.20040603/autodoc/html/graph_legend.png0000644000175000017500000000713610057656716015575 PNG  IHDR<0PLTE2co???___Q<tRNS7 IDATxRIxpi_'fwaX:భn8t5ctm}ZQU]T7RMT:{s,d 'd 'd 'd 'd 'd 'd 'd 'd 'd 'd 'd 'd f:WZQo(w&'l :i" lg d;e?!)mlfI݉ζ1L;g[?1i7Fg˰Mޞ?uv"|$d.w?hRS'FE!c{~m ~'$6\}m"u_SoX ]?l'l㦻G\#klHnDđZĊp 8[f}n~Ke =ӛh9=!lq귽my'90f||%ک^K]avM&tck틘-܊vI>?_ׇ䔜<߈~x=^"[{![8![8z?LkwV?`Gpұ;UչgvfWulWA-7@N{< ̖vf jȶl-ޫ*d 'd 'd 'd 'd f ,d 'd 'd 'd 'd 'd 'd 'd fepʱ{M-dœIG"[~pzd˳ 'L³A[~+hيl Gq6ȖD8aڍ-ϖNؾtx0C<[:_1Nv#dٞ: iq8![8![8![8![8![8![8![8!+d 'd 'd 'd 'd 'd 'd fpBpBpBpBpBp-lL265[RӚ gQbjlߍ=BZm۔|&U~lD~lvE?C)Ts%aYRQ5Sj^M^O3FtI3@3F_(1_`*+K.3M6 vT3+1lSZUeǯqd+rwlcUO?uvnK{ OZ~j7}ͫ>kQ7ݤ~fL˰W s 6++Fۉy)[iYllӲŖzvc3]=.-p `X-noрUsVF^RZ3&a{~?ڤbs(zcRҲDixyi훾x[Yi_g7 Graph Legend
Main Page   Namespace List   File List   Examples  

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };

/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };

/* Class not documented with doxygen comments */
class Undocumented { };

/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! Class that is inherited using protected inheritance */
class ProtectedBase { };

/*! Class that is inherited using private inheritance */
class PrivateBase { };

/*! Class that is used by the Inherited class */
class Used { };

/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};
If the MAX_DOT_GRAPH_HEIGHT tag in the configuration file is set to 240 this will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled black box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
The arrows have the following meaning:
  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.

Generated on Thu Jun 3 19:20:14 2004 for sp-gxmlcpp by doxygen1.2.15
sp-gxmlcpp-1.0.20040603/autodoc/html/doxygen.css0000644000175000017500000000341210057656716014630 H1 { text-align: center; } CAPTION { font-weight: bold } A.qindex {} A.qindexRef {} A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } A.code { text-decoration: none; font-weight: normal; color: #4444ee } A.codeRef { font-weight: normal; color: #4444ee } A:hover { text-decoration: none; background-color: #f2f2ff } DL.el { margin-left: -1cm } DIV.fragment { width: 100%; border: none; background-color: #eeeeee } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } TD.md { background-color: #f2f2ff; font-weight: bold; } TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; } TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; } DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } BODY { background: white } TD.indexkey { background-color: #eeeeff; font-weight: bold; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px } TD.indexvalue { background-color: #eeeeff; font-style: italic; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px } FONT.keyword { color: #008000 } FONT.keywordtype { color: #604020 } FONT.keywordflow { color: #e08000 } FONT.comment { color: #800000 } FONT.preprocessor { color: #806020 } FONT.stringliteral { color: #002080 } FONT.charliteral { color: #008080 } sp-gxmlcpp-1.0.20040603/autodoc/rtf/0002777000175000017500000000000010057656716012356 5sp-gxmlcpp-1.0.20040603/autodoc/rtf/refman.rtf0000644000175000017500000015173510057656716014271 {\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033 {\fonttbl {\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} {\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} {\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;} {\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;} } {\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} {\stylesheet {\widctlpar\adjustright \fs20\cgrid \snext0 Normal;} {\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid \sbasedon0 \snext0 heading 1;} {\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \sbasedon0 \snext0 heading 2;} {\s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid \sbasedon0 \snext0 heading 3;} {\s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext0 heading 4;}{\*\cs10 \additive Default Paragraph Font;} {\s15\qc\sb240\sa60\widctlpar\outlinelevel0\adjustright \b\f1\fs32\kerning28\cgrid \sbasedon0 \snext15 Title;} {\s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid \sbasedon0 \snext16 Subtitle;} {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \sbasedon0 \snext17 BodyText;} {\s18\widctlpar\fs22\cgrid \sbasedon0 \snext18 DenseText;} {\s28\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext28 header;} {\s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid \sbasedon0 \snext29 footer;} {\s30\li360\sa60\sb120\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext30 GroupHeader;} {\s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext41 Code Example 0;} {\s41\li360\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext42 Code Example 1;} {\s42\li720\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext43 Code Example 2;} {\s43\li1080\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext44 Code Example 3;} {\s44\li1440\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext45 Code Example 4;} {\s45\li1800\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext46 Code Example 5;} {\s46\li2160\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext47 Code Example 6;} {\s47\li2520\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext48 Code Example 7;} {\s48\li2880\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext49 Code Example 8;} {\s49\li3240\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext49 Code Example 9;} {\s50\li0\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext51 List Continue 0;} {\s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext52 List Continue 1;} {\s52\li720\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext53 List Continue 2;} {\s53\li1080\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext54 List Continue 3;} {\s54\li1440\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext55 List Continue 4;} {\s55\li1800\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext56 List Continue 5;} {\s56\li2160\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext57 List Continue 6;} {\s57\li2520\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext58 List Continue 7;} {\s58\li2880\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext59 List Continue 8;} {\s59\li3240\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext59 List Continue 9;} {\s60\li0\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext61 DescContinue 0;} {\s61\li360\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext62 DescContinue 1;} {\s62\li720\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext63 DescContinue 2;} {\s63\li1080\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext64 DescContinue 3;} {\s64\li1440\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext65 DescContinue 4;} {\s65\li1800\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext66 DescContinue 5;} {\s66\li2160\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext67 DescContinue 6;} {\s67\li2520\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext68 DescContinue 7;} {\s68\li2880\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext69 DescContinue 8;} {\s69\li3240\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext69 DescContinue 9;} {\s70\li0\sa30\sb30\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext81 LatexTOC 0;} {\s71\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext82 LatexTOC 1;} {\s72\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext83 LatexTOC 2;} {\s73\li1080\sa21\sb21\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext84 LatexTOC 3;} {\s74\li1440\sa18\sb18\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext85 LatexTOC 4;} {\s75\li1800\sa15\sb15\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext86 LatexTOC 5;} {\s76\li2160\sa12\sb12\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext87 LatexTOC 6;} {\s77\li2520\sa9\sb9\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext88 LatexTOC 7;} {\s78\li2880\sa6\sb6\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext89 LatexTOC 8;} {\s79\li3240\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext89 LatexTOC 9;} {\s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext81 \sautoupd List Bullet 0;} {\s81\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls2\adjustright \fs20\cgrid \sbasedon0 \snext82 \sautoupd List Bullet 1;} {\s82\fi-360\li1080\widctlpar\jclisttab\tx1080{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pndec }\ls3\adjustright \fs20\cgrid \sbasedon0 \snext83 \sautoupd List Bullet 2;} {\s83\fi-360\li1440\widctlpar\jclisttab\tx1440{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec }\ls4\adjustright \fs20\cgrid \sbasedon0 \snext84 \sautoupd List Bullet 3;} {\s84\fi-360\li1800\widctlpar\jclisttab\tx1800{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec }\ls5\adjustright \fs20\cgrid \sbasedon0 \snext85 \sautoupd List Bullet 4;} {\s85\fi-360\li2160\widctlpar\jclisttab\tx2160{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pndec }\ls6\adjustright \fs20\cgrid \sbasedon0 \snext86 \sautoupd List Bullet 5;} {\s86\fi-360\li2520\widctlpar\jclisttab\tx2520{\*\pn \pnlvlbody\ilvl0\ls7\pnrnot0\pndec }\ls7\adjustright \fs20\cgrid \sbasedon0 \snext87 \sautoupd List Bullet 6;} {\s87\fi-360\li2880\widctlpar\jclisttab\tx2880{\*\pn \pnlvlbody\ilvl0\ls8\pnrnot0\pndec }\ls8\adjustright \fs20\cgrid \sbasedon0 \snext88 \sautoupd List Bullet 7;} {\s88\fi-360\li3240\widctlpar\jclisttab\tx3240{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pndec }\ls9\adjustright \fs20\cgrid \sbasedon0 \snext89 \sautoupd List Bullet 8;} {\s89\fi-360\li3600\widctlpar\jclisttab\tx3600{\*\pn \pnlvlbody\ilvl0\ls10\pnrnot0\pndec }\ls10\adjustright \fs20\cgrid \sbasedon0 \snext89 \sautoupd List Bullet 9;} {\s90\fi-360\li360\widctlpar\fs20\cgrid \sbasedon0 \snext91 \sautoupd List Enum 0;} {\s91\fi-360\li720\widctlpar\fs20\cgrid \sbasedon0 \snext92 \sautoupd List Enum 1;} {\s92\fi-360\li1080\widctlpar\fs20\cgrid \sbasedon0 \snext93 \sautoupd List Enum 2;} {\s93\fi-360\li1440\widctlpar\fs20\cgrid \sbasedon0 \snext94 \sautoupd List Enum 3;} {\s94\fi-360\li1800\widctlpar\fs20\cgrid \sbasedon0 \snext95 \sautoupd List Enum 4;} {\s95\fi-360\li2160\widctlpar\fs20\cgrid \sbasedon0 \snext96 \sautoupd List Enum 5;} {\s96\fi-360\li2520\widctlpar\fs20\cgrid \sbasedon0 \snext96 \sautoupd List Enum 5;} {\s97\fi-360\li2880\widctlpar\fs20\cgrid \sbasedon0 \snext98 \sautoupd List Enum 7;} {\s98\fi-360\li3240\widctlpar\fs20\cgrid \sbasedon0 \snext99 \sautoupd List Enum 8;} {\s99\fi-360\li3600\widctlpar\fs20\cgrid \sbasedon0 \snext99 \sautoupd List Enum 9;} } {\comment begin body} {\info {\title {\comment sp-gxmlcpp Reference Manual 1.0.20040603}sp-gxmlcpp} {\comment Generated byDoxgyen. } {\creatim \yr2004\mo6\dy3\hr19\min20\sec12} }\pard\plain \sectd\pgnlcrm {\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}} \pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid \vertalc\qc\par\par\par\par\par\par\par\pard\plain \s15\qc\sb240\sa60\widctlpar\outlinelevel0\adjustright \b\f1\fs32\kerning28\cgrid {\field\fldedit {\*\fldinst TITLE \\*MERGEFORMAT}{\fldrslt TITLE}}\par \pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid \par \par\par\par\par\par\par\par\par\par\par\par\par \pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid {\field\fldedit {\*\fldinst AUTHOR \\*MERGEFORMAT}{\fldrslt AUTHOR}}\par Version 1.0.20040603\par{\field\fldedit {\*\fldinst CREATEDATE \\*MERGEFORMAT}{\fldrslt CREATEDATE}}\par \page\page\vertalt \pard\plain {\field\fldedit {\*\fldinst TOC \\f \\*MERGEFORMAT}{\fldrslt Table of contents}}\par \pard\plain \pard\plain \sect\sbkpage \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid sp-gxmlcpp -- Simple C++ Wrapper for Gnome libxml2/libxslt\par \pard\plain {\tc \v Main Page} { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid \par \par } \pard\plain \sect\sbkpage \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid sp-gxmlcpp Namespace Index\par \pard\plain {\tc \v Namespace Index} \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid sp-gxmlcpp Namespace List\par \pard\plain { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Here is a list of all documented namespaces with brief descriptions:\par } { \pard\plain \s71\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid {\b {\b SP} (Namespace for all Schlund+Partner Code)} \tab {\field\fldedit {\*\fldinst PAGEREF namespaceSP \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b SP::GXML} (Namespace for library project "sp-gxmlcpp")} \tab {\field\fldedit {\*\fldinst PAGEREF namespaceSP_1_1GXML \\*MERGEFORMAT}{\fldrslt pagenum}} \par \par } \pard\plain \sect\sbkpage \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid sp-gxmlcpp File Index\par \pard\plain {\tc \v File Index} \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid sp-gxmlcpp File List\par \pard\plain { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Here is a list of all documented files with brief descriptions:\par } { \pard\plain \s71\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid {\b {\b Util.hpp} (*ps*)} \tab {\field\fldedit {\*\fldinst PAGEREF Util_8hpp \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b XMLDump.hpp} (*ps*)} \tab {\field\fldedit {\*\fldinst PAGEREF XMLDump_8hpp \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b XMLException.hpp} (*ps*)} \tab {\field\fldedit {\*\fldinst PAGEREF XMLException_8hpp \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b XMLNode.hpp} (*ps*)} \tab {\field\fldedit {\*\fldinst PAGEREF XMLNode_8hpp \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b XMLNodeSet.hpp} (*ps*)} \tab {\field\fldedit {\*\fldinst PAGEREF XMLNodeSet_8hpp \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b XMLTree.hpp} (*ps*)} \tab {\field\fldedit {\*\fldinst PAGEREF XMLTree_8hpp \\*MERGEFORMAT}{\fldrslt pagenum}} \par {\b {\b XSLTrans.hpp} (*ps*)} \tab {\field\fldedit {\*\fldinst PAGEREF XSLTrans_8hpp \\*MERGEFORMAT}{\fldrslt pagenum}} \par \par }\sect \sbkpage \pgnrestart \sect \sectd \sbknone \pgndec {\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}} \pard\plain \sect\sbkpage \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid sp-gxmlcpp Namespace Documentation\par \pard\plain \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid SP Namespace Reference\par \pard\plain {\tc\tcl2 \v SP} {\xe \v SP} {\bkmkstart namespaceSP} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Namespace for all Schlund+Partner Code. \par \par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Namespace for all Schlund+Partner Code.\par } \par \pard\plain \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid SP::GXML Namespace Reference\par \pard\plain {\tc\tcl2 \v SP::GXML} {\xe \v SP::GXML} {\bkmkstart namespaceSP_1_1GXML} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Namespace for library project "sp-gxmlcpp". \par \par } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Data Structures\par \pard\plain { \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid class {\b Iterator}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid class {\b XMLDump}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid class {\b XMLException}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid class {\b XMLNode}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid class {\b XMLNodeSet}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid class {\b XMLTree}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid class {\b XSLTOutputBuf}\par } \par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Functions\par \pard\plain { \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid {\xe \v istream2String\:SP::GXML} {\xe \v SP::GXML\:istream2String} std::string {\b istream2String} (std::istream &f){\bkmkstart namespaceSP_1_1GXML_a0} {\bkmkend namespaceSP_1_1GXML_a0} \par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Namespace for library project "sp-gxmlcpp".\par } \pard\plain \sect\sbkpage \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid sp-gxmlcpp File Documentation{\tc \v File Documentation} \par \pard\plain \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid Util.hpp File Reference\par \pard\plain {\tc\tcl2 \v Util.hpp} {\xe \v Util.hpp} {\bkmkstart Util_8hpp} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid *ps*. \par { \pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par {\f2 #include }\par \par } Include dependency graph for Util.hpp:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE Util_8hpp__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par This graph shows which files directly or indirectly include this file:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE Util_8hpp__dep__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Namespaces\par \pard\plain { \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP::GXML}\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain *ps*.\par \par {{{\b \par Version: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid $Id: {\b Util.hpp},v 1.7 2002/12/19 15:16:45 spabsurd Exp $ \par }{{{\b Author: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Schlund + Partner AG \par } (C) Copyright by Schlund+Partner AG\par Synopsis: #include <{\b sp-gxmlcpp/Util.hpp}>\par \par \pard\plain \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid XMLDump.hpp File Reference\par \pard\plain {\tc\tcl2 \v XMLDump.hpp} {\xe \v XMLDump.hpp} {\bkmkstart XMLDump_8hpp} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid *ps*. \par { \pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par \par } Include dependency graph for XMLDump.hpp:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLDump_8hpp__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par This graph shows which files directly or indirectly include this file:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLDump_8hpp__dep__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Namespaces\par \pard\plain { \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP::GXML}\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain *ps*.\par \par {{{\b \par Version: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid $Id: {\b XMLDump.hpp},v 1.7 2002/12/19 15:16:45 spabsurd Exp $ \par }{{{\b Author: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Schlund + Partner AG \par } (C) Copyright by Schlund+Partner AG\par Synopsis: #include <{\b sp-gxmlcpp/XMLDump.hpp}>\par Serializing XML Trees.\par \par \pard\plain \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid XMLException.hpp File Reference\par \pard\plain {\tc\tcl2 \v XMLException.hpp} {\xe \v XMLException.hpp} {\bkmkstart XMLException_8hpp} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid *ps*. \par { \pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par \par } Include dependency graph for XMLException.hpp:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLException_8hpp__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par This graph shows which files directly or indirectly include this file:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLException_8hpp__dep__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Namespaces\par \pard\plain { \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP::GXML}\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain *ps*.\par \par {{{\b \par Version: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid $Id: {\b XMLException.hpp},v 1.6 2002/12/19 15:16:45 spabsurd Exp $ \par }{{{\b Author: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Schlund + Partner AG \par } (C) Copyright by Schlund+Partner AG\par Synopsis: #include <{\b sp-gxmlcpp/XMLException.hpp}>\par \par \pard\plain \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid XMLNode.hpp File Reference\par \pard\plain {\tc\tcl2 \v XMLNode.hpp} {\xe \v XMLNode.hpp} {\bkmkstart XMLNode_8hpp} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid *ps*. \par { \pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par \par } Include dependency graph for XMLNode.hpp:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLNode_8hpp__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par This graph shows which files directly or indirectly include this file:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLNode_8hpp__dep__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Namespaces\par \pard\plain { \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP::GXML}\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain *ps*.\par \par {{{\b \par Version: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid $Id: {\b XMLNode.hpp},v 1.9.2.1 2003/04/22 15:24:39 spabsurd Exp $ \par }{{{\b Author: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Schlund + Partner AG \par } (C) Copyright by Schlund+Partner AG\par Synopsis: #include <{\b sp-gxmlcpp/XMLNode.hpp}>\par \par \pard\plain \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid XMLNodeSet.hpp File Reference\par \pard\plain {\tc\tcl2 \v XMLNodeSet.hpp} {\xe \v XMLNodeSet.hpp} {\bkmkstart XMLNodeSet_8hpp} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid *ps*. \par { \pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par \par } Include dependency graph for XMLNodeSet.hpp:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLNodeSet_8hpp__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par This graph shows which files directly or indirectly include this file:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLNodeSet_8hpp__dep__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Namespaces\par \pard\plain { \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP::GXML}\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain *ps*.\par \par {{{\b \par Version: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid $Id: {\b XMLNodeSet.hpp},v 1.9 2002/12/19 15:16:45 spabsurd Exp $ \par }{{{\b Author: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Schlund + Partner AG \par } (C) Copyright by Schlund+Partner AG\par Synopsis: #include <{\b sp-gxmlcpp/XMLNodeSet.hpp}>\par \par \pard\plain \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid XMLTree.hpp File Reference\par \pard\plain {\tc\tcl2 \v XMLTree.hpp} {\xe \v XMLTree.hpp} {\bkmkstart XMLTree_8hpp} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid *ps*. \par { \pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par \par } Include dependency graph for XMLTree.hpp:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLTree_8hpp__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par This graph shows which files directly or indirectly include this file:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XMLTree_8hpp__dep__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Namespaces\par \pard\plain { \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP}\par \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid namespace {\b SP::GXML}\par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \par \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain *ps*.\par \par {{{\b \par Version: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid $Id: {\b XMLTree.hpp},v 1.9 2003/02/27 14:06:49 geye Exp $ \par }{{{\b Author: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Schlund + Partner AG \par } (C) Copyright by Schlund+Partner AG\par Synopsis: #include <{\b sp-gxmlcpp/XMLTree.hpp}>\par \par \pard\plain \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid XSLTrans.hpp File Reference\par \pard\plain {\tc\tcl2 \v XSLTrans.hpp} {\xe \v XSLTrans.hpp} {\bkmkstart XSLTrans_8hpp} {\bkmkend } { \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid *ps*. \par { \pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include }\par {\f2 #include }\par {\f2 #include }\par \par } Include dependency graph for XSLTrans.hpp:\par { \pard\plain \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE XSLTrans_8hpp__incl.png \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par } \par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Detailed Description\par \pard\plain *ps*.\par \par {{{\b \par Version: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid $Id: {\b XSLTrans.hpp},v 1.11 2003/01/30 12:38:31 spabsurd Exp $ \par }{{{\b Author: }}\par \pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Schlund + Partner AG \par } (C) Copyright by Schlund+Partner AG\par Synopsis: #include <{\b sp-gxmlcpp/XSLTrans.hpp}>\par \pard\plain \sect\sbkpage \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid sp-gxmlcpp Example Documentation{\tc \v Example Documentation} \par \pard\plain \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid UnitTests.cpp\par \pard\plain \par CPPUnit Tests for this library. Binary should be installed as sp-gxmlcpp-test.\par { \par \pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid /*\par * (C) Copyright 2002, Schlund+Partner AG\par *\par * This library is free software; you can redistribute it and/or\par * modify it under the terms of the GNU Lesser General Public\par * License as published by the Free Software Foundation; either\par * version 2.1 of the License, or (at your option) any later version.\par *\par * This library is distributed in the hope that it will be useful,\par * but WITHOUT ANY WARRANTY; without even the implied warranty of\par * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\par * Lesser General Public License for more details.\par *\par * You should have received a copy of the GNU Lesser General Public\par * License along with this library; if not, write to the Free Software\par * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\par */\par \par // Local configuration\par #include "config.h"\par \par // C++ Libraries\par #include \par #include \par #include \par #include \par \par #include \par #include \par #include \par #include \par #include \par #include \par \par namespace SP \{\par namespace GXML \{\par \par //\par // XMLTree (&& XMLDump)\par //\par class TestXMLTreeOld: public CppUnit::TestCase\par \{\par public:\par TestXMLTreeOld()\par \{\}\par void testRun()\par \{\par // ^^ Note: dump will always use " (not ') to quote, so we must do this here too for string compare\par const std::string xmlString(\par "\\n"\par "\\n"\par " 5\\n"\par " /home/absurd\\n"\par " AAAABBBBCCCCDDDD\\n"\par "\\n"\par " \\n"\par " \\n"\par " Wert1\\n"\par " \\n"\par " \\n"\par " Wert 2\\n"\par " \\n"\par " \\n"\par "\\n"\par " 5\\n"\par "\\n"\par " -42\\n"\par " 17\\n"\par " 0\\n"\par " abc def \\n"\par "\\n"\par " 13\\n"\par "\\n"\par "\\n"\par " EINS\\n"\par "\\n"\par "\\n"\par " \\n"\par " ZWEI\\n"\par " \\n"\par "\\n"\par " 17\\n"\par "\\n"\par "\\n");\par \par // ^^ Note: dump will always add a \\n to the last line (in a full ("/") dump, that is), so our string should have this too for string compare\par // Note2: It's a bit dumb to literally compare dumps here, as the default way of producing dumps might change... STS\par \par // Partial Tree && Dump\par XMLTree xmlTree1(xmlString.c_str(), xmlString.size());\par std::string dump1 = XMLDump(&xmlTree1, "/req/tags").get();\par CPPUNIT_ASSERT(dump1 ==\par "\\n"\par " EINS\\n"\par "");\par \par // Full Tree && Dump\par XMLTree xmlTree(xmlString.c_str(), xmlString.size());\par std::string dump = XMLDump(&xmlTree, "/").get();\par // STS This does not work anymore with default encoding added in XMLDump\par //CPPUNIT_ASSERT(dump == xmlString);\par \par // XMLTree methods\par CPPUNIT_ASSERT(xmlTree.getValue("/req/string") == " abc def ");\par \par CPPUNIT_ASSERT(xmlTree.getCount("/req/int") == 2);\par CPPUNIT_ASSERT(xmlTree.getValue("/req/int") == "-42");\par CPPUNIT_ASSERT(xmlTree.getValue("/req/int[position()=2]") == "17");\par \par CPPUNIT_ASSERT(xmlTree.getCount("/req/tags/subtag") == 2);\par CPPUNIT_ASSERT(xmlTree.getValue("/req/tags/subtag") == "EINS");\par \par CPPUNIT_ASSERT(xmlTree.getCount("/req/nonexisting") == 0);\par CPPUNIT_ASSERT(xmlTree.getCount("/nonexisting/tag") == 0);\par CPPUNIT_ASSERT(xmlTree.getValue("/nonexisting/tag") == "");\par \par xmlTree.delTag("/req/int");\par CPPUNIT_ASSERT(xmlTree.getCount("/req/int") == 1);\par \par xmlTree.addTag("/req", "newtag", "contents of new tag");\par CPPUNIT_ASSERT(xmlTree.getValue("/req/newtag") == "contents of new tag");\par \}\par \};\par \par \par // XSLTrans Test\par //\par class TestXSLTrans : public CppUnit::TestCase\par \{\par public:\par TestXSLTrans()\par \{\}\par void testRun()\par \{\par std::string xmlString(\par "\\n"\par "\\n"\par "\\n"\par "\\n"\par " \\n"\par " kurt\\n"\par " 2.3.01\\n"\par " \\n"\par " find ich total klasse, koennte aber noch besser sein\\n"\par " \\n"\par " \\n"\par " \\n"\par " kurt\\n"\par " 2.3.01\\n"\par " \\n"\par " find ich total klasse, koennte aber noch besser sein\\n"\par " \\n"\par " \\n"\par "\\n");\par \par std::string xslString(\par "\\n"\par "\\n"\par "\\n"\par "\\n"\par "\\n"\par " \\n"\par " \\n"\par " Gaestebuch\\n"\par " \\n"\par " \\n"\par "

Mein Gaestebuch

\\n"\par "
\\n"\par " \\n"\par " \\n"\par " \\n"\par " \\n"\par "
\\n"\par "
\\n"\par " \\n"\par " \\n"\par "
\\n"\par "\\n"\par "\\n"\par " \\n"\par " \\n"\par " Name\\n"\par " \\n"\par " \\n"\par " \\n"\par " Datum\\n"\par " \\n"\par " \\n"\par " \\n"\par " Text\\n"\par " \\n"\par " \\n"\par " \\n"\par "
\\n"\par " \\n"\par " \\n"\par "
\\n"\par "
\\n");\par \par XMLTree xmlTree(xmlString);\par XSLTrans xslTrans(xslString);\par \par std::auto_ptr resultTree = xslTrans.transToXMLTree(xmlTree.getDocPtr());\par \par CPPUNIT_ASSERT(resultTree.get()->getValue("/html/head/title") == "Gaestebuch");\par CPPUNIT_ASSERT(resultTree.get()->getValue("/html/body/h1") == "Mein Gaestebuch");\par CPPUNIT_ASSERT(resultTree.get()->getCount("/html/body/center/table") == 1);\par \}\par \};\par \par \par // TestXMLTree\par //\par class TestXMLTree : public CppUnit::TestCase\par \{\par public:\par TestXMLTree()\par :tree_(NULL)\par \{\par // test XMLTree's following functions:\par // getString\par // getBool (XSLT-functions: boolean, false, true, not)\par // getFloat\par // getNodeSet\par // getXML\par // getTree\par xmlTree_ = "\\n"\par "\\n"\par " StringValue\\n"\par " \\n"\par " Also a string value\\n"\par " \\n"\par " 1\\n"\par " 0\\n"\par " -1\\n"\par " 3.5\\n"\par " 1.6\\n"\par " -123.2\\n"\par "";\par tree_ = new XMLTree( xmlTree_.c_str() );\par \}\par \par ~TestXMLTree()\par \{\par delete tree_;\par \}\par void testRun()\par \{\par CPPUNIT_ASSERT( tree_ );\par \par testGetString();\par testGetBool();\par testGetFloat();\par testGetNodeSet();\par testGetXML();\par testGetTree();\par \}\par \par void testGetString()\par \{\par // test getString\par // string( xpath ) returns content of first xpath-node\par // string( invalid_xpath ) returns ""\par CPPUNIT_ASSERT( tree_->getString( "string( /test/string )" ) == "StringValue" );\par CPPUNIT_ASSERT( tree_->getString( "string( /test/string[position() = 2] )" ) == "\\n\\t\\tAlso a string value\\n\\t" );\par CPPUNIT_ASSERT( tree_->getString( "string( /test/something )" ) == "" );\par try \{\par // xpath won't return a string\par tree_->getString( "/test/string" );\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( GXML::XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_STRING_FROM_PATH );\par \}\par try \{\par // xpath won't return a string\par tree_->getString( "/test/something" );\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_STRING_FROM_PATH );\par \}\par \}\par \par void testGetBool()\par \{\par // test getBool\par // 0 = false else true, "" = false else true\par CPPUNIT_ASSERT( tree_->getBool( "boolean( number( /test/boolean ) )" ) );\par CPPUNIT_ASSERT( ! tree_->getBool( "boolean( number( /test/boolean[position() = 2] ) )" ) );\par CPPUNIT_ASSERT( tree_->getBool( "boolean( number( /test/boolean[position() = 3] ) )" ) );\par CPPUNIT_ASSERT( tree_->getBool( "true()" ) );\par CPPUNIT_ASSERT( ! tree_->getBool( "false()" ) );\par CPPUNIT_ASSERT( tree_->getBool( "not( /test/something )" ) );\par CPPUNIT_ASSERT( ! tree_->getBool( "not( /test/string )" ) );\par CPPUNIT_ASSERT( tree_->getBool( "boolean( /test/string )" ) );\par CPPUNIT_ASSERT( ! tree_->getBool( "boolean( /test/something )" ) );\par CPPUNIT_ASSERT( tree_->getBool( "boolean( 'anything' )" ) );\par CPPUNIT_ASSERT( ! tree_->getBool( "boolean( '' )" ) );\par try \{\par // xpath won't return a boolean\par tree_->getBool( "/test/string" );\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_BOOL_FROM_PATH );\par \}\par \}\par \par void testGetFloat()\par \{\par // test getFloat\par CPPUNIT_ASSERT_DOUBLES_EQUAL( double(-118.1), tree_->getFloat( "sum( /test/float )" ), 1E-10 );\par CPPUNIT_ASSERT_DOUBLES_EQUAL( double(-123.2), tree_->getFloat( "number( /test/float[position() = 3 ])" ), 1E-10 );\par CPPUNIT_ASSERT( tree_->getFloat( "count( /test/boolean )" ) == 3 );\par try \{\par // xpath won't return a number\par tree_->getFloat( "/test/string" );\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLTREE_NO_FLOAT_FROM_PATH );\par \}\par \}\par \par void testGetNodeSet()\par \{\par std::auto_ptr set = tree_->getNodeSet( "/test/*" );\par CPPUNIT_ASSERT( set->size() == 8 );\par try \{\par // xpath will return an empty set\par std::auto_ptr set = tree_->getNodeSet( "/something" );\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODESET_NO_MATCH );\par \}\par try \{\par // xpath won't return a set\par std::auto_ptr set = tree_->getNodeSet( "true()" );\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODESET_NO_SET );\par \}\par \}\par \par void testGetXML()\par \{\par CPPUNIT_ASSERT( xmlTree_+"\\n" == tree_->getXML( "/" ) );\par \}\par void testGetTree()\par \{\par CPPUNIT_ASSERT( tree_->getXML() == tree_->getTree()->getXML() );\par \}\par private:\par std::string xmlTree_;\par XMLTree *tree_;\par \};\par \par \par // TestXMLNode\par //\par class TestXMLNode : public CppUnit::TestCase\par \{\par public:\par TestXMLNode()\par \{\par // test XMLNode's following functions:\par // getNext\par // getPrev\par // getParent\par // getLast\par // getChild\par // getName\par // getContent\par // getAttribute( name )\par xmlTree_ = "\\n"\par "node1node2child of node 2last node";\par tree_ = new XMLTree( xmlTree_.c_str() );\par \}\par void testRun()\par \{\par XMLNode node1 = XMLNode();\par XMLNode node2 = XMLNode();\par XMLNode node3 = XMLNode();\par std::auto_ptr set = tree_->getNodeSet( "/test/node" );\par for ( XMLNodeSet::Iterator iter = set->begin(); iter != set->end(); ++iter )\par \{\par switch ( iter.getPosition() )\par \{\par case 0: node1 = *iter;\par break;\par case 1: node2 = *iter;\par break;\par case 2: node3 = *iter;\par break;\par default: CPPUNIT_ASSERT( false ); //should never get here.\par \}\par \}\par \par CPPUNIT_ASSERT( node1.getName() == "node" );\par CPPUNIT_ASSERT( node1.getContent() == "node1" );\par CPPUNIT_ASSERT( node1.getNext().getContent() == node2.getContent() );\par // CPPUNIT_ASSERT( node1.getLast().getContent() == node3.getContent() );\par \par CPPUNIT_ASSERT( node2.getContent() == "node2" );\par CPPUNIT_ASSERT( node2.getNext().getContent() == node3.getContent() );\par CPPUNIT_ASSERT( node2.getAttribute( "name" ) == "node2" );\par // first child of node2 is its content text-node, therefore take child->next\par CPPUNIT_ASSERT( node2.getChild().getNext().getContent() == "child of node 2" );\par \par CPPUNIT_ASSERT( node3.getPrev().getContent() == node2.getContent() );\par CPPUNIT_ASSERT( node3.getParent().getName() == node2.getParent().getName() );\par CPPUNIT_ASSERT( node3.getParent().getChild().getContent() == node1.getContent() );\par CPPUNIT_ASSERT( node3.getParent().getLast().getContent() == node3.getContent() );\par \par // first child of node with content is a text-node\par CPPUNIT_ASSERT( node3.getChild().getName() == "text" );\par \par // test for exceptions\par try \{\par node3 = node3.getNext();\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_LAST_NODE );\par \}\par try \{\par node1 = node1.getPrev();\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_FIRST_NODE );\par \}\par try \{\par // parent of parent is document node, which has no parent\par node1 = node1.getParent().getParent().getParent();\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_NO_PARENT );\par \}\par try \{\par node1 = node1.getPrev();\par CPPUNIT_ASSERT( ! "Exception expected!!!" );\par \} catch ( XMLException & e ) \{\par CPPUNIT_ASSERT( e.getException() == XMLException::XMLNODE_FIRST_NODE );\par \}\par \}\par \par private:\par std::string xmlTree_;\par XMLTree *tree_;\par \};\par \par \par // XMLNodeSet Test\par //\par class TestXMLNodeSet : public CppUnit::TestCase\par \{\par public:\par TestXMLNodeSet()\par \{\};\par void testRun()\par \{\}\par \};\par \par // Master Class for all tests\par //\par class UnitTests: public CppUnit::TestSuite\par \{\par public:\par UnitTests()\par \{\par addTest(new CppUnit::TestCaller("Testing XMLTree (old)", &TestXMLTreeOld::testRun));\par addTest(new CppUnit::TestCaller ("Testing XMLTree", &TestXMLTree::testRun));\par addTest(new CppUnit::TestCaller ("Testing XSLTrans", &TestXSLTrans::testRun));\par addTest(new CppUnit::TestCaller ("Testing XMLNode", &TestXMLNode::testRun));\par addTest(new CppUnit::TestCaller("Testing XMLNodeSet", &TestXMLNodeSet::testRun));\par \}\par \};\par \par \}\}\par \par // create binary that tests the XML* stuff\par int\par main(int argc, char **argv)\par \{\par CppUnit::TextTestRunner runner;\par // This must be an object, and must be created with new, as it is deleted by runner (this is braindead, but well).\par SP::GXML::UnitTests * unitTests = new SP::GXML::UnitTests();\par runner.addTest(unitTests);\par if (runner.run())\par return(0);\par else\par return(1);\par \}\par \par } \par \pard\plain \pard\plain \sect\sbkpage \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid XSLTProc.cpp\par \pard\plain \par XSLTProc program; a simple clone of libxslt's xsltproc. Binary should be installed as sp-gxmlcpp-xsltproc.\par { \par \pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid // $Id: XSLTProc.cpp,v 1.4 2003/01/30 12:38:31 spabsurd Exp $\par \par // STDC++\par #include \par #include \par \par // C libraries\par #include // Needed to enable exslt\par \par // Local\par #include \par #include \par #include \par \par int main(int argc, char** argv)\par \{\par // Support for exslt\par exsltRegisterAll();\par \par if (argc < 3)\par \{\par std::cerr << "Usage: " << argv[0] << " XSL-FILE XML-FILE" << std::endl;\par exit(1);\par \}\par \par std::ifstream xslFile(argv[1], std::ios::in);\par assert(xslFile.is_open());\par std::ifstream xmlFile(argv[2], std::ios::in);\par assert(xmlFile.is_open());\par \par SP::GXML::XSLTrans trans(xslFile);\par SP::GXML::XMLTree tree(xmlFile);\par \par std::auto_ptr dump(trans.trans(&tree));\par std::cout << dump.get()->get() << std::flush;\par \}\par \par } \pard\plain \sect\sbkpage \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid \s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid Index\par \pard\plain {\tc \v Index} {\field\fldedit {\*\fldinst INDEX \\c2 \\*MERGEFORMAT}{\fldrslt INDEX}} }sp-gxmlcpp-1.0.20040603/autodoc/rtf/Util_8hpp__incl.png0000644000175000017500000000132010057656714016010 PNG  IHDRvkwS!PLTEo___???HUtRNS7]IDATxOO0pW^  Gxȸ#pmIOi7V:hS W& wmJJumK>b9NY-݅b=Z AjYH!yM!gS'gqB&MvZkjˋYvpϋ$~[wIS^SA{baOW7oZWR9*&B!&ފEBz[ >_/[X^)+"ߣ+ ,aW{uglߙ%*>B$dXoUQE㣀%VY˂ A<Y`b2 h3'VYۂ+A-x 4 o|L` v bEbޏ7oO?0+ʕgD S+P{9L%馴Y]!]+kVZUZi}RMJ#mIENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/Util_8hpp__dep__incl.png0000644000175000017500000000143610057656714017007 PNG  IHDRo!PLTEo___???HUtRNS7IDATxn@B}4$P"*|D>0S&x);!^ʎf;<^l 38q9#-0x)dTVX[VPS±>ò M_RX6pdwL ue NOa$Qla7Q@ $@ $P<$4! ! «?KNBZAax&lx(0 *[oAb,D% [AS=-IJyh2&*Id+]\-\cWp$[A~VCAj$[Alu(qiˎՀ X7.'ZAl5;/ !kCNDd&o*S.u $@ $@r҇ɃN;Q'G{?$I> L 2נ2 9HqE0^( jh9̝`3NgP (`rU&d$@?b=IENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLDump_8hpp__incl.png0000644000175000017500000001240210057656715016365 PNG  IHDR1$PLTEo___???}٭tRNS7IDATxKw6:v͜q'Zx$8婵$&>ɮ,\E Xӽ)ϋoWa~-fl%bvɶ]-fl%bvɶ]-fl%bvɶld \bЪ?7GIߒ:TH6JjSO@bjw04D6K&-mV0M{V5)N1Ş- ӁSy.ϡ1gCIl*q6tJzhG 0^n;tJz|'GtǨI>e׮$TĀybZp<1SjzܨanzzT橂ّcjckR/ߚZv?"f˃ _Lv6XL Ӫ;ŴN.氰a}z*l9F?``֎1/ĘY9_'IӒ;1I>$ N0S"fs;w HGI$q)29Uuq9)i6=gw$6ܩ~GMXz7]3ǴNݻՎ+%N@A53^Eif'W}59[x\S6Swi]\NX1ͥpF~_$23O.X^Ɖ;mFOւ6O ˙p&LbJl0O[rD;Mf~}òUBQ,&cĬUF3a<%_N1 pb2"`ee\g}Qk0cde([cVYzY vgClkV3=oo.`-mWd>1tx ʘ\9Dx|BۈM܅ʼn>1jw$Prb^C,_.WÙm8-wADf++TETvc vX􉉽w1bB0zbqcVembAvdeyk s b5^mwj50uAdS(N騾ȝSq)'v S`\䇝AN*)V7El*o/gk &Tڂewj5h _L2-(|2g'[N1rGTm1 6\B XJ!71xja:ldϫ7-6Yװ|m2۝ qJɌ̿yl<+&,mKy &+q$ojhByջ lL< fwgl:7R؎P1Ϙ; n=}(L`1r&7|1&nm`8 ﮇ$D_O.PLXLsKZEiĬ#o/| ?ۋp')@D]̝b;`u4wYi2򢇙Q'RrpArz@%_T$eE 3O+.(vFT*\:'[gޜ_3L,Sz5¬ M5N'ѳäR]#%&{i{bef1>`/x U"e[)`IU^S,_ h])3SZMAU}jYrfG:Gi=: .^̆^Lnc Sޡd1&QY3gwz6l)10.aŗF1fC¡ă)ip0n3{zvh8f=l=b%c'&I ҚM`l qzl8ӷMSytzl8fԜYdcډYCXLĦ\13KδY8㬰(W{@.&,`p1( (:WqglDl!\Dp2SoNѺ(~T&rFfN׀LɒL9u7M*jKrff$hH"6:fL֍;qXf ~DDlopt^,!(f>h\xs ϳ `ld݈fn~jcs6F[ H"6:fLᶩyDĶ;xDlt͘{^1EmI鷑{+6`1N4Θ 3K5H"epVb6{(EqJ&&f)Y;]q&"fރ̋I,lfdf,̱u099-XhE0[1fQg͙aZ0K\b6,LIVfYpM̊^̆IVt K8!-lXWۂLD*na4m6c?P,fZ,6c.~dVS\+1rQV £\7'13?&:ȕ!`uo7.o`pүEītUrO%^c &}s3 +1W0˫3\^ rEAc֕7xXݨyuO DcX>ƴlb6ʶbrl3m2c;"f>ػ4aYΆNVcl'1^fg1k5fIH (%, Yf̒4aٛ>$kیY̛%1[&ڏY,a#^fLUUS۶42$6a_ lhNIENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLDump_8hpp__dep__incl.png0000644000175000017500000000123610057656715017357 PNG  IHDRv!PLTEo___???KptRNS7+IDATxn@B=jH昨 >6>V8؞=53OCH*RJ#ͬ׃q:0–㾰W!CԄfk6*mtdqoSD<ڿ+hu^_Tm <_Fn][nIt*2ŵKe%Y NJ:8?|zBuyzLPc(\1$L{Q!1yBЈy)”J(OZiw-aRzN3\JHNWk!]?LnG\޸)8n#F0_ 0^&쇰 B~?rBp)<5X ?tB$h!:b`QOҡHTهw-%BS aKI4Z}"S<[Zœgȼs"KgKkPc(%DY[v]oAW X70> *Z>uxD Z ɄGN'aυ£`g~!GLOhIENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLException_8hpp__incl.png0000644000175000017500000000117610057656715017424 PNG  IHDRv)`,!PLTEo___???KptRNS7 IDATxԿo@ ^;-U7^aJx!^+h_w▸nRt'qb4hϤ͚U[rhjV-Хf%>9ٟBMC* ꜥv7%SgZ7nVRS+kFSbSEm7FjS?DQH+ZZ}C(ZCvH㎢b4hF3ьfA-dx X/TΕچA6Fv"VVz0m,|[HCf$ڮ17qw^ǃ'!_wWm..FHC.ăcOfK־DNY)0k,WZ 4RJmomMLN(ɾ5W}}+}}% y6?+/)d> |axVMKhF sڎ+ eIENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLException_8hpp__dep__incl.png0000644000175000017500000000416410057656715020413 PNG  IHDRFLJ-?!PLTEo___???KptRNS7IDATxs8/pͱp,iR1 ɘ&-6ʕd8C2n֚->zm 0^d !2DHAbB {(s~H3b W55/[žGmhAk ˴Ժii%tZ;[#wIZ90:ۃ\j??@Yd4bDKzF 2QpWY16 G,b߹s>b⼯s+Kn^9CH' kdmlIGG!#%X54C4#1ΌȢ)nRl5RCFJ1IV3Ҁj1RO!:H=x#P6 DD{ G P5AQ"G P4# F `f(D!v54L#r#ndBbbd E# # T=m[6wNd 35>BH|>7B,.#5hyн_v_װ:.\ 0&uڪX  5, |䁕\j{u҉_A!1BV#_A!Vr.Bt aX]Qb#@ 5,wa (!`r]+Dew7,4 _#⨲?z^⚑K3FDۿ4!mݻ? XB!VN# 7BG;m]"!#+bIe~Qk@лMaba@adkMf#C f6Q8BEPA&ŐhW T* bd D RKCӽVrKvsEPB[_ 21Zm!Kۈ=t5W G)R|",M5F)_վSWEEHUWE#BҔz 1U4%†(tq3WE"Ҕd]\KS1~WE!)О& uw2dB!3ޣ6FYSypE!ЧH7h@<Ч$@h"Yt{qIX#?Z Gh\0)}~v"F T""TD%Ah|U !U"a'-!\{ dR{ dO#R*F$ Q0BZu{S\rλ~[j%Ĥ]bڳ<*M``c  ƥX\ Nbfib~z[WyXPbg@;tf{TR8|O q!NJy>PJGb#K ]Mk@ZX4VVCKΊE]3@xd=¸w6Y'y q#І7Pܭ0.cOڵj!$<d D™=Mzq{ARLwXC '`jZJ7<"Wyvz%zP4##j@P/`큉[60%.Zv Tt EfB65pBM^o Z롌B{e2+"AhZ>v)C/\X!:˚.fn[ O.+D^#.*"n7B>a0e !2" m3IENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLNode_8hpp__incl.png0000644000175000017500000000355110057656715016352 PNG  IHDRvEo!PLTEo___???KptRNS7IDATxS8/pfqwa; )ɽek%G[H $ر-I1/D}`K֫m@jjjU"c~rEu{KۡHB]"iISQ1\lՕ!%3GAhKڶM ,^o\&Gi|!Oycb_(K+Gƿ{u72iʎ=g~t)\|9Eu.d?W}4?{BYw<3hz3F|s Y>^ߝpx)!)qtc=jp׸.6=%qp26·a p!̵iLC1yHSG>+jpN?{"urPr{>.[_/Tϟ\a$s:"=LlOSñ?Qe\4 sEe&DrƟg"]qGEJ7@ ꊌuG /]T|B9$-`"^0f"3炆KEӧ73߆f{!߄O"y/+2rooV&v_/ސoQgsiL{*˞kM:<{ץ6gRHc+?jSP/u%t+ B)-u2 y 6ˆ·SƷ PXć'-uZGSJ_w)[ҁcSטyjp!E`l' ]g?2 #> k;!n؎q8%yQ׃/x5\46nAR-Z[Tl|Vl|Vl|VltFuIENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLNode_8hpp__dep__incl.png0000644000175000017500000000331510057656715017337 PNG  IHDRF1Ψ!PLTEo___???KptRNS7ZIDATxSHqVqwFS5r]Eȑgᮻpg#B ~ I/vW5 M"Iw-}FlXV-;:r{[p~ 'ߙ)w׵?W;n?v:=䖴7@gXKTNqv7xYqp;^;^9͡WCk7xTɴw3tH֭zڂG݉^X;Pl™xH'H#/n_#BF <"@pzIJo-Q :cj֠鍯 =0G+n}Z i]]VKvp/FL~y\)N\c6`tNs9(4\jׄ=lϷ|HD҉xz͏:@CeF{u{Y(!4TRIR:A_:m'H|JH.3FvՏNXl!|cFI'( `_`Ll_ax{:1qsWWfwvJvLkʴ ?vx¿CvC+'pl[E֣ՎwG{F+:!#z+Oc$l6N2pL3;p{gtJ5N-0IzE>30d7D$:D(=ذ|3c̲2 :8VibʴjL*M6&h"،Th 0BV81r2@kM u4,K'^IOM:9Dt4rݿh`Rkj v :9 ]+ί v:9 팝zpÇb5h49av :9 ^H':9:z i"Fߙ0鸅kTV2KyeܧLMָ\Җ-miK[Җ[N@k̨aZ#&6.a:/Ujc6SaNJ;:t=stľw꒦Vu4`N\hp3 g7.>t(u$7>z(q7?KA""U(c1spɥC9/ف.t?U{_%5ZG8wJA-|[{Q !R ~mkydiK[Җ-miK[ >&%}YL K`/3cxb~#87O@%%:=NfǕSc|@*u x(;ݐa+!X 9\|uN*NFBl7x@[sEV3tx/!g.F}AiSdgt;BZv"r!;5Vlc"%^xKtAlr+NYҖ}rIENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLNodeSet_8hpp__incl.png0000644000175000017500000000753410057656715017033 PNG  IHDR^F!PLTEo___???KptRNS7IDATxW8_s4oq^trm2# $}/Npn$`l9 .^bǮJ?Keh#a2ixᅓN^8ixᅓN^8ixᅓN^8ixdNJɕeoX^Z$o3/k6,' /4p׽«taּk.64/R.F:3#q5SRQͥd5 KJ"tO֓%bEs]y3X"%%׿西Ou`O4]κ?PQ:uz@ۋ_fPSf Mٿr'y8?5g y^BE!e>/zy=}g|}jZ'a~Oϔ}dO#55bZ(qkaߔhqxPԜ-d96!(;r뎹sN:| Mc8 =F.%g`v^[/ mZX7%=CQsׯ@9=qYC'̱d}b0x/C*^O>aD+o+,o,YZzNٱ"Z^<]taᕷ'0.+^|G/;_nO;7#^+J2bgy^Q l;^9{ntx65?O';NHK/Yt;p|D{EaXZ==7z/6kxmXEBɶu}45k yZ|nxk^II+%ǼXUoՖ׷%W%#x3mD9 i`xj}ʤݎբt7 VbG%9h^AReO{QtS p9Hae*/7 [f+ +mJG2tmc^pZɚE U"s`̦ZICZE^߆)TJV44N/Ӂ H, NҨJm9.C%,8›~>oF]QnBQU}Prq:[?:HH^fteXaR4x\!JKxx“i?ƅC#Or_SDQW-r/BW!X^S^~Kl`QX5rzlW0D+Aj :oL 1^YG ߦTh^*ߍ8lxIQd{qx)kMςYiÒSp"\%ZsR mlVk$VwVx0wXܞD%८e꣑]/5lL/D5,.y.!^eJ瑕[HEZ5'vuZ,KNV ʆ+>UBnUdH]7ivsl #`b\nxU-/AJ,bvc&T,/GrcyLfW^DAE}>3]}HiᖕT%x:rcv~W buzt8)] 9/}I5J!dg$r> -)CsM_Ұwzj`7Y8? ߁puN?Oh+^$xI@1[w/* ri^B1I|w7O QzC)E 8d)\Ƽ!BSX@99 =/KZޥ/py~ `9Gj4=H$F[JQHs:sXWY@B3JKӔitwU'w"'SkyG rx.MJ|?גqz>/xGRPNy0'QP<ң=vD;IWy?CH(r q‹~hB.͸%y-C,Ɵ ) ^iE+ӰV'۸TY4 /)TBs3{I/\UW=/'EMlgEX_?-wϣh#F%/d_-w놖f%n>Q&qƋ׶յ!Pӓ E.?d?"jkf^ LGsLږi9Ma?ZU)DF>o2r.l@ls^_LJds?iDĢsnV 14#bJ?_"y@oV-c5|%/P5Ӥ*Afz+^ 2S[_ubqI 3k=~TxWތ4pI ' /l׬hLN|CjO""S w6Oy-3nfՇoN}?r^?16'zhW#^5#ki׋twʇ% a{]󺟳ߌ/ B?>` ~Hx}׼W>E# d̟K`_3' uӍ?ʖ+^Mov7Mto3,!&~o9cu}E|1&~}-ayΫϦ=Y^ / ix᤹>W# /4pI ' /4pI ' /4pI ' /g:+1IENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLNodeSet_8hpp__dep__incl.png0000644000175000017500000000300210057656715020004 PNG  IHDR#s!PLTEo___???KptRNS7IDATxOsF|9&-[OX5q+[s`u þO}0Ho; >9@[{ehCk3b#İvoRZU~\71د= Wp+RD?g0pűun{mNO}ĥ#.v:]%Bkq~vx{L,pnC ҪQ/f"+ڿGfIʂF>8=` Cɢ];F7<,ls{vIjbZ!#;׉QMHJ$gD&-OE޸5M:ΏiČF'0ZFH4-dHѤ&eY )aiJyBF4!}3QHgNK9>tFhO2p+V(HD.h=}4F-lGCzzkB=}S=}4hu5Z Ji(0Jp NOX50vP)7.˙?D?8հ N즣C&] HQQ"Qqfҍh,p,I X(NFna-saibV'/4C7VXW'h/7+^&MkQYÏ5E:'swO'ZeP쿤nF/= _{KNgRN:jd1N'n)Lg\Y-CPjҙOtҩk4:N:M6?:MIDgYkٖV'd|je-x/HgM [:iْ4*9=Wtg-i}`˲d!Pp>.3÷Ҵg|m&W3 ԨՌ8W3D絇na 6+jf_yc]U3IEĺF# t4.úFx5#-:tՌ]6N>݅zՌ5ga iԃV.2G}miCІ6 mhCІ-ח N+biPKK )h7EVs̙Xrh/}p.fwj̿g;F+ i* {O&첹~'킳f@S83c8bԵK6e^Mߍ[!pvpF6HۮxKB j!=lq\J8vvIS;/]c4{a%q M KEtw7>Ҵ\DP/< "ZU|`Z5|9 ly mhC)PcP>IENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLTree_8hpp__incl.png0000644000175000017500000001257410057656715016371 PNG  IHDR ř9!PLTEo___???KptRNS7 IDATxKwƒ_,qyόX׶شĥ$*!wn8$ZA +x`H#DWWWV_h}HKч}HKч}HKч}HKч}HKч}HKч}ȒsT ݻe\.jj˒"їK]B̯EZ>CZ>N16q(!PTU-}~ܫ4A1L ̧}C{y2o2e\V}QIVxF~gm)P2o b@!z05Ugjgm)ślKΎDW+\&a&G^- ``1hK޻$I0yq&>azz~$,4iC~IعK@X]5Fݯpɋx -&cž?=Ųk_Xlȡdbp&$#"MP|s(λ8o}ioo8_ p_ ?DܛX64y%we/~1[Ft&c[]ZEwأo pJs N~}٥h@nA&oCe!IЙKEcfVQQl|y&HNhgK}x8}nLX6` xce!FvFOE+ ؙq(XRl-)>d^BͻaIm0Ү^lez-(_ Ł$&śbdQFgEֳ0\ 'Mb{nz;vFRSѤd-N\Jq44Gk$ڥ+Y*!)RSr}EŎvM+E2!׼̒+ҵ0äoT=QKG&Z12e]3jJ+Ϡh/–JZW].yܑ{iJ.IwZ͑@z1ʻ] feWC^P9R(B Rn&%lH[8*8ŃBpgB6+GJJ+%>+|[0jjsݚF1ק;*E>pQ>`sAƭ[(F1QGX>L 6s.WFr*ӏ}PXlCn;( nTj\(I S9HXn`:݊ c`-S2O>*y#E#9.-vWL&!U.F"ENUAfnSjZ34P31(ZYg 2;maP4*)t5e)tuIXuQuAؗĩatdXzVk;,wPPa*EME :, %(&E(^psEvi>Q5 J2Hx]U٨GLQk0h.VK}ELZM~SJ z'4aZ1(JLrَZ}e:EC%# P^JyߓZIfMi2gU|!w{c@F(rnKàh`m_ wW~a~gĊ]CQ"+x_t.]p)'ֻ冩umቡS>z)Rp䑡3h,c+D_Yd ](E ,\i'Z{VƣM.+sy"?;uu[Xі,.K6P4eGG@=/)Vخrt[AbdV"Ǝi!Q9HLAt3`+(9P4Pk*g 'HK#9@+*AQ ż5Gf) %֗X[6SUn8E$hB i䒄MP5%E36Y5Q (Z]_P.Z7Z.)j$RZ?XdN1LI9v]WsJj+ŨIk|)#YQ,]O4ۍQ\6E u=/|Ww 0U_ s`^wt1t,Zhc!U`™YMfU(b\ "~g'ɧcx0ߗU90z׻ePt*Zhc7~Q 3 h25Ŭfy߁ G$w> ߬7BpO9O&"},r`^wˡR1v~Hxs1F(F &عII,CԅiUUe>TO\Q4_EE @S$H_3~k;w ~-Dh*0-o hV4Cx+b->_TPع)W:%<^g$Jūbe\Rt+dr\jt\\R PJ1vTTQ.¯ɑ8b@_wH Q2z/Rt+:cc/F?ˢ F"άlsSZ@nZLC*peAE8 (Zh PJ)E8jGDmɌZ7 EYb#KR H%ibd4I/,Y>;މrhh)6?Ka(}$/oQ0_rІpnᯛ wfLލ!S]q):vhU|4H;aʘ+q0):5Ŵ}]_7KQXg 34E{Kshy}W~m)Յ]NFs}wA)#3i`S 1jH6B|1RԀ՟9M܁7{EPk̨?h{XCUȏ?2;"OSvA9 7f(24?S}El9C4QmaҲ/XB4<4[ъ}4""?ϻby6;V]_ x܏Sp}1mo KeT6PD^ cyh~( a2򰤈#2ogcY ?R|2Ei9U epe+EU"C tf Qdbany8\ŷV%RWbF9R-p ?R|b%T1k!>T+<=ht?IC"F(^|0G(z~J(7ȑ4c"z% |SivӰpy##g1qihCstIL?~^+)b! 2AEQxa1NP|qY[ %*|JQ'V|S<|?)ob<֌}Sg P<:]rmj&n_w Jthw,bK{Ut=&E]XEۑ[@QV u|@E;[AQηG@eZ󌾣 [A1v_}#T$kpn6(RոG-5nmFHB1l]ՖQthJ5~e(p**EڛKtBJ!Έ.Q$ukE?/EJV4H >NrEB6_t)ud(ڻusAv[N'=βmݺ 9_Sv[f[5ǎR47GR霧,ERn&pw)u 'd)97nSwnEvfwc>8fV )PL3[ӳ'AvO1F^qRy2˧&=>!bk2d擢Xfg8)f>-në (uLvxG1j="{yRa,tR!-ER!-ER!O".8&œ' &_GA%""EuA"~I1Cp=xBl_KQ'I<&?bZ:'GAɊvtw>f̃k))\("-f7$k))> px; F`RlۢM~\wxspb;.$): w"F Gװ\`ɿN(.IRIKч}HCZ;--ER!-ER!-ER!-ER!-ER!-ER!-EL|IENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XMLTree_8hpp__dep__incl.png0000644000175000017500000000233210057656715017347 PNG  IHDR>!PLTEo___???KptRNS7gIDATxAFv+8(p]%V"9VڴUl_kL- Va=?Cc˳..5q!İr/^˿[ԑkjsVfvEh|ߝbЏ>7踭ܭNoLja@bdXm17/}}؝X}"YukG3%1U8ȴ?\p+{z=AֽIDFq}|;Ah\cg)n A^#!a,錝2|Q/L+t56@>#}ajT7MHaNhČNahZg eF¾ ҔiJ' M&}&:ght R2pzY)JRʉ]1F/6Dcq^%>%ziF2"-ۗKF>CǁQk]/re+}]ĭ#Nci[NH3w5'ć)ޗp[Q# qpD^H5>htݮ&1-vDTD3v"jw$~GwQc5Sh|[!_[b:LoA7#9q7nƴw$C%?t5l bz+>CZϋޞEŔWC^ñ .Bzd!}o7 Df5@yDqv4AHCke;x%v`[0m QO .%]%]J[ָIENDB`sp-gxmlcpp-1.0.20040603/autodoc/rtf/XSLTrans_8hpp__incl.png0000644000175000017500000000375510057656716016571 PNG  IHDRL($PLTEo___???}٭tRNS7wIDATx1s6ڕS=6c^D{bkIcvNH[6(/W<,JHsH ~BYige[T1dbRŐ!KC*,U YT1dbRŐ!KC*,U YT1dbRŐ!KC*,U YT1dbRŐ!KC*̡MݪfghJ+1wˡkǶxX]_ ZD`[ՂZ2Z|~i5,ET!X.-UT ZT _Ot!I]$RKHDCUPWh$`sS ֶ 'UJs\TwF6e*c3Su __S)HHMxcRj`R-歄YD)~PY6FF8JHrGI'Ǩ6]`j Sp45μTM\.>U֫)\}(vq0jj AJteO^7:MGJ#HuPA엩N7ƾ3eAOPen,:Mud~65BuڻM(6fjUGXƾ|5?hyٽ-ɐяl6TӓYٴ('n!z!@fӳ;2WS~t{i+Շn$lr{<fO|zaμɐ^ }39`!ն*i!r&^hF.drH6!m'T7ܞ杳eϪT=pHlfzF;AҬ'ccT*a6dQI:ciz)TT4>ʉ,f=h"Ua֊*E:F(Y+UY~5\B /8I2!nbMJgc-L3LqW昻v9=Y<쮨]]J%+*S}7AYZx%+$O_ky-vWdKT2ߩP*]1P ,]ũE\ ^I5:2O)k$ߝ#Ɏᮚ_Kw-.vWҳNwӱ̱6]_C€a}訇StZ=Rz]*mQsMJkф7}F }E5h<[xr0rFaikǪTHj䥽tže|Jq)Qu/Nt7U2Uv;QhN%q*jLTqTe" 귢tyˬ .}k]ir7g]/ĭ-rZIA|YjrH7