From 7866ab9eeaa1a4a15b2f46de413087363c367955 Mon Sep 17 00:00:00 2001 From: Packit Service Date: Dec 09 2020 16:00:13 +0000 Subject: gtk-doc-1.28 base --- diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..7eb7261 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,3 @@ +Damon Chaplin +Owen Taylor + diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 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. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYING-DOCS b/COPYING-DOCS new file mode 100644 index 0000000..1a86456 --- /dev/null +++ b/COPYING-DOCS @@ -0,0 +1,355 @@ + GNU Free Documentation License + Version 1.1, March 2000 + + Copyright (C) 2000 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +written document "free" in the sense of freedom: to assure everyone +the effective freedom to copy and redistribute it, with or without +modifying it, either commercially or noncommercially. Secondarily, +this License preserves for the author and publisher a way to get +credit for their work, while not being considered responsible for +modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work that contains a +notice placed by the copyright holder saying it can be distributed +under the terms of this License. The "Document", below, refers to any +such manual or work. Any member of the public is a licensee, and is +addressed as "you". + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (For example, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, whose contents can be viewed and edited directly and +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup has been designed to thwart or discourage +subsequent modification by readers is not Transparent. A copy that is +not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML designed for human modification. Opaque formats include +PostScript, PDF, proprietary formats that can be read and edited only +by proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML produced by some word processors for output +purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies of the Document numbering more than 100, +and the Document's license notice requires Cover Texts, you must enclose +the copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a publicly-accessible computer-network location containing a complete +Transparent copy of the Document, free of added material, which the +general network-using public has access to download anonymously at no +charge using public-standard network protocols. If you use the latter +option, you must take reasonably prudent steps, when you begin +distribution of Opaque copies in quantity, to ensure that this +Transparent copy will remain thus accessible at the stated location +until at least one year after the last time you distribute an Opaque +copy (directly or through your agents or retailers) of that edition to +the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five). +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section entitled "History", and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. In any section entitled "Acknowledgements" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section as "Endorsements" + or to conflict in title with any Invariant Section. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections entitled "History" +in the various original documents, forming one section entitled +"History"; likewise combine any sections entitled "Acknowledgements", +and any sections entitled "Dedications". You must delete all sections +entitled "Endorsements." + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, does not as a whole count as a Modified Version +of the Document, provided no compilation copyright is claimed for the +compilation. Such a compilation is called an "aggregate", and this +License does not apply to the other self-contained works thus compiled +with the Document, on account of their being thus compiled, if they +are not themselves derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one quarter +of the entire aggregate, the Document's Cover Texts may be placed on +covers that surround only the Document within the aggregate. +Otherwise they must appear on covers around the whole aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License provided that you also include the +original English version of this License. In case of a disagreement +between the translation and the original English version of this +License, the original English version will prevail. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document 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. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation 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. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 + or any later version published by the Free Software Foundation; + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have no Invariant Sections, write "with no Invariant Sections" +instead of saying which ones are invariant. If you have no +Front-Cover Texts, write "no Front-Cover Texts" instead of +"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..6d5eb96 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,5020 @@ +2009-04-15 Stefan Kost + + * autogen.sh: + * configure.in: + Tentative patch to allow building without scrollkeeper and + gnome-doc-utils. Fixes #577059. + +2009-04-05 Stefan Kost + + * examples/Makefile.am: + Only run the tests if gtk-doc is enabled. Fixes #577774. + +2009-03-18 Stefan Kost + + patch by: David Nečas + + * gtkdoc-fixxref.in: + Fix element mismatch in highlighted code. Fixes #575711. + +2009-03-17 Stefan Kost + + * gtk-doc.m4: + Turn pdf off if there is no gtkdoc-mkpdf installed. + +2009-03-17 Stefan Kost + + patch by: Tobias Mueller + + * COPYING-DOCS: + * gtkdoc-check.in: + * gtkdoc-common.pl.in: + * gtkdoc-fixxref.in: + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + * gtkdoc-rebase.in: + * gtkdoc-scan.in: + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + * help/manual/C/fdl-appendix.xml: + * tools/gtk-doc.el: + Update FSF address. Fixes #575623. + +2009-03-17 Stefan Kost + + * gtkdoc-mkpdf.in: + Don't run fop for now, its way to broken. + + * tests/bugs/src/tester.h: + Formatting. + +2009-03-17 Stefan Kost + + patch by: Vincent Untz + + * gtkdoc-common.pl.in: + Be more friendly for files with a space in their name. Fixes #575574. + +2009-03-12 Stefan Kost + + * gtkdoc-mkdb.in: + Do not overwrite declaration variable with sgml-ified variant to not confuse + further parsing. + +2009-03-10 Stefan Kost + + patch by: Nicola Fontana + + * gtkdoc-scan.in: + * tests/bugs/docs/Makefile.am: + * tests/bugs/src/tester.h: + Improve the test and fix handling trailing decorators. Fixes #574654 + +2009-03-10 Stefan Kost + + * tests/bugs/docs/Makefile.am: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c: + * tests/bugs/src/tester.h: + Adding a test for #574654. + +2009-03-10 Stefan Kost + + * gtkdoc-fixxref.in: + Don't expect $MODULE to be defined (e.g. if someone does not update + gtkdoc.make). + +2009-03-09 Stefan Kost + + * ChangeLog: + Fix ChangeLog format so that we pick up the bug number for release + notes. + +2009-03-09 Stefan Kost + + patch by: David Nečas + + * configure.in: + * gtkdoc-fixxref.in: + Add vim support for syntax highlighting. Lets close the ticket. + Fixes #536928. + +2009-03-09 Stefan Kost + + * gtkdoc-scangobj.in: + Don't confuse -1 with G_MAXULONG on 64bit. Fixes #572612. + +2009-02-26 Stefan Kost + + * doc/gtkdoc.dot: + Improve. scan only checks headers, while mkdb scans sources and + headers. + + * examples/Makefile.am: + Document more variables. + +2009-02-26 Stefan Kost + + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + There is some gtk specific stuff there, which we probably want to kick + out. No one else gets such a treatment. + +2009-02-26 Stefan Kost + + * gtk-doc.xsl: + * style.css: + * gtkdoc-mkdb.in: + Fix annotation more. Refactor the extra-link feature. Still disabled + by default. Needs configure stuff next. + +2009-02-24 Stefan Kost + + patch by: Paolo Borelli + + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + Use g_strerror. Fixes #572967. + +2009-02-23 Sven Herzberg + + * gtkdoc-scangobj.in: keep a reference on the GObjectClass while + peeking in interfaces' properties. Fixes #571820 + +2009-02-23 Stefan Kost + + * gtkdoc-mkdb.in: + Don't use named entities. + +2009-02-23 Stefan Kost + + * gtk-doc-single.xsl: + Starting point for generating single page html. Needs refactoring with + gtk-doc.xsl (common stuff into gtk-doc-html.xsl). + +2009-02-23 Stefan Kost + + * TODO: + With fop-0.94 it works actually, while 0.95 seesm to have the + exceptions. + + * gtkdoc-mkpdf.in: + Fix var reference. + +2009-02-22 Stefan Kost + + * TODO: + * gtkdoc-mkdb.in: + Prototype an idea. + +2009-02-22 Stefan Kost + + * Makefile.am: + Dist more files. + + * configure.in: + Update status. + + * gtkdoc-mkpdf.in: + Remove some crack left from copy'n'paste. + +2009-02-22 Stefan Kost + + * TODO: + Planning. + + * configure.in: + * gtk-doc.m4: + * gtk-doc.make: + * gtk-doc.notmpl.make: + * gtkdoc-mkpdf.in: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + * gtkdoc-mkpdf.in (added): + Clean up Makefile rules (be less verbose). Added options to configure to + allow selecting the desired output formats. Added initial pdf support (very + imature yet, due to several shortcommings of fop - bugs files). + +2009-02-21 Stefan Kost + + * TODO: + Planning. + + * gtkdoc-mkdb.in: + Update annotations and fix matching to support parameters. + + * tests/annotations/docs/tester-sections.txt: + * tests/annotations/src/tester.c: + * tests/annotations/src/tester.h: + Update annotation example and add one more. + +2009-02-21 Stefan Kost + + * gtkdoc-mkdb.in: + * help/manual/C/gtk-doc-manual.xml: + * tests/gobject/src/gobject.c: + Allow linking to struct members. Update docs. Fixes #565126. + +2009-02-21 Stefan Kost + + * configure.in: + * gtkdoc-fixxref.in: + Fix params and running of 'highlight'. + +2009-02-21 Stefan Kost + + * gtkdoc-mkdb.in: + Require the line to ends after the double-colon (sans whitespace), + +2009-02-20 Stefan Kost + + patch by: Damien Lespiau + + * gtk-doc.make: + * gtk-doc.notmpl.make: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Add --tag=CC to libtool invocations. Fixes #572396. + +2009-02-18 Stefan Kost + + * examples/Makefile.am: + Fix example to show to to make it work even with make distcheck. + +2009-02-16 Stefan Kost + + * style.css: + * tests/gobject/src/gobject.c: + Also style tags. + +2009-02-10 Stefan Kost + + * MAINTAINERS: + Fix the spelling of my name. + +2009-02-05 Stefan Kost + + * TODO: + Some planning. + + * gtkdoc-mkdb.in: + Single tabs are rendered inconsistently in browsers. Replace them with + a  . + +2009-01-31 Stefan Kost + + * tests/gobject/src/gobject.c: + Try to link to struct members as a test for Bug #565126. + +2009-01-30 Stefan Kost + + * gtkdoc-mkdb.in: + Expanding urls is not a good idea yet. Need to figure out. + +2009-01-29 Stefan Kost + + * tests/tools.sh: + Remove, this is generated. + +2009-01-29 Stefan Kost + + * gtkdoc-mkdb.in: + Automatically creating ulinks for urls. + + * tests/gobject/src/gobject.c: + Add a link for testing. + +2009-01-28 Stefan Kost + + * style-classic.css: + * style.css: + * tests/gobject/docs/tester-docs.xml: + * tests/gobject/src/gobject.c: + Major CSS cleanup. This is hopefully an end of layout issues related + to the fixed navigation bar. + +2009-01-28 Stefan Kost + + patch by: David Nečas + + * gtkdoc-mkdb.in: + * tests/gobject/src/giface.c: + * tests/gobject/src/gobject.c: + Abbreviation where not expanded at the start of text. Fixes #569339. + +2009-01-28 Stefan Kost + + * gtkdoc-fixxref.in: + * tests/gobject/examples/gobject.c: + Expand urls in comments of examples. + +2009-01-27 Stefan Kost + + * gtkdoc-fixxref.in: + * style.css: + Use tables like described in #536928. + + * tests/tools.sh + Comment on why we do the tool check like this. + + * tests/fail.sh: + Comment on test. + + * tests/gobject/docs/tester-docs.xml: + Fix xml a bit. + +2009-01-26 Stefan Kost + + * gtkdoc-mkdb.in: + * tests/bugs/src/tester.h: + * tests/fail.sh: + * tests/fail/docs/tester-docs.xml: + * tests/fail/docs/tester-sections.txt: + * tests/fail/src/tester.c: + Add public symbols from section file when doing the -undocumented.txt + report. Also add the special symbols for the section docs when reading + the section-file. Extend test suite to check for it. Fixes #568732 + +2009-01-26 Stefan Kost + + * gtkdoc-scan.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c: + * tests/bugs/src/tester.h: + Handle inline functions in headers. Fixes #532395. + +2009-01-26 Stefan Kost + + * HACKING: + Mention onine site for regexp testing. + + * gtkdoc-mkdb.in: + Small output cleanups. + + * gtkdoc-mktmpl.in: + Indenting and use LogWarning once more. + +2009-01-23 Stefan Kost + + * gtkdoc-mkdb.in: + Recomment out debug log the accidentialy went in. + + * configure.in: + * tests/Makefile.am: + * tests/fail.sh: + * tests/tools.sh.in: + * tests/tools.sh.in (added): + Add a check that tests that all scripts are runnable. + +2009-01-23 Stefan Kost + + * gtkdoc-check.in: + No need to format a '\n' into a formatstring. + + * gtkdoc-mkdb.in: + Add FIXMEs for Bug 568711. + + * gtkdoc-mkhtml.in: + Add a comment. + + * configure.in: + * tests/Makefile.am: + * tests/fail.sh: + * tests/fail/Makefile.am: + * tests/fail/docs/Makefile.am: + * tests/fail/docs/tester-docs.xml: + * tests/fail/docs/tester-sections.txt: + * tests/fail/src/Makefile.am: + * tests/fail/src/tester.c: + * tests/fail/src/tester.h: + Add a test suite for failure checks. + +2009-01-23 Stefan Kost + + patch by: David Nečas + + * gtkdoc-scan.in: + Don't scan files twice. The patch was slightly changed to name the + hash lowercase (uppercase is used for configureation options) and + add a comment. Fixes #568708. + +2009-01-23 Stefan Kost + + patch by: David Nečas + + * gtkdoc-mkdb.in: + Don't add empty tags to the docs to avoid breaking the + detection of undocumented things. Fixes #568732. + +2009-01-23 Stefan Kost + + patch by: David Nečas + + * gtk-doc.m4: + Change nonsense error message to tell that gtk-doc is needed to build + a given package and not gtk-doc. Fixes #568734. + +2009-01-23 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-scan.in: + Treat iface/interface like class in other places too. + +2009-01-23 Stefan Kost + + patch by: David Nečas + + * gtkdoc-scan.in: + Use CamelCase id for interfaces. Fixes #568706. + +2009-01-23 Stefan Kost + + patch by: David Nečas + + * gtkdoc-mkhtml.in: + * gtkdoc-mkman.in: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Less quirky way of knowing that we run uninstalled, which is only + needed for the tests anyway. In addition to the patch, make same + changes in mkman, add a shift to arg parsing to not loop and change + the makefiles for the tests. Fixes #568702. + +2009-01-22 Stefan Kost + + * gtkdoc-fixxref.in: + Only run the syntax highligher if we have one. Fixes #568714. + +2009-01-22 Stefan Kost + + * README: + Point to the right docs. + + * TODO: + More tinking. + + * style.css: + Remove one commented out item. + +2009-01-21 Stefan Kost + + * TODO: + * configure.in: + * gtkdoc-fixxref.in: + * style.css: + Match css of highlight with source-highlight. Handle line numbering by + our-selfs. Still stupid browsers copy '#' chars for each line number. + +2009-01-21 Stefan Kost + + * gtkdoc-fixxref.in: + Try to xref first word in 'normal' span. + +2009-01-20 Stefan Kost + + * TODO: + * gtkdoc-mkdb.in: + * tests/gobject/src/gobject.c: + We could add the language as a comment, it is not shown in the final output. + +2009-01-20 Stefan Kost + + * TODO: + More ideas. + + * gtkdoc-fixxref.in: + Really fix double extension of entities. + + * style.css: + Fix link color of xrefs symbols. + +2009-01-20 Stefan Kost + + * gtkdoc-fixxref.in: + Indent. + + * gtkdoc-mkdb.in: + Fix end of string handling. + + * style.css: + Use one tango colors one more time. + +2009-01-20 Stefan Kost + + * gtkdoc-mkdb.in: + * tests/annotations/docs/Makefile.am: + * tests/bugs/docs/Makefile.am: + * tests/bugs/docs/tester-docs.xml: + * tests/gobject/docs-tmpl/Makefile.am: + * tests/gobject/docs/Makefile.am: + Detect namespace prefix if not given. + +2009-01-20 Stefan Kost + + * style-classic.css: + * style.css: + Fix gap, caused by double index divs produces by index generated with + the docbook stylesheets. + +2009-01-20 Stefan Kost + + * TODO: + More ideas. + + * gtk-doc.xsl: + Make sure indexdiv and glossarydiv elements have anchors. + + * style-classic.css: + * style.css: + Fix spacing for navbar in index/glossary pages. + + * tests/annotations/docs/tester-docs.xml: + * tests/gobject/docs/tester-docs.xml: + Cleanup samples. + +2009-01-19 Stefan Kost + + * TODO: + More ideas. + + * gtk-doc.xsl: + Experiment with navigation for index and glossaries. + + * gtkdoc-fixxref.in: + * gtkdoc-mkdb.in: + Fix index entries and copy doc along with the method. + + * style.css: + also do the extra spacing for the index/glossary environments now. + + * tests/gobject/docs/tester-docs.xml: + Experiment with a more complete doc structure. + +2009-01-12 Stefan Kost + + * gtkdoc-fixxref.in: + Make highligher post processing conditional. + +2009-01-10 Stefan Kost + + * configure.in: + Erm, not having a highlighter is not fatal. + +2009-01-10 Stefan Kost + + * HACKING: + * TODO: + * configure.in: + * gtkdoc-fixxref.in: + Look for source-highlight and highlight. Not perfect yet, highlight uses + different classes in the css :/. + + * tests/gobject/docs/tester-docs.xml: + More header data in the examples. + +2009-01-09 Stefan Kost + + patch by: David Nečas + + * gtkdoc-scan.in: + Treat FOO_GET_INTERFACE as standard. Fixes #567132. + +2009-01-09 Stefan Kost + + * TODO: + * gtk-doc.make: + * gtk-doc.notmpl.make: + * gtkdoc-fixxref.in: + * gtkdoc-mkdb.in: + * style.css: + * tests/gobject/examples/gobject.c: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Initial go at implementing syntax highlighting for sources using + gnu source-highlight. Needs testing and modularisation. + +2009-01-08 Stefan Kost + + * gtkdoc-mkhtml.in: + Comment out echo for debugging. + +2009-01-08 Stefan Kost + + * gtk-doc.make: + * gtkdoc-mkhtml.in: + * tests/gobject/docs-tmpl/Makefile.am: + * tests/gobject/docs/Makefile.am: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Finally, make distcheck works. + +2009-01-08 Stefan Kost + + * gtkdoc-check.in: + * gtkdoc-depscan.in: + * gtkdoc-fixxref.in: + * gtkdoc-mkdb.in: + * gtkdoc-mkhtml.in: + * gtkdoc-mkman.in: + * gtkdoc-mktmpl.in: + * gtkdoc-rebase.in: + * gtkdoc-scan.in: + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + * gtkdocize.in: + Add support for --help and --version to remaining tools. Also show a + short info on --help and format more consistently. Fixes #566911 + +2009-01-07 Stefan Kost + + * gtk-doc.m4: + * gtk-doc.make: + * gtk-doc.notmpl.make: + Detect gtkdoc-rebase in gtk-doc.m4. Based on idea of Sven Herzberg. + Fixes #562310 + +2009-01-07 Stefan Kost + + * NEWS: + Prepare for 1.12. + + * TODO: + More thinking about the documentation structure. + + * configure.in: + Add automake support for more distcheck. Use a real sourcefile for the + srcdir (something that we wont remove one day). + + * tests/annotations/docs/Makefile.am: + * tests/annotations/src/Makefile.am: + * tests/bugs/docs/Makefile.am: + * tests/bugs/src/Makefile.am: + * tests/gobject/docs-tmpl/Makefile.am: + * tests/gobject/docs/Makefile.am: + * tests/gobject/src/Makefile.am: + Add missing file to fix make distcheck. Use srcdir and not builddir to + locate includes. + +2009-01-07 Stefan Kost + + * TODO: + Ideas about syntax highlighing. + + * style-classic.css: + Old color scheme. + + * style.css: + Use tango colors. Simplify css. + + * tests/gobject/src/gobject.c: + Tell what language this is. + +2009-01-04 Stefan Kost + + * tests/bugs/src/tester.c: + Fix inconsistency of prototype and docs. + +2009-01-04 Stefan Kost + + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Now all tests pass. + +2009-01-04 Stefan Kost + + * gtkdoc-mkhtml.in: + * tests/Makefile.am: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + * tests/gtkdoctest.sh: + Fix running tests, if no gtk-doc is installed yet. + +2008-12-29 Stefan Kost + + patch by: Bruce van der Kooij + + * help/manual/C/gtk-doc-manual.xml: + Fixed three spelling errors (recommanded, conatins, alibrary). + Fixes #565835. + +2008-12-29 Stefan Kost + + * TODO: + Documentation structure ideas. + +2008-12-05 Stefan Kost + + * style.css: + Hightlight deprecation warnings. + +2008-12-04 Stefan Kost + + * gtkdoc-mkdb.in: + Fix escaping. + +2008-12-02 Stefan Kost + + * TODO: + Planning. + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Remove the sh -c here now that its back in scanobj. + + * tests/annotations/docs/tester-docs.xml: + * tests/bugs/docs/tester-docs.xml: + * tests/gobject/docs-tmpl/tester-docs.xml: + * tests/gobject/docs/tester-docs.xml: + Cosmetic template update. + +2008-12-02 Stefan Kost + + * gtkdoc-mkdb.in: + Don't touch doctype header in expand-content-files. + +2008-12-01 Stefan Kost + + * gtkdoc-mkdb.in: + Add deprecation warnings for signals and properties. Also reuse code + for since and stability levels there. Fixes #562655. + + * tests/gobject/src/gobject.c: + Add testcase for #562655. + +2008-12-01 Stefan Kost + + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + Reintroduce "sh -c" and comment why its used. Add real libtool support + to old scanobj tool as well. + +2008-12-01 Stefan Kost + + patch by: Matthias Clasen + + * gtkdoc-mkdb.in: + Fix index-id generation for child and style properties. Fixes #562064. + +2008-11-16 Stefan Kost + + * HACKING: + * configure.in: + * help/manual/C/gtk-doc-manual.xml: + Back to development. + +=== Release 1.11 === + +2008-11-16 Stefan Kost + + * HACKING: + * NEWS: + Releasing 1.11. + + * tests/Makefile.am: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + * tests/gtkdoctest.sh: + Fix make distcheck. + +2008-11-06 Stefan Kost + + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + No install rules for test. + +2008-11-06 Stefan Kost + + * gtkdoc-mkdb.in: + Get rid of german variable name. Generate glossary xml for + annotations. Improve initial master document. + + * tests/annotations/docs/tester-docs.xml: + Update example to include anotation glossary. + +2008-11-05 Stefan Kost + + patch by: Peter Kjellerstedt + + * gtk-doc.make: + * gtk-doc.notmpl.make: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Correct check for existance of gtkdoc-rebase (better fix than the + previous one #508897). Fixes #559281. + +2008-10-27 Stefan Kost + + patch by: Christian Persch + + * gtkdoc-scangobj.in: + Fix doc build when using GTK_DISABLE_SINGLE_INCLUDES. Fixes #558082. + +2008-10-20 Stefan Kost + + * TODO: + * devhelp2.xsd: + More docs and planning. + +2008-10-20 Stefan Kost + + * tests/annotations/docs/tester-docs.xml: + * tests/annotations/src/tester.c: + * tests/gobject/docs/tester-docs.xml: + Update annotations. Glossary enhancements. + +2008-10-19 Stefan Kost + + * devhelp2.xsd: + Update and document format. + +2008-10-17 Stefan Kost + + * devhelp2.xsd: + * devhelp2.xsl: + Add new language attribute and use "c" here. + +2008-10-16 Stefan Kost + + * TODO: + * gtkdoc-mktmpl.in: + Small comment cleanup and loud thinking in TODO :) + +2008-10-15 Stefan Kost + + patch by: Jeffrey Stedfast + + * examples/Makefile.am: + * gtk-doc.make: + * gtk-doc.notmpl.make: + Allow versioned TARGET_DIR. Fixes #554718. + +2008-10-13 Stefan Kost + + * TODO: + planning. + + * doc/gtkdoc.dot: + Document workflow + * devhelp2.xsl: + Add support for enums/flags in devhelp index. + + * gtkdoc-mkdb.in: + Support annotations. Fix missing roles. + + * tests/annotations/docs/tester-docs.xml: + * tests/annotations/src/tester.c: + * tests/annotations/src/tester.h: + * tests/bugs/docs/tester-sections.txt: + * tests/gobject/docs/tester-docs.xml: + Update new syntax. + +2008-10-11 Stefan Kost + + * configure.in: + * tests/Makefile.am: + * tests/annotations.sh: + * tests/annotations/Makefile.am: + * tests/annotations/docs/Makefile.am: + * tests/annotations/docs/tester-docs.xml: + * tests/annotations/docs/tester-sections.txt: + * tests/annotations/src/Makefile.am: + * tests/annotations/src/tester.c: + * tests/annotations/src/tester.h: + Add testcases for gir annotation. + +2008-10-03 Stefan Kost + + patch by: Matthew Barnes + + * gtkdoc-scan.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.h: + Be more careful with "struct _". Fixes #554833. + +2008-10-03 Stefan Kost + + patch by: Behdad Esfahbod + + * gtk-doc.make: + * gtk-doc.notmpl.make: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Add rules to create $(REPORT_FILES). Fixes #552822. + +2008-10-03 Stefan Kost + + patch by: Simon Josefsson + + * examples/Makefile.am: + * tests/bugs/docs/Makefile.am: + * tests/gobject/docs-tmpl/Makefile.am: + * tests/gobject/docs/Makefile.am: + Use GTKDOC_CFLAGS instead of INCLUDES in Makefile.am. Fixes #553407. + +2008-09-24 Stefan Kost + + * gtkdoc-mkdb.in: + Use full symbol, if it does not belong to the namespace. + +2008-09-22 Stefan Kost + + * tests/gobject/src/gobject.h: + Document some odd behaviour. + +2008-09-22 Stefan Kost + + * TODO: + More todos. + + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c: + * tests/bugs/src/tester.h: + Add testcase for bug 552602. + + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Also use new RUN envvar here. + +2008-09-10 Stefan Kost + + * gtkdoc-mkdb.in: + Generate unique ids for properties, style and child properties. + + * gtk-doc.make: + * gtk-doc.notmpl.make: + * gtkdoc-scan.in: + * gtkdoc-scangobj.in: + If we use libtool, run scanner under libtool to use uninstalled + libraries. + +2008-09-04 Stefan Kost + + * gtkdoc-mkhtml.in: + Fix comparision. + + * TODO: + ideas. + + * configure.in: + * gtk-doc-fo.xsl: + * gtk-doc.xsl: + * gtkdoc-common.pl.in: + * gtkdoc-mkdb.in: + * help/manual/C/gtk-doc-manual.xml: + * tests/bugs/docs/Makefile.am: + * tests/bugs/docs/tester-docs.xml: + * tests/gobject/docs-tmpl/Makefile.am: + * tests/gobject/docs-tmpl/tester-docs.xml: + * tests/gobject/docs/Makefile.am: + * tests/gobject/docs/tester-docs.xml: + * tests/gobject/src/gobject.h: + Switch to docbook 4.3 dtd. Fixes #487727. + Add --name-space option to gtkdoc-mkdb for nicer indexes. Start with a + fo wrapper for pdf output. + +2008-09-04 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Don't install index.sgml twice. Also remove the " || :;" construct + that ssems to be there only to eat the return code. + +2008-07-23 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-scan.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.h: + Accept "char const *" as well. Fixes #544172. + +2008-07-21 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Only specify options if gtkdoc-mkhtml can take them. Fixes #543855. + + * gtkdoc-mkhtml.in: + Don't use bash specific features. Be more flexible so that we can add + more options. + +2008-07-09 Stefan Kost + + * gtkdoc-scan.in: + Fix struct/enum level parsing which could go one to high and then the + main struct would never be closed. + Fixes #542137 + +2008-06-28 Stefan Kost + + * autogen.sh: + Mention why this change is bad. + +2008-06-28 Stefan Kost + + patch by: David Nečas + + * examples/Makefile.am: + * gtk-doc.make: + * gtk-doc.notmpl.make: + * gtkdoc-mkhtml.in: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Add searchpath to gtkdoc.mkhtml. Fixes #460753 + +2008-06-22 Stefan Kost + + * autogen.sh: + To support timj aclocal setup we are shipping gnome-doc-utils.m4 + and making sure automake picks it up ;) + +2008-06-22 Stefan Kost + + * tools/migratetmpl.pl: + We were still removing too many s. + Also add andrews trick to escape the c comments. + Add a newline to empty param docs. + +2008-06-22 Stefan Kost + + * m4/gnome-doc-utils.m4: + Add this to svn, so that bootstrap work where no gnome-doc-utils is + available yet. + +2008-06-21 Stefan Kost + + * tools/migratetmpl.pl: + Factor out multiline formatting and use for deprecated field too. + +2008-06-21 Stefan Kost + + * gtkdoc-mkdb.in: + Commenting. + + * tools/migratetmpl.pl: + Convert character entities back. + +2008-06-21 Stefan Kost + + * TODO: + Start collection info about slowly deprecating crack. + + * tools/migratetmpl.pl: + Add title. + +2008-06-21 Stefan Kost + + * tools/migratetmpl.pl: + Use $file in section comment not title. Convert only standalone para + tags. + +2008-06-21 Stefan Kost + + * tools/migratetmpl.pl: + Convert @Varargs: to @...: + +2008-06-21 Stefan Kost + + * tools/migratetmpl.pl: + Convert single line c comments to c++ ones. Indent multiline parameter docs. + +2008-06-16 Stefan Kost + + * gtkdoc-mktmpl.in: + Don't reuse file var, fixes warning context. + + * gtkdoc-scan.in: + Also accept *.hh as headers suffix. + +2008-06-10 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Include original CFLAGS / LDFLAGS when building the scanner. Allows to + have own FLAGS defined in addition. + +2008-06-08 Stefan Kost + + * TODO: + More planning. + +2008-06-08 Stefan Kost + + * TODO: + Add more ideas. + + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + Merge two fwrite calls. + + * tests/gobject/examples/gobject.c: + * tests/gobject/src/gobject.c: + Demostrate how to include source fragments from external files. + + * tests/gobject/src/giface.h: + * tests/gobject/src/gobject.h: + Documents two entries. + +2008-06-07 Sebastian Dröge + + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + Add "%s" format strings to printf-like functions when printing + a string. Fixes #536980. + +2008-06-05 Stefan Kost + + * gtkdoc-fixxref.in: + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + Fix quoting. + + * tools/migratetmpl.pl: + Add first version of a tool to support migration from tmpl docs to + source code comments. + +2008-06-04 Stefan Kost + + * autogen.sh: + Correct invocation for gnome-doc-prepare. + +2008-06-04 Stefan Kost + + * gtkdoc-common.pl.in: + Handle file or line being undefined. + + * gtkdoc-mkdb.in: + Warn about repeated symbols in sections. Also give line of previous + occurrance. Also give that info for double file entries. Fixes #473342 + Give correct error locate for one warning. Fixes #532395 partialy + +2008-06-04 Stefan Kost + + * gtkdoc-mkdb.in: + Don't warn about overriden docs comment if its the same text. + +2008-06-03 Stefan Kost + + * TODO: + Spelling. + + * gtkdoc-mkdb.in: + Warn and skip double file entries in section files. + + * gtkdoc-mktmpl.in: + Use the new warning format in this script too. + + * gtkdoc-rebase.in: + Also use optional parameters here. + +2008-06-02 Stefan Kost + + * tests/gobject/docs-tmpl/tester-docs.xml: + * tests/gobject/docs-tmpl/tester-sections.txt: + * tests/gobject/docs/tester-docs.xml: + * tests/gobject/docs/tester-sections.txt: + * tests/gobject/src/giface.c: + * tests/gobject/src/gobject.c: + * tests/gobject/src/gobject.h: + Add some since: tags for the tests too. + +2008-06-02 Stefan Kost + + * TODO: + tody up and add some comments regarding HTML_DIR. + + * gtkdoc-fixxref.in: + HTML_DIR is not neccesarily set. + + * gtkdoc-mkhtml.in: + Fix uninstalled. + + * tests/gobject/docs-tmpl/tester-docs.xml: + * tests/gobject/docs/tester-docs.xml: + Add more chapter id's and experiment with an index chapter. + +2008-06-02 Stefan Kost + + * style.css: + Improve spacing on indicies and glossaries. + +2008-06-02 Stefan Kost + + * TODO: + * tests/bugs/docs/tester-docs.xml: + * tests/gobject/docs/tester-docs.xml: + * tests/gobject/docs/tester-sections.txt: + * tests/gobject/docs-tmpl/tester-docs.xml: + * tests/gobject/docs-tmpl/tester-sections.txt: + * tests/gobject/src/gobject.c: + * tests/gobject/src/gobject.h: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Add some index lists to the tests. Add a deprecated function. + +2008-06-02 Stefan Kost + + patch by: Felix Riemann + + * gtk-doc.xsl: + * style.css: + Produce valid html. Fixes #534627. + +2008-05-23 Stefan Kost + + * configure.in: + * tests/gobject/Makefile.am: + * tests/gobject/docs-tmpl/Makefile.am: + * tests/gobject/docs-tmpl/tester-docs.xml: + * tests/gobject/docs-tmpl/tester-sections.txt: + * tests/gobject/docs-tmpl/tester.types: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Build same docs once again with old tmpl approach. + +2008-05-23 Stefan Kost + + * tests/bugs/docs/Makefile.am: + * tests/gobject/docs/Makefile.am: + * tests/gtk-doc.make: + * tests/gtk-doc.notmpl.make: + Sync names. + +2008-05-08 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + Fix a long standing bug that killed spaces in tmpl files. + +2008-05-05 Stefan Kost + + * gtkdoc-mkdb.in: + Fix regexps changes from previous commit. When using /e the + replacement part has to be a perl snippet. + +2008-05-05 Stefan Kost + + * gtkdoc-mkdb.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.h: + Don't expand '#' in ulink tags. Also allow to escape "#%@" with '\'. + Add to testsuite. Fixes #530758 + +2008-05-05 Stefan Kost + + * gtkdoc-mktmpl.in: + It is GObject not GtkObject anymore + +2008-05-05 Stefan Kost + + * TODO: + Make note about expanding urls. + + * help/manual/C/gtk-doc-manual.xml: + Document the use of |[ ]| as a shortcut for program listing. + + * tests/gobject/src/giface.h: + * tests/gobject/src/gobject.c: + Fix one undocumented symbol and add an exampl of the programlisting + shortcut. + +2008-04-22 Stefan Kost + + * HACKING: + We need to update the webpage. + + * TODO: + * configure.in: + Planning. + + * gtkdoc-mkdb.in: + Hopefully now unbreak the docbuild, if one has template but not uses + them. + +2008-04-17 Stefan Kost + + * gtkdoc-mkdb.in: + Add one more warning. Also trac location of section docs. Merge + source symbols once and then on demand (if we read a template). + +2008-04-11 Stefan Kost + + * TODO: + * configure.in: + Idea about the tracing. Not that practical as it is. + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + Unify file-error messages. Improve warning detail. Fix undocumented + status for template less runs. + +2008-04-10 Stefan Kost + + * TODO: + Ideas. + + * gtkdoc-common.pl.in: + Add common method for prining (gcc-style) warnings. + + * gtkdoc-mkdb.in: + Use new method. Harmonize the warnings a bit. Remember locations + symbols are taken from template files for use in warnings. + +2008-04-09 Stefan Kost + + * HACKING: + Some releasing info. + + * gtkdoc-mkdb.in: + Print file/line number in warning. + + * help/manual/C/gtk-doc-manual.xml: + Some docs for what the -overrides.txt file is for. + +2008-03-23 Stefan Kost + + * autogen.sh: + Tell automake to not warn us about portabillity issues. Its too late + for that. + + * ChangeLog: + Surgery for the bugnumber. + +2008-03-21 Marc-Andre Lureau + + * .svnignore, Makefile.am, autogen.sh, configure.in, + help/manual/.svnignore, help/manual/C/ChangeLog, + help/manual/C/Makefile.am, help/manual/C/gtk-doc-manual-C.omf.in, + help/manual/C/gtk-doc-manual.xml, help/manual/ChangeLog, + help/manual/Makefile.am, help/manual/gtk-doc-manual.omf.in, + m4/.svnignore, omf.make, xmldocs.make: + GNOME doc-utils migration. Fixes #335239 + +2008-03-22 Stefan Kost + + * HACKING: + * configure.in: + * help/manual/C/gtk-doc-manual.xml: + Back to development. + +=== Release 1.10 === + +2008-03-19 Stefan Kost + + * NEWS: + * HACKING: + Prepare for release. + + * style.css: + Add fix for footnote positions. + +2008-02-27 Stefan Kost + + patch by: Carlos Garnacho + + * tools/gtk-doc.el: + Update emacs mode to work with emacs22. Fixes #513318. + +2008-02-01 Stefan Kost + + * gtkdoc-common.pl.in: + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + * tests/bugs/src/tester.h: + Improve tmpl parsing and add some more logging. Fixes #512154. + +2008-01-30 Stefan Kost + + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.h: + Add testcase for #512154. + +2008-01-28 Stefan Kost + + * gtkdoc-mkdb.in: + Condense all the multiple newlines in the generated xml. + + * tests/gtk-doc.make: + Make sure the testsuite call the uninstalled scripts. + +2008-01-24 Stefan Kost + + * gtk-doc.xsl: + Unbreak fixxref. The index.sgml file should not have leading + whitespace. These were caused by indenting the xsl, which is dangerous + in case of . + + * gtkdoc-fixxref.in: + Debug logging. + +2008-01-21 Stefan Kost + + * gtkdoc-common.pl.in: + Don't warn when parsing enum struct members. + +2008-01-21 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + Give file and line number when complaining about duplicate + definitions. Seems to not have been applied with older commit. + + * gtkdoc-scan.in: + * tests/gobject/src/gobject.h: + Handle typedef enums. + +2008-01-17 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Don't fail in dist when no .types file is present. Fixes #509539. + +2008-01-16 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + Give file and line number when complaining about duplicate + definitions. + +2008-01-14 Stefan Kost + + patch by: Joe Marcus Clarke + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Do not abort the build, if gtk-doc is not installed. Fixes #508897 + +2007-12-20 Mathias Hasselmann + + * configure.in: + Lower Python dependency to 2.3 (#503054). Just warn when Python + wasn't found. Print a configuration summary before leaving the + configure script. + * Makefile.am: + Do not install gtkdoc-depscan when Python wasn't found. + +2007-12-20 Mathias Hasselmann + + * gtkdoc-depscan.in: + Use old and/or pattern instead of the new ternary operator. + This drops the Python 2.5 dependency for that script. + Original patch by Frederic Peters. (#503054) + +2007-12-17 Mathias Hasselmann + + * configure.in: + Use AM_PATH_PYTHON instread of AC_PATH_PROG to find Python. + (#503710) + +2007-12-17 Stefan Kost + + * gtk-doc.xsl: + Render accronyms from docbook and glossary in html. + +2007-12-17 Stefan Kost + + * tests/bugs/docs/tester-docs.sgml: + * tests/bugs/docs/tester-docs.xml: + * tests/gobject/docs/tester-docs.sgml: + * tests/gobject/docs/tester-docs.xml: + Add the xml instead of the sgml docs. + +2007-12-12 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Revert last change and reopen #503119. Needs a different fix. + +2007-12-12 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Use content_files as a dependency the sgml-build.stamp. + +2007-12-11 Mathias Hasselmann + + * gtkdoc-depscan.in: + Use colon as name-version-separator in book names. + +2007-12-11 Mathias Hasselmann + + * gtkdoc-depscan.in: + Also scan devhelp folders. + +2007-12-11 Mathias Hasselmann + + * gtkdoc-depscan.in: + Print reasonable error message when passing + non-existant files on command line. + +2007-12-11 Stefan Kost + + patch by: Kouhei Sutou + + * gtk-doc.xsl: + Consitently use UTF-8 instead of US-ASCII for output encoding. + Fixes #497367 + +2007-12-10 Mathias Hasselmann + + * configure.in: + * gtkdoc-depscan.in: + * Makefile.am: + Add gtkdoc-depscan, which resolves source code dependencies + by scanning devhelp2 books. + +2007-12-10 Stefan Kost + + * devhelp2.xsd: + Update schema. + + * gtk-doc.notmpl.make: + Remove left-over 'fi'. + +2007-12-05 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Better fix for #501066. + +2007-12-05 Stefan Kost + + * devhelp2.xsd: + Add first version of the schema. + + * devhelp2.xsl: + Unbreak the devhelp2 file generation. + + * tests/gtkdoctest.sh: + Add comment about doing schmea checks once they work. + +2007-12-04 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Apply build flags cleanups from #498521. Spotted by + dmacks@netspace.org. + +2007-12-04 Stefan Kost + + * tests/gobject/src/giface.c: + * tests/gobject/src/gobject.c: + Uhm, unbreak the links in the test docs. + +2007-12-04 Stefan Kost + + * tests/gobject/src/giface.c: + * tests/gobject/src/gobject.c: + Little test cleanup. The bug was already fixed. + +2007-12-04 Stefan Kost + + * tests/gobject/docs/tester-sections.txt: + * tests/gobject/docs/tester.types: + * tests/gobject/src/Makefile.am: + * tests/gobject/src/giface.c: + * tests/gobject/src/giface.h: + * tests/gobject/src/gobject.c: + * tests/gobject/src/gobject.h: + * tests/gobject/src/tester.c: + * tests/gobject/src/tester.h: + Refactor tests for #489279. + +2007-12-04 Stefan Kost + + * gtkdoc-common.pl.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.h: + Add testcase for #501038. Improve struct parsing to correctly finish + if the last line in struct declaration was a preprocessor statement. + Fixes #501038. + +2007-12-04 Stefan Kost + + patch by: David Nečas + + * gtkdoc-common.pl.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c: + * tests/bugs/src/tester.h: + Handle forward typedef'd enums. Fixes #446648. + +2007-12-02 Loïc Minier + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Add double-quotes around `which gtkdoc-rebase` to prevent "test" + from failing with "/bin/sh: line 11: test: !=: unary operator + expected ". Fixes #501066. + +2007-11-11 Stefan Kost + + patch by: David Nečas + + * gtk-doc.xsl: + * gtkdoc-mkdb.in: + Avoid generated node ids. Fixes #365913. + +2007-11-11 Stefan Kost + + * gtk-doc.xsl: + * gtkdoc-mkdb.in: + * style.css: + Alternative and cleaner footer implementation (unblock #365913). + +2007-11-11 Stefan Kost + + patch by: David Nečas + + * gtkdoc-mkdb.in: + * gtkdoc-scangobj.in: + Display proper types for pointer properties. Fixes #468278. + +2007-10-31 Stefan Kost + + * gtkdoc-mkdb.in: + Only warn about missing deprecation guards for declared symbols. + Fixes #492005. + +2007-10-31 Stefan Kost + + * tests/gtk-doc.make: + * tests/gtkdoctest.sh: + Run our own check script. Clean the make output a bit. + +2007-10-31 Stefan Kost + + * help/manual/C/gtk-doc-manual.xml: + Small doc fix. + +2007-10-31 Stefan Kost + + * Makefile.am: + Formatting. + + * configure.in: + * tests/gtk-doc.make: + Cleanup the 'make check' deps configure check. + +2007-10-01 Stefan Kost + + * configure.in: + * help/manual/C/gtk-doc-manual.xml: + Back to development. + +=== Release 1.9 === + +2007-09-30 Stefan Kost + + * NEWS: + Releasing 1.9. + +2007-09-27 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + * gtkdoc-rebase.in: + New day, new fix. Remove testing $(DESTDIR) from makefile and use + Getopt::Long qw(:config gnu_getopt); in rebase. + +2007-09-26 Stefan Kost + + * gtk-doc.make: + And actually saving before commiting might greatly help. + +2007-09-26 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Another attempt to fix the rules. + +2007-09-26 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + If there is nothing to install, don't rebase. + +2007-09-26 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Unbreak the last change. + +2007-09-26 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Handle DESTDIR= case. + +2007-09-26 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + * gtkdoc-rebase.in: + Fix destdir option name. + +2007-09-25 Stefan Kost + + * tests/gtk-doc.make: + Get make distcheck fully working. + +2007-09-25 Stefan Kost + + * tests/Makefile.am: + * tests/bugs.sh: + * tests/gobject.sh: + * tests/gtkdoctest.sh: + Try to get make distcheck to run. + + * tests/gtk-doc.make: + Don't dist docs generated during test runs and remove some cruft. + + +2007-09-24 Stefan Kost + + patch by: David Nečas + + * NEWS: + * tests/bugs/docs/Makefile.am: + * tests/gobject/docs/Makefile.am: + * tests/gtk-doc.make: + Adapt xml/ cleaning from gtk-doc.notmpl.make. Clean log files. + +2007-09-24 Stefan Kost + + * NEWS: + Current release notes. + +2007-09-24 Stefan Kost + + * MAINTAINERS: + Make mango happy. + + * examples/Makefile.am: + * gtk-doc.make: + * gtk-doc.notmpl.make: + Process files from DISTCLEANFILES in the dist-hooks. + +2007-09-24 Stefan Kost + + patch by: David Nečas + + * Makefile.am: + Add gtk-doc.notmpl.make to EXTRA_DIST. Fixes #479913. + +2007-09-20 Stefan Kost + + * gtkdoc-fixxref.in: + Revert online option for fixxref now that we have a rebase command. + +2007-09-18 Stefan Kost + + * gtkdoc-scan.in: + Handle function pointers. Fixes #477532. + +2007-09-18 Stefan Kost + + patch by: David Nečas + + * gtkdoc-scan.in: + Parse reoccuring const. Fixes #471014. + + * tests/bugs/docs/Makefile.am: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c: + * tests/bugs/src/tester.h: + * tests/gobject/docs/Makefile.am: + * tests/gobject/src/tester.c: + * tests/gobject/src/tester.h: + Add more tests and cleanup the test-code a little. + +2007-09-17 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Revert some Makefile improvements, as we can't control the quoting + reliably. + +2007-09-11 Stefan Kost + + * gtkdoc-mkdb.in: + Default master doc should have proper extension. Fixes #467773. + +2007-09-11 Stefan Kost + + patch by: David Nečas + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Makefile improvements. + +2007-09-03 Stefan Kost + + * MAINTAINERS: + Update MAINTAINER to adhere to rules given on + http://live.gnome.org/MaintainersCorner#maintainers + +2007-08-23 Benjamin Otte + + * gtkdoc-mktmpl.in: + sync with gtkdoc-mkdb completely. Really fixes #419997 + +2007-08-21 Stefan Kost + + * gtkdoc-mkdb.in: + * style.css: + Add divider and empty space at the bottom. Mostly fixes #448879. + +2007-08-21 Stefan Kost + + * gtk-doc.make: + * gtk-doc.notmpl.make: + Make use of rebase if possible. Fixes #465920 + + * gtkdoc-rebase.in: + Rebase improvements and fixes. + +2007-08-16 Stefan Kost + + * .cvsignore: + * help/.cvsignore: + * help/manual/.cvsignore: + * help/manual/C/.cvsignore: + Get rid of cvsignore files. + +2007-08-14 Stefan Kost + + * gtkdoc-common.pl.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.h: + Don't die when encountering #if/#endif in enums. Fixes #324535. + +2007-08-14 Stefan Kost + + patch by: Frederic Peters + + * style.css: + Styling hr tags. + +2007-08-14 Stefan Kost + + * help/manual/C/gtk-doc-manual.xml: + Document new features and bump version. + +2007-08-13 Stefan Kost + + * gtkdoc-mkdb.in: + Fix the funny side-effect of last 'broken-returns' fix. + +2007-08-13 Stefan Kost + + * gtkdoc-scan.in: + * tests/bugs/src/tester.h: + Really fix #460127. + +2007-08-13 Stefan Kost + + * gtkdoc-mkdb.in: + Now the 'broken' returns seems to work better. Fixes #380824 more. + +2007-08-13 Stefan Kost + + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c (bug_379466, bug_380824): + * tests/bugs/src/tester.h (test): + New test. + * tests/gtkdoctest.sh: + Fix bashism. + +2007-08-12 Stefan Kost + + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.h: + Add another test for a bug we fixed with the changes below. + Fixes #460127. + +2007-08-12 Stefan Kost + + * gtkdoc-scan.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c: + * tests/bugs/src/tester.h: + Improved scan logic. Fixes #411739. + +2007-08-12 Stefan Kost + + * gtkdoc-mkdb.in: + * tests/bugs/src/tester.h: + Handle newline in declarations better. Fixes #379466. + Ensure space in multiline declarations when removing the newline. + Fix missing argument docs in template free build. + +2007-08-12 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + Handle "unsigned long|unsigned short|signed long|signed short". + Fixes #445693. + +2007-08-12 Stefan Kost + + * Makefile.am: + * configure.in: + * gtkdoc-check: + * gtkdoc-check.in: + Replacing my shell based test script by Davids perl based one. Add + licence, copyright and docs header. Integrate with build. + +2007-08-12 Stefan Kost + + patch by: David Nečas + + * gtkdoc-scangobj.in: + Make introspection of interfaces work in more cases. Fixes #355352. + +2007-08-12 Stefan Kost + + patch by: David Nečas + + * configure.in: + Cleanup glib detection for tests. + +2007-08-11 Stefan Kost + + * gtkdoc-check: + Fix modulename check. + +2007-08-11 Stefan Kost + + * Makefile.am: + Install new makefile. + + * configure.in: + Bump version as we're working on 1.9. + + * gtkdocize.in: + Add option to select makefile-flavour. + +2007-08-11 Stefan Kost + + * gtk-doc.make: + Add dummy rule to make first build run through. Fixes #156643 + +2007-08-11 Stefan Kost + + * style.css: + Hide fixed navigationbar when printing. Fixes #449618 + +2007-08-11 Stefan Kost + + * gtk-doc.notmpl.make: + Add new makefile for tmpl-less build. + +2007-08-11 Stefan Kost + + patch by: David Nečas + + * autogen.sh: + Accepts automake 1.10 too. Fixes #459225 + +2007-08-11 Stefan Kost + + * gtkdoc-mkdb.in: + Make the tmpl-less build work. + + * tests/gtk-doc.make: + Switch again to the tmpl-less build. + +2007-08-10 Stefan Kost + + patch by: Rouslan Solomakhin + + * configure.in: + Fix the build. + +2007-08-10 Stefan Kost + + * gtk-doc.make: + * tests/gtk-doc.make: + Revert fix for #433338 and reopen bug. Breaks if file is not there, + e.g. if --rebuild-types is used. + +2007-08-10 Stefan Kost + + * gtk-doc.make: + Some cleanups. + + * tests/gtk-doc.make: + Try the tmpl free build here. + +2007-08-10 Stefan Kost + + * examples/Makefile.am: + Add commented out TESTS. + + * gtk-doc.m4: + Check for location of gtkdoc-check. + + * Makefile.am: + * gtkdoc-check: + Test doc status and print result in check like layout. + +2007-08-02 Stefan Kost + + patch by: Sven Herzberg + + * gtk-doc.make: + * tests/gtk-doc.make: + Rebuild documentation of $(DOC_MODULE).types changed. Fixes #433338 + +2007-08-02 Stefan Kost + + patch by: David Nečas + + * Makefile.am: + * configure.in: + * gtkdoc-rebase.in: + Allow rebasing cross-references in generated docs. Fixes #434134. + +2007-08-02 Stefan Kost + + * gtkdoc-mkhtml.in: + Add a hack to gtkdoc-mkhtml to run uninstalled too. + +2007-08-02 Stefan Kost + + Patch by: David Nečas + + * gtk-doc.xsl: + Generate ONLINE tag in index.sgml. + + * gtkdoc-fixxref.in: + Allow to base links against online versions of xreffed docs. + Fixes #454916. + + * gtkdoc-mkdb.in: + Add releaseinfo to doctemplates. + + * tests/bugs/docs/tester-docs.sgml: + * tests/gobject/docs/tester-docs.sgml: + Update templates. + +2007-08-02 Stefan Kost + + * tests/bugs/docs/Makefile.am: + * tests/gobject/docs/Makefile.am: + * tests/gtk-doc.make: + Use PERL5LIB envvar to use uninstalled gtkdoc-common.pl for tests. + Use tee to both show and redirect logs. + Build test-docs in check-local instead of all-local. + Fixes #459725. + +2007-07-25 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-scan.in: + Some more debug prints and code cleaning. + +2007-07-23 Stefan Kost + + Patch by: Yeti + + * gtk-doc.make: + * gtkdoc-mkdb.in: + Report undeclared symbols into a file. Fixes #436565. + +2007-07-18 Stefan Kost + + * gtkdoc-mkdb.in: + Readd two debug prints and remove one obsolete one. + + * tests/bugs/Makefile.am: + * tests/gobject/Makefile.am: + Enforce 'make clean' before 'make check'. + +2007-07-18 Stefan Kost + + Patch by: Yeti + + * gtkdoc-mkdb.in: + Cleanup broek-return handling and add ignore_broken_returns for + section docs. Fixes #457077 + + * tests/bugs/docs/Makefile.in: + * tests/gobject/docs/Makefile.in: + Remove. + + * tests/gtk-doc.make: + Use the local tools so that 'make check' works uninstalled. + + +2007-07-18 Stefan Kost + + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c: (bug_419997): + * tests/bugs/src/tester.h: + * tests/gobject/src/tester.c: (gtkdoc_tester_class_init): + * tests/gobject/src/tester.h: + Add more test cases. + +2007-07-17 Stefan Kost + + * tests/bugs/docs/Makefile.in: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/src/tester.c: (bug_141869_a), (bug_141869_b), + (bug_379466), (bug_445693): + * tests/bugs/src/tester.h: + * tests/gtk-doc.make: + * tests/gtkdoctest.sh: + Improve test suite. + +2007-07-17 Stefan Kost + + Patch by: Yeti + + * gtkdoc-common.pl.in: + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + * gtkdoc-scan.in: + Improve paramenter parsing to allow parameter names that contain + const or restricted. Fixes #419997 + Also fix the signed/unsigned more. + +2007-07-17 Stefan Kost + + * Makefile.am: + * autogen.sh: + * configure.in: + * tests/Makefile.am: + * tests/bugs.sh: + * tests/bugs/Makefile.am: + * tests/bugs/docs/Makefile.am: + * tests/bugs/docs/Makefile.in: + * tests/bugs/docs/tester-docs.sgml: + * tests/bugs/docs/tester-sections.txt: + * tests/bugs/docs/tester.types: + * tests/bugs/src/Makefile.am: + * tests/bugs/src/tester.c: (bug_445693), (bug_141869_a), + (bug_141869_b): + * tests/bugs/src/tester.h: + * tests/gobject.sh: + * tests/gobject/Makefile.am: + * tests/gobject/docs/Makefile.am: + * tests/gobject/docs/Makefile.in: + * tests/gobject/docs/tester-docs.sgml: + * tests/gobject/docs/tester-sections.txt: + * tests/gobject/docs/tester.types: + * tests/gobject/src/Makefile.am: + * tests/gobject/src/tester.c: (gtkdoc_tester_new), + (gtkdoc_tester_get_property), (gtkdoc_tester_set_property), + (gtkdoc_tester_class_init), (gtkdoc_tester_get_type): + * tests/gobject/src/tester.h: + * tests/gtk-doc.make: + * tests/gtkdoctest.sh: + Add test-suite. Fixes #457173 + +2007-07-16 Stefan Kost + + Patch by: Yeti + + * gtkdoc-mkdb.in: + Avoid useless $return_start access. + +2007-07-16 Stefan Kost + + Patch by: Petteri Räty + + * gtk-doc.m4: + Make gtk-doc.m4 fail when needed gtk-doc is not installed and notify + user. Fixes #323938 and #450338. + +2007-07-15 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + Handle signed/unsigned without int. Fixes #141869. + +2007-07-15 Stefan Kost + + Patch by: Yeti + + * gtkdoc-mkdb.in: + Improve handling of legacy "return" statement doc parsing. Warn about + those. + +2007-07-15 Stefan Kost + + * gtkdoc-mkdb.in: + Fix perl warning about usage of undefined symbol. + +2007-07-15 Stefan Kost + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + Sync the function decl arg parsing. Fixes #419308. + +2007-07-15 Stefan Kost + + * gtkdoc-fixxref.in: + Improve the ---help output a little. + +2007-07-15 Stefan Kost + + * gtkdoc-fixxref.in: + Improve detection of absolute/relatives paths. Skip duplicate paths. + Fixes #453717. + +2007-06-14 Lo�c Minier + + * gtk-doc.make: + Cleanup $(DOC_MODULE)-undocumented.txt files in + maintainer-clean-local. Fixes #415388. + +2007-06-14 Lo�c Minier + + * gtk-doc.m4: + Fix warnings in m4 macros when running "autoreconf -fi -Wall"; + Guillem Jover. Fixes #428596. + +2007-06-11 Damon Chaplin + + * gtkdoc-mkdb.in (ExpandAbbreviations): just output "signal" and + "property" as the text for cross-reference links to signals and + properties, rather than something like "Object::signal" which can get + a bit long. Also tidied up the code a little. + (GetArgs): put the " inside the literal element. + (GetSignals): use a literal element for the signal name in the title, + to match the properties. + +2007-03-16 Stefan Kost + + * gtkdoc-common.pl.in: handle preprocessor statements in enum and + struct declarations. Fixes #418027. + +2007-02-27 Stefan Kost + + * gtk-doc.xsl: create toc for part and reference + + * style.css: Fix placement of div.reference + +=== release 1.8 === + +2007-02-16 Damon Chaplin + + * Released 1.8. + +2007-02-16 Damon Chaplin + + * gtkdoc-scan.in: only rebuild the .types file automatically on the + very first run (i.e. when there are no sections or types files). + + * gtkdoc-scangobj.in: skip gnome_keyring_item_info_get_type if it is + in the .types file as it isn't a real GObject type. This is a hack to + avoid breaking the GNOME build. See bug #386508. + +2007-02-11 Stefan Kost + + * gtk-doc.xsl: fix prerequisite section in nav-header + +2007-02-07 Stefan Kost + + * style.css: fixing footnote subscripts, make tables look nicer. + #405051 + +2007-02-07 Damon Chaplin + + * gtk-doc.make: make $(DOC_MODULE)-sections.txt and + $(DOC_MODULE)-overrides.txt depend on scan-build.stamp, so that + parallel make works. #404122, Ed Catmur. + +2007-02-07 Damon Chaplin + + * gtkdoc-scangobj.in: don't return if !G_TYPE_IS_OBJECT (object_type) + as that means interface properties don't get output. This was broken + by the patch for #348058. + +2007-01-21 Damon Chaplin + + * gtkdoc-mkdb.in: added "--default-includes" option to specify the + default "#include"s to place at the top of the synopsis of each + section. Normally this is specified in a ... line + in MODULE-sections.txt, but if you are using the "--rebuild-sections" + option to automatically rebuild the MODULE-sections.txt file you can't + use that. #395023. + +2007-01-21 Damon Chaplin + + * gtkdoc-mktmpl.in (ReadTemplateFile): + * gtkdoc-mkdb.in (ReadTemplateFile): improved param regexp to handle + weird macro vararg names like "format...". #398971. + +2007-01-16 Damon Chaplin + + * gtkdoc-mkdb.in: support "Include" setting in section docs in source + code, same as ... setting in sections.txt file. + Part of #395023. + +2007-01-16 Damon Chaplin + + * gtkdoc-mkdb.in (OutputMacro): try to line up multiple lines of + arguments if possible. #384249 + +2007-01-16 Damon Chaplin + + * gtkdoc-scan.in (ScanHeader): for headers marked private, return + immediately so we don't add anything to the sections file. #395005. + +2007-01-16 Damon Chaplin + + * gtkdoc-mkdb.in: a number of changes to help when adding example code + to the docs (#368382): + + a) Support CDATA in source code comments. (We don't touch anything in + CDATA.) + b) Support |[ ... ]| to include example code. (Just gets converted to + ) + c) Improve handling, by not inserting + and not expanding "()", "@" or "%". (It still expands '#' so people + can use cross-references to any symbols if they want to.). + d) Improve '#' links a bit by skipping symbols that look like C + preprocessor directives (e.g. "#include"). + e) Improve '&' handling a bit by converting to '&' if it doesn't + already look like the start of an entity reference. + f) Added special case for "#include " in so the + "<" and ">" get replaced by entities. + + * gtkdoc-mktmpl.in (ReadTemplateFile): + * gtkdoc-mkdb.in (ReadTemplateFile): fixed param regexp so it handles + "@...:" for varargs again. It also cleans up messed up template files + luckily. + +2007-01-04 Damon Chaplin + + * gtk-doc.make (dist-hook): abort dist if html docs aren't generated. + #166462, Gustavo Carneiro. + +2007-01-03 Damon Chaplin + + * gtkdoc-mkdb.in: improved output a little - made field widths larger, + removed signal prototypes from synopsis, and capitalized all signal + flags (to be consistent with argument capitalization). #384247, + Hans Petter Jansson. + +2007-01-03 Damon Chaplin + + * gtkdoc-mktmpl.in (OutputDeclaration): + * gtkdoc-mkdb.in (OutputFunction): fix parsing of "char * const" + arguments, with an extra "\s*". #387681 + +2007-01-03 Damon Chaplin + + * omf.make: + * xmldocs.make: updated to new versions from gnome-common. #363622 + Also reverted the changes made for #316508 since they may cause + problems. We'll let the scrollkeeper/gnome-common/autoconf people + sort out that issue. + +2006-12-07 Ross Burton + + * help/manual/C/gtk-doc-manual.xml: + Add examples of how to document structs, properties and signals + (#383401). + +2006-12-04 Damon Chaplin + + * gtkdoc-scangobj.in: added a '--query-child-properties' argument to + allow you to specify a function to return a list of child properties + for a class (similar to GtkContainer child properties). #379203 + +2006-10-16 Damon Chaplin + + * gtkdoc-scangobj.in: remove a shadow declaration to avoid compiler + warnings. #362475 + +2006-10-15 Damon Chaplin + + * gtkdoc-scan.in: added a '--rebuild-sections' option that will + automatically recreate the MODULE-sections.txt file each time. + (This only works for projects with very neat header files.) #310494. + +2006-10-15 Damon Chaplin + + Bug #338517: Automatically creating/updating .types file: + + * gtkdoc-scan.in: added a '--rebuild-types' option which will + automatically update the .types file using all _get_type() functions + found in the headers. (It will also do this if no .types file is found, + i.e. when gtk-doc is first run on a project.) + + * gtk-doc.make (scan-build.stamp): run gtkdoc-scan before + gtkdoc-scangobj so we can use the generated .types file. + + * gtkdoc-scangobj.in: if the .types file doesn't have any #include + directives, just output "extern GType *get_type();" declarations for + each *_get_type() function. + +2006-10-14 Damon Chaplin + + * gtkdoc-mkdb.in (ExpandAbbreviationsExceptCDATA): new function used + to expand abbreviations in extra files, but leaving CDATA sections + as they are. (#360579) + +2006-10-14 Damon Chaplin + + * gtkdoc-mkdb.in (OutputSGML): Allow the section id to be set from + within the source code "SECTION:" comment block. (#349855) + +2006-10-13 Damon Chaplin + + * style.css: added missing comma from previous fix (#360967). + +2006-10-13 Damon Chaplin + + * gtkdoc-mkdb.in (OutputSymbolTraits): new function to output the + "Since" and "Stability Level:" paragraphs, with roles to allow + XSLT styling. (#348046) + +2006-10-13 Damon Chaplin + + * gtkdoc-scangobj.in: support interfaces on non-GObject types. + (#348058, Josh Parsons). + +2006-10-13 Damon Chaplin + + * gtkdoc-scangobj.in: make sure interfaces are initialized so the + signals query works. (#355352) + +2006-10-13 Damon Chaplin + + * style.css: Make sure appendix title isn't obscured by navigation bar + (#360967, Philip Kovacs). + +2006-09-09 Matthias Clasen + + * gtkdoc-scangobj.in (get_type_name): Don't set is_pointer + to TRUE for enum and flags types. (#354880, Yevgen Muntyan) + +=== release 1.7 === + +2006-07-29 Damon Chaplin + + * Released 1.7. + +2006-06-30 Damon Chaplin + + * gtkdoc-mkdb.in (ScanSourceFile): fix regexp to allow section names + with '-' in them. + + * gtk-doc.make (all-local, docs): added separate 'docs' target that can + be used even when the '--disable-gtk-doc' configure option is used. + +2006-06-15 Jody Goldberg + + * gtkdoc-mkdb.in (OutputFunction) : finish off #341872 + Support 'T const * const *foo' and other more complex types. + Support ptr2ptr2func as a func argument. + 'void foo (void (**func) (void))' + * gtkdoc-mktmpl.in : ditto. + + (committed by Damon with minor changes to spacing so GTK+ docs are + unchanged). + +2006-06-09 Damon Chaplin + + * gtkdoc-mkdb.in: + * gtk-doc.xsl: use the 'role' attribute rather than the 'id' attribute + to identify the different sections for the navigation bar, since 'id' + must be unique throughout the entire document. Also fixed a few minor + issues with the output. (#342861, Leonardo Boshell) + +2006-05-30 Damon Chaplin + + * gtkdoc-fixxref.in (FixHTMLFile): Use the 's' modifier to the + substitution so we handle links spanning more than one line. + (#342845). + +2006-05-22 Damon Chaplin + + * configure.in: + * Makefile.am: + * help/Makefile.am: + * help/manual/Makefile.am: use a separate Makefile.am for each + subdirectory rather than using "SUBDIRS=help/manual/C". + +2006-05-21 Jody Goldberg + + * gtkdoc-common.pl.in (ParseStructDeclaration) : Support + 'long double foo' and + 'T const * const *foo' (#341872) + * gtkdoc-mktmpl.in (OutputDeclaration) : handle ptrs to ptrs to + functions 'void func (void (**ptr2ptr2func)(int a))' + +2006-05-21 Damon Chaplin + + * gtkdoc-mkdb.in (ScanSourceFile): don't check basename for '.[hc]' + suffix since we allow other suffixes as well now. (#340199) + + * gtkdoc-mktmpl.in (OutputSignalTemplates): check if the parameter + is actually in the source code comment block. If not, use the default + name. Otherwise we were outputting an empty "@:" in the templates. + (ReadTemplateFile): remove empty "@:" lines caused by above bug. + +2006-04-15 Damon Chaplin + + * xmldocs.make: use gtkdochelpdir rather than docdir to avoid clash + with autoconf. (#316508) + + * tools/gtk-doc.el: Output "Returns:" rather than "Return value:", + and a "C-x4s" binding for inserting a blank section header. + + * gtk-doc.make (sgml-build.stamp): added $(DOC_MODULE)-sections.txt + to the dependencies, since although the templates depend on it, they + may not be changed, but the XML should still be rebuilt. + + * gtkdoc-mkdb.in (ScanSourceFile): allow whitespace after "SECTION:". + +2006-04-13 Damon Chaplin + + * gtkdoc-mkdb.in (ReadArgsFile): When outputting a warning about a + property, use a single colon ':', since that is what is used to + document properties in the source code. (2 colons are used for signals) + + * gtk-doc.make (sgml-build.stamp): added $(HFILE_GLOB) here, to + catch any new documentation in the headers. + +2006-04-12 Damon Chaplin + + * gtkdoc-mkdb.in (tagify2): strip special "-struct" suffix from + text of links to widget structs. + +2006-04-09 Stefan Kost + + * TODO: + fix link after live.gnome.org wiki changes + +=== release 1.6 === + +2006-04-09 Damon Chaplin + + * Released 1.6. + +2006-03-29 Stefan Kost + + * gtkdoc-scangobj.in: + missing '*' for arg in signal prototype in docs (#335486) + +2006-03-26 Damon Chaplin + + * gtkdoc-mkdb.in (MergeSourceDocumentation): don't output warnings + for overridden titles, since that happens a lot. (#320010) + + * configure.in: check for pkg-config >= 0.19. + + * Makefile.am (pkgconfigdir): put the .pc file in $(datadir) rather + than $(libdir), since gtk-doc is architecture-independant. (#120950) + + * configure.in: removed the hard dependancy on openjade or jade, since + XML is used mostly now rather than SGML. We just output a warning + rather than an error if neither openjade or jade are found. + +2006-03-21 Stefan Kost + + * style.css: + add sect1 to pages with top-page offset adjustment (#166363) + +2006-03-19 Damon Chaplin + + * gtkdoc-scan.in (ScanHeader): try to handle the start of function + declarations spread over 3 lines. (#321708, Jorn Baayen) + +2006-03-19 Damon Chaplin + + (OutputOldParams): don't bother outputting unused parameters if they + don't have any documentation as that is pointless. + +2006-03-19 Damon Chaplin + + * gtkdoc-mktmpl.in (ReadTemplateFile): Add a workaround for an old + bug handling macros with arguments spread over several lines. (#318666) + +2006-03-19 Damon Chaplin + + * gtkdoc-mkdb.in (MakeIndexterms): Make sure we still output an index + term if there isn't 'deprecated' or 'since' info. + (#334851, Tommi Komulainen). + +2006-03-19 Damon Chaplin + + * gtkdoc-scan.in (ScanHeader): added "--ignore-decorators" option to + ignore a list of declarators in function declarations. + (#316512, Bertram Felgenhauer). + +2006-03-19 Damon Chaplin + + * gtkdoc-mkdb.in (GetSignals, GetArgs): call MakeIndexTerms() to make + sure that signals appear in the deprecated/new symbol indices. + (#332007, Tommi Komulainen). + +2006-03-19 Damon Chaplin + + * gtkdoc-mkdb.in (OutputEnum, ExpandAbbreviations, symbolify): + allow use of '#Object::signal' and '#Object:property' to link to + signals and properties, and add links to enum constant values. + (#332483, Stefan Kost) + +2006-03-15 Matthias Clasen + + * gtkdoc-mkdb.in (MakeIndexterms): Create separate indexterms + for different roles, since the docbook stylesheets don't handle + multiple roles in one attribute. (#331586, Tommi Komulainen) + +=== release 1.5 === + +2006-03-07 Damon Chaplin + + * Released 1.5. + +2006-03-06 Tommi Komulainen + + * gtkdoc-scan.in (ScanHeader): Print object name after in + order to get get object hierarchy, signals and properties + documentation appear automatically (#333380) + +2006-01-24 Stefan Kost <ensonic@users.sf.net> + + * gtkdoc-mkdb.in: patch from Damon Chaplin to fix signal flag parsing + +2006-01-08 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in: patch from Jonathan Blandford to add support for a + "--source-suffixes" option so you can scan files with any suffixes + you want (e.g. C++ files). + +2005-12-19 Matthias Clasen <mclasen@redhat.com> + + * gtkdoc-mktmpl.in: Use \w+: instead of \S+: when + matching parameter names, so that @Deprecated:2.10: + works in template files like in source code comments. + + * gtkdoc-mkdb.in: Add a missing "and" to the versioned + deprecation note. + +2005-12-09 Stefan Kost <ensonic@users.sf.net> + + * devhelp.xsl: + try more to downgrade devhelp for old file format + +2005-12-09 Stefan Kost <ensonic@users.sf.net> + + * Makefile.am: + add devhelp2 files + * autogen.sh: + create a autoregen.sh + * devhelp.xsl: + * devhelp2.xsl: + * gtk-doc.xsl: + generate two separate versions + * gtkdoc-mkdb.in: + fix parsing const after type (#322556) + * gtkdoc-mktmpl.in: + fix parseing multiline macro heads (#320588) + * gtkdoc-scangobj.in: + allow additional root types (#323581) + +2005-12-05 Matthias Clasen <mclasen@redhat.com> + + * gtkdoc-mktmpl.in (OutputDeclaration): + * gtkdoc-mkdb.in (OutputFunction): Allow parameters to be declared + volatile (this happens in GLib nowadays) + +2005-10-11 Stefan Kost <ensonic@users.sf.net> + + * gtkdoc-mkdb.in: + remove left-over debug-print + +2005-10-10 Stefan Kost <ensonic@users.sf.net> + + * devhelp.xsl: + * gtkdoc-mkdb.in: + enhance gtkdoc devhelp output (#318129) + +2005-10-05 Stefan Kost <ensonic@users.sf.net> + + * gtkdoc-common.pl.in: + revert exchanging   with   + +2005-10-04 Damon Chaplin <damon@gnome.org> + + * gtkdoc-scanobj.in: patch from Andrae Steiner to add missing ';' + (#317938) + +2005-09-29 Stefan Kost <ensonic@users.sf.net> + + * TODO: + additionally point people to the gnome-wiki + + * gtkdoc-mkdb.in: + don't warn on macros with return docs (#314267) + +2005-09-28 Matthias Clasen <mclasen@redhat.com> + + Show signal flags: (#316789) + + * gtkdoc-scangobj.in: Emit flags for signals + as <FLAGS> element in $MODULE.signals + + * gtkdoc-mkdb.in: Emit signal flags similar + to property flags. + + * gtkdoc-mktmpl.in: Handle <FLAGS> here, too. + +2005-09-20 Stefan Kost <ensonic@users.sf.net> + + * doc/README: + * doc/authors.txt: + * doc/gnome.txt: + * doc/sections-file.txt: + * doc/setting-up.txt: + * doc/style-guide.txt: + * gtkdoc-common.pl.in: + adding a note about where the new docs are + +2005-09-15 Damon Chaplin <damon@gnome.org> + + * gtkdoc-scan.in (ScanHeader): + * gtkdoc-mktmpl.in (OutputDeclaration): + * gtkdoc-mkdb.in (OutputFunction): patch from dodji seketeli to handle + functions returning explicit enums. (#303337) + + Patch from Stepan Kasal: + + * gtkdoc-mkhtml.in, gtkdoc-mkman.in, gtkdocize.in: Add datarootdir + variable, for compatibility with future Autoconf releases. + + * configure.in (PACKAGE_DATA_DIR): Simplify the computation; + use a local macro AC_DEFINE_DIR, based on a macro from Autoconf + macro archive. (#313876) + +2005-09-15 Damon Chaplin <damon@gnome.org> + + * gtkdoc-scangobj.in: Patch from Stepan Kasal to avoid some gcc + warnings. (#312985) + + * gtkdoc-scanobj.in: + * gtkdoc-scangobj.in: Use brackets around open() arguments to avoid + precedence problems. (#314838) + + * gtkdoc-scanobj.in: + * gtkdoc-scangobj.in: Output more messages about compilation, linking + and running of scanner, to try to help track down any problems. + Also use "sh -c" to run the scanner (#167688) + + * gtkdoc-scanobj.in: + * gtkdoc-scangobj.in: patch from Stefan Kost to improve error messages, + though I changed it slightly so it doesn't output errno. + +2005-09-09 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in: + * style.css: + * gtk-doc.xsl: Use a fixed navigation bar at the top of the page. + Patch from Stefan Kost with minor changes by me. (#313569) + +2005-08-18 Damon Chaplin <damon@gnome.org> + + * gtkdoc-scangobj.in: added "const" in a few places to avoid lots + of warnings if all gcc warnings are on. (#312985) + +2005-08-15 Stefan Kost <ensonic@users.sf.net> + + * COPYING-DOCS: + * Makefile.am: + * configure.in: + * omf.make: + * xmldocs.make: + adding the infrastructure for installation of gtkdoc manual + +2005-08-12 Stefan Kost <ensonic@users.sf.net> + + * gtkdoc-mkdb.in: + fix warning about uninitialized var EXPAND_CONTENT_FILES + +Tue Aug 9 12:01:27 2005 tjlocal <timj@imendio.com> + + * autogen.sh: bail out with exit $? for failing programs. + +2005-07-26 Damon Chaplin <damon@gnome.org> + + * gtk-doc.make: Pass DOC_MAIN_SGML_FILE as the main filename to + gtkdoc-mkdb. Avoids creating spurious foo.sgml files in an XML build. + Patch from Malcolm Tredinnick. (#311344) + + Prefix build messages with "gtk-doc: " rather than surrounding them + with "***" which looks like an error. (#170008) + +2005-07-26 Damon Chaplin <damon@gnome.org> + + * README: removed comment about not being able to add section + documentation to source code files, which is not true any more. + +=== release 1.4 === + +2005-07-03 Damon Chaplin <damon@gnome.org> + + * Released 1.4. + +2005-06-20 Matthias Clasen <mclasen@redhat.com> + + * gtkdoc-mkdb.in: Fix typos in warnings. + +2005-06-17 Mikael Hallendal <micke@imendio.com> + + * README: Updated Devhelp web address. + +2005-05-16 Matthias Clasen <mclasen@redhat.com> + + * gtkdoc-mkdb.in: Add "expand-content-files:s" to the GetOptions() call. + +2005-05-10 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkdb.in: Add an --expand-content-files option + to specify extra files to expand abbreviations in and + copy into the output directory. + + * gtk-doc.make examples/Makefile.am: Add expand_content_files + variable. + + * gtkdoc-mktmpl.in (OutputTemplateFile): Add an + --only-section-tmpl flag so that projects that keep everything + but section descriptions inline can avoid cvs conflicts. + + * gtk-doc.make examples/Makefile.am: Add support for + MKTMPL_OPTIONS + + * configure.in: Up version to 1.4. + +2005-05-02 Matthias Clasen <mclasen@redhat.com> + + * gtkdoc-mkdb.in: Accept C comments between struct name + and struct definition. GObject has an instance of this. + +2005-03-21 Matthias Clasen <mclasen@redhat.com> + + * gtk-doc.dcl: Allow ':' in names. (#169087) + +2005-03-21 James Henstridge <james@jamesh.id.au> + + * gtk-doc.xsl (encoding): output US-ASCII instead of ISO-8859-1. + This ensures that the output will be display correctly when served + as either ISO-8859-1 or UTF-8. + +2005-02-26 Sven Neumann <sven@gimp.org> + + * gtkdoc-mkdb.in (MakeIndexterms): allow space in Since: keywords, + only strip leading and trailing whitespace (bug #168384). + +2005-02-16 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (ScanSourceFile): add support for "@stability:" + in the inline section docs (Brian Cameron). + +2005-02-07 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (MergeSourceDocumentation): allow use of "@...:" in + the source code as well as "@Varargs:". Patch from Benjamin Otte. + #166366. + +2005-02-04 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (ParseStabilityLevel): don't reset $stability if it + isn't Stable/Unstable/Private (Brian Cameron). + (ScanSourceFile): skip whitespace after "SECTION:". + +2005-02-01 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (ScanSourceFile, MergeSourceDocumentation): patch + from Stefan Kost to support section documentation within the source + code (long description, short description, see also and title). + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: patch from Brian Cameron to support stability + levels. + + * gtkdoc-mkdb.in (OutputFunction): + * gtkdoc-mktmpl.in (OutputDeclaration): + * gtkdoc-common.pl.in (ParseStructDeclaration): patch from Roger Leigh + to add support for the "restrict" keyword. + + * gtkdoc-scan.in (ScanHeader): patch from Roger Leigh to add support + for "unsigned" to one of the regexps. + +2005-01-31 Damon Chaplin <damon@gnome.org> + + * gtk-doc.make (scan-build.stamp): added "2>&1" to grep command to + ignore any errors. + + * gtkdoc-mkdb.in: patch from Stefan Kost to not add '<' '>' around + include files that already have '"' '"' around them, and to try to + gather more information about undocumented symbols. #164462. + +2005-01-28 Damon Chaplin <damon@gnome.org> + + * gtk-doc.make: use dist-hook rather than EXTRA_DIST to copy the + $(DOC_MODULE).types file over, so we can skip this if it doesn't exist. + #156300. + +2005-01-12 Damon Chaplin <damon@gnome.org> + + * README: patch from Stefan Kost to mention GObject classes + and describe the transformation process to XML/SGML and HTML, + and to mention Devhelp. + +=== release 1.3 === + +2005-01-09 Damon Chaplin <damon@gnome.org> + + * Released 1.3. + +2005-01-09 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (MergeSourceDocumentation): output better warnings + using the type information. Patch from Stefan Kost. #161979 + + * gtkdoc-scan.in (ScanHeader): support "typedef struct a *b;". Fixes + last part of #156318. + + * gtkdoc-common.pl.in (ParseStructDeclaration): return an empty array + for forward struct declarations. Part of #156318. + + * gtkdoc-mktmpl.in: + * gtkdoc-mkdb.in: updated a few of the warnings to make them a bit + easier to understand. + +2004-11-22 James Henstridge <james@jamesh.id.au> + + * acconfig.h: remove file, since we don't have a config.h + + * configure.in: make sure $ACLOCAL_FLAGS is passed to aclocal on a + rebuild. + + * autogen.sh: use Automake-1.9 if available, and call aclocal, + autoconf, automake, etc in the same order as autoreconf does. + + * gtkdocize.in: if the AC_CONFIG_MACRO_DIR option is used in the + configure script, copy gtk-doc.m4 to that directory in the source + tree. + +2004-11-16 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (OutputFunction): output "const" rather than + "G_CONST_RETURN". #157674. + + * gtkdoc-mktmpl.in (OutputDeclaration): skip "void" return types but + not if it has modifiers e.g. "void *". #156963. + + * gtkdoc-scan.in (ScanHeader): handle __attribute__. Patch from + Simon Josefsson. #156962. + +2004-10-31 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (OutputStruct): handle opaque/forward struct + declarations. #156318 again. Tiny fix to avoid warnings. + +2004-10-28 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mktmpl.in (ReadDeclarationsFile): + * gtkdoc-mkdb.in (ReadDeclarationsFile): + * gtkdoc-scan.in (ScanHeader): handle opaque/forward struct + declarations. #156318. + +2004-10-25 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (OutputParamDescriptions): use a   after Returns: + so it doesn't break before the colon. + +2004-10-24 Damon Chaplin <damon@gnome.org> + + * gtkdoc-common.pl (ParseEnumDeclaration): handle "typedef enum XXX {" + #156297. Patch from Simon Josefsson. + +2004-10-20 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (ReadDeclarationsFile): set a flag to indicate a + struct has a typedef declaration. + (OutputStruct): better output for structs with typedefs. #83269. + + * gtkdoc-scan.in (ScanHeader): leave the struct declaration as it is. + Don't strip out 'typedef'. Also allow simple "struct foo {". + +2004-10-19 Damon Chaplin <damon@gnome.org> + + * gtkdoc-fixxref.in: use pkg-config to find where GLib is installed + and scan that directory for index files. Also scan $GNOME2_PATH. + These are only used as a last resort. If they are used we have to + output links as absolute URLs, rather than the default relative ones. + +2004-10-18 Damon Chaplin <damon@gnome.org> + + * gtkdoc-common.pl.in (ParseStructDeclaration): support function + pointers that return "foo const *" #141870. + + * gtkdoc-scan.in (ScanHeader): + * gtkdoc-mkdb.in (OutputFunction): + * gtkdoc-mktmpl.in (OutputDeclaration): handle functions with const + or struct return types. #141870 and #148507. + +2004-10-15 Damon Chaplin <damon@gnome.org> + + * gtkdoc-common.pl.in (ParseStructDeclaration) + (ParseEnumDeclaration): moved these here, rather than have 2 copies + in gtkdoc-mkdb.in and gtkdoc-mktmpl.in. + + * gtkdoc-common.pl.in (ParseStructDeclaration): handle struct fields + better. We can now handle things like *foo, ***bar, *baz[12][23], + foo : 25 all on one line. Fixes part of #151219. + Also support the 'short' modifier to fix #90565. + And use $nbsp; rather than spaces to try to avoid splitting + declarations in the output. + Also take an extra arg specifying whether to include parameters in + the function pointer fields. + + * gtkdoc-scan.in (ScanHeader): Deal with array types in typedefs. + (Eg, "typedef unsigned char MD5Digest[16];") From Dan Winship. + Last bit of #151219. + +2004-10-14 Damon Chaplin <damon@gnome.org> + + * gtkdoc-mkdb.in (CreateValidSGMLID): use ":CAPS" rather than + "-CAPS" to distinguish all-caps identifiers, to avoid clashing with + identifiers ending in _caps! Bug #113120. + + * gtkdoc-mkdb.in (MergeSourceDocumentation): if it looks like a + parameter has been described, but not in the right place, output + a better error message. Bug #141871. + + * gtkdoc-mkdb.in (OutputMacro, OutputFunction, GetSignals): allow + the author to use <!--PARAMETERS--> to specify the position of the + parameter table if they want. Hopefully good enough for bug #99567. + (MergeSourceDocumentation): end the paragraph before <!--PARAMETERS--> + and start a new one after it. + + * doc/authors.txt: document <!--PARAMETERS-->. + + * style.css: don't underline links normally, as we output lots of + them and it makes it very cluttered. Only underline links when the + mouse hovers over them, and change the color. Fixes #108037. + + * gtk-doc.make (scan-build.stamp): depend on $(CFILE_GLOB) as well, + since changes in properties need to be picked up by gtkdoc-scangobj. + Bug #52458. + + * gtkdoc-mkdb.in: (ParseStructDeclaration): for fields that are + function pointers, only return the function name, as otherwise the + output gets really messy. Fixes #66618. + + * gtkdoc-mktmpl.in: + * gtkdoc-mkdb.in: + * gtkdoc-scan.in: + * gtkdoc-scanobj.in: + * gtkdoc-scangobj.in: use '@PACKAGE_DATA_DIR@' instead of + "@PACKAGE_DATA_DIR@" so that it isn't interpolated. It failed when + $prefix was /software/@sys/usr. Fixes #113456. + +2004-10-13 Damon Chaplin <damon@gnome.org> + + * gtkdoc-scanobj.in: + * gtkdoc-scangobj.in: patch from Olexiy Avramchenko to add 3 new + GdkEvent subtypes. + + * gtkdoc-scanobj.in: + * gtkdoc-scangobj.in: patch from Benjamin Otte to get rid of + -Wsign-compare warnings. Bug #137013. + +Fri Sep 17 01:13:24 2004 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.xsl: Add the images from the gallery on top + of the refentry they point to. + + * style.css: Move the css bits of the gallery implementation + here. + +Fri Sep 17 00:30:16 2004 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.xsl: Don't generate <link rel="refentry"> + links, since e.g. the GTK+ docs contain MANY refentries. + +2004-09-10 Damon Chaplin <damon@gnome.org> + + * autogen.sh: support automake 1.8. (part of #151219). + + * examples/Makefile.am: require automake 1.6. + + * gtkdoc-scan.in: create an empty MODULE-overrides.txt file if it + doesn't exist. gtkdoc.make expects one to exist. + + * doc/setting-up.txt: updated to document new procedure using + gtkdoc.make. + + * examples/Makefile.am: updated to use gtkdoc.make. + + * examples/configure.in: removed this. gtkdoc.make is used instead + now. + + * examples/README: updated. + + * Makefile.am (EXTRA_DIST): removed examples/configure.in. + +Wed Sep 8 01:12:25 2004 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scan.in (ScanHeader): + * gtkdoc-mktmpl.in (OutputDeclaration): + * gtkdoc-mkdb.in (OutputFunction): Accept mixtures of * + and const in return types. + +Wed Sep 01 05:58:08 2004 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in: Remove a debug printf + +Tue Aug 24 02:30:08 2004 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.xsl: Add support for a gallery of widget images. + +Wed Jul 28 13:00:54 2004 Jonathan Blandford <jrb@gnome.org> + + * gtk-doc.xsl: remove the examples from the toc. + +2004-07-28 Damon Chaplin <damon@gnome.org> + + * doc/sections-file.txt: mention use of '#' for comments. + + * gtkdoc-mkdb.in: removed HEADER_FILE stuff, since it isn't used now. + +2004-07-23 Damon Chaplin <damon@gnome.org> + + * examples/Makefile.am (all-local): add empty all-local target for + when ENABLE_GTK_DOC is false. (#148209, Martin Quinson) + +Fri Jul 23 13:21:34 2004 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (ScanSourceFile): Fix regexps for matching + ignored files. (#148211, Martin Quinson) + +2004-07-03 Matthias Clasen <mclasen@redhat.com> + + * style.css: Add a missing '}' and align arguments to the + top of their descriptions. (#145363, #145364, Mariano + Su�rez-Alvarez) + +2004-05-18 Matthias Clasen <mclasen@redhat.com> + + * gtk-doc.xsl: Let the docbook stylesheets generate + extra <link rel=...> elements. (#140221, Geert Stappers) + +2004-05-10 Geert Stappers <stappers@stappers.nl> + + * TODO: new file, basicly a reference to bugzilla. + + * examples/README: tell about gtk-doc.make. + +2004-05-06 Geert Stappers <stappers@stappers.nl> + + * MAINTAINERS: Add myself. + +2004-05-05 Matthias Clasen <mclasen@redhat.com> + + * gtk-doc.xsl: Correct the docbook stylesheet version + in which filtered index support will appear to 1.66. + +2004-04-27 Geert Stappers <stappers@stappers.nl> + + * README: Updated the information on Debian packages. + Removed old author and time stamp line. + +2004-04-21 Matthias Clasen <mclasen@redhat.com> + + * doc/sections-file.txt: Add hint about private types. + + * README: Update. + + * MAINTAINERS: Add myself. + + * gtkdoc-mkdb.in (ReadKnownSymbols): New function which + extracts information about public and private symbols from + the $MODULE-sections.txt file. + (ReadObjectHierarchy): Prune the tree, based on the information + collected by ReadKnownSymbols. + (ReadInterfaces): Also filter out private interfaces here + (ReadPrerequisites): ...and here. + +2004-04-19 Matthias Clasen <mclasen@redhat.com> + + * Makefile.am: Add version-greater-or-equal.xsl. + + * version-greater-or-equal.xsl: New file, implementing + the version-greater-or-equal template for comparing version + numbers. + + * gtk-doc.xsl: Import version-greater-or-equal.xsl and + use the version-greater-or-equal template to a) check that + the xsl stylesheets are not too old and b) to avoid creating + multiple indices if the xsl stylesheets don't support filtered + indices. (#107774) + + * gtkdoc-mkdb.in (MakeIndexterms): Emit role attributes + on indexterms which can be used to create filtered indices + with sufficiently new xsl stylesheets. The required functionality + will appear in version 1.62 of the xsl stylesheets. (#115530) + +2004-04-16 Matthias Clasen <mclasen@redhat.com> + + * style.css: Style information in a separate stylesheet. + + * gtkdoc-mkhtml.in: Copy css files. + + * Makefile.am (gtkdocdata_DATA): Add style.css + + * gtk-doc.xsl: Use a stylesheet instead of hardwiring + styles. (#134683, Vincent Torri) + + * gtkdoc-mkdb.in (GetSignals): Organize the properties + descriptions to fit better with the other sections, and + also display information about allowed and default values. + +2004-04-15 Matthias Clasen <mclasen@redhat.com> + + * gtkdoc-scangobj.in: Use introspection more fully to emit + allowed ranges for integral types and default values. + + * gtkdoc-mkdb.in (GetSignals): Handle missing signal parameter + names better. + +2004-03-04 Damon Chaplin <damon@gnome.org> + + * autogen.sh: fixed URLs to download autoconf/automake/libtool. + Patch from Frederic L. W. Meunier. + +2004-02-16 Damon Chaplin <damon@gnome.org> + + * .cvsignore: added gtk-doc.cat and gtkdocize. + +=== release 1.2 === + +2004-02-16 Damon Chaplin <damon@gnome.org> + + * Released 1.2. + +2004-02-16 Damon Chaplin <damon@gnome.org> + + * gtk-doc.cat.in: removed public ID for gtk-doc.dtd, since we don't + use it any more. + +Sat Feb 14 02:14:27 2004 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.m4: Avoid unnecessary checks if gtk-doc is + disabled. (#134221, Julio M. Merino Vidal) + +Sat Feb 14 02:03:01 2004 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.make: Don't create unneeded empty + directories. (#134319, Julio M. Merino Vidal) + +Sat Feb 14 01:37:38 2004 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.make: Add an empty all-local target to make it work + with non-GNU make. (#134343, Julio M. Merino Vidal) + +Wed Jan 28 00:52:00 2004 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (OutputObjectList): Avoid emitting invalid + docbook markup if there are no objects. Partial fix for #132661. + +Sun Jan 25 22:01:15 2004 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in: Accept both the old and the new XInclude + namespace. (#131675, Edd Dumbill) + +2004-01-23 Thomas Vander Stichele <thomas at apestaart dot org> + + * gtkdoc-mkhtml.in: exit when tools return non-zero so errors can + be caught. + +Thu Jan 15 23:06:10 2004 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.xsl: Set the chunk.fast parameter, to gain some + speed. + +Thu Jan 15 23:05:23 2004 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-fixxref.in: Make it work again without explicit + --module. + +Sat Dec 27 01:36:08 2003 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: + * gtkdoc-mktmpl.in: + * gtkdoc-scan.in: + * gtkdoc-fixxref.in: Add --help. (#126915) + +Sat Dec 27 00:43:42 2003 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (ParseEnumDeclaration): + * gtkdoc-mktmpl.in (ParseEnumDeclaration): Support a trailing , + in enum declarations. These are a GNU C extension, but also + blessed by C99. (#129949, Thomas Vander Stichele) + +Sun Nov 16 00:29:03 2003 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: Don't use g_strdown(). (#127028, + David Schleef) + +Sun Nov 16 00:26:05 2003 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: If compiled against GLib >= 2.3.0, look + for properties on interfaces. (#127068, James M. Cape) + +2003-11-03 Dan Winship <danw@ximian.com> + + * gtkdoc-scangobj.in: Clean up $MODULE-scan.o even when using + libtool + + * gtkdoc-scanobj.in: Likewise + + * gtk-doc.make (CLEANFILES): Remove $(MODULE)-scan.o from here + (clean-local): rm -rf .libs + +Wed Oct 8 01:21:54 2003 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scan.in (ScanHeader): Make gtkdoc-scan grok + typedef struct { } foo; in addition to the more baroque + typedef struct _foo foo; struct _foo { }; + (#116807, Malcolm Tredinnick) + +Wed Oct 8 01:21:35 2003 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (OutputParamDescriptions): Remove a pointless + warning. + +2003-10-01 Matthias Clasen <maclas@gmx.de> + + Make signals and properties end up in the right template + file (#116569, Owen Taylor): + + * gtkdoc-mktmpl.in (OutputSignalTemplates): + (OutputArgTemplates): Return a string rather than directly + writing to OUTPUT. + (OutputTemplateFile): Don't interpret $title as the name of + the object to print signal and property templates for. + (UpdateTemplates): Collect signal and property templates for all + objects contained in the section. + +2003-08-10 James Henstridge <james@daa.com.au> + + * acinclude.m4 (JH_PATH_XML_CATALOG): allow caller to specify + actions if found or not found. + (JH_CHECK_XML_CATALOG): when requiring JH_PATH_XML_CATALOG, don't + error out if it is not found. + +2003-08-03 Matthias Clasen <maclas@gmx.de> + + * doc/gnome.txt: Add some hints regarding markup of examples. + +2003-07-22 Matthias Clasen <maclas@gmx.de> + + * configure.in: + * gtk-doc.cat: Fix a problem with the previous commit. + +2003-07-21 Matthias Clasen <maclas@gmx.de> + + Applied patches from Sebastian Rittau to add maintainer mode and an SGML catalog. (#117955, #117956) + + * gtk-doc.cat.in: New catalog file. + * configure.in: Added gtk-doc.catalog to output files. + * Makefile.am: Install gtk-doc.catalog. + + * configure.in: Added AM_MAINTAINER_MODE. + * autogen.sh: Added --enable-maintainer-mode to configure options. + +2003-07-09 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mktmpl.in (ParseStructDeclaration): + * gtkdoc-mkdb.in (ParseStructDeclaration): Accept volatile struct members, which have just + made their appearance in glib. + +2003-06-29 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (ExpandAbbreviations): When expanding @param, catch the common @param->field + and @param.field, to reduce the need for littering the C sources with <literal>foo->bar</literal>. + +2003-06-25 Matthias Clasen <maclas@gmx.de> + + Changes for #115528: + + * gtkdoc-mkdb.in (OutputSGML): Collect hierarchy, interfaces, implementations, prerequisites + and derived interfaces separately. + (OutputSGMLFile): Take two more arguments: implementations and derived interfaces. + (GetHierarchy): Also put immediate children in the local tree. + (GetInterfaces): Split into GetInterfaces and GetImplementations. + (GetImplementations): New function to get the implementations of an interface. + (GetDerived): New function to get the known derived interfaces of an interface. + + * gtkdoc-mkdb.in (MakeXRef): Accept a second, optional parameter for the + text of the link. + (ExpandAbbreviations): Add semantic markup inside the links, so that + non-crossreferenced symbols come out properly formatted after link + removal. (#61345) + +2003-06-15 Matthias Clasen <maclas@gmx.de> + + Support for a flat index of all symbols. (#92861) + To use, put an empty <index/> element in your driver document. + + * gtkdoc-mkdb.in (MakeIndexterms): New function, emits an indexterm. + (OutputMacro, OutputTypedef, OutputStruct, OutputEnum, + OutputUnion, OutputVariable, OutputFunction): Use MakeIndexterms. + to emit indexterms for symbols. + + * gtkdoc-mkdb.in (GetSignals): + (GetArgs): Emit Since: information for signals and properties. + +Thu Jun 12 15:55:57 2003 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkhtml.in (declaration): Replace head -1 with -n 1. + (Merge change by Elliot Lee from Red Hat package) + +2003-06-11 Matthias Clasen <maclas@gmx.de> + + * doc/gnome.txt: Updates to the documentation of inline comments. + +2003-06-03 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.spec.in: Add a missing Provides: and include the .pc file. + (#106568, Joe Pranevich) + +2003-05-27 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (GetSignals): + (GetArgs): Add signals and properties to the statistics. + (OutputMissingDocumentation): Emit undocumented signals and + properties. (#113645) + +2003-04-21 Matthias Clasen <maclas@gmx.de> + + * tools/docpercentages.pl: Fix autolinkification for undocumented + symbols. + + * doc/style-guide.txt: Typo fix. + +=== release 1.1 === + +2003-04-18 James Henstridge <james@daa.com.au> + + * Released 1.1. + +2003-04-18 James Henstridge <james@daa.com.au> + + * NEWS: add news items. + + * configure.in: increment version number. + +2003-03-14 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (OutputBook): Fix the public identifier for + DocBook V3.0: Davenport, not DavenPort. + (#108343, Mariano Suarez-Alvarez) + +2003-03-10 James Henstridge <james@daa.com.au> + + * configure.in: associate the chmod commands with the files they + are chmod'ing. This way config.status will always run the correct + chmod command. + +2003-03-04 James Henstridge <james@daa.com.au> + + * configure.in: look up the docbook DTD by public id rather than + system id. + +2003-02-26 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (GetArgs): Prefer template or comment docs over + blurbs only if they're nonempty, otherwise the empty docs from the + templates override all the blurbs. + +2003-02-26 James Henstridge <james@daa.com.au> + + * autogen.sh (THEDIR): set up so that it will choose automake 1.7 + or 1.6 in preference to 1.4. Passes distcheck okay. + + * configure.in: update configure.in script to match + recommendations of newer autoconf's, and add an AC_PREREQ() + statement, since the xml catalog checks are using new autoconf + features. + + * gtk-doc.make (xml-build.stamp): since other bits of the makefile + were assuming xml, may as well hard code --output-format=xml. + +2003-02-19 James Henstridge <james@daa.com.au> + + * Makefile.am: get rid of the dist-hook, and just include the + given files in EXTRA_DIST instead. + + * configure.in: provide meaningful names for the commands. + + * acinclude.m4 (JH_CHECK_XML_CATALOG): add some extra arguments: a + friendly name for the catalog entry, and actions to run if the + entry was found or not. Also include a bit more information in + the config.log file if an error occurs. + +2003-02-18 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkhtml.in (declaration): Avoid the unportable grep + option -q. (#105311) + +2003-02-19 James Henstridge <james@daa.com.au> + + * devhelp.xsl: put chapters that aren't at the top level into the + toc tree (to make gtk's .devhelp tree look better). + + * gtk-doc.spec.in (Requires): make the requires lines match + current requirements ... + + * gtkdoc-mkhtml.in (XSLTPROC): pass --nonet to xsltproc, so we + don't try to download DTDs and XSLT over the net. The configure + checks should catch people who don't have the correct files in + their catalog. + +2003-02-17 James Henstridge <james@daa.com.au> + + * gtkdocize.in (--version): add --version argument. + +2003-02-14 James Henstridge <james@daa.com.au> + + * gtkdoc-mkdb.in (GetOptions): actually accept --tmpl-dir as a + command line option. Based on a patch from Simon Josefsson + <jas@extundo.com>. + + * gtk-doc.xsl: remove the xmlns declaration. Not really needed + for html output anyway ... + +2003-02-13 James Henstridge <james@daa.com.au> + + * devhelp.xsl: remove refsect1's and refsect2's from book tree, as + suggested by Hallski. + + * gtk-doc.make (install-data-local): the change to install images + was superfluous, so I have removed it. + (CLEANFILES): move some more stuff to CLEANFILES from the + distclean-local rule. + +2003-02-12 James Henstridge <james@daa.com.au> + + * gtk-doc.make: add some chmod calls to work arround distcheck on + automake >= 1.6. + (install-data-local): copy the images as well as the html files + during install. + (uninstall-local): add an uninstall rule to remove the docs. + (CLEANFILES): add $(DOC_MODULE)-scan.o to the list of files to be + cleaned up. + +2003-02-09 James Henstridge <james@daa.com.au> + + * gtkdocize.in: script used to copy gtk-doc.make into another + module. + + * gtk-doc.make: automake makefile fragment to handle gtk-doc + support in other modules. + + * configure.in: check to make sure DocBook XML DTD and XSLT + stylesheets are present in the XML catalog. + + * acinclude.m4 (JH_CHECK_XML_CATALOG): new macro to check for + entries in the XML catalog. + +2003-02-04 James Henstridge <james@daa.com.au> + + * gtk-doc.m4: a macro to check for gtk-doc. + + * Makefile.am (gtkdocdata_DATA): don't bother installing xml.dcl. + It isn't used anymore (since switching xml mode to xsltproc). + + * gtkdoc-mkhtml.in (gtkdocdir): and here. + + * Makefile.am (gtkdocdatadir): change dir. + + * configure.in: put data files in $(datadir)/gtk-doc/data, so that + they don't all get mixed up with the html docs installed by other + packages. + +=== release 1.0 === + +2003-01-20 Damon Chaplin <damon@gnome.org> + + * Released 1.0. + +2003-01-20 Damon Chaplin <damon@gnome.org> + + * configure.in: bumped version to 1.0, and added SGML_OUTPUT_TYPE + variable, which we set to 'sgml-raw' if we have openjade, or 'sgml' + if we have jade. Added gtk-doc.pc to AC_OUTPUT. + + * gtkdoc-mkhtml.in: used SGML_OUTPUT_TYPE variable to set the output + type of jade/openjade. + + * gtk-doc.pc.in: new pkg-config file, which apps can use to reliably + check the gtk-doc version in future. + + * Makefile.am (pkgconfigdir): install .pc file, and add it to + EXTRA_DIST. + + * examples/configure.in: updated example to use pkg-config for the + version check. + +2003-01-18 James Henstridge <james@daa.com.au> + + * gtkdoc-mkhtml.in (declaration): switch the output type from + "sgml" to "sgml-raw" when using Jade to process docs. This gets + rid of the line breaks inside the tags, which were confusing Lynx. + +2003-01-15 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scan.in (ScanHeader): Remove special cases for Pango and + Bonobo. + * gtkdoc-mkdb.in (OutputDeclaration): + * gtkdoc-mktmpl.in (OutputDeclaration): Remove special cases for + structs named BlablaClass. (#95398) + + * gtkdoc-mkdb.in (GetInterfaces): Fix an off-by-one error. + (#103466, Josh Parsons) + +2002-12-28 Chema Celorio <chema@celorio.com> + + * gtkdoc-scan[g]obj.in: add "void" to functions with no parameters, + avoids warning with -Wmissing-prototypes when compiling + {module}-scan.c + +2002-12-16 James Henstridge <james@daa.com.au> + + * gtk-doc.spec.in: require perl >= 5.6.0 + + * configure.in: require Perl >= 5.6.0 + + * gtkdoc-fixxref.in: add "use bytes;" to fix malformed UTF-8 + character errors when run with a UTF-8 locale. + +2002-12-16 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (OutputSGMLFile): Don't emit the additional + anchors in the title which breaks the generated html (the title + text is copied around). Instead, put the anchors before the + synopsis. This isn't perfect, but the best we can achieve without + stylesheet hackery. + +2002-12-13 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in: Add an --ignore-files option which can be used + to omit files or directories from scanning. + (OutputSGMLFile): Emit anchors for all objects contained in the + file to avoid dangling links. + (OutputMissingDocumentation): Emit deprecated symbols after + undeprecated ones. + +2002-12-12 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scan.in (ScanHeader): Also recognize "positive" guards + like #ifdef GTK_ENABLE_BROKEN. + +2002-12-11 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.xsl: Change XPath path to "//anchor|//refentry" for the + generation of index.sgml. The previous path "//anchor|refentry" + was not matching any refentrys. + +2002-12-09 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mktmpl.in (UpdateTemplates): Emit unused class structs + to $MODULE-unused.txt. + +2002-12-08 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (OutputStruct): Don't emit private parts + of class structs to parameter lists in docs. Remove leftover + debugging output. + + * gtkdoc-mktmpl.in (OutputDeclaration): Don't emit private parts + of class structs to parameter lists in templates. + +2002-12-06 Matthias Clasen <maclas@gmx.de> + + Improved /*< private >*/ handling: (#95398) + + * gtkdoc-mkdb.in (OutputStruct): Handle /*< public >*/ and + /*< private >*/ for all structs. Default to private for object and + class structs, to public for all other structs. + + * gtkdoc-scan.in (ScanHeader): Emit declarations for class structs + to $MODULE-decl.txt. + +2002-12-05 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mktmpl.in (OutputDeclaration): + * gtkdoc-mkdb.in (ReadTemplateFile): Support @Since: and + @Deprecated: as a way to specify since and deprecated information + in template files. This works for all kinds of symbols, even those + which normally don't have parameter lists. + +2002-12-02 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (MakeDeprecationNote): Support multi-paragraph + deprecation notes. + +2002-11-29 James Henstridge <james@daa.com.au> + + * gtkdoc-mkhtml.in: copy the navigation images for both XML and + SGML cases. + + * gtk-doc.dsl.in: update DSSSL stylesheets to match layout of XSL + ones. + +2002-11-29 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scan.in (ScanHeader): Make deprecation guards work with + both + #ifndef DEPRECATION_GUARD + #if !defined(DEPRECATION_GUARD) || defined(FOO_COMPILATION) + The second form is used in GDK and GTK+ to include selected + deprecated symbols when compiling the library itself. + +2002-11-27 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in: Parse to new tags in inline doc comments, + Since: and Deprecated:, which can be placed after the Returns: + tag. Emit the Since: information (which is expected to be just a + version number) after the parameters and the Deprecated: + information (which is expected to be one or more full sentences) + inside the deprecation warning. + Warn if a Deprecated: tag is found on a symbol which is not + guarded by a deprecation guard in the header. + +2002-11-26 James Henstridge <james@daa.com.au> + + * gtkdoc-mkhtml.in: set gtkdoc-bookname and gtkdoc-version + parameters in sgml mode, and don't bother with the sed run after + processing with jade. + In XML mode, pass the version number in as a parameter too. + + * gtk-doc.dsl.in ($user-html-header$): add <meta> tag if + gtkdoc-version is set. + (generate-index-mode): if gtkdoc-bookname is set, add it to the + hrefs in the index file, like the XSLT sheets do. + + * gtk-doc.xsl: add gtkdoc.version parameter, and use it to add a + <meta> tag with the gtk-doc version number. + +=== release 0.10 === + +2002-11-16 Damon Chaplin <damon@gnome.org> + + * Released 0.10. + +2002-11-16 Damon Chaplin <damon@gnome.org> + + * configure.in: bumped version to 0.10. + + * Makefile.am (EXTRA_DIST): added MAINTAINERS. + + * README: updated requirements info, mainly to add XML stuff. + + * NEWS: added news for 0.10 + + * MAINTAINERS: + * AUTHORS: updated my email address. + +2002-11-16 James Henstridge <james@daa.com.au> + + * gtk-doc.xsl: output HTML in ISO-8859-1 (latin1), as using UTF-8 + can trigger misinterpretation of web pages when the web server + asserts that the document is encoded in latin1 in the mime type. + +2002-11-15 James Henstridge <james@daa.com.au> + + * gtk-doc.xsl: small changes to make the output closer to valid + HTML. + + * gtkdoc-fixxref.in (MakeXRef): when substituting in cross + references, use lower case element and attribute names, and quote + the attribute value. + +2002-11-12 James Henstridge <james@daa.com.au> + + * gtkdoc-mkdb.in: put content of parameter descriptions in + <simpara> elements instead of <para>'s. This makes the generated + HTML more compact, as it will omit the <p> tag inside the list + item. + + * gtk-doc.xsl: adjust stylesheet a little. + +2002-11-10 James Henstridge <james@daa.com.au> + + * gtk-doc.xsl: change style for documentation. + + * gtkdoc-mkhtml.in (declaration): copy PNG files to the html + directory. + +2002-11-10 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (GetArgs): Expand abbreviations in source doc + comments. + +2002-11-09 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mktmpl.in (OutputSignalTemplates): Don't replace template + param names with meaningless argn names generated by gtkdoc-scangobj. + + * gtkdoc-mkdb.in (GetSignals): Use argument names from source doc + comments, if available. + (GetArgs): Use source doc comments instead of blurb, if available. + (ScanSourceFile): Also accept object::signal and object:property + symbols. + (MergeSourceDocumentation): For signals only, prefer source doc + param names over template param names. + +Fri Nov 8 15:10:57 2002 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkdb.in (GetPrerequisites): Add missing <para> + here too. + +Mon Nov 4 17:17:40 2002 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkdb.in (MergeSourceDocumentation): Warn + when overriding docs in template file by inline comments. + + * gtkdoc-mkdb.in (GetInterfaces): Add missing <para> in + "Implemented interfaces" output. + +2002-10-29 Damon Chaplin <damon@ximian.com> + + * gtkdoc-scangobj.in: in get_type_name() set is_pointer to TRUE for + subtypes of G_TYPE_BOXED and G_TYPE_POINTER. This means we get things + like "GtkTreeIter *iter" rather than "GtkTreeIter iter" which was + incorrect. Also return 'GParamSpec*' for G_TYPE_PARAM. + in lookup_signal_arg_names() changed GtkNotebook::switch-page + page argument to guint. And fixed a few other entries. + Also fixed argument numbering, so we don't get 2 "widget" arguments. + + * gtkdoc-scanobj.in: add ';' after unlink command to avoid warning. + +2002-10-20 Matthias Clasen <maclas@gmx.de> + + * examples/Makefile.am (SCANOBJ_FILES): Add $(DOC_MODULE).prerequisites. + + * gtkdoc-mkdb.in: Read $MODULE.prerequisites and put list of + prerequisites below the object hierarchy for interfaces. + + * gtkdoc-scangobj.in: Write information about interface + prerequisites to $MODULE.prerequisites. + +2002-10-15 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: Sort paramspec arrays for + greater stability and less random tmpl file diffs. + +2002-10-14 Matthias Clasen <maclas@gmx.de> + + * examples/Makefile.am (SCANOBJ_FILES): Add $(DOC_MODULE).interfaces. + + * gtkdoc-mkdb.in: Read $MODULE.interfaces and put lists of + implemented interfaces/known implementations below the object + hierarchy for classes/interfaces. + + * gtkdoc-scangobj.in: Write interface information to + $MODULE.interfaces. + +2002-10-12 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: Make interface appear in the object hierarchy. + +2002-10-11 Matthias Clasen <maclas@gmx.de> + + * gtk-doc.xsl: use 'UTF-8', not UTF-8 for default.encoding, to + make the encoding actually appear in the resulting HTML. + +2002-10-09 James Henstridge <james@daa.com.au> + + * gtkdoc-mkdb.in: set $doctype_header to "" for the SGML case, as + we don't add a doctype to the beginning of SGML fragments. + +Tue Sep 17 01:07:51 2002 Jonathan Blandford <jrb@gnome.org> + + * gtk-doc.xsl: output the chunks in UTF-8 so other tools can use + them. + +2002-09-03 James Henstridge <james@daa.com.au> + + * gtk-doc.xsl: turn on rendering of variablelists as tables, and + set CSS rules to style .variablelist instead of .informaltable. + + * gtk-doc.dsl.in (variablelist): override the variablelist handler + instead of the tgroups. + + * gtkdoc-mkdb.in (OutputStruct): use a <variablelist> for listing + the field descriptions. + (OutputEnum): same here. + (OutputParamDescriptions): and here. + +2002-08-12 James Henstridge <james@daa.com.au> + + * gtk-doc.xsl: include devhelp.xsl, and call generate.devhelp when + processing the docbook/xml input. + + * devhelp.xsl: new file, implements .devhelp file output. + +2002-08-18 Havoc Pennington <hp@pobox.com> + + * autogen.sh: hardcode aclocal-1.4/automake-1.4 so that users with + both automake 1.6 and 1.4 installed get the right automake. Means + compilation from CVS will now require the latest automake 1.4 + release, or manually creating symlinks called "automake-1.4" and + "aclocal-1.4" + +2002-08-08 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: Make sure blurbs end with a '.' + +2002-08-08 James Henstridge <james@daa.com.au> + + * gtk-doc.xsl: add a gtkdoc.bookname param, and include it in the + index.sgml output (if not empty). + + * gtkdoc-mkhtml.in: only perform the sed operation if we are using + Jade, and pass the module name as a parameter when using xsltproc. + +2002-08-04 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: Don't try to list signals on types which + don't support signals, e.g. boxed types. + +2002-06-14 jacob berkman <jacob@ximian.com> + + * gtkdoc-mkdb.in: do the version check before help, so --version + doesn't output --help (should fix recent build bustage) + +2002-06-12 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in: Make header-grabbing work without an explicit + --main-sgml-file argument. + + * gtkdoc-mkdb.in: Emit the object hierarchy as a <screen> rather + than a <literallayout>, since the Docbook XSL stylesheets don't + handle <link>s inside <literallayout>. + + * gtkdoc-mkdb.in: Decide wether to generate standalone documents + for XIncluding or entities based on the presence of the XInclude + namespace declaration on the document element. + +2002-06-09 James Henstridge <james@daa.com.au> + + * gtkdoc-mkdb.in: try to grab the header off the top of the main + sgml file. + +2002-05-31 James Henstridge <james@daa.com.au> + + * gtkdoc-mkdb.in (OutputSGML): put XIncludes in the $book_bottom + variable. + (OutputBook): add the XInclude namespace declaration to the book + element. + + * gtkdoc-mkhtml.in (declaration): if the document looks like XML, + process it with xsltproc. + + * configure.in: check for xsltproc. + + * gtk-doc.xsl: start of XSLT template for converting docbook/xml + to HTML. + +2002-06-03 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (ConvertSGMLChars): Don't use Posix character + classes. Perl < 5.6 doesn't have them; and the API doc autobuilder + on widget.gnome.org has an old Perl. + +2002-05-29 Matthias Clasen <maclas@gmx.de> + + Fixes for #77193: + + * gtkdoc-mkdb.in (OutputSGML): Call GetSignals, GetArgs and + GetHierarchy for each symbol here and accumulate. + (OutputSGMLFile): Get signal, argument and hierarchy information + from the caller. + (GetSignals, GetArgs, GetHierarchy): Don't wrap the return value + in a refsect1, so that the results of multiple calls can be accumulated. + +2002-05-28 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (ConvertSGMLChars): Make this work correctly + for empty elements and XML comments in doc comments. + +2002-05-27 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (ReadTemplateFile, OutputSGMLFile): + Use only the basename of the template file in the key for the + symbol table, in order to decouple the file extensions of the + template files and the generated entities (we want to generate + .xml entities from .sgml template files when emitting XML). + +2002-05-25 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (ConvertSGMLChars): New function which tries to + be a bit more clever when escaping SGML syntax characters. + (ScanSourceFile): Use ConvertSGMLChars instead of CreateValidSGML. + This reduces the work needed to make gtk-doc emit XML (where <, & + and friends must always be escaped). + +2002-05-18 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkhtml.in: Detect whether we're processing SGML or XML. + + * gtkdoc-mkdb.in: New option --output-format to switch between + SGML and XML output. + + * Makefile.am (EXTRA_DIST): Add xml.dcl + + * xml.dcl: The XML declaration. + +2002-05-06 jacob berkman <jacob@ximian.com> + + * gtkdoc-scangobj.in: add an include for the GTK_CHECK_VERSION + macro + +2002-05-05 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: Output style properties. (#80659) + + * gtkdoc-mkdb.in (GetArgs): Return separate sections for + properties, child properties and style properties. (#80659) + +2002-05-03 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in: Fix for segfault in scangobj-generated C + program on Solaris. (#80606, Jacob Berkman) + +2002-05-01 Matthias Clasen <maclas@gmx.de> + + * tools/docpercentages.pl: Add the script which Owen uses for the + d.g.o online API docs. Its easier to keep in sync here. + + * gtkdoc-mkdb.in (OutputMissingDocumentation): Fix + $MODULE-undocumented.txt for d.g.o online API docs. + + * gtkdoc-mkdb.in (GetArgs): Use blurbs for property documentation. + + * gtkdoc-scangobj.in: Output child properties. Output nicks and + blurbs for properties. + +2002-04-28 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-mkdb.in (ScanSourceFile): Don't scan for return value + descriptions unnecessarily. (#65997) + +2002-03-11 Matthias Clasen <maclas@gmx.de> + + * gtkdoc-scangobj.in, gtkdoc-mkdb.in: Create docs for signals on interfaces. + +2002-02-01 Damon Chaplin <damon@ximian.com> + + * configure.in: check for openjade or jade. Patch from Stefan Kost + <kost@imn.htwk-leipzig.de>. + + * gtkdoc-mkhtml.in: use @JADE@ so the correct version of jade is used. + + * autogen.sh: commented out autoheader since we don't have a config.h. + +=== release 0.9 === + +2002-01-18 Damon Chaplin <damon@ximian.com> + + * Released 0.9. + +2002-02-01 Damon Chaplin <damon@ximian.com> + + * examples/Makefile.am: added SCANOBJ_OPTIONS in case the module needs + to pass options to gtkdoc-scanobj or gtkdoc-scangobj. + +2002-01-24 Damon Chaplin <damon@ximian.com> + + * tools/gtk-doc.el: added Zucchi's emacs lisp for automatically adding + skeleton comment blocks above functions. Very handy! + +2002-01-23 Damon Chaplin <damon@ximian.com> + + * configure.in: bumped the version to 0.9, so GTK+ can depend on this + if it wants to. + + * gtkdoc-scangobj.in: we now default to calling g_type_init() to + initialize the type system, rather than gtk_init(). This means you + don't need an X connection to build the docs any more. Hurrah! + Also added a '--type-init-func' argument so you can change the + function to be called. GTK+ uses --type-init-func="gtk_type_init(0)". + + * gtkdoc-scan.in (ScanHeader): removed 'Found object' debug message. + +=== release 0.8 === + +2002-01-18 Damon Chaplin <damon@ximian.com> + + * Released 0.8. + +2002-01-18 Damon Chaplin <damon@ximian.com> + + * Makefile.am (EXTRA_DIST): added gtk-doc.dcl to EXTRA_DIST. + +2002-01-18 Damon Chaplin <damon@ximian.com> + + * gtkdoc-scangobj.in: Reverted jacob's patch for this release, since + it breaks GTK+ and possibly other packages. I'll re-apply it after + the release, so we can fix everything in CVS. + +2002-01-18 jacob berkman <jacob@ximian.com> + + * gtkdoc-scangobj.in: default to calling g_type_init(), remove + --nogtkinit argument and replace with a more flexible + --type-init-func + +2002-01-18 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in (ScanSourceFile): patch from Matthias Clasen + <matthiasc@poet.de> to only strip first space after '*' in source + code comment blocks, so example code can be indented as desired. + Bug #68216. + +Wed Nov 21 16:50:35 2001 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkdb,tmpl.in: Add some extra quoting to + error messages to make it clearer what is going on + with trailing commas on enumeration declarations. + +Wed Nov 21 16:00:45 2001 Owen Taylor <otaylor@redhat.com> + + * Applied patch from Matthias Clasen to use a modified + .dcl file with the 44 character name length limit removed. + (#61342) + +2001-10-17 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in: applied patch from Matthias Clasen + <matthiasc@poet.de> to take a --sgml-mode argument which means + all comment blocks in the source code are assumed to be DocBook + (i.e. we don't convert '<', '>' and '&' to '<' etc. + +2001-10-09 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in (OutputMissingDocumentation): changed %.2f to %.0f + so hopefully the automated reports on developer.gnome.org will work + OK again. + +2001-10-02 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mktmpl.in (OutputDeclaration): + * gtkdoc-mkdb.in (OutputFunction): applied patch from + matthiasc@poet.de (Matthias Clasen) to handle G_CONST_RETURN in a + parameter list. Bug #61341. + +2001-10-02 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in (OutputMissingDocumentation): applied patch from + matthiasc@poet.de (Matthias Clasen) to output percentages better. + Bug #61467. + Also set percent to 100 if total is 0, avoiding divide-by-zero. + +2001-10-02 Damon Chaplin <damon@ximian.com> + + * examples/Makefile.am (DOC_OVERRIDES): define as an empty string, + even when not used. + +2001-09-13 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in (OutputMissingDocumentation): initialize buffer to "". + Fix for SGI from David Kaelbling <drk@sgi.com>. + +Sat Sep 8 14:08:51 2001 Jonathan Blandford <jrb@webwynk.net> + + * gtkdoc-scan.in (ScanHeader): recognize GET_IFACE macros + +2001-09-08 Havoc Pennington <hp@pobox.com> + + * gtkdoc-mkdb.in (GetArgs): Title the section on object properties + "Properties" instead of "Args" + +2001-08-14 Laszlo Peter <laca@ireland.sun.com> + + * gtkdoc-scanobj.in: + * gtkdoc-scangobj.in: change \n's to \\n's in perl scripts + generating C code. + +2001-08-12 Jens Finke <jens@gnome.org> + + * Updated gtk-doc.spec.in file to match gpp standard. + +=== release 0.7 === + +2001-08-04 Damon Chaplin <damon@ximian.com> + + * Released 0.7 + +2001-08-04 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in (OutputFunction): + * gtkdoc-mktmpl.in (OutputDeclaration): patch from Lowell Johnson + <ldjohn@usgs.gov> to accept things like "long long", "short int", + "char test[][CLEN]" as function parameters. + +2001-07-20 Anders Carlsson <andersca@gnome.org> + + * gtkdoc-scangobj.in: Remove argument to g_type_init (); + +2001-07-09 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in (ParseStructDeclaration): accept G_CONST_RETURN + modifier for function return values. gtkdoc-mktmpl.in already had this. + +Thu Jun 21 11:57:16 2001 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-scangobj.in: Conform to changes in GObject API + for property retrieval. + +2001-05-25 Peter Williams <peterw@ximian.com> + + * gtkdoc-mkdb.in (ScanSourceFile): Skip single-line comments -- + prevents barfing on ORBit-generated files. + +2001-05-20 Damon Chaplin <damon@ximian.com> + + * examples/Makefile.am (sgml-build.stamp): replaced use of wildcard + (which isn't portable) with original *.sgml. I think this just means + that the first time you try to build the docs it will fail, but if + you run make again it will work. + + * doc/setting-up.txt: explained that make may fail the first time. + +2001-05-19 Damon Chaplin <damon@ximian.com> + + * README: + * doc/README: + * doc/setting-up.txt: + * doc/sections-file.txt: + * doc/authors.txt: updated docs to cover simpler setup procedure. + + * doc/gtk_button.txt: + * doc/manpage: + * doc/manpage.man: + * doc/notes.txt: removed out-of date stuff. + + * Makefile.am (dist-hook): updated so it doesn't try to remove old + examples subdirectory stuff. + +2001-05-19 Damon Chaplin <damon@ximian.com> + + * examples/gnome/*: + * examples/gnomeui/*: removed out-of-date example files. + + * examples/configure.in: + * examples/Makefile.am: new example setup mostly copied from GTK+. + + * examples/README: describe the example configure.in/Makefile.am. + +2001-05-19 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in: added --help option and changed output slightly to + make more compatable with XML. Patch from Toshio Kuratomi + <badger@prtr-13.ucsc.edu> + +2001-05-19 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mktmpl.in (OutputDeclaration): + * gtkdoc-mkdb.in (OutputFunction): changed a '?' to a '*' so we accept + multi-dimensional array function parameters. Patch from Paolo Casarini + <casarini@CS.UniBO.IT> + +2001-05-12 Damon Chaplin <damon@ximian.com> + + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: used "*pos = 0" to avoid problems with backslashes + in '\0'. + + * configure.in: removed dsssl dirs stuff, since we use public entities + now. + + * gtkdoc-mkdb.in (OutputBook): if there is no main SGML file we create + it here. Also added a --main-sgml-file option so we know where to put + it. + + * gtkdoc-scan.in: if there is no MODULE-sections.txt file, we copy + the MODULE-decl-list.txt file to it. The user can tweak it later. + +2001-05-11 Damon Chaplin <damon@ximian.com> + + * gtk-doc.spec.in: applied patch from Toshio Kuratomi + <badger@prtr-13.ucsc.edu>. + +2001-05-07 Joakim Ziegler <joakim@ximian.com> + + * gtkdoc-mkdb.in: Added option --outputallsymbols to create a symbol list + in the module doc dir. + + * gtkdoc-mkdb.in: Added functionality to output a list of undocumented + symbols in a module, most of is is in OutputMissingDocumentation. + + * gtkdoc-scan.in: Small scanning fixes to facilitate the doc coverage + output mentioned above. + +2001-04-25 Federico Mena Quintero <federico@ximian.com> + + * gtkdoc-scanobj.in: Added missing output-dir in the call to + GetOptions(). + +2001-04-24 Damon Chaplin <damon@ximian.com> + + * gtkdoc-scanobj.in: copied --outputdir option from gtkdoc-scangobj.in. + +Fri Apr 13 15:25:44 2001 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkdb.in: Restore call to OutputBook that was accidentally + deleted. + +Thu Apr 12 17:57:12 2001 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-scangobj.in: Add a --outputdir option (sort of hacky. + Need this because $CC, $LD can include relative paths if they + are based on $LIBTOOL) + +2001-03-26 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mkdb.in (ReadSourceDocumentation): scan .h files as well, + so macros can be documented there if desired. Patch from + Yoann Vandoorselaere <yoann@mandrakesoft.com> + + * gtkdoc-mkhtml.in (gtkdocdir): use 'test -f' rather than 'test -e' + which is GNU-specific. + +Thu Mar 8 17:26:29 2001 Tim Janik <timj@gtk.org> + + * gtkdoc-scangobj.in: fix signal param type handling. + +Tue Mar 6 23:21:46 2001 Jonathan Blandford <jrb@redhat.com> + + * gtkdoc-scanobj.in: Add gobject support. Now works on files that + don't link against GTK. + +Sat Mar 3 17:43:42 2001 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-{scan,mktmpl,mkdb}.in: Add support for G_CONST_RETURN. + (Right now, it will appear as G_CONST_RETURN in the output - + I'm not sure that's right - perhaps it should be converted + to const.) + +2001-02-20 Michael Meeks <michael@ximian.com> + + * gtkdoc-mktmpl.in: s/TRUE/1/ + +2001-02-19 Damon Chaplin <damon@ximian.com> + + * gtkdoc-mktmpl.in (UpdateTemplates): fixed bug handling the $changed + flag. + +2001-02-17 Damon Chaplin <damon@ximian.com> + + * gtkdoc-scan.in (ScanHeaders): + (ScanHeader): patch from Johannes Stezenbach <js@convergence.de> + so we don't use '\b' in the regexp to match files/dirs to ignore. + '\b' can match '_' so we matched things we shouldn't have. + +Mon Feb 12 12:50:57 2001 Owen Taylor <otaylor@redhat.com> + + * configure.in: Up version. + +Sun Feb 11 18:35:07 2001 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mktmpl.in: Add a timestamp file for the + templates like sgml.stamp + + * gtkdoc-mktmpl.in (OutputUnusedTemplates): Write the + symbols out in sorted order instead of hash table + order to reduce conflicts. + +Mon Feb 5 16:48:51 2001 Owen Taylor <otaylor@redhat.com> + + * configure.in gtk-doc.dsl.in: Remove checks for DSSSL - use a + public entity instead. + + * gtkdoc-scangobj.in: Fix to work with libtool better. + +2001-01-30 Havoc Pennington <hp@pobox.com> + + * gtkdoc-fixxref.in, gtkdoc-mkdb.in, gtkdoc-mktmpl.in, + gtkdoc-scan.in, gtkdoc-scangobj.in, gtkdoc-scanobj.in: + Added -*- cperl -*- magic, and --deprecated-guards + option. + +2001-01-23 Damon Chaplin <damon@helixcode.com> + + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + * gtkdoc-scan.in: + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: changed so that they only update files when + necessary (they write new versions of the files out, then use 'cmp' + to compare with the existing versions to see if they have changed.) + This should make it easier to do proper dependency rules in Makefiles, + and it may cut down on CVS traffic. + + * gtkdoc-mkhtml.in: update a timestamp file (html.stamp) after running. + * gtkdoc-mkdb.in: update a timestamp file (sgml.stamp) if any of the + DocBook SGML files have been changed. So hopefully you can now use + rules like this to avoid unnecessary regeneration of the HTML: + + all-local: + $(MAKE) scan + $(MAKE) templates + $(MAKE) sgml + $(MAKE) html.stamp + + html.stamp: sgml.stamp $(EXTRA_SGML_FILES) + $(MAKE) html + + (I've tried this with the old GTK+ reference API docs and it seems to + work well.) + + * gtkdoc-scangobj.in: + * gtkdoc-scanobj.in: + * gtkdoc-scan.in: + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: + * gtkdoc-mkhtml.in: + * gtkdoc-mkman.in: + * gtkdoc-fixxref.in: + Added '--version' command-line arg to all shell & perl scripts, so + you can check for version 0.5 if you want to use the above rules. + (If 0.4 is used make will probably complain about not knowing how to + to build sgml.stamp.) + + * gtkdoc-common.pl.in: new file to contain shared routines. + For now it just contains the UpdateFileIfChanged routine for the above. + We can move the duplicated routines here in future, though the use of + global variables makes this a bit awkward. + + * configure.in (PACKAGE_DATA_DIR): calculates the data dir and + substitutes it so that the scripts know where gtkdoc-common.pl + is installed. Also added gtkdoc-common.pl to AC_OUTPUT. + + * Makefile.am: added gtkdoc-common.pl to gtkdocdata_DATA. + + * gtkdoc-mkhtml.in: deleted the old index.sgml file, since it causes + problems if it is owned by root (e.g. after you run 'make install' as + root. jade prompts you about overwriting it, which is annoying. + +2001-01-10 Havoc Pennington <hp@redhat.com> + + * gtkdoc-mktmpl.in: Only move old file to backup if the old file + exists, and have better error messages when doing the backups + +Mon Jan 8 14:57:29 2001 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mktmpl.in: Canonicalize signal and argument + names to -, not _. + + * gtkdoc-scangobj.in: Fix up for GParamSpec. + +2001-01-04 Fr�d�ric Gobry <frederic.gobry@smartdata.ch> + + * gtkdoc-scan.in: fixed matching of < private_header > directive + +2000-12-19 Damon Chaplin <damon@helixcode.com> + + * gtkdoc-scanobj.in: + * gtkdoc-scangobj.in: added default cases to get_type_name(). + +2000-12-10 Arturo Tena <arturo@directmail.org> + + * gtkdoc-scanobj.in (get_type_name): + * gtkdoc-scangobj.in (get_type_name): fixed syntax error: forgotten + to close a switch statement. + +2000-12-10 Damon Chaplin <damon@helixcode.com> + + * gtk-doc.spec.in: added spec.in file from John Gotts + <jgotts@linuxsavvy.com>. + + * configure.in (AC_OUTPUT): added spec file. + + * Makefile.am: uncommented spec file stuff, now that we have one. + + * gtkdoc-scanobj.in (get_type_name): + * gtkdoc-scangobj.in (get_type_name): updated to use the type numbers + rather than the type names, which were changed in GTK+ 1.2. This + should fix a problem where GTK_TYPE_STRING arguments were output as + 'GtkString *arg' instead of 'gchar *arg'. + + I'm still not sure what to output for the structured types such as + GTK_TYPE_SIGNAL/ARGS/FOREIGN/CALLBACK/C_CALLBACK. Should these be + expanded to several arguments to the signal handler? + +2000-11-25 Dan Mueth <d-mueth@uchicago.edu> + + * help/manual/C/: created this path + * gtk-doc-manual.sgml: Put part of the outline into SGML. + Chris plans to put rest of outline in here and start + writing. + * fdl-appendix.sgml: The FDL in SGML. We will probably post + these on the web as a single document (book) so we will + need the FDL to be included as an appendix. + +Fri Nov 3 07:21:34 2000 Tim Janik <timj@gtk.org> + + * gtkdoc-mkdb.in: + (ParseStructDeclaration): + (OutputStruct): + * gtkdoc-mktmpl.in: + (ParseStructDeclaration): + support /*<protected>*/ equivalently to /*<private>*/ + +Fri Nov 3 07:15:58 2000 Tim Janik <timj@gtk.org> + + * gtkdoc-mktmpl.in: + * gtkdoc-mkdb.in: + (ReadTemplateFile): only eat up the first space (if at all + present) after "@param:" to preserve indentation for multiline + parameter descriptions. + +2000-10-30 Raja R Harinath <harinath@cs.umn.edu> + + * gtkdoc-mkdb.in (ParseStructDeclaration): + Stop scanning at '}' only when it starts a line. + * gtkdoc-mktmpl.in (ParseStructDeclaration): Likewise. + +Mon Oct 30 02:59:54 2000 Tim Janik <timj@gtk.org> + + * gtkdoc-scangobj.in: use g_signal_list_ids(). + +Sun Oct 29 02:54:51 2000 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-scangobj.in: Sort signal types arrays for + greater stability and less random tmpl file diffs. + +Sun Oct 29 01:02:35 2000 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-scangobj.in: Work properly with GSignal + +=== release 0.4 === + +2000-10-21 Damon Chaplin <damon@helixcode.com> + + * Released 0.4 + +2000-10-14 Damon Chaplin <damon@helixcode.com> + + * AUTHORS: + * MAINTAINERS: changed my email address. + + * Makefile.am (dist-hook): remove the CVS dirs from the dist. + + * doc/setting-up.txt: typo. + +Fri Oct 6 17:51:50 2000 <otaylor@redhat.com> + + * gtkdoc-scan.in gtkdoc-mkdb.in: Allow multiple + --source-dir options. + +Thu Sep 7 11:41:12 2000 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkdb.in: Ignore all . files when scanning directories. + + * gtkdoc-scan.in: Add support for GLIB_VAR, GDKVAR, + etc when looking for variable declarations. + + * gtkdoc-scan.in: Recognize GET_CLASS macros. + + * gtkdoc-scangobj.in: Support .lo intermediate files + with libtool. + +Wed Sep 6 17:57:33 2000 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-scangobj.in: Add gtkdoc-scangobj scanner for + GObject type system. + + * gtkdoc-scanobj.in: Allow setting $LD to allow separating + compilation and linking and thus to allow using libtool. + + * gtkdoc-fixxref.in (ScanIndices): Allow HTMLDIR + not to be present yet. + +Tue Sep 5 23:37:53 2000 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-fixxref.in: Add a --extra-dir option to + allow scanning of additional uninstalled HTML + directories. + + * gtkdoc-scan.in (ScanHeaders): Honor subdirectories + appearing in --ignore-headers. + + * gtkdoc-mkdb.in: Append -CAPS to all all-caps identifiers + to prevent an infinite expansion of special cases. + + * gtkdoc-fixxref.in: Add a --module-dir option to + allow fixing references in an uninstalled tree. + + * gtkdoc-mkdb.in gtkdoc-mkhtml.in: Simple handling + for macros with embedded commas in enumeration + declarations. + +Mon Aug 28 18:18:53 2000 Owen Taylor <otaylor@redhat.com> + + * configure.in (DSSSL_DIR): Remove check for AM_PATH_GTK + since the dependency is only run-time not install-time, + and to avoid dependency loops. + +2000-06-21 Damon Chaplin <damon@helixcode.com> + + * gtkdoc-mkdb.in: fixed <INCLUDES> bug, I think. + +Wed Feb 9 11:29:25 2000 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-scan.in: Hack to avoid misidentifying structures + as GtkObjects within Pango. + +1999-12-15 Raja R Harinath <harinath@cs.umn.edu> + + * gtk-doc.dsl.in ($generate-chapter-toc$): Add missing close + paranthesis. + +1999-11-23 Raja R Harinath <harinath@cs.umn.edu> + + * gtk-doc.dsl.in: Use the (define (foo) ...) syntax rather than + the uglier (define foo (lambda () ...)) syntax. + ($generate-chapter-toc$): Simplify. + ($shade-verbatim-attr$): Simplify. Use ($table-width$) instead of + "100%" for width (See docs. of NWalsh Docbook DSSSL Stylesheets + for an explanation). + +1999-09-20 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtk-doc.dsl.in: If a Chapter has role="no-toc" we don't generate a + table of contents. This is useful if a better contents page has been + added manually, e.g. for the GTK+ Widgets & Objects page. (But it is + a bit of a hack.) + + * gtkdoc-scanobj.in: added --nogtkinit flag which will make it call + gtk_type_init() rather than gtk_init(). This is useful when it is + run automatically to update the docs by a cron job or similar and a + connection to an X server is not desirable. However, if any widgets + need a connection to X in their class init function then this can't + be used (e.g. GtkFontSelection at present). + +Mon Sep 20 09:09:12 1999 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkdb.in gtkdoc-mktmpl.in: (ParseStructDeclaration): + Fixed up the code to do /*< private >*/ ... stripping. + +1999-09-10 Martin Baulig <martin@home-of-linux.org> + + * gtkdoc.dsl.in ($generate-chapter-toc$): Return #t, not #f. + +1999-09-09 Martin Baulig <martin@home-of-linux.org> + + * gtkdoc-scan.in (ScanHeader): Don't force typedefs and other + things to start in column 0; allow some spaces in front of them. + Output `typedef struct { ... } name' structs as typedef, not as + structure. + +1999-09-08 Martin Baulig <martin@home-of-linux.org> + + * gtkdoc-mkdb.in (CreateValidSGMLID): `s/::/-/g;' for CORBA objects. + +1999-08-22 Erik Walthinsen <omega@cse.ogi.edu> + + * gtkdoc-scan.in: modified so it will find any Class, not just Gtk + and Gnome classes. Introduces the possibility of extraneous Class + definitions (verified), which should be pruned somehow (haven't + analyzed the false positive yet). + +1999-08-22 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtkdoc-mktmpl.in: + * gtkdoc-mkdb.in: a few fixes to ParseStructDeclaration. It still + has problems with nested structs/unions like those which occur in + gtkclist.h and gtktypeutils.h. + + * configure.in: removed gtk-doc.spec from AC_OUTPUT, as whoever wrote + this forgot to add gtk-doc.spec.in to CVS. + * Makefile.am: commented out gtk-doc.spec. + +Wed Aug 18 03:55:30 1999 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mktmpl.in: Propagate fix from gtkdoc-mkdb.in. + :-(; need to libraryize, need to libraryize. + +Wed Aug 18 03:55:30 1999 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mkdb.in: Fix bug that was preventing + structure field definitions from being output. + +Wed Aug 18 23:25:23 1999 Owen Taylor <otaylor@redhat.com> + + * configure.in: Add /usr/lib/sgml/stylesheet to list + of stylesheet directories. (Found in recent Debian + packages) + +1999-08-15 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtkdoc-mkdb.in: Output $decl_out as the struct rather than the + original $declaration. + +1999-08-12 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtkdoc-mkdb.in: + * gtkdoc-mktmpl.in: Added special case in ParseEnumDeclaration to + handle GIOCondition which uses strange macros like this: + typedef enum + { + G_IO_IN GLIB_SYSDEF_POLLIN, + ... + The GLIB_SYSDEF_POLLIN macro expands to something like '=1' + +1999-08-05 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtk-doc.dsl.in: output <br clear=all> after sections and at end of + page so that right-aligned images aren't messed up quite as much. + +Wed Aug 4 04:04:55 1999 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mk{db,tmpl}.in (ParseStructDeclaration): Allow + for bit fields. + + * gtkdoc-mktmpl.in (ReadObjectHierarchy): Remove + call to MakeXref that slipped in accidentally. + +Wed Aug 4 03:30:19 1999 Owen Taylor <otaylor@redhat.com> + + * doc/style-guide.txt: Removed references to creating + tables explicitely in favor of demonstrating new + syntax. Added a short section on /<* public >*/ + and /*< private *>/. + +Wed Aug 4 03:15:19 1999 Owen Taylor <otaylor@redhat.com> + + * gtkdoc-mktmpl.in gtkdoc-mkhtml.in: Handle Struct and + Enumerations in approximately the same way as we + handle parameters. That is, instead of (as before) + coding in the tables by hand, one uses lines like: + + @width: the width of the rectangle in pixels. + + To support migration from the older hand-coded + tables, if none of the members of a structure or + enumeration have a description in a @... line, then + we don't generate the table at all. + + Also, gtkdoc-mktmpl now loads up the object heirarchy, + because we need to be able to check if structures + are widget structures. + + In general, the coding here is pretty clean, though + the style is a little different. (I'm interating + through strings with m/.../msg; instead of + s/^...//; for one thing.) However, there are a some + of FIXME's where I've whimped out on try to handle + real C syntax, and the need to split out and librarize + a bunch of duplicated code is greater than ever. + +1999-06-06 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * configure.in: updated version to 0.3. + + * doc/style-guide.txt: A couple of minor changes. + + * gtkdoc-mkdb.in: Get rid of a couple of messages. + Output an empty <para> if an Arg isn't documented, to keep Jade happy. + +1999-05-22 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtk-doc.dsl.in: Renamed %shade-verbatim-attr-2% to + $shade-verbatim-attr$ and removed our redefinition of + $verbatim-display$ since the stylesheets version now calls + $shade-verbatim-attr$ as a function which is just what we wanted. + + * README: Updated info on stylesheet versions supported - 1.40 is + known to be OK (with this version of gtk-doc), 1.19+ may work. + +1999-03-31 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * configure.in: update version to 0.2 for next release. + + * gtkdoc-mktmpl.in: + * gtkdoc-mkdb.in: added support for 'See Also' section. + + * gtk-doc.dsl.in: changed green background color slightly, and + set background color for enum tables. + +1999-03-21 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtkdoc-mkhtml.in (gtkdocdir): use '-w no-idref' to suppress all the + warnings about references to non-existent IDs. + +1999-03-18 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtkdoc-mkdb.in (OutputParamDescriptions): use role="params" for the + table so we can adjust the stylesheet code. + (OutputSGMLFile): Don't output 'one line description goes here'. + (ExpandAbbreviations): allow '-' in #symbol abbreviations, so we can + use #GtkWidget-struct. + (MakeXRef): get rid of special '-struct' suffix, for #GtkWidget-struct. + + * gtk-doc.dsl.in: use the "role" attribute on tables to set the + BGCOLOR. + + * gtkdoc-scan.in (ScanHeader): fix for scanning functions declared + over multiple lines - was catching things which weren't functions. + +1999-03-11 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * examples/gnomeui/Makefile.am (clean-local): + * examples/gnome/Makefile.am (clean-local): added *.args + + * gtkdoc-mkdb.in: added support for Args and variables. Also a few + minor changes in the output, e.g. don't show macros > 2 lines long. + + * gtkdoc-mktmpl.in: + * gtkdoc-scanobj.in: added support for Args. + + * gtkdoc-scan.in: added support for extern'ed variables. Also + accept 'extern' before function declarations. + + * gtk-doc.dsl.in: made output prettier. Changed the navigation bars + and the colours used for the various backgrounds. + + * doc/style-guide.txt: new file containinf a style guide for writing + the GTK+ documentation. + + * doc/README: added description of style-guide.txt + + * doc/setting-up.txt: fixed a typo + + * README: added a bit about Args. + +1999-02-07 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * Makefile.am: Removed all the scripts from EXTRA_DIST, as they are + now generated from the .in files which automatically go in the dist. + +1999-02-02 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * doc/setting-up.txt (scan): removed text which incorrectly said that + changing section titles means you have to recreate the main SGML file. + +1999-02-03 Sebastian Wilhelmi <wilhelmi@ira.uka.de> + + * configure.in: find perl in $PATH, generate the perl programs + from their *.in counterparts. + + * gtkdoc-fixxref, gtkdoc-mkdb, gtkdoc-mktmpl, gtkdoc-scan, + gtkdoc-scanobj: Renamed to *.in and changed /usr/bin/perl to + @PERL@, as determined by configure. + + * .cvsignore: Added diverse config* stuff and the new generated + perl programs. + +1999-01-28 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtk-doc.dsl.in: I forgot to make the new refentry code process the + child elements, so it was only outputting anchors for each page. + + * doc/setting-up.txt (scan): added step to create MODULE.types file + for modules which contain widgets (or objects). + + * gtkdoc-mkdb (OutputStruct): allow spaces inside the public/private + markers, e.g. "/* < public > */" + +1999-01-27 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * Makefile.am: added scripts to EXTRA_DIST and copied examples, doc + and db2man dirs in dist-hook. + + * doc/sections-file.txt: added a couple of examples. + + * doc/setting-up.txt: new document describing how to set up a module + to use gtk-doc. + + * doc/README: added description of setting-up.txt + + * README: added short 'Installation' section describing the + --with-dsssl-dir option. + + * gtk-doc.dsl.in: also output links to each RefEntry page in the + index.sgml file, so libgnomeui docs can link to widgets. (The widget + hierarchy links were not working before.) + +1999-01-26 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtkdoc-scan (ScanHeader): parse function declarations that have the + return type and name on one line, and the '(' and args on the next. + NOTE: functions with the start of the declaration split over 3 lines + will not be parsed (e.g. return type on one line, function name on + next, and '(' and first argument on the third.) I hope there aren't + any. + + * gtkdoc-mkdb (OutputStruct): Use a different SGML ID for widget + structs, since the original ID is used for the entire RefEntry. + Also only show parts of widget structs which are marked with a + comment '/*<public>*/'. Use '/*<private>*/' for private fields. + + * gtkdoc-mktmpl (UpdateTemplates): We include widget structs now, + so we do want warnings if they aren't used. + + * examples/gnomeui/gnomeui-docs.sgml: + * examples/gnomeui/gnomeui-sections.txt: + * examples/gnomeui/gnomeui.types: + * examples/gnome/gnome-docs.sgml: + * examples/gnome/gnome-sections.txt: sync with latest source. + + * examples/configure.in: Add --with-gnome-libs-dir option, so it can + be configured easily. + * examples/gnomeui/Makefile.am (DOC_SOURCE_DIR): + * examples/gnome/Makefile.am (DOC_SOURCE_DIR): use the new + GNOME_LIBS_DIR. + + * gtkdoc-mkdb (MergeSourceDocumentation): accept parameters names in + the source which use the wrong case, since there are quite a few of + these in Gnome. + +1999-01-25 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * gtkdoc-mktmpl: parse G_GNUC_EXTENSION before typedef'ed types. + + * gtkdoc-mkdb: added support for specifying include files in the + MODULE-sections.txt file, to be output at the top of the synopsis. + + * doc/sections-file.txt: added description of <INCLUDE> tag. + + * examples/gnomeui/gnomeui-sections.txt: + * examples/gnome/gnome-sections.txt: added use of <INCLUDE> + + * examples/configure.in: changed 'gtk-reference' to + 'gnome-libs-reference'. + +1999-01-18 Damon Chaplin <damon@karuna.freeserve.co.uk> + + * README: updated my email address & noted that version 1.15+ of the + DocBook modular stylesheets is needed (for $table-width$). + + * AUTHORS: updated my email address. + +1998-12-20 Jeff Garzik <jgarzik@pobox.com> + + * examples/gnomeui/gnomeui-docs.sgml, + examples/gnomeui/gnomeui-sections.txt, + examples/gnomeui/gnomeui.types: + s/gtkspell/gnome-spell/g + +1998-12-16 Damon Chaplin <DAChaplin@msn.com> + + * gtkdoc-mkdb (ExpandAbbreviations): Allow -ve contants, e.g. %-1. + (ScanSourceFile): Try to handle function descriptions that start + with 'Returns'. It was assuming that they were describing the return + value before. + Gets rid of 'Description:' which is sometimes included + at the start of the function description in the source comment blocks. + Makes sure newlines are preserved in the description, as consecutive + newlines are converted to paragraph separators later. + +1998-12-15 Damon Chaplin <DAChaplin@msn.com> + * Major changes to the scripts to merge in comments within source code + * gtk-doc-fixxref added + * examples directory added with an example for setting up modules to + use gtk-doc + * documentation updated + + +1998-11-28 Damon Chaplin <DAChaplin@msn.com> + + * gtkdoc-scanobj: + * gtkdoc-scan: + * gtkdoc-mktmpl: + * gtkdoc-mkdb: Major changes to make it easy to update the docs + when the API changes. It's pretty much all automatic now. + Also added licenses and function comments, and added 'use strict'. + The Gnome widgets should now be visible in the hierarchy. + Removed a few 'mkdir's which I don't think are necessary now. + +Tue Nov 24 16:32:23 1998 Owen Taylor <otaylor@redhat.com> + + * README doc/authors.txt: Updated to describe the + new generic scripts instead of the old ones hard-coded + for GLIB and GTK+. + +Tue Nov 24 01:06:17 1998 Owen Taylor <otaylor@redhat.com> + + * .cvsignore: Added .cvsignore + +Tue Nov 24 01:03:47 1998 Owen Taylor <otaylor@redhat.com> + + * autogen.sh configure.in: Minor touchups so the newly + imported stuff autogen's correctly. + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..8865734 --- /dev/null +++ b/INSTALL @@ -0,0 +1,368 @@ +Installation Instructions +************************* + + Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software +Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command './configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the 'README' file for +instructions specific to this package. Some packages provide this +'INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The 'configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that +you can run in the future to recreate the current configuration, and a +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). + + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. Caching is disabled by +default to prevent problems with accidental use of stale cache files. + + If you need to do unusual things to compile the package, please try +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can +be considered for the next release. If you are using the cache, and at +some point 'config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You need 'configure.ac' if +you want to change it or regenerate 'configure' using a newer version of +'autoconf'. + + The simplest way to compile this package is: + + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. + + Running 'configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type 'make' to compile the package. + + 3. Optionally, type 'make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type 'make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the 'make install' phase executed with root + privileges. + + 5. Optionally, type 'make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior 'make install' required + root privileges, verifies that the installation completed + correctly. + + 6. 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. + + 7. Often, you can also type 'make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide 'make + distcheck', which can by used by developers to test that all other + targets like 'make install' and 'make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the 'configure' script does not know about. Run './configure --help' +for details on some of the pertinent environment variables. + + You can give 'configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here is +an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU 'make'. 'cd' to the +directory where you want the object files and executables to go and run +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. This is known +as a "VPATH" build. + + With a non-GNU 'make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use 'make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple '-arch' options to the +compiler but only a single '-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the 'lipo' tool if you have problems. + +Installation Names +================== + + By default, 'make install' installs the package's commands under +'/usr/local/bin', include files under '/usr/local/include', etc. You +can specify an installation prefix other than '/usr/local' by giving +'configure' the option '--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option '--exec-prefix=PREFIX' to 'configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like '--bindir=DIR' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the default +for these options is expressed in terms of '${prefix}', so that +specifying just '--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to 'configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +'make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, 'make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +'${prefix}'. Any directories that were specified during 'configure', +but not in terms of '${prefix}', must each be overridden at install time +for the entire installation to be relocated. The approach of makefile +variable overrides for each directory variable is required by the GNU +Coding Standards, and ideally causes no recompilation. However, some +platforms have known limitations with the semantics of shared libraries +that end up requiring recompilation when using this method, particularly +noticeable in packages that use GNU Libtool. + + The second method involves providing the 'DESTDIR' variable. For +example, 'make install DESTDIR=/alternate/directory' will prepend +'/alternate/directory' before all installation names. The approach of +'DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of '${prefix}' +at 'configure' time. + +Optional Features +================= + + 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'. + + 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. + + Some packages offer the ability to configure how verbose the +execution of 'make' will be. For these packages, running './configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with 'make V=1'; while running './configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with 'make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC +is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX 'make' updates targets which have the same time stamps as their +prerequisites, which makes it generally unusable when shipped generated +files such as 'configure' are involved. Use GNU 'make' instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its '<wchar.h>' header file. The option '-nodtk' can be used as a +workaround. If GNU CC is not installed, it is therefore recommended to +try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put '/usr/ucb' early in your 'PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in '/usr/bin'. So, if you need '/usr/ucb' +in your 'PATH', put it _after_ '/usr/bin'. + + On Haiku, software installed for all users goes in '/boot/common', +not '/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features 'configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, 'configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +'--build=TYPE' option. TYPE can either be a short name for the system +type, such as 'sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option '--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with '--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for 'configure' scripts to share, +you can create a site shell script called 'config.site' that gives +default values for variables like 'CC', 'cache_file', and 'prefix'. +'configure' looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to 'configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the 'configure' command line, using 'VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified 'gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an +Autoconf limitation. Until the limitation is lifted, you can use this +workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +'configure' Invocation +====================== + + 'configure' recognizes the following options to control how it +operates. + +'--help' +'-h' + Print a summary of all of the options to 'configure', and exit. + +'--help=short' +'--help=recursive' + Print a summary of the options unique to this package's + 'configure', and exit. The 'short' variant lists options used only + in the top level, while the 'recursive' variant lists options also + present in any nested packages. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' + script, and exit. + +'--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally 'config.cache'. FILE defaults to '/dev/null' to + disable caching. + +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to '/dev/null' (any error + messages will still be shown). + +'--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + 'configure' can determine that directory automatically. + +'--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: for + more details, including other options available for fine-tuning the + installation locations. + +'--no-create' +'-n' + Run the configure checks, but stop before creating any output + files. + +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 0000000..fbc8f30 --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,22 @@ +Stefan Sauer +Email: ensonic@hora-obscura.de +Userid: stefkost + +Damon Chaplin +Email: damon@gnome.org +Userid: damon + +Owen Taylor +Email: otaylor@redhat.com +Userid: otaylor + +Matthias Clasen +Email: mclasen@redhat.com +Userid: matthiasc + + +Note that several people are contributing to gtk-doc, and some parts of it +are technically maintained by other people. The people listed above are +meant as contacts for administrative questions. Other questions are best +directed to the mailing list gtk-doc-list@gnome.org. + diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..e23ed41 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,151 @@ +## Process this file with automake to produce Makefile.in +ACLOCAL_AMFLAGS=-I m4 ${ACLOCAL_FLAGS} + +SUBDIRS = cmake help tests + +bin_SCRIPTS = \ + gtkdoc-check \ + gtkdoc-depscan \ + gtkdoc-fixxref \ + gtkdoc-mkdb \ + gtkdoc-mkhtml \ + gtkdoc-mkhtml2 \ + gtkdoc-mkman \ + gtkdoc-mkpdf \ + gtkdoc-rebase \ + gtkdoc-scan \ + gtkdoc-scangobj \ + gtkdocize + +gtkdocdatadir = $(datadir)/gtk-doc/data +gtkdocdata_DATA = \ + gtk-doc.xsl \ + version-greater-or-equal.xsl \ + devhelp2.xsd \ + devhelp2.xsl \ + gtk-doc.make \ + gtk-doc.flat.make \ + style/home.png \ + style/left.png \ + style/left-insensitive.png \ + style/right.png \ + style/right-insensitive.png \ + style/up.png \ + style/up-insensitive.png \ + style/style.css + +pylibdatadir = $(datadir)/gtk-doc/python/gtkdoc +pylibdata_DATA = \ + gtkdoc/__init__.py \ + gtkdoc/check.py \ + gtkdoc/common.py \ + gtkdoc/config.py \ + gtkdoc/fixxref.py \ + gtkdoc/md_to_db.py \ + gtkdoc/mkdb.py \ + gtkdoc/mkhtml.py \ + gtkdoc/mkhtml2.py \ + gtkdoc/mkman.py \ + gtkdoc/mkpdf.py \ + gtkdoc/rebase.py \ + gtkdoc/scan.py \ + gtkdoc/scangobj.py + +pkgconfigdir = $(datadir)/pkgconfig +pkgconfig_DATA = gtk-doc.pc + +aclocaldir = $(datadir)/aclocal +aclocal_DATA = gtk-doc.m4 + +gtk-doc.flat.make: gtk-doc.make + @$(SED) -e "s/EXTRA_DIST =/EXTRA_DIST +=/" $< >$@ + +EXTRA_DIST = \ + MAINTAINERS \ + $(gtkdocdata_DATA) \ + $(pylibdata_DATA) \ + gtk-doc.pc.in \ + gtk-doc.m4 \ + gtk-doc.doap \ + gtk-doc-fo.xsl \ + doc/README \ + doc/authors.txt \ + doc/gnome.txt \ + doc/sections-file.txt \ + doc/setting-up.txt \ + doc/style-guide.txt \ + examples/README \ + examples/Makefile.am \ + tools/docpercentages.pl \ + tools/gtk-doc.el \ + COPYING-DOCS + +CLEANFILES = \ + gtk-doc.flat.make \ + gtkdoc-checkc \ + gtkdoc-depscanc \ + gtkdoc-fixxrefc \ + gtkdoc-mkdbc \ + gtkdoc-mkhtmlc \ + gtkdoc-mkhtml2c \ + gtkdoc-mkmanc \ + gtkdoc-mkpdfc \ + gtkdoc-rebasec \ + gtkdoc-scangobjc \ + gtkdoc/__init__.pyc \ + gtkdoc/check.pyc \ + gtkdoc/common.pyc \ + gtkdoc/config.pyc \ + gtkdoc/fixxref.pyc \ + gtkdoc/md_to_db.pyc \ + gtkdoc/mkdb.pyc \ + gtkdoc/mkhtml.pyc \ + gtkdoc/mkhtml2.pyc \ + gtkdoc/mkman.pyc \ + gtkdoc/mkpdf.pyc \ + gtkdoc/rebase.pyc \ + gtkdoc/scan.pyc \ + gtkdoc/scangobj.pyc + +DISTCLEANFILES = \ + gtkdoc-check \ + gtkdoc-depscan \ + gtkdoc-fixxref \ + gtkdocize \ + gtkdoc-mkdb \ + gtkdoc-mkhtml \ + gtkdoc-mkhtml2 \ + gtkdoc-mkman \ + gtkdoc-mkpdf \ + gtk-doc.pc \ + gtkdoc-rebase \ + gtkdoc-scangobj \ + gtkdoc-scan \ + gtkdoc/config.py + +MAINTAINERCLEANFILES = \ + $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ + $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \ + $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \ + INSTALL \ + RELNOTES.txt \ + ChangeLog-?.?? \ + gtk-doc-*.tar.xz \ + build-aux \ + __pycache__ gtkdoc/__pycache__ tests/__pycache__ + +-include $(top_srcdir)/git.mk + +dist-hook: + @if test -d "$(srcdir)/.git"; \ + then \ + echo Creating ChangeLog && \ + ( cd "$(top_srcdir)" && \ + echo '# Generated by Makefile. Do not edit.'; echo; \ + $(top_srcdir)/missing --run git log --stat ) > ChangeLog.tmp \ + && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ + || ( rm -f ChangeLog.tmp ; \ + echo Failed to generate ChangeLog >&2 ); \ + else \ + echo A git clone is required to generate a ChangeLog >&2; \ + fi diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..cd55d13 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,1207 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = gtk-doc.pc gtkdoc/config.py gtkdoc-check \ + gtkdoc-depscan gtkdoc-fixxref gtkdoc-mkdb gtkdoc-mkhtml \ + gtkdoc-mkhtml2 gtkdoc-mkman gtkdoc-mkpdf gtkdoc-rebase \ + gtkdoc-scan gtkdoc-scangobj gtkdocize +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(aclocaldir)" \ + "$(DESTDIR)$(gtkdocdatadir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(pylibdatadir)" +SCRIPTS = $(bin_SCRIPTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(aclocal_DATA) $(gtkdocdata_DATA) $(pkgconfig_DATA) \ + $(pylibdata_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/gtk-doc.pc.in \ + $(srcdir)/gtkdoc-check.in $(srcdir)/gtkdoc-depscan.in \ + $(srcdir)/gtkdoc-fixxref.in $(srcdir)/gtkdoc-mkdb.in \ + $(srcdir)/gtkdoc-mkhtml.in $(srcdir)/gtkdoc-mkhtml2.in \ + $(srcdir)/gtkdoc-mkman.in $(srcdir)/gtkdoc-mkpdf.in \ + $(srcdir)/gtkdoc-rebase.in $(srcdir)/gtkdoc-scan.in \ + $(srcdir)/gtkdoc-scangobj.in $(srcdir)/gtkdocize.in \ + $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing \ + $(top_srcdir)/gtkdoc/config.py.in AUTHORS COPYING ChangeLog \ + INSTALL NEWS README TODO build-aux/compile \ + build-aux/config.guess build-aux/config.sub build-aux/depcomp \ + build-aux/install-sh build-aux/ltmain.sh build-aux/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.xz +DIST_TARGETS = dist-xz +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} +SUBDIRS = cmake help tests +bin_SCRIPTS = \ + gtkdoc-check \ + gtkdoc-depscan \ + gtkdoc-fixxref \ + gtkdoc-mkdb \ + gtkdoc-mkhtml \ + gtkdoc-mkhtml2 \ + gtkdoc-mkman \ + gtkdoc-mkpdf \ + gtkdoc-rebase \ + gtkdoc-scan \ + gtkdoc-scangobj \ + gtkdocize + +gtkdocdatadir = $(datadir)/gtk-doc/data +gtkdocdata_DATA = \ + gtk-doc.xsl \ + version-greater-or-equal.xsl \ + devhelp2.xsd \ + devhelp2.xsl \ + gtk-doc.make \ + gtk-doc.flat.make \ + style/home.png \ + style/left.png \ + style/left-insensitive.png \ + style/right.png \ + style/right-insensitive.png \ + style/up.png \ + style/up-insensitive.png \ + style/style.css + +pylibdatadir = $(datadir)/gtk-doc/python/gtkdoc +pylibdata_DATA = \ + gtkdoc/__init__.py \ + gtkdoc/check.py \ + gtkdoc/common.py \ + gtkdoc/config.py \ + gtkdoc/fixxref.py \ + gtkdoc/md_to_db.py \ + gtkdoc/mkdb.py \ + gtkdoc/mkhtml.py \ + gtkdoc/mkhtml2.py \ + gtkdoc/mkman.py \ + gtkdoc/mkpdf.py \ + gtkdoc/rebase.py \ + gtkdoc/scan.py \ + gtkdoc/scangobj.py + +pkgconfigdir = $(datadir)/pkgconfig +pkgconfig_DATA = gtk-doc.pc +aclocaldir = $(datadir)/aclocal +aclocal_DATA = gtk-doc.m4 +EXTRA_DIST = \ + MAINTAINERS \ + $(gtkdocdata_DATA) \ + $(pylibdata_DATA) \ + gtk-doc.pc.in \ + gtk-doc.m4 \ + gtk-doc.doap \ + gtk-doc-fo.xsl \ + doc/README \ + doc/authors.txt \ + doc/gnome.txt \ + doc/sections-file.txt \ + doc/setting-up.txt \ + doc/style-guide.txt \ + examples/README \ + examples/Makefile.am \ + tools/docpercentages.pl \ + tools/gtk-doc.el \ + COPYING-DOCS + +CLEANFILES = \ + gtk-doc.flat.make \ + gtkdoc-checkc \ + gtkdoc-depscanc \ + gtkdoc-fixxrefc \ + gtkdoc-mkdbc \ + gtkdoc-mkhtmlc \ + gtkdoc-mkhtml2c \ + gtkdoc-mkmanc \ + gtkdoc-mkpdfc \ + gtkdoc-rebasec \ + gtkdoc-scangobjc \ + gtkdoc/__init__.pyc \ + gtkdoc/check.pyc \ + gtkdoc/common.pyc \ + gtkdoc/config.pyc \ + gtkdoc/fixxref.pyc \ + gtkdoc/md_to_db.pyc \ + gtkdoc/mkdb.pyc \ + gtkdoc/mkhtml.pyc \ + gtkdoc/mkhtml2.pyc \ + gtkdoc/mkman.pyc \ + gtkdoc/mkpdf.pyc \ + gtkdoc/rebase.pyc \ + gtkdoc/scan.pyc \ + gtkdoc/scangobj.pyc + +DISTCLEANFILES = \ + gtkdoc-check \ + gtkdoc-depscan \ + gtkdoc-fixxref \ + gtkdocize \ + gtkdoc-mkdb \ + gtkdoc-mkhtml \ + gtkdoc-mkhtml2 \ + gtkdoc-mkman \ + gtkdoc-mkpdf \ + gtk-doc.pc \ + gtkdoc-rebase \ + gtkdoc-scangobj \ + gtkdoc-scan \ + gtkdoc/config.py + +MAINTAINERCLEANFILES = \ + $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ + $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \ + $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \ + INSTALL \ + RELNOTES.txt \ + ChangeLog-?.?? \ + gtk-doc-*.tar.xz \ + build-aux \ + __pycache__ gtkdoc/__pycache__ tests/__pycache__ + +all: all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): +gtk-doc.pc: $(top_builddir)/config.status $(srcdir)/gtk-doc.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc/config.py: $(top_builddir)/config.status $(top_srcdir)/gtkdoc/config.py.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-check: $(top_builddir)/config.status $(srcdir)/gtkdoc-check.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-depscan: $(top_builddir)/config.status $(srcdir)/gtkdoc-depscan.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-fixxref: $(top_builddir)/config.status $(srcdir)/gtkdoc-fixxref.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-mkdb: $(top_builddir)/config.status $(srcdir)/gtkdoc-mkdb.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-mkhtml: $(top_builddir)/config.status $(srcdir)/gtkdoc-mkhtml.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-mkhtml2: $(top_builddir)/config.status $(srcdir)/gtkdoc-mkhtml2.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-mkman: $(top_builddir)/config.status $(srcdir)/gtkdoc-mkman.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-mkpdf: $(top_builddir)/config.status $(srcdir)/gtkdoc-mkpdf.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-rebase: $(top_builddir)/config.status $(srcdir)/gtkdoc-rebase.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-scan: $(top_builddir)/config.status $(srcdir)/gtkdoc-scan.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdoc-scangobj: $(top_builddir)/config.status $(srcdir)/gtkdoc-scangobj.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +gtkdocize: $(top_builddir)/config.status $(srcdir)/gtkdocize.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) + +installcheck-binSCRIPTS: $(bin_SCRIPTS) + bad=0; pid=$$$$; list="$(bin_SCRIPTS)"; for p in $$list; do \ + case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \ + *" $$p "* | *" $(srcdir)/$$p "*) continue;; \ + esac; \ + f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \ + for opt in --help --version; do \ + if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \ + 2>c$${pid}_.err </dev/null \ + && test -n "`cat c$${pid}_.out`" \ + && test -z "`cat c$${pid}_.err`"; then :; \ + else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \ + done; \ + done; rm -f c$${pid}_.???; exit $$bad + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-aclocalDATA: $(aclocal_DATA) + @$(NORMAL_INSTALL) + @list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(aclocaldir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(aclocaldir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(aclocaldir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(aclocaldir)" || exit $$?; \ + done + +uninstall-aclocalDATA: + @$(NORMAL_UNINSTALL) + @list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(aclocaldir)'; $(am__uninstall_files_from_dir) +install-gtkdocdataDATA: $(gtkdocdata_DATA) + @$(NORMAL_INSTALL) + @list='$(gtkdocdata_DATA)'; test -n "$(gtkdocdatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(gtkdocdatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(gtkdocdatadir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gtkdocdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(gtkdocdatadir)" || exit $$?; \ + done + +uninstall-gtkdocdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(gtkdocdata_DATA)'; test -n "$(gtkdocdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(gtkdocdatadir)'; $(am__uninstall_files_from_dir) +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) +install-pylibdataDATA: $(pylibdata_DATA) + @$(NORMAL_INSTALL) + @list='$(pylibdata_DATA)'; test -n "$(pylibdatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pylibdatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pylibdatadir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pylibdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pylibdatadir)" || exit $$?; \ + done + +uninstall-pylibdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(pylibdata_DATA)'; test -n "$(pylibdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pylibdatadir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + @case `sed 15q $(srcdir)/NEWS` in \ + *"$(VERSION)"*) : ;; \ + *) \ + echo "NEWS not updated; not releasing" 1>&2; \ + exit 1;; \ + esac + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(SCRIPTS) $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(aclocaldir)" "$(DESTDIR)$(gtkdocdatadir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pylibdatadir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-aclocalDATA install-gtkdocdataDATA \ + install-pkgconfigDATA install-pylibdataDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-binSCRIPTS + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: installcheck-binSCRIPTS + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-aclocalDATA uninstall-binSCRIPTS \ + uninstall-gtkdocdataDATA uninstall-pkgconfigDATA \ + uninstall-pylibdataDATA + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-libtool distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-aclocalDATA install-am \ + install-binSCRIPTS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am \ + install-gtkdocdataDATA install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-pylibdataDATA install-strip installcheck \ + installcheck-am installcheck-binSCRIPTS installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-aclocalDATA \ + uninstall-am uninstall-binSCRIPTS uninstall-gtkdocdataDATA \ + uninstall-pkgconfigDATA uninstall-pylibdataDATA + +.PRECIOUS: Makefile + + +gtk-doc.flat.make: gtk-doc.make + @$(SED) -e "s/EXTRA_DIST =/EXTRA_DIST +=/" $< >$@ + +-include $(top_srcdir)/git.mk + +dist-hook: + @if test -d "$(srcdir)/.git"; \ + then \ + echo Creating ChangeLog && \ + ( cd "$(top_srcdir)" && \ + echo '# Generated by Makefile. Do not edit.'; echo; \ + $(top_srcdir)/missing --run git log --stat ) > ChangeLog.tmp \ + && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ + || ( rm -f ChangeLog.tmp ; \ + echo Failed to generate ChangeLog >&2 ); \ + else \ + echo A git clone is required to generate a ChangeLog >&2; \ + fi + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..d8fc4f9 --- /dev/null +++ b/NEWS @@ -0,0 +1,977 @@ +GTK-Doc 1.28 (Mar 24 2018) +============== + +Bug fixes. + + Changes + + o 791928 : gtk-doc doesn't understand 'stability: Obsolete' + o 792148 : cmake: Installed GtkDocConfig.cmake has incorrect bindir path + o 792661 : use pygments to do syntax highlighing + o 793599 : Please run testsuite with V=0 + o 794051 : rebase: fix on-line location extraction from devhelp files + o 794182 : private_header regex is broken + + Contributors + + Anders Jonsson + Arnaud Rebillout + Behdad Esfahbod + Bruce Mitchener + Daniel Mustieles + Marek Černocký + Rafael Fontenelle + Stefan Sauer + Tim-Philipp Müller + Tim Sabsch + + +GTK-Doc 1.27 (Dec 07 2017) +============== + +Finetune the python port. + + Changes + + o 773879 : scangobj: Do not generate unused parameters + o 786174 : Several test failures on Arch Linux + o 787495 : gtkdoc-fixxref crashes when running vim for syntax highlighting + o 787768 : Aborts when glib2.0-dev is not installed + o 787862 : Always open files in text mode and always use utf-8 + o 788473 : fixxref crashes if a .devhelp2.gz file is found + o 789531 : Don't depend on the system shell + o 790022 : mkdb: Add support for (not optional) annotation + o 791131 : gtk-doc and python3: fixxref failures + + Contributors + + Alban Browaeys + Anders Jonsson + Christian Kirbach + Christoph Reiter + Daniel Mustieles + gkrithi8 + Jan Alexander Steffens (heftig) + Marek Cernocky + Michael Catanzaro + Pavel Grunt + Philip Withnall + Rafael Fontenelle + Simon McVittie + Stefan Sauer + Will Thompson + +GTK-Doc 1.26 (Aug 11 2017) +============ + +Remove tmpl support (gtkdoc-mktmpl). Port all tools from bash/perl to python. + + Changes + + o 773879 : scangobj: Do not generate unused parameters + o 780789 : Convert gtkdoc-scan from Perl to Python + o 752126 : Add support for inline program documentation + o 753052 : _() causes element a: validity error : ID idx already defined + o 758137 : GtkLabel and GtkShortcutsShortcut notes on escaping character entities don't render properly + o 764407 : Broken links to structs in function definitions + o 764543 : /usr/bin/gtkdoc-mkpdf always exits with an error + o 768675 : make check fails on master + o 769125 : gtkdoc-mkhtml/pdf fails on spaces in search path + o 769341 : gtkdoc-mkdb line 3966 triggers "Negative repeat count does nothing" warnings + o 771255 : "Symbol name not found at the start of comment block" warning with "attributes" annotation. + o 773151 : configure: Lower perl dependency to 5.16.0 + o 774168 : gobject introspection annotations and gtk-doc parser do not agree + o 774812 : Error messages from xsltproc are hidden by gtkdoc-mkhtml + o 778144 : Allow disabling introspection for ancillary property mechanisms + o 779566 : Replace shell executables with Python + + Contributors + + Anders Jonsson + Bernhard M. Wiedemann + Carlos Garcia Campos + Christian Kirbach + Daniel Mustieles + Emmanuele Bassi + Ernestas Kulik + HorimotoYasuhiro + Jussi Pakkanen + Kalev Lember + Marek Černocký + Mario Blättermann + Marius Vlad + Marvin Schmidt + Nirbheek Chauhan + Philip Withnall + Rafael Fontenelle + Sam Thursfield + Sebastian Rasmussen + Simon Josefsson + Stefan Sauer + Thomas Wood + Ting-Wei Lan + Tom Tryfonidis + Víctor Manuel Jáquez Leal + +GTK-Doc 1.25 (Mar 21 2016) +============== + + Changes + + o 763465 : –   released version of gtk-doc no longer understands cross-reference data in gtk+ + o 742404 : unify index.sgml and *.devhelp2 + change gtkdoc-fixxref to use *.devhelp2 + o 743182 : Automatically support PACKAGE variables as XML entities + o 744061 : Skip standard g_iface, parent_instance and parent_class struct members + o 751479 : help: Document the Stability tag for documentation comments + o 751777 : gtk-doc -sections.txt file documentation is a bit confusing + o 751783 : Creating master xml document documentation is a bit lacking + o 751906 : help: Fix incorrect example syntax for embedded images + o 752795 : documentation is not rebuilt when only content of doc comments change + o 753145 : gtkdoc-mkhtml fails on spaces in file names + o 753348 : gtkdocize does not handle -flat flavours + o 756297 : Add CMake module + o 756368 : gtkdocize mistakenly parses options from comments in configure.ac + o 756519 : `make check' fails - Sequence (?R...) not recognized in regex + o 756684 : Support (not nullable) annotation + o 756998 : Support |[ < !-- language= " plain " -- > ]| + o 758996 : gtkdoc-mkdb: ensure macros appear in the correct section + o 759017 : autogenerated ids in return and parameter blocks + + Contributors + + Christian Kirbach + Daniel Mustieles + Dimitris Spingos + Florian Brosch + Igor Gnatenko + Matthias Clasen + Philip Withnall + Quentin Glidic + Rafael Fontenelle + Sam Thursfield + Stefan Sauer + Thomas Wood + Tom Tryfonidis + Xavier Claessens + +GTK-Doc 1.24 (May 29 2015) +============ + + This is another quick bugfix release for a regression, see bug #749591 + + Changes + + o 749591 : gtk-doc 1.23 no longer includes xml namespace in .devhelp2 files + o 749706 : .gitignore files should not be under version control + o 749816 : Support syntax highlighting of different languages (patch included) + o 749901 : Strip common indent when highlighting with vim + + Contributors + + Daniel Mustieles + Dexter Chua + Michael Catanzaro + Peter De Wachter + Stefan Sauer + +GTK-Doc 1.23 (May 17 2015) +============ + + This is a quick bugfix release for a regression, see bug #749142. + + Changes + + o 749142 : Can't build totem-pl-parser from master using gtk-doc 1.22 + o 749210 : mkman: Use full URL to refer to the docbook manpages stylesheet + + Contributors + + Emanuele Aina + Stefan Sauer + +GTK-Doc 1.22 (May 07 2015) +============ + + Important notice - starting with the next release these long deprecated + features will be removed - you'll now see a warning if you actually use these + features. Please write to gtk-doc-list@gnome.org and tell us your concerns: + o gtkdoc-mktmpl - please move all the comments into the sources. + o generating html via sgml tools (jade/openjade), using xsltproc and + docbook-xslt is pretty common and preferred since version 1.6 + + Changes + + o 727778 : –   gtk-doc doesn't understand annotations for GList-contained types + o 729911 : Using #TypeName inshort_description makes " - " in HTML index disappear + o 732689 : strange result on a generated html page + o 734689 : " Specific - > General " document title format + o 736073 : Regression: problems with enum constants + o 736725 : Documentation consists mostly of empty space + o 741305 : Scanner issue with enum containing value ='{' + o 741763 : Example Makefile.am improvements + o 741941 : Last function argument missing in docs (possibly due to macro in code) + o 743879 : special case G_DECLARE_*_TYPE + o 743967 : Make build results reproducible + o 744075 : Missing struct members if forward declared in another header + o 744368 : gtkdoc-depscan doesn't handle unicode in .devhelp2 files correctly + o 746118 : gtkdoc-scan: fix regex for get_type() functions + o 746120 : Expand annotation recognition on symbol lines + o 746121 : gtkdoc-mkdb: don't warn on 'deprecated entities' + o 747207 : Typos in documentation + o 747298 : Test still tries to check gtkdoc-scanobj + o 748456 : xsl: Enable ToC generation on empty < toc/ > elements + + Contributors + + Anders Jonsson + Andre Klapper + Daniel Mustieles + David King + Dominique Leuenberger + Efstathios Iosifidis + Emanuele Aina + Fran Diéguez + Maria Mavridou + Marvin Schmidt + Olav Vitters + Philip Withnall + Rafael Ferreira + Ryan Lortie + Stefan Sauer + Tom Tryfonidis + Xavier Claessens + +GTK-Doc 1.21 (Jul 17 2014) +============ + + Important notice - starting with the next release these long deprecated + features will be removed, please write to gtk-doc-list@gnome.org and tell us + your concerns: + o gtkdoc-mktmpl - please move all the comments into the sources. + o generating html via sgml tools (jade/openjade), using xsltproc and + docbook-xslt is pretty common and preferred since version 1.6 + + Changes + + o 170860 : gtk-doc should have definitions for stability + o 644111 : one cannot specify against which libs gtkdoc-fixxref should resolve links (problematic with multiple versions) + o 657444 : " enum foo { ... } " ; not recognized + o 671519 : Self-test relies on nonportable (GNU enhanced) 'date' command + o 678094 : the word " returns " in a function description can be parsed as the " Returns: " section + o 722621 : gtk-doc tarball was created with 32bit uid/gid, unusable with mingw/msys tar + o 724739 : Self-test fail: gtkdoc-mkdb misusing perl datatype + o 725505 : new syntax highlighting for code is weird + o 725663 : configure: non POSIX test usage + o 730658 : Deprecation warning for non-deprecated type GParamFlags + o 730777 : Add support for nullable and optional annotations + + Contributors + + Christophe Fergeau + Damon Chaplin + Daniel Macks + Daniel Mustieles + Emmanuele Bassi + maria thukididu + Naohiro Aota + Philip Withnall + Rafael Ferreira + Stefan Sauer + Thomas Wood + William Jon McCann + +GTK-Doc 1.20 (Feb 16 2014) +============ + + Important notice - starting with the next release these long deprecated + features will be removed, please write to gtk-doc-list@gnome.org and tell us + your concerns: + o gtkdoc-scanobj (only used for gtkobject) + o return values need to be documented using "Returns:". We will remove the + heuristic that turns a paragraph starting with "Returns " into return docs. + o gtkdoc-mktmpl - please move all the comments into the sources. + o generating html via sgml tools (jade/openjade), using xsltproc and + docbook-xslt is pretty common and preferred since version 1.6 + + Changes + + o 605537 : Returns: listed among parameters + o 624001 : Support attribute-based method to deprecate symbols + o 662424 : Class hierarchy about interfaces not generated by default + o 665926 : should not have to document object structures + o 666509 : Specifying --enable-gtk-doc should not be required to build source packages + o 669417 : Duplicate IDs generated for unions registered as boxed types + o 671519 : Self-test relies on nonportable (GNU enhanced) 'date' command + o 692367 : gtkdocize should take a srcdir argument + o 696570 : style updates + o 697940 : Race condition between setup-build.stamp and scan-build.stamp + o 701259 : /bin/bash: -chmod: command not found + o 701638 : Support automake parallel test harness (fix error with GTKDOC_CHECK) + o 706404 : Minor bug in gtkdoc-mkdb + o 706438 : Empty lines added at the beginning and at the end of a programlisting + o 707426 : master is broken in picking up flavour from configure.ac + o 707717 : Support " Deprecated: X.Y " + o 708268 : New *-insensitive.png files are not distributes + o 710478 : gtkdoc-mkdb: Don't complain about annotations with hyphen + o 711111 : gtkdoc-mkdb: sort entries in the glossary + o 711598 : gtkdoc-scan doesn't ignore decorators containing parentheses + o 719644 : docs: make yelp usage conditional in manual + o 719645 : configure: emit message when looking for yelp + o 720061 : make: create subdirectories of the content_files to the builddir + o 721228 : configure: search for xml catalog in XDG_DATA_DIRS + o 722479 : cp -u is not portable + o 723118 : Mark |[ blocks as CDATA + o 723288 : Fix MarkDown support + o 723417 : New MarkDown parser + o 723696 : Add support for blockquote + o 723812 : Add support for reference links + o 723913 : List in markdown: < p > inside the last element of a < ul > list + o 723991 : Improve the display of the synopsis + o 724002 : gtkdoc-scan: Fix use of uninitialised value in trace logging + + Contributors + + Alban Browaeys + Alexander Kanavin + Carlos Garcia Campos + Christian Kirbach + Daniel Mustieles + David King + David Nečas + Dieter Verfaillie + Dimitris Spingos + Hib Eris + Matthias Clasen + Philip Chimento + Philip Withnall + Rafael Ferreira + Rico Tzschichholz + Ryan Lortie + Sebastian Rasmussen + Sébastien Wilmet + Stefan Sauer + Stef Walter + William Jon McCann + Zbigniew Jędrzejewski-Szmek + +GTK-Doc 1.19 (Jun 05 2013) +============ + + Changes + + o 652740 : Warnings during expansion of content files + o 660436 : Warning for skip annotations on function parameters + o 661853 : allow EXTRA_DIST to be predefined + o 668228 : several of the tests use syntax not compatible with traditional Bourne shells + o 670724 : gtk-doc.make: double recursion when maintainer-clean + o 670767 : generated file gnome-doc-utils.m4 is in version control + o 670796 : (patch) Show commands when building documentation with make + o 671519 : Self-test relies on nonportable (GNU enhanced) 'date' command + o 671960 : make dist fails without html/* + o 672710 : Use new documentation infrastructure + o 676685 : Allow to order functions without using $MODULE-sections.txt + o 685365 : (PATCH) Fix contents of warning message, should be " -sections.txt " not " -section.txt " + o 686148 : [patch] suggested parameters for gtkdoc-scangobj + o 687685 : 'g_type_init' is deprecated + o 688204 : undocumented enum values missing in indexes + o 688423 : Add support for " transfer floating " introspection annotation + o 689209 : Automake complains about trailing space after backslash. + o 690438 : Small improvements + o 696930 : Incorrect allowed value for a property + o 700981 : make: copy the files with their relative path included + + Contributors + + Alban Browaeys + Aleksander Morgado + Alexandre Franke + Bruno Brouard + Colin Walters + Daiki Ueno + Daniel Mustieles + David King + David Nečas + Dieter Verfaillie + Dimitris Spingos + dmustieles + Henrik Stokseth + Hib Eris + Javier Jardón + Jens Georg + Jiro Matsuzawa + Krzesimir Nowak + Mario Blättermann + Martin Pitt + Matthias Clasen + Murray Cumming + Piotr Drąg + Ryan Lortie + Sébastien Wilmet + Simon Josefsson + Stefan Sauer + Stef Walter + Takao Fujiwara + Tim Mooney + Tom Tryfonidis + 黄世海 + + +GTK-Doc 1.18 (Sep 14 2011) +============ + + o gtk-doc supports a subset of markdown (headings and lists) - see + http://git.gnome.org/browse/gtk-doc/tree/tests/gobject/src/gobject.c + o gtk-doc does not generate old devhelp files any more. This cuts down doc + generation time and works for devhelp >=0.11 (was released in 2005). + o changes for out-of-source dir build caused breakage for projects using + DOC_SOURCE_DIR with a relative path (to builddir). It is recommended to use + DOC_SOURCE_DIR=$(top_srcdir)/src/xxx. + + Changes + + o 590927 : Support AM_SILENT_RULES for doc-build steps + o 617121 : /* < private > */ declarations in enums are still displayed + o 627758 : A way to ignore a symbol + o 639145 : shorthand syntax for headings + o 644291 : Enum parser breaks on assignment of ')' + o 646870 : HTML_IMAGES no longer in EXTRA_DIST + o 648289 : gtkdoc-mkdb doesn't compile. + o 648331 : Specify compatible options for 'highlight' consistently. + o 649269 : gtkdoc-scanobj should set some of its own CFLAGS/LDFLAGS + o 650407 : Buildings docs while distchecking produces thousands of “No declaration found” warnings, then fails. + o 652746 : Documentation of plain boxed structs broken + o 652764 : Update autotools config a bit + o 655711 : summarize depscan output by package + o 656453 : Performance improvements (PATCH) + o 656658 : gtk-doc.make: install target doesn't install docs when building in a separate directory + o 656773 : gtk-doc fails to find a symbol declared as 'char* const' + o 656946 : gtk-doc unable to handle 'extern short int' + o 657377 : srcdir!=builddir builds discard contents of tmpl + + Contributors + + Bakaoukas Nikolaos + Claude Paroz + Daniel Mustieles + David Necas + David Nečas + Javier Jardón + Jorge González + Mario Blättermann + Matthias Clasen + Michał Górny + Shaun McCance + Stefan Sauer (Kost) + Will Thompson + Yaakov Selkowitz + + +GTK-Doc 1.17 (Feb 16 2011) +============ + + Changes + + o 127049 : building reference documentation fails when builddir != srcdir + o 640241 : non-srcdir builds busted + + Contributors + + Daniel Mustieles + Javier Jardón + Stefan Kost + +GTK-Doc 1.16 (Jan 14 2011) +============ + + o gtkdoc-check can do more checks, one might need to update Makefile.am from + the examples/Makefile.am + + Changes + + o 625776 : serialise doubles and floats always with a decimal dot + o 627269 : link to signalflags docs from signal descriptions + o 467488 : GTK+ man pages request + o 481811 : Inline function bodies are confused with declarations + o 501107 : EXTRA_DIST automake warnings + o 512565 : add GTK_DOC_IGNORE + o 518427 : documentation best pratices needed + o 597937 : Function pointers as parameters to other functions are parsed improperly + o 612028 : gtkdoc-fixxref should call /usr/bin/vim -n -e -u NONE -T xterm + o 617478 : Tooltip is a nuisance + o 618379 : Navigation is hiding anchors title + o 620249 : invalid xml for object_index with (n_objects % 3) == 0 + o 621931 : support GType and GVariant types + o 622971 : List of typos in the GTK-doc manual + o 623777 : G_TYPE_STRV in signals generate wrong docs + o 623968 : gtkdoc-mkdb generates invalid xml from sgml in inline comments + o 624199 : parser picks up contents of large macros + o 624200 : 'const' confuses the parser + o 627223 : gtkdoc-fixxref vim highlight fails on xhtml suffix + o 627920 : `make check` rule to list xml files missing from DOC_MAIN_SGML_FILE + o 628611 : gtk-doc > = 1.13 creates automagic dependencies on syntax highlighters + o 628794 : Issue in gtkdoc-mkman.in + o 630288 : Fix 'scope notified' annotation + o 631336 : remove lists of gtk+ signal args in gtkdoc-scanobj and -scangobj + o 632587 : gtkdoc-scanner fails to identify (closure) annotation + o 638330 : const in parameter list is ignored + o 638831 : Support GTK+ 3 cell properties + + Contributors + + Bruno Brouard + Christian Persch + Claude Paroz + Gilles Dartiguelongue + Javier Jardón + Jorge González + Maarten Bosmans + Mario Blättermann + Matej Urbančič + Matthias Clasen + Pablo Castellano + P. F. Chimento + Philip Withnall + Rodrigo Aliste + Simón Pena + Stefan Kost + Tim-Philipp Müller + Vasilis Tsivikis + +GTK-Doc 1.15 (May 21 2010) +============ + + Changes + + o 614496 : Support for multiple DOC_SOURCE_DIR directories + o 615550 : gtk-doc fails to recognize (scope ...) and (skip) annotations + + Contributors + + Andreas Rottmann + Jorge González + Nicola Fontana + Nikos Bakaoukas + Stefan Kost + +GTK-Doc 1.14 (Mar 28 2010) +============ + + Changes + + o 593282 : Append " _struct " prefix to every struct name + o 599514 : sane support for per-page images + o 604892 : checks fail + o 613611 : parameter descriptions with annotations truncated at first \n + o 115531 : add short description to index entries + o 165425 : gtk-doc fails to parse unions + o 512155 : gets confused by multiline typedef + o 568711 : undocumented enum values are not reported + o 590602 : secondly running gtkdoc-mkdb will generate DOCTYPE missing XML files + o 590625 : $(DOC_MODULE)-overrides.txt is required by " make dist " + o 591975 : Section_Id always embeds a trailing newline + o 604885 : Fix the use of gtkdocize --flavour option + o 604992 : gtkdoc-fixxref broken link warning is broken for functions + o 604995 : Syntax error in gtkdoc-mkman + o 604998 : Check for syntax errors in the test suite + o 605052 : put class structs to the generated section file + o 605211 : Many build failures with gtk-doc 1.13 + o 605281 : Add " Since " and " Deprecated " tag to function example + o 605285 : Add < keycap > and < keycombo > example + o 605289 : Some documentation improvements + o 605452 : Added more info to " Documenting symbols " sectio + o 605564 : Env var equivalent to --flavour=no-tmpl + o 606661 : XInclude error while gnerating documentation + o 607445 : gtk-doc does not support long double as returned value type + o 607531 : Execute system() calls in subshells to ease debugging + o 609062 : [All-langs] [gtk-doc] Translated *.po files not available within ~/po directory + o 609194 : sort interface implementers + o 610255 : Self-test failure in git as of 2010-02-17: FAIL: gobject.sh + o 610257 : Patch to make GTK-DOC notice functions/variables with 'signed' prototypes + o 611848 : gtk-doc produces invalid DocBook markup if the SECTION ends with a tag that cannot be nested inside < para > + + Contributors + + Bruno Brouard + David Nečas + Emilio Pozuelo Monfort + Francisco Javier F. Serrador + Javier Jardón + Jorge González + Loïc Minier + Mario Blättermann + Marios Zindilis + Nicola Fontana + Philip Chimento + Runa Bhattacharjee + Ryan Lortie + Simon Josefsson + Simon McVittie + Stefan Kost + Sweta Kothari + Vincent Untz + Felix Iyadurai + krishnababu k + +GTK-Doc 1.13 (Dec 18 2009) +============ + + o 604891 : gtk-doc tarball does not build + + Contributors + + Stefan Kost + +GTK-Doc 1.12 (Dec 18 2009) +============ + + Changes + + o 591450 : Build related fixes + o 466535 : generate documentation as pdf + o 502191 : acronym support + o 532395 : inline function parsing problems (e.g. in glib api docs) + o 536928 : have syntax highlghted and xrefs source code samples + o 562064 : index generation trouble + o 562310 : glib 2.18.3: /bin/sh: line 1: gtkdoc-rebase: command not found + o 562655 : doesn't produce deprecation note for signals + o 565126 : linking to struct members + o 565835 : Three spelling errors in gtk-doc-manual + o 566911 : add support for --help and --version to remaining tools + o 567132 : Take FOO_GET_INTERFACE as standard + o 568702 : gtkdoc-mkhtml no longer works when symlinked + o 568706 : gtkdoc-scan: use CamelCase id for interfaces + o 568708 : gtkdoc-scan should try not to scan files twice + o 568714 : Perl errors when syntax highlighting is not available + o 568732 : missing long descriptions undetected + o 568734 : configure check for gtk-doc prints that gtk-doc cannot be built + o 569339 : abbreviation are not expanded at the start of text + o 572396 : Fix to use shave + gtk-doc + libtool 1.x + o 572612 : Mistakenly substitute -1 with G_MAXULONG in x86_64 + o 572967 : use g_strerror + o 574654 : --ignore-decorators does not ignore trailing stuff + o 575574 : Be more friendly for files with a space in their name + o 575623 : Update FSF address + o 575711 : < table > element mismatch in highlighted code + o 576313 : implicit declarations in testsuite ? + o 577059 : Gnome-doc support can't be disabled + o 577774 : Test suite run even when built with --disable-gtk-doc + o 580206 : gcc warnings in < module > -scan.c + o 580300 : gtkdoc-scan picks up _get_type functions it should not + o 580622 : xml dir is both part of distclean and dist rules + o 581237 : gtk-doc uses wrong gtkdoc-check in " make check " phase + o 584952 : " uninitialized value in concatenation " gtkdoc-mkdb line 938 + o 587103 : return values of function-like macros + o 587196 : Typo in a string + o 589426 : Python is a required dependency + o 591789 : master FTBFS with automake 1.11 + o 594224 : Please fix manual about inlined SECTION comments (and show warnings when invalid) + o 596730 : Signed vs. unsigned comparison in gtkdoc-scangobj.in causing compile errors + o 596731 : autogen.sh doesn't recognize automake-1.11 + o 602026 : Warn if non-existing function gets referenced + o 602518 : Doesn't support " long int " return type + o 604798 : tests/fail.sh and tests/tools.sh.in use bashisms + + Contributors + + Claude Paroz + Dan Williams + Daniel Mustieles + Daniel Nylander + H. Habighorst + Jannis Pohlmann + Javier Jardón + Jennie Petoumenou + Jorge González + Mario Blättermann + Nicola Fontana + Philip Chimento + Philip Withnall + Simos Xenitellis + Stefan Kost + Sven Herzberg + + +GTK-Doc 1.11 (Nov 16 2008) +============ + + Changes + + o 531572 : one-page generation option + o 448879 : Use a footer when generating HTML documentation + o 311857 : xsltproc very slow generating index for gtk-docs.sgml + o 335239 : Using gnome-doc-utils for gtk-doc documentation + o 460753 : enable vpath build in gtkdoc-mkhtml + o 473342 : Warn about repeated symbols in sections + o 487727 : DocBook XML DTD version + o 523669 : make check: Element publisher content does not follow the... + o 530758 : gtk-doc should not expand XML tags and their attributes + o 533262 : no-template mode scans different source files + o 534627 : gtk-doc uses non-standard HTML element + o 542137 : No declaration found for: gsf_output_* + o 543855 : Fix for Bug 460753 (enable vpath build in gtkdoc-mkhtml) ... + o 544172 : Fails to parse return value of 'char const *' + o 552822 : Add rules to create $(REPORT_FILES) + o 553407 : Example Makefile.am uses obsolete INCLUDES instead of AM_... + o 554718 : gtk-doc needs to allow versioned TARGET_DIR + o 554833 : Be more careful with " struct _ < struct_name > " + o 558082 : evince docs build fails with GTK_DISABLE_SINGLE_INCLUDES + o 559281 : Correct check for existance of gtkdoc-rebase + + Contributors + + Behdad Esfahbod + Christian Persch + David Nečas + Felix Riemann + Jeffrey Stedfast + Marc-Andre Lureau + Matthew Barnes + Peter Kjellerstedt + Sebastian Dröge + Simon Josefsson + Stefan Kost + + +GTK-Doc 1.10 (Mar 20 2008) +============ + + Changes + + o 460753 : enable vpath build in gtkdoc-mkhtml + o 503119 : Add dependency on content_files to SGML target + o 127049 : building reference documentation fails when builddir != s... + o 481811 : Inline function bodies are confused with declarations + o 448879 : Use a footer when generating HTML documentation + o 492005 : Deprecation guard warnings for properties and signals + o 498521 : Inconsistent compiler flags passed in gtk-doc.make + o 365913 : gtk-doc output is not predictable + o 446648 : gtk-doc does not handle forward typedef'd enums + o 468278 : Display proper types for properties + o 497367 : don't use US-ASCII for output encoding + o 501066 : Missing quotes around gtkdoc-rebase check cause a warning + o 508897 : [PATCH] Fix build when gtk-doc is not installed + o 509539 : Building documentation aborts when no .types file is present + o 512154 : Struct member type attributes are limited to one token + o 513318 : gtk-doc.el doesn't work fine with emacs22 + + Contributors + + Benjamin Otte + Carlos Garnacho + Damon Chaplin + David Nečas + Frederic Peters + Joe Marcus Clarke + Kouhei Sutou + Loïc Minier + Mathias Hasselmann + Petteri Räty + Rouslan Solomakhin + Stefan Kost + Sven Herzberg + Yeti + + +GTK-Doc 1.9 (Sep 30 2007) +=========== + + Changes + + o 419308 : unsynced regexps for parameter parsing + o 449618 : Top navigation bar is in the way + o 453717 : fixxref logic to determine absolute path's is flawed + o 457173 : unit tests for gtk-doc + o 465920 : Use gtkdoc-rebase + o 467773 : default master doc should have proper extension + o 141869 : Poor error generated when faced with a type declared as '... + o 156643 : Avoid make error in gtk-doc.make + o 322035 : wrong macro parsing + o 323938 : gtk-doc.m4 check is silent + o 324535 : gtk-doc doesn't handle deprecation inside enumerations + o 355352 : If you don't have an instantiatable type for a gtypeinter... + o 379466 : Improve C parser to handle TYPE\nVARIABLE in function pro... + o 380824 : docs are truncated if line begins with '* returns ' + o 383456 : ' make check ' test for 100% documentation + o 411739 : Gtk-doc fails to handle ' struct tm * function_name (); ' + o 415388 : Please clean -undocumented.txt files + o 418027 : gtkdoc-mkdb does not handle #ifdef in enum {} + o 419997 : parameter name trouble + o 428596 : Warnings with gtk-doc.m4 macros + o 434134 : fixxrefs like sed for installing pregenerated docs + o 436565 : Report undeclared symbols into a file + o 445596 : Impossible to link a page with an anchor + o 445693 : Does not understand ' unsigned long ' as a type + o 450338 : Make gtk-doc.m4 fail when needed gtk-doc is not installed + o 454916 : gtk-doc should permit generation of URI-based cross-refer... + o 457077 : add --no-implicit-returns to gtkdoc-mkdb + o 459225 : Accept automake-1.10 in autogen.sh + o 459725 : ' jhbuild build gtk-doc ' fails on make + o 460127 : parsing nested union/structs confuses public/private state + o 465365 : [PATCH] gtk-doc does not compile + o 466559 : [CSS] styling <hr />; + o 471014 : G_CONST_RETURN * G_CONST_RETURN * function not picked up + o 477532 : function variables + o 479913 : gtk-doc.notmpl.make is not distributed + o 479923 : distclean test output properly + + Contributors + + Benjamin Otte + Damon Chaplin + David Nečas + Frederic Peters + Loic Minier + Petteri Räty + Rouslan Solomakhin + Stefan Kost + Sven Herzberg + Yeti + + +GTK-Doc 1.8 (Feb 16 2007) +=========== + + o Made it easier to include example code in the source code comment blocks. + "|[ ... ]|" can be used to delineate example code (it just gets converted + to "<informalexample><programlisting>"), and most of the text in example + code is left as it is. The only thing that is still expanded is + '#' to allow links to a symbol's documentation, e.g. '#GtkWidget'. + o Made the field widths wider for the HTML output, so it looks a bit nicer. + o Added a '--rebuild-sections' option to gtkdoc-scan to automatically rebuild + the MODULE-sections.txt file. This only works if all the header files are + organized neatly and functions don't need rearranging in the docs. + o Added a '--rebuild-types' option to gtkdoc-scan to automatically rebuild + the MODULE.types file, so you don't need to add new types manually. + o Leave CDATA sections as they are, in the extra XML content files and within + source code comment blocks. + o Allow the section id and #include's to be set within the "SECTION:" comment + block, using "@Section_ID:xxx" and "@Include:". + o Added "--default-includes" option to specify the default #include's (for + people who are using --rebuild-sections and so can't specify it in + MODULE-sections.txt). + o Added a '--query-child-properties' argument to help document child + properties of arbitrary GObjects (used by things like canvas widgets). + o Fixed documentation of signals of interfaces. + + +GTK-Doc 1.7 (Jul 29 2006) +=========== + + o Fixed bug that resulted in empty "@:" lines in the templates. + o Fixed a few bugs with the XSL code. + o Supported a few more variations of C syntax. + o Remove the internally-used '-struct' suffix from links to widget structs. + o Fixed a few missing build dependencies. + o Added a new "C-x4s" binding to the emacs lisp code, to insert a blank + section header in the source code. + o Fixed bug that ignored inline section header docs with '-' in their names. + o Added a 'make docs' target that can be used to build the docs even when + gtk-doc has been disabled at configure time. + + +GTK-Doc 1.6 (Apr 9 2006) +=========== + + o Removed the hard dependancy on openjade or jade, since XML is used mainly + now rather than SGML. + o Install the .pc file in $(datadir) rather than $(libdir) since gtk-doc is + architecture-independant. + o Added "--ignore-decorators" option to ignore a list of declarators in + function declarations. + o Support '#Object::signal'/'#Object:property' to link to signals/properties + o Fixed missing index terms. + + +GTK-Doc 1.5 (Mar 7 2006) +=========== + + o Output the new version of devhelp2 information, but still generate the old + devhelp files so older versions of DevHelp still work OK. + o Fixed the initial creation of the *-sections.txt file so the object + hierarchy, signals and properties all work automatically. + o Show information about signal flags (run first/last). + o Support a --source-suffixes argument specifying which source files to scan. + o Support other root object types besides GObject and GInterface. + o Use a fixed navigation bar for the generated documentation. + o New documentation from Stefan Kost. + o Handle more variations of C syntax. + + +GTK-Doc 1.4 (Jul 3 2005) +=========== + + o Support section documentation (title, short description, long description + and 'see also') within the source code. I think everything can now be + documented within the source code. + o Support Stable/Unstable/Private stability levels for everything. + + +GTK-Doc 1.3 (Jan 9 2005) +=========== + + o Use the new style.css stylesheet instead of hard-wiring the styles. + o Updated the documentation and example build files. + o Added support for a gallery of widget images. + o Output default values for widget properties and allowed ranges. + o Only underline links in the docs when the mouse hovers over them. + o Added support for placing the parameter table anywhere within the function + documentation (using the "<!--PARAMETERS-->" marker). + o Handle more variations of C syntax. + + +GTK-Doc 1.2 (Feb 16 2004) +=========== + + o Added widget signals and properties to undocumented output and statistics. + o Added support for an index of all symbols. + o Emit "Since:" information for signals and properties. + o Added derived subclasses and interfaces to the widget hierarchies. + o Added .cat SGML catalog file. + o Support properties on interfaces. + o Added "--help" options to the scripts. + + +GTK-Doc 1.1 (Apr 18 2003) +=========== + + o Add a gtk-doc.m4 macro that allows packages to provide consistent + checking for gtk-doc. + o Check to make sure that the XML catalog actually contains entries + for the DocBook XML DTD and XSLT stylesheets. Please consult the + README file if your system's XML catalog isn't set up. + o Add infrastructure for including the standard gtk-doc makefile + glue, so that maintainers of packages don't need to worry about + keeping it up to date. See glib head for an example of its use. + o Some updates to the devhelp contents file generation, as suggested + by Hallski. + o Fix some bugs in the DocBook XML codepath that were preventing + inter-module cross references from being resolved. + o Fix some bugs in extraction of object property documentation. + + +GTK-Doc 1.0 (Jan 20 2003) +=========== + + o Added support for "Since:" and "Deprecated:" tags, and look for deprecated + guard macros in header files. + o Support /*< public >*/ and /*< private >*/ markers for all structs. + o New "--ignore-files" option for gtkdoc-mkdb, to ignore files or directories. + o Used the "sgml-raw" output type with openjade, to avoid problems with Lynx. + o Added .pc pkg-config file which can be used to check the gtk-doc version. + + +GTK-Doc 0.10 (Nov 14 2002) +============ + + o --output-format option to select whether SGML or XML is generated. + o Use openjade or jade when converting SGML to HTML. + o Use xsltproc to convert XML to HTML, with a new look. + o In XML mode, support XIncludes as an alternative to entities. + o In XML mode, create .devhelp files. + o List interfaces in the object hierarchy. + o Create docs for signals on interfaces. + o Generate links between interface and their implementations and + prerequisites. + o Create docs for child and style properties. + o Use blurbs for property documentation. + o Allow inline documentation for signals and properties. diff --git a/README b/README new file mode 100644 index 0000000..6c89237 --- /dev/null +++ b/README @@ -0,0 +1,49 @@ + +GTK+ DocBook Documentation Generator +==================================== + +GTK-Doc is used to document C code. It is typically used to document the public +API of libraries, such as the GTK+ and GNOME libraries, but it can also be +used to document application code. + +Note that GTK-Doc wasn't originally intended to be a general-purpose +documentation tool, so it can be a bit awkward to setup and use. +For a more polished general-purpose documentation tool you may want to look +at Doxygen (http://www.doxygen.org/). However GTK-Doc has some special code +to document the signals and properties of GTK+ widgets and GObject classes +which other tools may not have. + +From your source code comments GTK-Doc generates a Docbook XML document, which +is then transformed into HTML and/or PDF. +The generated HTML documentation can be browsed in an ordinary web browser or +by using the special Devhelp API browser +(see http://developer.imendio.com/wiki/Devhelp). + +Please use DoxBook XML instead of DocBook SGML - support for the later will be +dropped. + +Requirements +============ + +Python 2.7, 3.x - the secondary scripts are written in Python + http:///www.python.org + +Python-six - for python 2,3 compatibility + +For XML output (recommended): + +The DocBook XML DTD. + http://www.oasis-open.org/docbook/ + +The DocBook XSL Stylesheets. + http://docbook.sourceforge.net/projects/xsl/ + +libxslt & libxml2 >= 2.3.6. + http://xmlsoft.org/ + + +Most distributions now have packages for all of these, so I would strongly +advise that you grab those. + +See the documentation in the help/manual directory for more information. You can +read it e.g. with yelp file://$PWD/help/manual/C/gtk-doc-manual.xml diff --git a/TODO b/TODO new file mode 100644 index 0000000..9fe99fd --- /dev/null +++ b/TODO @@ -0,0 +1,473 @@ + +The TODO list for the gtk-doc project is at Bugzilla, +the bugtracking system of the GNOME project. + +Visit + http://bugzilla.gnome.org/buglist.cgi?product=gtk-doc&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED +to see what is allready requested, or where you can help. :-) + +To put an other request on the TODO list, visit + http://bugzilla.gnome.org/enter_bug.cgi?product=gtk-doc + +Also have a look at + http://live.gnome.org/DocumentationProject/GtkDocFuture +and join discussion about future features. + + +Developers can also add items here :) + += Less files to manually edit = +The goal is that we configure gtk-doc in configure.ac and Makefile.am and +document the code in the sources. Right no we also have to edit a bunch of extra +files: + * $(DOC_MODULE).types + * $(DOC_MODULE)-docs.xml + * $(DOC_MODULE)-sections.txt + +== .types == + +* using SCAN_OPTION="--rebuild-types" can be used to avoid maintaining the types + file +* we need to check if this works well for all kind of _types (e.g. boxed) + https://bugzilla.gnome.org/show_bug.cgi?id=605025 + +== -section.txt == +https://bugzilla.gnome.org/show_bug.cgi?id=646094 + +* using SCAN_OPTION="--rebuild-sections" can be used to use the audogenerated + sections file +* when scanning a header file, everything of the header and the respective .c + file will be put to one section +* symbols can be hidden using __GTK_DOC_IGNORE__ + +* we need comment markup to override the section + e.g.: " * InSection: xxxx" + this needs gtkdoc-mkdb::ScanSourceFile to understand a new tag, which + otherwise would appear as verbatim in the sources +* if one has "@InSection: xxxx" in a section comment we could patch the + main.xml file and insert then xi:include line (would possibly rely on a + special comment-pair there, we might also need to rewrite these + auto-generated xi:includes everytime as the placements could have been + changed, or we have a xi:inlcude for each chapter, that we regenerate). +* we need a way to specify subsections (Standart, Private) + this could be done in the SECTION comment + e.g.: "@HideSymbols: <list-of-symbols-to-hide> + * we could allow to have a SUBSECTION:xxx comment block too + but then we list all the symbols here to override the auto-section placement +* if we want to avoid the "InSection in symbol docs we could also have + e.g.: "@ExtraSymbols: <list-of-symbols-to-include> +* documented symbols that are in a file without section comment and do not + appear in "@ExtraSymbols", "@HideSymbols" would go to unused.txt + * shall we deprecated the unused sub-sections? +* can we have both at the same time (for migration) + * yes, read section-file first and add/override from inline comments + + += More abbreviations = +* expand urls (needds more work, see gtkdoc-mkdb : ExpandAbbreviations) + + += Running = +gtk-doc is using a makefile with several targets to get from sources to docs. It +uses makefile variables for configuration. +It might be easier to have a gtkdoc tool that can run the other gtkdoc tools +in the right order (ev. by importing them as modules). This could handle a few +things nicer that the makefiles don't do well. This would also make it easy to +run it manually or integrate into other build systems. + + += Intermediate files = +Can we change the intermediate files into e.g. json or yaml so that we can just +load it from python? + +Can we drop the decl-list.txt file (or rename to make sure this is what a +generated section.txt would look like) + + += Issues = +* gtkdoc-fixxref makefile targets use $HTML_DIR + * HTML_DIR: The directory where gtk-doc generated documentation is installed + it comes from gtk-doc.m4 (--with-html-dir) but has no default + * automake exports $htmldir which is by default: + ${prefix}/share/doc/${PACKAGE_TARNAME} + * the Makefile uses $(DESTDIR)$(TARGET_DIR) + where TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) + http://www.gnu.org/software/libtool/manual/automake/DESTDIR.html +* gtkdoc does not know about module versions + * this is causing troubles when multiple library versions are installed + (gtk+-{2,3}, gstreamer-{0.8,0.10,1.0} + * right now gtk-doc is xreffing against any <module>/*.devhelp2 found + * just using the one with a higher number won't work + + += Extensibility = +We'd like to extend gtk-doc to understand conventions/features of gobject libs. +Ideally libs register their extension hooks, so that other libs that use these +libs can benefit from the extensions too. + +== custom get_types collector == +- the default method takes the types from a type file +- gstreamer plugin docs take a list of types from the gst plugin registry + +== custom properties == +- gtk has style and child properties + +== extra gobject property flags == +- gstreamer has 'controllable' properties + += Output = +* http://sagehill.net/docbookxsl/index.html +* multipage-html + * would be good to be able to have page titles as a concatenation of document + name and page name (gtk+:GtkWIdget) +* formats + http://bugzilla.gnome.org/show_bug.cgi?id=531572 : html-single + http://bugzilla.gnome.org/show_bug.cgi?id=466535 : pdf + http://bugzilla.gnome.org/show_bug.cgi?id=467488 : man + we need more configure options in gtk-doc.m4: + --(enable|disable)-gtk-doc-(html|pdf|man|html-single|rtf) + - html : enabled by default + - html-single : is single page html +* validation + xmllint --noout --xinclude --postvalid tester-docs.xml + xmllint --noout --postvalid tester-docs.fo --dtdvalid file://$HOME/download/fo.dtd + - fo.dtd : http://www.renderx.com/Tests/validator/fo.zip +* single page + xsltproc --nonet --xinclude -o gtk-docs.html /home/ensonic/projects/gtk-doc/gtk-doc-single.xsl gtk-docs.sgml + * need to check if we can pass the style-sheet class as a parameter (--stringparam gtkdoc.stylesheet=(chunk|docbook)) + * we might also need to reflow some things, as gtk-doc.xsl also runs the devhelp/devhelp2 generation + - but then the urls in the devhelp file, refer to the chunked html anyway + + += Warnings = +Bugzilla has some requests for extra warnings. We should support a common +commandline option(s) in all tools to enable/disable the warnings. The makefiles +should pass the flags from an env-var (GTKDOC_OPTIONS). The env-var should be +used after the regular flags, so that the env-var can override hardcoded +settings (in Makefile.am). + +Lets take this warning for the example: + "Symbol name not found at the start of the comment block." + +Version 1: (template "warn-xxx!, warn-yyy!") +--warn-missing-symbol-at-comment-start +--no-warn-missing-symbol-at-comment-start + +Version 2: (template "warn:s@") +-Wmissing-symbol-at-comment-start +-Wno-missing-symbol-at-comment-start +-warn missing-symbol-at-comment-start +-warn no-missing-symbol-at-comment-start + +more warnings: + - 'deprecated' deprecating 'features' + - 'dummy-docs' check if symbol docs are very short and repeat mainly words + from the symbol. + - possible xrefs (e.g. adding a # or () would make it a successful xref) + + += GIR = +== scanning == +* ideas + * use gir files + 1) replace gtkdoc-scan/gtkdoc-scangobject by gtkdoc-gir and output the classical files or + patch gtkdoc-scan/gtkdoc-scangobject to output gir files + 2) patch gtkdoc-mkdb to read stuff from gir instead of classical files + * if gir-files would have the comments too (they are getting this now): + * we could even drop scanning the sources + * IDEs could use the gir-files to show doc-tooltips for symbols + * we might need yet another makefile flavour to use gir files +* perl and xml + * http://www.xml.com/pub/a/2001/04/18/perlxmlqstart1.html + +== binding docs == +* simmillar workflow to gettext +* add gtkdoc-mk??? to generate binding doc templates + * have c-comments there as comments + * when updating templates, mark sections that have changed as fuzzy +* add options to gtkdoc-mkdb to build docbook from those templates +* questions + * could we use the tmpl file mechanism? + * directory structure? + * we need to list the languages like ALL_LINGUAS for translations + * we need to create subdirs for binding docs, ideally we use one for 'C' as well +* devhelp + * devhelp files need a language attribute in the book-tag + language={C,C++,JavaScript,Perl,Python,...} + * devhelp could show a selector for the language + * need to get existing python/~mm docs to use it, gtk-doc could output + language=C for own docs + +=== installation === +* need to install each book with a prefix +* would be good to have a language attribute in book tag to allow filter by language +* look at /usr/share/gtk-doc/html/pygobject/index.html + + += external processors = +We need parametric, user definable macros. +|[ ... ]| - programlistings +|macro(arg1,arg2,...)[ ... ]| - call macro + - pass args as parameters (on the commandline) + - pass some gtk-doc vars in environment + (gtk-doc version, module, srcdir, buildir) + - content of [] on stdin or as a file + - get output on stdout or file + - and replace the macro with it +The changes could be made in gtkdoc-mkdb::ExpandAbbreviations() +== example macros == +|highlight(c)[...]| - highlight source code for a specific language (c) + - what will this output? preformatted html to be xincluded? + - we could have macros for each format, the docbook xml macro would leave + enough traces in the html so that a html macro can continue +|dot(svg)[...]| - format dot graph and include result as mediaobject (in svg format) +|ditta(svg)[...]| - parse ascii art and include result as mediaobject (in svg format) + - we need to generate a filename for the image or use anoter parameter + +== where to define macros == +* system wide and with the package, <prefix>/share/gtk-doc/macros, $(srcdir) +* prefix for custom macros? +* we could require stdin for input and stdout for output, the wrapper for the + actual tool can ensure the convention + + += styling = +=== process html === +if we highlight to html we get colors, we need to check what tags we should process though: +<pre class="programlisting"> is used for all code boxes. +<div class="informalexample"><pre class="programlisting"> is used for examples. +problems: +* in html we don't know the language anymore + * add another div +* with source-highlight, constants and types are not markedup. + for types we might need to build an own lang file dynamically and include + /usr/share/source-highlight/c.lang +=== |[ ... ]| does not allow setting the language === +* check for vi/emacs/jedit modelines + jedit: http://www.jedit.org/users-guide/buffer-local.html + vim: http://vim.wikia.com/wiki/Modeline_magic + emacs: http://www.delorie.com/gnu/docs/emacs/emacs_486.html +* allow <!-- language="C" --> comments after |[ +* we need to catch those when processing the docbook and expanding the |[ +* require new macro syntax + +== show inherited api == +could we write small html files for each object for methods, signals and properties and then use iframes to combine those at runtime like in javadoc? +could we do that using javascript and some other magic? + + += Markup = +== tags == +* to document the api-life cycle we have: since, deprecated and stability: +* other things we might want to specify: + * multi-threading safety: mt-safe, use-with-lock <lock> + +== protected scope == +* we can have /* < protected > */ in classes +* we can have <SUBSECTION Protected> in -section.txt +* ideally we have Scope: {Public, Protected, Private} supported in doc comments +* there is a bug for gir, https://bugzilla.gnome.org/show_bug.cgi?id=594125 + +== wildcards in symbol names == +Sometimes one defines a set of function and macros with very similar purpose, e.g. +READ_INT8, READ_INT16, READ_INT32. It would be great to allow documenting a symbol +READ_INT* instead of 3 docs which are copy'n'pasted anyway. In the output we will have +all matching declarations in one source listing. Multiple wildcards are okay. + + += documentation best practises #518427 = +* we'd like offer a more complete skelleton + * structure + * docbook markup (part/chapter structure) +* structure + Suggested structure for api-docs. + Idea is to have more content that api reference. It would be good to have a + gnome-platform document in devhelp, so that we could xref that instead of + explaining 100 times how to use pkg-config. + + * examples + * gobject in devhelp + * concepts / api / tools / tutorial / related tools + * gtk in devhelp + * overview / api / migation / tools + * qt reference docs in qt assistant + * classes / overview / tutorial&examples + * recommendation + * front-page + * table with details (http://www.docbook.org/tdg/en/html/bookinfo.html) + (problem: what enclosing tag) + Logo, Module Version + Copyright and Legalnotice + Links + * homepage, mailing lists, irc channel + * repository, source releases, bugtracker + * TOC + * introduction - what is is about + * concepts - explain basic ideas and terminology + * development - how to build and run, env-vars, different platforms + * api - classic api docs + * tutorial & examples - integrated to keep it up-to-date and cross referenced + * migration - how to for api changes, deprecations + * (releated) tools - tools part of the package or recommended for development + * indexes - api-index, depretations, new api since xxx + +proposed structure in docbook xml: +<book> + <bookinfo> + </bookinfo> + <preface><title>Introduction + ... + + xxx Overview + + ... + + xxx Core Reference + + ... + + xxx Object Reference + Object Hierarchy + + + ... + + ... + + +some things to check: +* gtk,glib: can we make a for the glosary and index's (according to docbook, yes) + should we use ? its like a chapter. +* gobject: uses a for introductions +* gobject: uses as a parent for the xi:includeed docs + + += extra link for symbols = +need options for configure: +--enable-gtk-doc-codesearch-links +--enable-gtk-doc-liveedit-links +== viewvc,cgit,... == +- link to some online service for the code +- problem: most don't have local anchors for the symbols +- where to set the uri (in the document, like for online url)? +- what about a template URL containing a %s for the "path/file" or a special macro + http://svn.gnome.org/viewvc/gtk-doc/trunk/tests/gobject/src/gobject.c?view=markup + http://buzztard.svn.sourceforge.net/viewvc/buzztard/trunk/buzztard/src/lib/core/core.c?view=markup + - unfortunately we can't link to symbols (only lines) + - linking to files is difficult as in gtkdoc we have modules + +== codesearch == +- google (code) link : http://www.google.com/codesearch?q=g_object_unref +== live editing == +The idea is to have an 'edit' link in an online version of the docs (build from +head development version) per doc-entry (symbols and section). +The link goes to a cgi and that gets following parameters: docmodule,symbol. +E.g. http://library.gnome.org/devel/references/edit?docmodule=glib&symbol=g_new +The cgi would need a hashmap to get from docmodule to the way to check it out +(ideally it has a recent checkout and only updates it). +problems: +- signal that this has been edited already? +- support for xi:included examples +- updating the checkout could be slow + + += fix missing since docs = +cd gstreamer/gstreamer/docs/gst +gtkdoc-mkdb --module=gstreamer --source-dir=../../gst --outputsymbolswithoutsince +cd gstreamer/gstreamer/src +git bisect start +git bisect good +git bisect bad RELEASE-0_10_0 +git bisect run script.sh + +script: +#!/bin/sh +make ctags +grep "gst_caps_is_always_compatible" tags + + += performance = +- timestamp each step + make check >make.log +- try CFLAGS=-O0 for compiling the scanner, no need to optimize it + CFLAGS="-O0" make check >make.log + safes max 0.5 sec. +- xslt + http://docbook2x.sourceforge.net/latest/doc/performance.html + - play with xsltproc --profile --verbose --timing + cd tests/gobject/docs/html + time /usr/bin/xsltproc 2>xslt.log --profile --verbose --timing --path /home/ensonic/projects/gnome/gtk-doc/gtk-doc/tests/gobject/docs --nonet --xinclude --stringparam gtkdoc.bookname tester --stringparam gtkdoc.version 1.14 /home/ensonic/projects/gnome/gtk-doc/gtk-doc/gtk-doc.xsl ../tester-docs.xml + - l10n.language is slow + bug: https://sourceforge.net/tracker/index.php?func=detail&aid=2918673&group_id=21935&atid=373750 + see: http://www.mail-archive.com/docbook-apps@lists.oasis-open.org/msg05412.html + - overide l10n.language + glib/gobject + real user sys + 2m15.221s 1m58.740s 0m1.456s + > + 1m55.480s 1m44.296s 0m2.125s + - override many template related to gentext + real user sys + 0m43.327s 0m38.594s 0m4.724s + > + real user sys + 0m33.282s 0m29.266s 0m4.012s + - removing the gentext calls for nav-bar alt tags does not help + + + - try plain docbook xslt to see if maybe we have bad xslt templates in the + customisation layer (gtk-doc.xsl) + + - we could do the xinlcude processing once and use it for both html and pdf + time /usr/bin/xsltproc 2>../xslt4.log --path /home/ensonic/projects/gnome/gtk-doc/gtk-doc/tests/gobject/docs --nonet --xinclude --stringparam gtkdoc.bookname tester --stringparam gtkdoc.version 1.14 /home/ensonic/projects/gnome/gtk-doc/gtk-doc/gtk-doc.xsl ../tester-docs.xml + real user sys + 0m4.846s 0m4.434s 0m0.147s + 0m4.842s 0m4.386s 0m0.145s + + + time xmllint --nonet --xinclude ../tester-docs.xml >./tester-docs-all.xml + real user sys + 0m0.596s 0m0.546s 0m0.023s + + time /usr/bin/xsltproc 2>../xslt5.log --path /home/ensonic/projects/gnome/gtk-doc/gtk-doc/tests/gobject/docs --nonet --stringparam gtkdoc.bookname tester --stringparam gtkdoc.version 1.14 /home/ensonic/projects/gnome/gtk-doc/gtk-doc/gtk-doc.xsl ./tester-docs-all.xml + real user sys + 0m4.167s 0m3.834s 0m0.106s + 0m4.248s 0m3.851s 0m0.114s + + + time xmllint --nonet --c14n --xinclude ../tester-docs.xml >./tester-docs-all2.xml + + real user sys + 0m0.700s 0m0.636s 0m0.034s + + time /usr/bin/xsltproc 2>../xslt6.log --path /home/ensonic/projects/gnome/gtk-doc/gtk-doc/tests/gobject/docs --nonet --stringparam gtkdoc.bookname tester --stringparam gtkdoc.version 1.14 /home/ensonic/projects/gnome/gtk-doc/gtk-doc/gtk-doc.xsl ./tester-docs-all2.xml + + real user sys + 0m3.344s 0m3.026s 0m0.109s + 0m3.372s 0m3.037s 0m0.115s + + + l ../tester-docs.xml ./tester-docs-all*.xml + + - we could also try to compact the installed xslt + xmllint --nonet --c14n --xinclude gtk-doc.xsl | sed -ne '//! { N; b c; }; /-->/s///g }; /^ *$/!p;' | sed '/^$/d' >gtk-doc.pre.xsl + - unfortunately there is no way to ask xsltproc to pre-transform an xslt, that could + - strip comments + - process xsl:import and xsl:include + - compile xslt + http://sourceforge.net/projects/xsltc/ + http://www.xmlhack.com/read.php?item=618 + - extra xsltproc options: + --novalid: saves ~ 0.12 sec + + += python = +- consider swithcing to this markdown parser + https://pythonhosted.org/Markdown/index.html +- switch intermediate files to json/yaml + - we need to pick something, that we can easilly output from plain c (produced by gtkdoc-scangobj) + - decl-list.txt and .types would need to stay + - maybe maintain one file per sourcefile (in a subdir) to eventually be able to + do incremental builds +- refactor Read{Args,Declarations,Signals}File to output into a single dictionary each: + Signal{Names,Objects,Returns,...}[key] -> Signals[key].{names,objects,returns,...} diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..8af088d --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1921 @@ +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29) +dnl +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +AC_DEFUN([YELP_HELP_INIT], +[ +AC_REQUIRE([AC_PROG_LN_S]) +m4_pattern_allow([AM_V_at]) +m4_pattern_allow([AM_V_GEN]) +m4_pattern_allow([AM_DEFAULT_VERBOSITY]) + +YELP_LC_MEDIA_LINKS=true +YELP_LC_DIST=true + +for yelpopt in [$1]; do + case $yelpopt in + lc-media-links) YELP_LC_MEDIA_LINKS=true ;; + no-lc-media-links) YELP_LC_MEDIA_LINKS= ;; + lc-dist) YELP_LC_DIST=true ;; + no-lc-dist) YELP_LC_DIST= ;; + *) AC_MSG_ERROR([Unrecognized [YELP_HELP_INIT] option $yelpopt"]) ;; + esac +done; +AC_SUBST([YELP_LC_MEDIA_LINKS]) +AC_SUBST([YELP_LC_DIST]) + +AC_ARG_WITH([help-dir], + AS_HELP_STRING([--with-help-dir=DIR], + [path where help files are installed]),, + [with_help_dir='${datadir}/help']) +HELP_DIR="$with_help_dir" +AC_SUBST(HELP_DIR) + +AC_ARG_VAR([ITSTOOL], [Path to the `itstool` command]) +AC_CHECK_PROG([ITSTOOL], [itstool], [itstool]) +if test x"$ITSTOOL" = x; then + AC_MSG_ERROR([itstool not found]) +fi + +AC_ARG_VAR([XMLLINT], [Path to the `xmllint` command]) +AC_CHECK_PROG([XMLLINT], [xmllint], [xmllint]) +if test x"$XMLLINT" = x; then + AC_MSG_ERROR([xmllint not found]) +fi + +YELP_HELP_RULES=' +HELP_ID ?= +HELP_POT ?= +HELP_FILES ?= +HELP_EXTRA ?= +HELP_MEDIA ?= +HELP_LINGUAS ?= + +_HELP_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),$(filter $(LINGUAS),$(HELP_LINGUAS)),$(HELP_LINGUAS)) +_HELP_POTFILE = $(if $(HELP_POT),$(HELP_POT),$(if $(HELP_ID),$(HELP_ID).pot)) +_HELP_POFILES = $(if $(HELP_ID),$(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).po)) +_HELP_MOFILES = $(patsubst %.po,%.mo,$(_HELP_POFILES)) +_HELP_C_FILES = $(foreach f,$(HELP_FILES),C/$(f)) +_HELP_C_EXTRA = $(foreach f,$(HELP_EXTRA),C/$(f)) +_HELP_C_MEDIA = $(foreach f,$(HELP_MEDIA),C/$(f)) +_HELP_LC_FILES = $(foreach lc,$(_HELP_LINGUAS),$(foreach f,$(HELP_FILES),$(lc)/$(f))) +_HELP_LC_STAMPS = $(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).stamp) + +_HELP_DEFAULT_V = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) +_HELP_V = $(if $(V),$(V),$(_HELP_DEFAULT_V)) +_HELP_LC_VERBOSE = $(_HELP_LC_VERBOSE_$(_HELP_V)) +_HELP_LC_VERBOSE_ = $(_HELP_LC_VERBOSE_$(_HELP_DEFAULT_V)) +_HELP_LC_VERBOSE_0 = @echo " GEN "$(dir [$]@); + +all: $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(_HELP_LC_FILES) $(_HELP_POFILES) + +.PHONY: pot +pot: $(_HELP_POTFILE) +$(_HELP_POTFILE): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) + $(AM_V_GEN)if test -d "C"; then d=; else d="$(srcdir)/"; fi; \ + $(ITSTOOL) -o "[$]@" $(foreach f,$(_HELP_C_FILES),"$${d}$(f)") + +.PHONY: repo +repo: $(_HELP_POTFILE) + $(AM_V_at)for po in $(_HELP_POFILES); do \ + if test "x[$](_HELP_V)" = "x0"; then echo " GEN $${po}"; fi; \ + msgmerge -q -o "$${po}" "$${po}" "$(_HELP_POTFILE)"; \ + done + +$(_HELP_POFILES): + $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi + $(AM_V_at)if test ! -f "[$]@" -a -f "$(srcdir)/[$]@"; then cp "$(srcdir)/[$]@" "[$]@"; fi + $(AM_V_GEN)if ! test -f "[$]@"; then \ + (cd "$(dir [$]@)" && \ + $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \ + mv "$(notdir [$]@).tmp" "$(notdir [$]@)"); \ + else \ + (cd "$(dir [$]@)" && \ + $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \ + msgmerge -o "$(notdir [$]@)" "$(notdir [$]@)" "$(notdir [$]@).tmp" && \ + rm "$(notdir [$]@).tmp"); \ + fi + +$(_HELP_MOFILES): %.mo: %.po + $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi + $(AM_V_GEN)msgfmt -o "[$]@" "$<" + +$(_HELP_LC_FILES): $(_HELP_LINGUAS) +$(_HELP_LINGUAS): $(_HELP_LC_STAMPS) +$(_HELP_LC_STAMPS): %.stamp: %.mo +$(_HELP_LC_STAMPS): $(_HELP_C_FILES) $(_HELP_C_EXTRA) + $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi + $(_HELP_LC_VERBOSE)if test -d "C"; then d="../"; else d="$(abs_srcdir)/"; fi; \ + mo="$(dir [$]@)$(patsubst %/$(notdir [$]@),%,[$]@).mo"; \ + if test -f "$${mo}"; then mo="../$${mo}"; else mo="$(abs_srcdir)/$${mo}"; fi; \ + (cd "$(dir [$]@)" && $(ITSTOOL) -m "$${mo}" $(foreach f,$(_HELP_C_FILES),$${d}/$(f))) && \ + touch "[$]@" + +.PHONY: clean-help +mostlyclean-am: $(if $(HELP_ID),clean-help) +clean-help: + rm -f $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES) + +EXTRA_DIST ?= +EXTRA_DIST += $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) +EXTRA_DIST += $(if $(YELP_LC_DIST),$(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).stamp)) +EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).po) +EXTRA_DIST += $(foreach f,$(HELP_MEDIA),$(foreach lc,$(HELP_LINGUAS),$(wildcard $(lc)/$(f)))) + +distdir: distdir-help-files +distdir-help-files: $(_HELP_LC_FILES) + @for lc in C $(if $(YELP_LC_DIST),$(HELP_LINGUAS)) ; do \ + $(MKDIR_P) "$(distdir)/$$lc"; \ + for file in $(HELP_FILES); do \ + if test -f "$$lc/$$file"; then d=./; else d=$(srcdir)/; fi; \ + cp -p "$$d$$lc/$$file" "$(distdir)/$$lc/" || exit 1; \ + done; \ + done; \ + +.PHONY: check-help +check: check-help +check-help: + for lc in C $(_HELP_LINGUAS); do \ + if test -d "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + for page in $(HELP_FILES); do \ + echo "$(XMLLINT) --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \ + $(XMLLINT) --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \ + done; \ + done + + +.PHONY: install-help +install-data-am: $(if $(HELP_ID),install-help) +install-help: $(_HELP_LC_FILES) + @for lc in C $(_HELP_LINGUAS); do \ + $(mkinstalldirs) "$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)" || exit 1; \ + done + @for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ + if test -f "$$lc/$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ + echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir`basename $$f`"; \ + $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir`basename $$f`" || exit 1; \ + done; done + @for f in $(_HELP_C_EXTRA); do \ + lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ + if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ + echo "$(INSTALL_DATA) $$d$$f $$helpdir`basename $$f`"; \ + $(INSTALL_DATA) "$$d$$f" "$$helpdir`basename $$f`" || exit 1; \ + done + @for f in $(HELP_MEDIA); do \ + for lc in C $(_HELP_LINGUAS); do \ + if test -f "$$lc$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + mdir=`dirname "$$f"`; \ + if test "x$mdir" = "x."; then mdir=""; fi; \ + if ! test -d "$$helpdir$$mdir"; then $(mkinstalldirs) "$$helpdir$$mdir"; fi; \ + if test -f "$$d$$lc/$$f"; then \ + echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir$$f"; \ + $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir$$f" || exit 1; \ + elif test "x$$lc" != "xC"; then \ + if test "x$(YELP_LC_MEDIA_LINKS)" != "x"; then \ + echo "$(LN_S) -f $(HELP_DIR)/C/$(HELP_ID)/$$f $$helpdir$$f"; \ + $(LN_S) -f "$(HELP_DIR)/C/$(HELP_ID)/$$f" "$$helpdir$$f" || exit 1; \ + fi; \ + fi; \ + done; \ + done + +.PHONY: uninstall-help +uninstall-am: $(if $(HELP_ID),uninstall-help) +uninstall-help: + for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir`basename $$f`"; \ + rm -f "$$helpdir`basename $$f`"; \ + done; done + @for f in $(_HELP_C_EXTRA); do \ + lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir`basename $$f`"; \ + rm -f "$$helpdir`basename $$f`"; \ + done + @for f in $(HELP_MEDIA); do \ + for lc in C $(_HELP_LINGUAS); do \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir$$f"; \ + rm -f "$$helpdir$$f"; \ + done; \ + done; +' +AC_SUBST([YELP_HELP_RULES]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([YELP_HELP_RULES])]) +]) + +# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.15' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.15.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.15.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; 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"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +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 +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# --------------------------------------------------------------------------- +# Adds support for distributing Python modules and packages. To +# install modules, copy them to $(pythondir), using the python_PYTHON +# automake variable. To install a package with the same name as the +# automake package, install to $(pkgpythondir), or use the +# pkgpython_PYTHON automake variable. +# +# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as +# locations to install python extension modules (shared libraries). +# Another macro is required to find the appropriate flags to compile +# extension modules. +# +# If your package is configured with a different prefix to python, +# users will have to add the install directory to the PYTHONPATH +# environment variable, or create a .pth file (see the python +# documentation for details). +# +# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will +# cause an error if the version of python installed on the system +# doesn't meet the requirement. MINIMUM-VERSION should consist of +# numbers and dots only. +AC_DEFUN([AM_PATH_PYTHON], + [ + dnl Find a Python interpreter. Python versions prior to 2.0 are not + dnl supported. (2.0 was released on October 16, 2000). + dnl FIXME: Remove the need to hard-code Python versions here. + m4_define_default([_AM_PYTHON_INTERPRETER_LIST], +[python python2 python3 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2.7 dnl + python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0]) + + AC_ARG_VAR([PYTHON], [the Python interpreter]) + + m4_if([$1],[],[ + dnl No version check is needed. + # Find any Python interpreter. + if test -z "$PYTHON"; then + AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) + fi + am_display_PYTHON=python + ], [ + dnl A version check is needed. + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + AC_MSG_CHECKING([whether $PYTHON version is >= $1]) + AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([Python interpreter is too old])]) + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + AC_CACHE_CHECK([for a Python interpreter with version >= $1], + [am_cv_pathless_PYTHON],[ + for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do + test "$am_cv_pathless_PYTHON" = none && break + AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) + done]) + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + ]) + + if test "$PYTHON" = :; then + dnl Run any user-specified action, or abort. + m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) + else + + dnl Query Python for its version number. Getting [:3] seems to be + dnl the best way to do this; it's what "site.py" does in the standard + dnl library. + + AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], + [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) + AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) + + dnl Use the values of $prefix and $exec_prefix for the corresponding + dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made + dnl distinct variables so they can be overridden if need be. However, + dnl general consensus is that you shouldn't need this ability. + + AC_SUBST([PYTHON_PREFIX], ['${prefix}']) + AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) + + dnl At times (like when building shared libraries) you may want + dnl to know which OS platform Python thinks this is. + + AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], + [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) + AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) + + # Just factor out some code duplication. + am_python_setup_sysconfig="\ +import sys +# Prefer sysconfig over distutils.sysconfig, for better compatibility +# with python 3.x. See automake bug#10227. +try: + import sysconfig +except ImportError: + can_use_sysconfig = 0 +else: + can_use_sysconfig = 1 +# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: +# +try: + from platform import python_implementation + if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7': + can_use_sysconfig = 0 +except ImportError: + pass" + + dnl Set up 4 directories: + + dnl pythondir -- where to install python scripts. This is the + dnl site-packages directory, not the python standard library + dnl directory like in previous automake betas. This behavior + dnl is more consistent with lispdir.m4 for example. + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON script directory], + [am_cv_python_pythondir], + [if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pythondir], [$am_cv_python_pythondir]) + + dnl pkgpythondir -- $PACKAGE directory under pythondir. Was + dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is + dnl more consistent with the rest of automake. + + AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) + + dnl pyexecdir -- directory for installing python extension modules + dnl (shared libraries) + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], + [am_cv_python_pyexecdir], + [if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) + + dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) + + AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) + + dnl Run any user-specified action. + $2 + fi + +]) + + +# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# --------------------------------------------------------------------------- +# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. +# Run ACTION-IF-FALSE otherwise. +# This test uses sys.hexversion instead of the string equivalent (first +# word of sys.version), in order to cope with versions such as 2.2c1. +# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). +AC_DEFUN([AM_PYTHON_CHECK_VERSION], + [prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] +sys.exit(sys.hexversion < minverhex)" + AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/gtkdoc_jh_check_xml_catalog.m4]) +m4_include([m4/gtkdoc_jh_path_xml_catalog.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) diff --git a/build-aux/compile b/build-aux/compile new file mode 100755 index 0000000..a85b723 --- /dev/null +++ b/build-aux/compile @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/config.guess b/build-aux/config.guess new file mode 100755 index 0000000..2e9ad7f --- /dev/null +++ b/build-aux/config.guess @@ -0,0 +1,1462 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2016 Free Software Foundation, Inc. + +timestamp='2016-10-02' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +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 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# 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 + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + 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 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + 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 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + 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 ;; + 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 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + 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 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # 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 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + 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 -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + 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 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????: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 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + 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 ;; + *: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 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + 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 ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 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 -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = hppa2.0w ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 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 -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + 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 ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + 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 i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + 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 -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + 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-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + 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 ;; + 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 ;; + 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 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + 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 ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + 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 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *: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 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + 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 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *: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 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *: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 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +cat >&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: diff --git a/build-aux/config.sub b/build-aux/config.sub new file mode 100755 index 0000000..dd2ca93 --- /dev/null +++ b/build-aux/config.sub @@ -0,0 +1,1825 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2016 Free Software Foundation, Inc. + +timestamp='2016-11-04' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or 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 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# 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* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + 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 | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -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 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -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/'` + ;; + -sco5v6*) + # 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*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -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 \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # 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-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # 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 + ;; + abacus) + basic_machine=abacus-unknown + ;; + 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 + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + 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 + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + 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 + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + 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 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + 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*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 + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + 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 + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + 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 + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + 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 + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-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-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + 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) + 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 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + 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 + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + 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 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + 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 + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + 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 + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-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 + ;; + mmix) + basic_machine=mmix-knuth + ;; + 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 + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + 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 + ;; + *-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. + -auroraux) + os=-auroraux + ;; + -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* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -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 + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # 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 + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) + ;; + -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 + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-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 + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/depcomp b/build-aux/depcomp new file mode 100755 index 0000000..b39f98f --- /dev/null +++ b/build-aux/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/install-sh b/build-aux/install-sh new file mode 100755 index 0000000..59990a1 --- /dev/null +++ b/build-aux/install-sh @@ -0,0 +1,508 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2014-09-12.12; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + # $RANDOM is not portable (e.g. dash); use it when possible to + # lower collision chance + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + + # As "mkdir -p" follows symlinks and we work in /tmp possibly; so + # create the $tmpdir first (and fail if unsuccessful) to make sure + # that nobody tries to guess the $tmpdir name. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh new file mode 100644 index 0000000..a736cf9 --- /dev/null +++ b/build-aux/ltmain.sh @@ -0,0 +1,11156 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.6 Debian-2.4.6-2" +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 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. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 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. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname $scriptversion Debian-2.4.6-2 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type '$version_type'" + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/build-aux/missing b/build-aux/missing new file mode 100755 index 0000000..f62bbae --- /dev/null +++ b/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2013-10-28.13; # UTC + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/test-driver b/build-aux/test-driver new file mode 100755 index 0000000..8e575b0 --- /dev/null +++ b/build-aux/test-driver @@ -0,0 +1,148 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2013-07-13.22; # UTC + +# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <$log_file 2>&1 +estatus=$? + +if test $enable_hard_errors = no && test $estatus -eq 99; then + tweaked_estatus=1 +else + tweaked_estatus=$estatus +fi + +case $tweaked_estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>$log_file + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/cmake/GtkDocConfig.cmake.in b/cmake/GtkDocConfig.cmake.in new file mode 100644 index 0000000..9d41696 --- /dev/null +++ b/cmake/GtkDocConfig.cmake.in @@ -0,0 +1,362 @@ +# CMake macros to use the GtkDoc documentation system +# +# See the GTK-Doc manual (help/manual/C/index.docbook) for an example of how to +# use this. + +# Output variables: +# +# GTKDOC_FOUND ... set to 1 +# +# GTKDOC_SCAN_EXE ... the location of the gtkdoc-scan executable +# GTKDOC_SCANGOBJ_EXE ... the location of the gtkdoc-scangobj executable +# GTKDOC_MKDB_EXE ... the location of the gtkdoc-mkdb executable +# GTKDOC_MKHTML_EXE ... the location of the gtkdoc-mkhtml executable +# GTKDOC_FIXXREF_EXE ... the location of the gtkdoc-fixxref executable + + +#============================================================================= +# Copyright 2009 Rich Wareham +# Copyright 2015 Lautsprecher Teufel GmbH +# +# 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, see . +#============================================================================= + +include(CMakeParseArguments) + +set(GTKDOC_FOUND 1) + +set(GTKDOC_SCAN_EXE @bindir@/gtkdoc-scan) +set(GTKDOC_SCANGOBJ_EXE @bindir@/gtkdoc-scangobj) +set(GTKDOC_MKDB_EXE @bindir@/gtkdoc-mkdb) +set(GTKDOC_MKHTML_EXE @bindir@/gtkdoc-mkhtml) +set(GTKDOC_FIXXREF_EXE @bindir@/gtkdoc-fixxref) + +get_filename_component(_this_dir ${CMAKE_CURRENT_LIST_FILE} PATH) +find_file(GTKDOC_SCANGOBJ_WRAPPER GtkDocScanGObjWrapper.cmake PATH ${_this_dir}) + +# :: +# +# gtk_doc_add_module(doc_prefix +# SOURCE [...] +# XML xmlfile +# [LIBRARIES depend1...] +# [FIXXREFOPTS fixxrefoption1...] +# [IGNOREHEADERS header1...]) +# +# Add a module with documentation to be processed with GTK-Doc. +# +# must be the *full* path to the source directory. +# +# If omitted, xmlfile defaults to the auto generated ${doc_prefix}/${doc_prefix}-docs.xml. +# +# The `gtkdoc-scangobj` program is used to get introspection information for +# the module. You should pass the target(s) to be scanned as LIRARIES. This +# will try to set the correct compiler and link flags for the introspection +# build to use, and the correct LD_LIBRARY_PATH for it to run, and the correct +# dependencies for the doc target. +# +# You *can* also set the compile and link flags manually, using the 'CFLAGS' +# and 'LDFLAGS' options. The 'LDPATH' option controls the LD_LIBRARY_PATH. You +# can also manually add additional targets as dependencies of the +# documentation build with the DEPENDS option. +# +# This function a target named "doc-${doc_prefix}". You will need to manually +# add it to the ALL target if you want it to be built by default, you can do +# something like this: +# +# gtk_doc_add_module(doc-mymodule +# SOURCE ${CMAKE_SOURCE_DIR}/module ${CMAKE_BINARY_DIR}/module +# LIBRARIES mylibrary +# LIBRARY_DIRS ${GLIB_LIBRARY_DIRS} ${FOO_LIBRARY_DIRS} +# add_custom_target(all-documentation ALL) +# add_dependencies(all-documentation doc-mymodule) +# +function(gtk_doc_add_module _doc_prefix) + set(_one_value_args "XML") + set(_multi_value_args "FIXXREFOPTS" "IGNOREHEADERS" "LIBRARIES" "LIBRARY_DIRS" "SOURCE" "SUFFIXES" + "CFLAGS" "DEPENDS" "LDFLAGS" "LDPATH") + cmake_parse_arguments("GTK_DOC" "" "${_one_value_args}" "${_multi_value_args}" ${ARGN}) + + if(NOT GTK_DOC_SOURCE) + message(FATAL_ERROR "No SOURCE specified for gtk_doc_add_module ${_doc_prefix}") + endif() + + set(_xml_file ${GTK_DOC_XML}) + + set(_fixxrefopts ${GTK_DOC_FIXXREFOPTS}) + set(_ignore_headers ${GTK_DOC_IGNOREHEADERS}) + set(_libraries ${GTK_DOC_LIBRARIES}) + set(_library_dirs ${GTK_DOC_LIBRARY_DIRS}) + set(_suffixes ${GTK_DOC_SUFFIXES}) + + set(_extra_cflags ${GTK_DOC_CFLAGS}) + set(_depends ${GTK_DOC_DEPENDS}) + set(_extra_ldflags ${GTK_DOC_LDFLAGS}) + set(_extra_ldpath ${GTK_DOC_LDPATH}) + + if(_suffixes) + set(_doc_source_suffixes "") + foreach(_suffix ${_suffixes}) + if(_doc_source_suffixes) + set(_doc_source_suffixes "${_doc_source_suffixes},${_suffix}") + else(_doc_source_suffixes) + set(_doc_source_suffixes "${_suffix}") + endif(_doc_source_suffixes) + endforeach(_suffix) + else(_suffixes) + set(_doc_source_suffixes "h") + endif(_suffixes) + + # Parse the LIBRARIES option and collect compile and link flags for those + # targets. + foreach(target ${_libraries}) + _gtk_doc_get_cflags_for_target(_target_cflags ${target}) + _gtk_doc_get_ldflags_for_target(_target_ldflags ${target} "${_libraries}") + list(APPEND _extra_cflags ${_target_cflags}) + list(APPEND _extra_ldflags ${_target_ldflags}) + list(APPEND _extra_ldpath $) + + list(APPEND _depends ${target}) + endforeach() + + # Link directories can't be specified per target, only for every target + # under a given directory. + get_property(all_library_directories DIRECTORY PROPERTY LINK_DIRECTORIES) + foreach(library_dir ${all_library_directories}) + list(APPEND _extra_ldflags ${CMAKE_LIBRARY_PATH_FLAG}${library_dir}) + list(APPEND _extra_ldpath ${library_dir}) + endforeach() + + # a directory to store output. + set(_output_dir "${CMAKE_CURRENT_BINARY_DIR}/${_doc_prefix}") + set(_output_dir_stamp "${_output_dir}/dir.stamp") + + # set default sgml file if not specified + set(_default_xml_file "${_output_dir}/${_doc_prefix}-docs.xml") + get_filename_component(_default_xml_file ${_default_xml_file} ABSOLUTE) + + # a directory to store html output. + set(_output_html_dir "${_output_dir}/html") + set(_output_html_dir_stamp "${_output_dir}/html_dir.stamp") + + # The output files + set(_output_decl_list "${_output_dir}/${_doc_prefix}-decl-list.txt") + set(_output_decl "${_output_dir}/${_doc_prefix}-decl.txt") + set(_output_overrides "${_output_dir}/${_doc_prefix}-overrides.txt") + set(_output_sections "${_output_dir}/${_doc_prefix}-sections.txt") + set(_output_types "${_output_dir}/${_doc_prefix}.types") + + set(_output_signals "${_output_dir}/${_doc_prefix}.signals") + + set(_output_unused "${_output_dir}/${_doc_prefix}-unused.txt") + set(_output_undeclared "${_output_dir}/${_doc_prefix}-undeclared.txt") + set(_output_undocumented "${_output_dir}/${_doc_prefix}-undocumented.txt") + + set(_output_xml_dir "${_output_dir}/xml") + set(_output_sgml_stamp "${_output_dir}/sgml.stamp") + + set(_output_html_stamp "${_output_dir}/html.stamp") + + # add a command to create output directory + add_custom_command( + OUTPUT "${_output_dir_stamp}" "${_output_dir}" + COMMAND ${CMAKE_COMMAND} -E make_directory "${_output_dir}" + COMMAND ${CMAKE_COMMAND} -E touch ${_output_dir_stamp} + VERBATIM) + + set(_ignore_headers_opt "") + if(_ignore_headers) + set(_ignore_headers_opt "--ignore-headers=") + foreach(_header ${_ignore_headers}) + set(_ignore_headers_opt "${_ignore_headers_opt}${_header} ") + endforeach(_header ${_ignore_headers}) + endif(_ignore_headers) + + foreach(source_dir ${GTK_DOC_SOURCE}) + set(_source_dirs_opt ${_source_dirs_opt} --source-dir=${source_dir}) + endforeach() + + # add a command to scan the input + add_custom_command( + OUTPUT + "${_output_decl_list}" + "${_output_decl}" + "${_output_overrides}" + "${_output_sections}" + "${_output_types}" + DEPENDS + "${_output_dir_stamp}" + ${_depends} + COMMAND + ${GTKDOC_SCAN_EXE} + --module=${_doc_prefix} + ${_ignore_headers_opt} + ${_source_dirs_opt} + --rebuild-sections + --rebuild-types + WORKING_DIRECTORY ${_output_dir} + VERBATIM) + + # add a command to scan the input via gtkdoc-scangobj + # This is such a disgusting hack! + add_custom_command( + OUTPUT + ${_output_signals} + DEPENDS + ${_output_types} + COMMAND ${CMAKE_COMMAND} + -D "GTKDOC_SCANGOBJ_EXE:STRING=${GTKDOC_SCANGOBJ_EXE}" + -D "doc_prefix:STRING=${_doc_prefix}" + -D "output_types:STRING=${_output_types}" + -D "output_dir:STRING=${_output_dir}" + -D "EXTRA_CFLAGS:STRING=${_extra_cflags}" + -D "EXTRA_LDFLAGS:STRING=${_extra_ldflags}" + -D "EXTRA_LDPATH:STRING=${_extra_ldpath}" + -P ${GTKDOC_SCANGOBJ_WRAPPER} + WORKING_DIRECTORY "${_output_dir}" + VERBATIM) + + set(_copy_xml_if_needed "") + if(_xml_file) + get_filename_component(_xml_file ${_xml_file} ABSOLUTE) + set(_copy_xml_if_needed + COMMAND ${CMAKE_COMMAND} -E copy "${_xml_file}" "${_default_xml_file}") + endif(_xml_file) + + set(_remove_xml_if_needed "") + if(_xml_file) + set(_remove_xml_if_needed + COMMAND ${CMAKE_COMMAND} -E remove ${_default_xml_file}) + endif(_xml_file) + + # add a command to make the database + add_custom_command( + OUTPUT + ${_output_sgml_stamp} + ${_default_xml_file} + DEPENDS + ${_output_types} + ${_output_signals} + ${_output_sections} + ${_output_overrides} + ${_depends} + ${_remove_xml_if_needed} + COMMAND ${CMAKE_COMMAND} -E remove_directory ${_output_xml_dir} + COMMAND ${GTKDOC_MKDB_EXE} + --module=${_doc_prefix} + ${_source_dirs_opt} + --source-suffixes=${_doc_source_suffixes} + --output-format=xml + --main-sgml-file=${_default_xml_file} + ${_copy_xml_if_needed} + WORKING_DIRECTORY "${_output_dir}" + VERBATIM) + + # add a command to create html directory + add_custom_command( + OUTPUT "${_output_html_dir_stamp}" "${_output_html_dir}" + COMMAND ${CMAKE_COMMAND} -E make_directory ${_output_html_dir} + COMMAND ${CMAKE_COMMAND} -E touch ${_output_html_dir_stamp} + VERBATIM) + + # add a command to output HTML + add_custom_command( + OUTPUT + ${_output_html_stamp} + DEPENDS + ${_output_html_dir_stamp} + ${_output_sgml_stamp} + ${_xml_file} + ${_depends} + ${_copy_xml_if_needed} + # The binary dir needs adding to --path in order for mkhtml to pick up + # any version.xml file there might be in there + COMMAND + cd ${_output_html_dir} && ${GTKDOC_MKHTML_EXE} + ${_doc_prefix} + ${_default_xml_file} + COMMAND + cd ${_output_dir} && ${GTKDOC_FIXXREF_EXE} + --module=${_doc_prefix} + --module-dir=${_output_html_dir} + ${_fixxref_opts} + COMMENT + "Generating HTML documentation for ${_doc_prefix} module with gtkdoc-mkhtml" + VERBATIM) + + add_custom_target(doc-${_doc_prefix} + DEPENDS "${_output_html_stamp}") +endfunction(gtk_doc_add_module) + +# These two functions reimplement some of the core logic of CMake, in order +# to generate compiler and linker flags from the relevant target properties. +# It sucks that we have to do this, but CMake's own code for this doesn't seem +# to be reusable -- there's no way to say "tell me the flags that you would +# pass to a linker for this target". + +function(_gtk_doc_get_cflags_for_target result_var target) + get_target_property(target_definitions ${target} COMPILE_DEFINITIONS) + if(target_definitions) + list(APPEND cflags ${target_definitions}) + endif() + + get_target_property(target_options ${target} COMPILE_OPTIONS) + if(target_options) + list(APPEND cflags ${target_options}) + endif() + + get_target_property(target_include_dirs ${target} INCLUDE_DIRECTORIES) + foreach(target_include_dir ${target_include_dirs}) + list(APPEND cflags -I${target_include_dir}) + endforeach() + + list(REMOVE_DUPLICATES cflags) + list(SORT cflags) + + set(${result_var} ${cflags} PARENT_SCOPE) +endfunction() + +function(_gtk_doc_get_ldflags_for_target result_var target all_targets) + get_target_property(target_link_flags ${target} LINK_FLAGS) + if(target_link_flags) + list(APPEND ldflags ${target_link_flags}) + endif() + + get_target_property(target_link_libraries ${target} LINK_LIBRARIES) + foreach(target_library ${target_link_libraries}) + # The IN_LIST operator is new in CMake 3.3, so I've tried to avoid using it. + list(FIND all_targets ${target_library} target_library_is_explicit_dependency) + if(NOT ${target_library_is_explicit_dependency} EQUAL -1) + # This target is part of the current project. We will add it to + # LDFLAGS explicitly, so don't try to add it with -l as + # well. In fact, we can't do that, as the containing directory + # probably won't be in the linker search path, and we can't find + # that out and add it ourselves. + elseif(EXISTS ${target_library}) + # Pass the filename directly to the linker. + list(APPEND ldflags "${target_library}") + else() + # Pass -l to the linker. + list(APPEND ldflags "${CMAKE_LINK_LIBRARY_FLAG}${target_library}") + endif() + endforeach() + + # Link in the actual target, as well. + list(APPEND ldflags $) + + list(REMOVE_DUPLICATES ldflags) + list(SORT ldflags) + + set(${result_var} ${ldflags} PARENT_SCOPE) +endfunction() diff --git a/cmake/GtkDocConfigVersion.cmake.in b/cmake/GtkDocConfigVersion.cmake.in new file mode 100644 index 0000000..9d74050 --- /dev/null +++ b/cmake/GtkDocConfigVersion.cmake.in @@ -0,0 +1,13 @@ +# CMake package version configuration file for GTK-Doc. + +set(PACKAGE_VERSION @PACKAGE_VERSION@) + +# Check whether the requested PACKAGE_FIND_VERSION is compatible +if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/cmake/GtkDocScanGObjWrapper.cmake b/cmake/GtkDocScanGObjWrapper.cmake new file mode 100644 index 0000000..4ad7d2e --- /dev/null +++ b/cmake/GtkDocScanGObjWrapper.cmake @@ -0,0 +1,67 @@ +# Internal -- for use with UseGtkDoc.cmake +# +#============================================================================= +# Copyright 2009 Rich Wareham +# Copyright 2015 Lautsprecher Teufel GmbH +# +# 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, see . +#============================================================================= + +# This is needed for find_package(PkgConfig) to work correctly -- +# CMAKE_MINIMUM_REQUIRED_VERSION needs to be defined. +cmake_minimum_required(VERSION 3.2) + +if(NOT APPLE) + # We use pkg-config to find glib et al + find_package(PkgConfig) + # Find glib et al + pkg_check_modules(GLIB REQUIRED glib-2.0 gobject-2.0) + +foreach(_flag ${EXTRA_CFLAGS} ${GLIB_CFLAGS}) + set(ENV{CFLAGS} "$ENV{CFLAGS} \"${_flag}\"") +endforeach(_flag) + +foreach(_flag ${EXTRA_LDFLAGS} ${GLIB_LDFLAGS}) + set(ENV{LDFLAGS} "$ENV{LDFLAGS} \"${_flag}\"") +endforeach(_flag) + +foreach(_flag ${EXTRA_LDPATH}) + if(ENV{LD_LIBRARY_PATH}) + set(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}:\"${_flag}\"") + else(ENV{LD_LIBRARY_PATH}) + set(ENV{LD_LIBRARY_PATH} "${_flag}") + endif(ENV{LD_LIBRARY_PATH}) +endforeach(_flag) + +message(STATUS "Executing gtkdoc-scangobj with:") +message(STATUS " CFLAGS: $ENV{CFLAGS}") +message(STATUS " LDFLAGS: $ENV{LDFLAGS}") +message(STATUS " LDPATH: $ENV{LD_LIBRARY_PATH}") + +execute_process(COMMAND ${GTKDOC_SCANGOBJ_EXE} + "--module=${doc_prefix}" + "--types=${output_types}" + "--output-dir=${output_dir}" + WORKING_DIRECTORY "${output_dir}" + RESULT_VARIABLE _scan_result) + +if(_scan_result EQUAL 0) + message(STATUS "Scan succeeded.") +else(_scan_result EQUAL 0) + message(SEND_ERROR "Scan failed.") +endif(_scan_result EQUAL 0) + +endif(NOT APPLE) + +# vim:sw=4:ts=4:et:autoindent diff --git a/cmake/Makefile.am b/cmake/Makefile.am new file mode 100644 index 0000000..d4f43b8 --- /dev/null +++ b/cmake/Makefile.am @@ -0,0 +1,23 @@ +EXTRA_DIST = \ + GtkDocConfig.cmake.in \ + GtkDocConfigVersion.cmake.in \ + GtkDocScanGObjWrapper.cmake + +CLEANFILES = \ + GtkDocConfig.cmake \ + GtkDocConfigVersion.cmake + +# Generate this here rather than via configure.ac so that +# bindir is substituted as an expanded path rather than +# using ${exec_prefix} as it would if substituted via +# configure.ac. +GtkDocConfig.cmake: GtkDocConfig.cmake.in + $(SED) -e 's|[@]bindir@|$(bindir)|g' < "$<" > "$@" + +cmakedir = $(libdir)/cmake/GtkDoc +cmake_DATA = \ + GtkDocConfig.cmake \ + GtkDocConfigVersion.cmake \ + GtkDocScanGObjWrapper.cmake + +-include $(top_srcdir)/git.mk diff --git a/cmake/Makefile.in b/cmake/Makefile.in new file mode 100644 index 0000000..692946c --- /dev/null +++ b/cmake/Makefile.in @@ -0,0 +1,551 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = cmake +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = GtkDocConfigVersion.cmake +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(cmakedir)" +DATA = $(cmake_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/GtkDocConfigVersion.cmake.in \ + $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = \ + GtkDocConfig.cmake.in \ + GtkDocConfigVersion.cmake.in \ + GtkDocScanGObjWrapper.cmake + +CLEANFILES = \ + GtkDocConfig.cmake \ + GtkDocConfigVersion.cmake + +cmakedir = $(libdir)/cmake/GtkDoc +cmake_DATA = \ + GtkDocConfig.cmake \ + GtkDocConfigVersion.cmake \ + GtkDocScanGObjWrapper.cmake + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu cmake/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu cmake/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +GtkDocConfigVersion.cmake: $(top_builddir)/config.status $(srcdir)/GtkDocConfigVersion.cmake.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-cmakeDATA: $(cmake_DATA) + @$(NORMAL_INSTALL) + @list='$(cmake_DATA)'; test -n "$(cmakedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(cmakedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(cmakedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(cmakedir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(cmakedir)" || exit $$?; \ + done + +uninstall-cmakeDATA: + @$(NORMAL_UNINSTALL) + @list='$(cmake_DATA)'; test -n "$(cmakedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(cmakedir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(cmakedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-cmakeDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-cmakeDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-cmakeDATA install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-cmakeDATA + +.PRECIOUS: Makefile + + +# Generate this here rather than via configure.ac so that +# bindir is substituted as an expanded path rather than +# using ${exec_prefix} as it would if substituted via +# configure.ac. +GtkDocConfig.cmake: GtkDocConfig.cmake.in + $(SED) -e 's|[@]bindir@|$(bindir)|g' < "$<" > "$@" + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/configure b/configure new file mode 100755 index 0000000..f14cb8e --- /dev/null +++ b/configure @@ -0,0 +1,15751 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for gtk-doc 1.28. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk-doc +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='gtk-doc' +PACKAGE_TARNAME='gtk-doc' +PACKAGE_VERSION='1.28' +PACKAGE_STRING='gtk-doc 1.28' +PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gtk-doc' +PACKAGE_URL='' + +ac_unique_file="gtk-doc.pc.in" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +HAVE_YELP_TOOLS_FALSE +HAVE_YELP_TOOLS_TRUE +YELP_HELP_RULES +XMLLINT +ITSTOOL +HELP_DIR +YELP_LC_DIST +YELP_LC_MEDIA_LINKS +DATE_FMT_CMD +ELAPSED_FMT +TS_FMT +glib_prefix +BUILD_TESTS_FALSE +BUILD_TESTS_TRUE +GTK_DOC_USE_LIBTOOL_FALSE +GTK_DOC_USE_LIBTOOL_TRUE +TEST_DEPS_LIBS +TEST_DEPS_CFLAGS +PYTHON_PACKAGE_DIR +PACKAGE_DATA_DIR +HIGHLIGHT_OPTIONS +HIGHLIGHT +XMLCATALOG +XML_CATALOG_FILE +FOP +DBLATEX +XSLTPROC +pkgpyexecdir +pyexecdir +pkgpythondir +pythondir +PYTHON_PLATFORM +PYTHON_EXEC_PREFIX +PYTHON_PREFIX +PYTHON_VERSION +PYTHON +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CPP +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_maintainer_mode +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +with_xml_catalog +with_highlight +enable_debug +with_help_dir +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +LT_SYS_LIBRARY_PATH +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +PYTHON +TEST_DEPS_CFLAGS +TEST_DEPS_LIBS +ITSTOOL +XMLLINT' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures gtk-doc 1.28 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/gtk-doc] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of gtk-doc 1.28:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-maintainer-mode + disable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-debug enable runtime debugging code (default=no) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-xml-catalog=CATALOG + path to xml catalog to use + --with-highlight Select source code syntax highlighter + (no|source-highlight|highlight|vim|auto) + --with-help-dir=DIR path where help files are installed + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + PYTHON the Python interpreter + TEST_DEPS_CFLAGS + C compiler flags for TEST_DEPS, overriding pkg-config + TEST_DEPS_LIBS + linker flags for TEST_DEPS, overriding pkg-config + ITSTOOL Path to the `itstool` command + XMLLINT Path to the `xmllint` command + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +gtk-doc configure 1.28 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by gtk-doc $as_me 1.28, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; 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 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +am__api_version='1.15' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='gtk-doc' + VERSION='1.28' + + +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"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' + +# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 +$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } + if test $am_uid -le $am_max_uid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 +$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } + if test $am_gid -le $am_max_gid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + if ${am_cv_prog_tar_ustar+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + +# Support silent build rules, requires at least automake-1.11. Disable +# by either passing --disable-silent-rules to configure or passing V=1 +# to make +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + +# Check for programs +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +# Initialize libtool + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#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)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + link_all_deplibs=no + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen=shl_load +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen=dlopen +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.19 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + + + + + + + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.7" >&5 +$as_echo_n "checking whether $PYTHON version is >= 2.7... " >&6; } + prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 + ($PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "Python interpreter is too old" "$LINENO" 5 +fi + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.7" >&5 +$as_echo_n "checking for a Python interpreter with version >= 2.7... " >&6; } +if ${am_cv_pathless_PYTHON+:} false; then : + $as_echo_n "(cached) " >&6 +else + + for am_cv_pathless_PYTHON in python python2 python3 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do + test "$am_cv_pathless_PYTHON" = none && break + prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 + ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then : + break +fi + done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5 +$as_echo "$am_cv_pathless_PYTHON" >&6; } + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. +set dummy $am_cv_pathless_PYTHON; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PYTHON+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +$as_echo "$PYTHON" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + + + if test "$PYTHON" = :; then + as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 + else + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 +$as_echo_n "checking for $am_display_PYTHON version... " >&6; } +if ${am_cv_python_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 +$as_echo "$am_cv_python_version" >&6; } + PYTHON_VERSION=$am_cv_python_version + + + + PYTHON_PREFIX='${prefix}' + + PYTHON_EXEC_PREFIX='${exec_prefix}' + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 +$as_echo_n "checking for $am_display_PYTHON platform... " >&6; } +if ${am_cv_python_platform+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 +$as_echo "$am_cv_python_platform" >&6; } + PYTHON_PLATFORM=$am_cv_python_platform + + + # Just factor out some code duplication. + am_python_setup_sysconfig="\ +import sys +# Prefer sysconfig over distutils.sysconfig, for better compatibility +# with python 3.x. See automake bug#10227. +try: + import sysconfig +except ImportError: + can_use_sysconfig = 0 +else: + can_use_sysconfig = 1 +# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: +# +try: + from platform import python_implementation + if python_implementation() == 'CPython' and sys.version[:3] == '2.7': + can_use_sysconfig = 0 +except ImportError: + pass" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 +$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } +if ${am_cv_python_pythondir+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 +$as_echo "$am_cv_python_pythondir" >&6; } + pythondir=$am_cv_python_pythondir + + + + pkgpythondir=\${pythondir}/$PACKAGE + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 +$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } +if ${am_cv_python_pyexecdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 +$as_echo "$am_cv_python_pyexecdir" >&6; } + pyexecdir=$am_cv_python_pyexecdir + + + + pkgpyexecdir=\${pyexecdir}/$PACKAGE + + + + fi + + + +# Extract the first word of "xsltproc", so it can be a program name with args. +set dummy xsltproc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XSLTPROC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XSLTPROC in + [\\/]* | ?:[\\/]*) + ac_cv_path_XSLTPROC="$XSLTPROC" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XSLTPROC=$ac_cv_path_XSLTPROC +if test -n "$XSLTPROC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 +$as_echo "$XSLTPROC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$XSLTPROC"; then + as_fn_error $? "xsltproc not found" "$LINENO" 5 +fi + +# Extract the first word of "dblatex", so it can be a program name with args. +set dummy dblatex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DBLATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DBLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DBLATEX="$DBLATEX" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DBLATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DBLATEX=$ac_cv_path_DBLATEX +if test -n "$DBLATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBLATEX" >&5 +$as_echo "$DBLATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$DBLATEX"; then + # Extract the first word of "fop", so it can be a program name with args. +set dummy fop; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_FOP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $FOP in + [\\/]* | ?:[\\/]*) + ac_cv_path_FOP="$FOP" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_FOP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +FOP=$ac_cv_path_FOP +if test -n "$FOP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOP" >&5 +$as_echo "$FOP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test -z "$FOP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: neither dblatex nor fop found, so no pdf output from xml" >&5 +$as_echo "$as_me: WARNING: neither dblatex nor fop found, so no pdf output from xml" >&2;} + fi +fi + + + +# Check whether --with-xml-catalog was given. +if test "${with_xml_catalog+set}" = set; then : + withval=$with_xml_catalog; +else + with_xml_catalog='' +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML catalog" >&5 +$as_echo_n "checking for XML catalog... " >&6; } + if test -n "$with_xml_catalog"; then + if test -f "$with_xml_catalog"; then + jh_found_xmlcatalog=true + else + jh_found_xmlcatalog=false + fi + else + if test -z "$XDG_DATA_DIRS"; then + jh_xml_catalog_searchdirs="/etc:/usr/local/share:/usr/share" + else + jh_xml_catalog_searchdirs="/etc:$XDG_DATA_DIRS" + fi + jh_found_xmlcatalog=false + jh_xml_catalog_saved_ifs="$IFS" + IFS=':' + for d in $jh_xml_catalog_searchdirs; do + if test -f "$d/xml/catalog"; then + with_xml_catalog="$d/xml/catalog" + jh_found_xmlcatalog=true + break + fi + done + IFS="$jh_xml_catalog_saved_ifs" + fi + if $jh_found_xmlcatalog; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_xml_catalog" >&5 +$as_echo "$with_xml_catalog" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + fi + XML_CATALOG_FILE="$with_xml_catalog" + + + # Extract the first word of "xmlcatalog", so it can be a program name with args. +set dummy xmlcatalog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XMLCATALOG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XMLCATALOG in + [\\/]* | ?:[\\/]*) + ac_cv_path_XMLCATALOG="$XMLCATALOG" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XMLCATALOG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_XMLCATALOG" && ac_cv_path_XMLCATALOG="no" + ;; +esac +fi +XMLCATALOG=$ac_cv_path_XMLCATALOG +if test -n "$XMLCATALOG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLCATALOG" >&5 +$as_echo "$XMLCATALOG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$XMLCATALOG" = xno; then + jh_found_xmlcatalog=false + fi + + if $jh_found_xmlcatalog; then + : + else + : + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook XML DTD V4.3 in XML catalog" >&5 +$as_echo_n "checking for DocBook XML DTD V4.3 in XML catalog... " >&6; } + if $jh_found_xmlcatalog && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$XMLCATALOG --noout \"\$XML_CATALOG_FILE\" \"-//OASIS//DTD DocBook XML V4.3//EN\" >&2"; } >&5 + ($XMLCATALOG --noout "$XML_CATALOG_FILE" "-//OASIS//DTD DocBook XML V4.3//EN" >&2) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + as_fn_error $? "could not find DocBook XML DTD V4.3 in XML catalog" "$LINENO" 5 + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook XSL Stylesheets in XML catalog" >&5 +$as_echo_n "checking for DocBook XSL Stylesheets in XML catalog... " >&6; } + if $jh_found_xmlcatalog && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$XMLCATALOG --noout \"\$XML_CATALOG_FILE\" \"http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl\" >&2"; } >&5 + ($XMLCATALOG --noout "$XML_CATALOG_FILE" "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl" >&2) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + as_fn_error $? "could not find DocBook XSL Stylesheets in XML catalog" "$LINENO" 5 + fi + + + +# Check whether --with-highlight was given. +if test "${with_highlight+set}" = set; then : + withval=$with_highlight; +else + with_highlight=auto +fi + + +case $with_highlight in + no|source-highlight|highlight|vim|auto) ;; + *) as_fn_error $? "Invalid value for syntax highlighting option." "$LINENO" 5 ;; +esac + +HIGHLIGHT_OPTIONS="" +if test "$with_highlight" = "auto"; then + # Extract the first word of "source-highlight", so it can be a program name with args. +set dummy source-highlight; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_HIGHLIGHT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $HIGHLIGHT in + [\\/]* | ?:[\\/]*) + ac_cv_path_HIGHLIGHT="$HIGHLIGHT" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_HIGHLIGHT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +HIGHLIGHT=$ac_cv_path_HIGHLIGHT +if test -n "$HIGHLIGHT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HIGHLIGHT" >&5 +$as_echo "$HIGHLIGHT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test -n "$HIGHLIGHT"; then + HIGHLIGHT_OPTIONS="-t4 -s\$SRC_LANG -cstyle.css --no-doc -i" + else + # Extract the first word of "highlight", so it can be a program name with args. +set dummy highlight; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_HIGHLIGHT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $HIGHLIGHT in + [\\/]* | ?:[\\/]*) + ac_cv_path_HIGHLIGHT="$HIGHLIGHT" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_HIGHLIGHT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +HIGHLIGHT=$ac_cv_path_HIGHLIGHT +if test -n "$HIGHLIGHT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HIGHLIGHT" >&5 +$as_echo "$HIGHLIGHT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test -n "$HIGHLIGHT"; then + HIGHLIGHT_OPTIONS="--syntax=\$SRC_LANG --out-format=xhtml -f --class-name=gtkdoc " + else + # Extract the first word of "vim", so it can be a program name with args. +set dummy vim; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_HIGHLIGHT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $HIGHLIGHT in + [\\/]* | ?:[\\/]*) + ac_cv_path_HIGHLIGHT="$HIGHLIGHT" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_HIGHLIGHT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +HIGHLIGHT=$ac_cv_path_HIGHLIGHT +if test -n "$HIGHLIGHT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HIGHLIGHT" >&5 +$as_echo "$HIGHLIGHT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test -n "$HIGHLIGHT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether vim has +syntax feature" >&5 +$as_echo_n "checking whether vim has +syntax feature... " >&6; } + if $HIGHLIGHT --version | grep '+syntax' >/dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HIGHLIGHT= + fi + fi + fi + fi +else + if test "$with_highlight" != "no"; then + # Extract the first word of "$with_highlight", so it can be a program name with args. +set dummy $with_highlight; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_HIGHLIGHT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $HIGHLIGHT in + [\\/]* | ?:[\\/]*) + ac_cv_path_HIGHLIGHT="$HIGHLIGHT" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_HIGHLIGHT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_HIGHLIGHT" && ac_cv_path_HIGHLIGHT="no" + ;; +esac +fi +HIGHLIGHT=$ac_cv_path_HIGHLIGHT +if test -n "$HIGHLIGHT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HIGHLIGHT" >&5 +$as_echo "$HIGHLIGHT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + case $with_highlight in + source-highlight) HIGHLIGHT_OPTIONS="-t4 -s\$SRC_LANG -cstyle.css --no-doc -i";; + highlight) HIGHLIGHT_OPTIONS="--syntax=\$SRC_LANG --out-format=xhtml -f --class-name=gtkdoc ";; + vim) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether vim has +syntax feature" >&5 +$as_echo_n "checking whether vim has +syntax feature... " >&6; } + if $HIGHLIGHT --version | grep '+syntax' >/dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HIGHLIGHT=no + fi + ;; + esac + + if test "$HIGHLIGHT" = "no" && test "$with_highlight" != "no"; then + as_fn_error $? "Could not find requested syntax highlighter" "$LINENO" 5 + fi +fi + + + +PACKAGE_DATA_DIR="${datadir}/${PACKAGE}/data" + + prefix_NONE= + exec_prefix_NONE= + test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix + test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix + eval ac_define_dir="\"$PACKAGE_DATA_DIR\"" + eval ac_define_dir="\"$ac_define_dir\"" + PACKAGE_DATA_DIR="$ac_define_dir" + + test "$prefix_NONE" && prefix=NONE + test "$exec_prefix_NONE" && exec_prefix=NONE + +PYTHON_PACKAGE_DIR="${datadir}/${PACKAGE}/python" + + prefix_NONE= + exec_prefix_NONE= + test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix + test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix + eval ac_define_dir="\"$PYTHON_PACKAGE_DIR\"" + eval ac_define_dir="\"$ac_define_dir\"" + PYTHON_PACKAGE_DIR="$ac_define_dir" + + test "$prefix_NONE" && prefix=NONE + test "$exec_prefix_NONE" && exec_prefix=NONE + + +if test "x$GCC" = "xyes"; then + if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then + CFLAGS="$CFLAGS -Wall" + fi +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TEST_DEPS" >&5 +$as_echo_n "checking for TEST_DEPS... " >&6; } + +if test -n "$TEST_DEPS_CFLAGS"; then + pkg_cv_TEST_DEPS_CFLAGS="$TEST_DEPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TEST_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$TEST_DEPS_LIBS"; then + pkg_cv_TEST_DEPS_LIBS="$TEST_DEPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TEST_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + TEST_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0" 2>&1` + else + TEST_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$TEST_DEPS_PKG_ERRORS" >&5 + + gtk_doc_use_libtool="no" + build_tests="no" + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + gtk_doc_use_libtool="no" + build_tests="no" + + +else + TEST_DEPS_CFLAGS=$pkg_cv_TEST_DEPS_CFLAGS + TEST_DEPS_LIBS=$pkg_cv_TEST_DEPS_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + glib_prefix="`$PKG_CONFIG --variable=prefix glib-2.0`" + gtk_doc_use_libtool="yes" + build_tests="yes" + +fi + if test -n "$LIBTOOL" -a x$gtk_doc_use_libtool = xyes ; then + GTK_DOC_USE_LIBTOOL_TRUE= + GTK_DOC_USE_LIBTOOL_FALSE='#' +else + GTK_DOC_USE_LIBTOOL_TRUE='#' + GTK_DOC_USE_LIBTOOL_FALSE= +fi + + if test x$build_tests = xyes; then + BUILD_TESTS_TRUE= + BUILD_TESTS_FALSE='#' +else + BUILD_TESTS_TRUE='#' + BUILD_TESTS_FALSE= +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable runtime debugging code" >&5 +$as_echo_n "checking whether to enable runtime debugging code... " >&6; } +# Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; +else + enable_debug="no" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debug" >&5 +$as_echo "$enable_debug" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether date can output nanoseconds" >&5 +$as_echo_n "checking whether date can output nanoseconds... " >&6; } +date +%s.%N | grep -q 'N' +if test "$?" = "1"; then + TS_FMT="+%s.%N" + ELAPSED_FMT="+%H:%M:%S.%N" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + TS_FMT="+%s.0" + ELAPSED_FMT="+%H:%M:%S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether date can format dates" >&5 +$as_echo_n "checking whether date can format dates... " >&6; } +date >/dev/null 2>&1 --utc --date @1.1 $ELAPSED_FMT +if test "$?" = "0"; then + DATE_FMT_CMD="date --utc $ELAPSED_FMT --date @0" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + DATE_FMT_CMD="echo " + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for yelp-tools" >&5 +$as_echo_n "checking for yelp-tools... " >&6; } +have_yelp_tools=no + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + + + + + +YELP_LC_MEDIA_LINKS=true +YELP_LC_DIST=true + +for yelpopt in ; do + case $yelpopt in + lc-media-links) YELP_LC_MEDIA_LINKS=true ;; + no-lc-media-links) YELP_LC_MEDIA_LINKS= ;; + lc-dist) YELP_LC_DIST=true ;; + no-lc-dist) YELP_LC_DIST= ;; + *) as_fn_error $? "Unrecognized YELP_HELP_INIT option $yelpopt\"" "$LINENO" 5 ;; + esac +done; + + + + +# Check whether --with-help-dir was given. +if test "${with_help_dir+set}" = set; then : + withval=$with_help_dir; +else + with_help_dir='${datadir}/help' +fi + +HELP_DIR="$with_help_dir" + + + +# Extract the first word of "itstool", so it can be a program name with args. +set dummy itstool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ITSTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ITSTOOL"; then + ac_cv_prog_ITSTOOL="$ITSTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ITSTOOL="itstool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ITSTOOL=$ac_cv_prog_ITSTOOL +if test -n "$ITSTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ITSTOOL" >&5 +$as_echo "$ITSTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test x"$ITSTOOL" = x; then + as_fn_error $? "itstool not found" "$LINENO" 5 +fi + + +# Extract the first word of "xmllint", so it can be a program name with args. +set dummy xmllint; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_XMLLINT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$XMLLINT"; then + ac_cv_prog_XMLLINT="$XMLLINT" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_XMLLINT="xmllint" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +XMLLINT=$ac_cv_prog_XMLLINT +if test -n "$XMLLINT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5 +$as_echo "$XMLLINT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test x"$XMLLINT" = x; then + as_fn_error $? "xmllint not found" "$LINENO" 5 +fi + +YELP_HELP_RULES=' +HELP_ID ?= +HELP_POT ?= +HELP_FILES ?= +HELP_EXTRA ?= +HELP_MEDIA ?= +HELP_LINGUAS ?= + +_HELP_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),$(filter $(LINGUAS),$(HELP_LINGUAS)),$(HELP_LINGUAS)) +_HELP_POTFILE = $(if $(HELP_POT),$(HELP_POT),$(if $(HELP_ID),$(HELP_ID).pot)) +_HELP_POFILES = $(if $(HELP_ID),$(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).po)) +_HELP_MOFILES = $(patsubst %.po,%.mo,$(_HELP_POFILES)) +_HELP_C_FILES = $(foreach f,$(HELP_FILES),C/$(f)) +_HELP_C_EXTRA = $(foreach f,$(HELP_EXTRA),C/$(f)) +_HELP_C_MEDIA = $(foreach f,$(HELP_MEDIA),C/$(f)) +_HELP_LC_FILES = $(foreach lc,$(_HELP_LINGUAS),$(foreach f,$(HELP_FILES),$(lc)/$(f))) +_HELP_LC_STAMPS = $(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).stamp) + +_HELP_DEFAULT_V = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) +_HELP_V = $(if $(V),$(V),$(_HELP_DEFAULT_V)) +_HELP_LC_VERBOSE = $(_HELP_LC_VERBOSE_$(_HELP_V)) +_HELP_LC_VERBOSE_ = $(_HELP_LC_VERBOSE_$(_HELP_DEFAULT_V)) +_HELP_LC_VERBOSE_0 = @echo " GEN "$(dir $@); + +all: $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(_HELP_LC_FILES) $(_HELP_POFILES) + +.PHONY: pot +pot: $(_HELP_POTFILE) +$(_HELP_POTFILE): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) + $(AM_V_GEN)if test -d "C"; then d=; else d="$(srcdir)/"; fi; \ + $(ITSTOOL) -o "$@" $(foreach f,$(_HELP_C_FILES),"$${d}$(f)") + +.PHONY: repo +repo: $(_HELP_POTFILE) + $(AM_V_at)for po in $(_HELP_POFILES); do \ + if test "x$(_HELP_V)" = "x0"; then echo " GEN $${po}"; fi; \ + msgmerge -q -o "$${po}" "$${po}" "$(_HELP_POTFILE)"; \ + done + +$(_HELP_POFILES): + $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi + $(AM_V_at)if test ! -f "$@" -a -f "$(srcdir)/$@"; then cp "$(srcdir)/$@" "$@"; fi + $(AM_V_GEN)if ! test -f "$@"; then \ + (cd "$(dir $@)" && \ + $(ITSTOOL) -o "$(notdir $@).tmp" $(_HELP_C_FILES) && \ + mv "$(notdir $@).tmp" "$(notdir $@)"); \ + else \ + (cd "$(dir $@)" && \ + $(ITSTOOL) -o "$(notdir $@).tmp" $(_HELP_C_FILES) && \ + msgmerge -o "$(notdir $@)" "$(notdir $@)" "$(notdir $@).tmp" && \ + rm "$(notdir $@).tmp"); \ + fi + +$(_HELP_MOFILES): %.mo: %.po + $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi + $(AM_V_GEN)msgfmt -o "$@" "$<" + +$(_HELP_LC_FILES): $(_HELP_LINGUAS) +$(_HELP_LINGUAS): $(_HELP_LC_STAMPS) +$(_HELP_LC_STAMPS): %.stamp: %.mo +$(_HELP_LC_STAMPS): $(_HELP_C_FILES) $(_HELP_C_EXTRA) + $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi + $(_HELP_LC_VERBOSE)if test -d "C"; then d="../"; else d="$(abs_srcdir)/"; fi; \ + mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \ + if test -f "$${mo}"; then mo="../$${mo}"; else mo="$(abs_srcdir)/$${mo}"; fi; \ + (cd "$(dir $@)" && $(ITSTOOL) -m "$${mo}" $(foreach f,$(_HELP_C_FILES),$${d}/$(f))) && \ + touch "$@" + +.PHONY: clean-help +mostlyclean-am: $(if $(HELP_ID),clean-help) +clean-help: + rm -f $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES) + +EXTRA_DIST ?= +EXTRA_DIST += $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) +EXTRA_DIST += $(if $(YELP_LC_DIST),$(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).stamp)) +EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).po) +EXTRA_DIST += $(foreach f,$(HELP_MEDIA),$(foreach lc,$(HELP_LINGUAS),$(wildcard $(lc)/$(f)))) + +distdir: distdir-help-files +distdir-help-files: $(_HELP_LC_FILES) + @for lc in C $(if $(YELP_LC_DIST),$(HELP_LINGUAS)) ; do \ + $(MKDIR_P) "$(distdir)/$$lc"; \ + for file in $(HELP_FILES); do \ + if test -f "$$lc/$$file"; then d=./; else d=$(srcdir)/; fi; \ + cp -p "$$d$$lc/$$file" "$(distdir)/$$lc/" || exit 1; \ + done; \ + done; \ + +.PHONY: check-help +check: check-help +check-help: + for lc in C $(_HELP_LINGUAS); do \ + if test -d "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + for page in $(HELP_FILES); do \ + echo "$(XMLLINT) --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \ + $(XMLLINT) --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \ + done; \ + done + + +.PHONY: install-help +install-data-am: $(if $(HELP_ID),install-help) +install-help: $(_HELP_LC_FILES) + @for lc in C $(_HELP_LINGUAS); do \ + $(mkinstalldirs) "$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)" || exit 1; \ + done + @for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ + if test -f "$$lc/$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ + echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir`basename $$f`"; \ + $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir`basename $$f`" || exit 1; \ + done; done + @for f in $(_HELP_C_EXTRA); do \ + lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ + if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ + echo "$(INSTALL_DATA) $$d$$f $$helpdir`basename $$f`"; \ + $(INSTALL_DATA) "$$d$$f" "$$helpdir`basename $$f`" || exit 1; \ + done + @for f in $(HELP_MEDIA); do \ + for lc in C $(_HELP_LINGUAS); do \ + if test -f "$$lc$$f"; then d=; else d="$(srcdir)/"; fi; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + mdir=`dirname "$$f"`; \ + if test "x$mdir" = "x."; then mdir=""; fi; \ + if ! test -d "$$helpdir$$mdir"; then $(mkinstalldirs) "$$helpdir$$mdir"; fi; \ + if test -f "$$d$$lc/$$f"; then \ + echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir$$f"; \ + $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir$$f" || exit 1; \ + elif test "x$$lc" != "xC"; then \ + if test "x$(YELP_LC_MEDIA_LINKS)" != "x"; then \ + echo "$(LN_S) -f $(HELP_DIR)/C/$(HELP_ID)/$$f $$helpdir$$f"; \ + $(LN_S) -f "$(HELP_DIR)/C/$(HELP_ID)/$$f" "$$helpdir$$f" || exit 1; \ + fi; \ + fi; \ + done; \ + done + +.PHONY: uninstall-help +uninstall-am: $(if $(HELP_ID),uninstall-help) +uninstall-help: + for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir`basename $$f`"; \ + rm -f "$$helpdir`basename $$f`"; \ + done; done + @for f in $(_HELP_C_EXTRA); do \ + lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir`basename $$f`"; \ + rm -f "$$helpdir`basename $$f`"; \ + done + @for f in $(HELP_MEDIA); do \ + for lc in C $(_HELP_LINGUAS); do \ + helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ + echo "rm -f $$helpdir$$f"; \ + rm -f "$$helpdir$$f"; \ + done; \ + done; +' + + + +have_yelp_tools=yes + +if test "x$have_yelp_tools" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test x$have_yelp_tools = xyes; then + HAVE_YELP_TOOLS_TRUE= + HAVE_YELP_TOOLS_FALSE='#' +else + HAVE_YELP_TOOLS_TRUE='#' + HAVE_YELP_TOOLS_FALSE= +fi + + +# cmake/GtkDocConfig.cmake is handled in the Makefile, not here. +ac_config_files="$ac_config_files Makefile gtk-doc.pc cmake/Makefile cmake/GtkDocConfigVersion.cmake gtkdoc/config.py help/Makefile help/manual/Makefile tests/Makefile tests/annotations/Makefile tests/annotations/src/Makefile tests/annotations/docs/Makefile tests/bugs/Makefile tests/bugs/src/Makefile tests/bugs/docs/Makefile tests/empty/Makefile tests/empty/src/Makefile tests/empty/docs/Makefile tests/fail/Makefile tests/fail/src/Makefile tests/fail/docs/Makefile tests/gobject/Makefile tests/gobject/src/Makefile tests/gobject/docs/Makefile tests/program/Makefile tests/program/src/Makefile tests/program/docs/Makefile tests/repro/Makefile tests/repro/src/Makefile tests/repro/docs/Makefile" + + +ac_config_files="$ac_config_files gtkdoc-check" + +ac_config_files="$ac_config_files gtkdoc-depscan" + +ac_config_files="$ac_config_files gtkdoc-fixxref" + +ac_config_files="$ac_config_files gtkdoc-mkdb" + +ac_config_files="$ac_config_files gtkdoc-mkhtml" + +ac_config_files="$ac_config_files gtkdoc-mkhtml2" + +ac_config_files="$ac_config_files gtkdoc-mkman" + +ac_config_files="$ac_config_files gtkdoc-mkpdf" + +ac_config_files="$ac_config_files gtkdoc-rebase" + +ac_config_files="$ac_config_files gtkdoc-scan" + +ac_config_files="$ac_config_files gtkdoc-scangobj" + +ac_config_files="$ac_config_files gtkdocize" + +ac_config_files="$ac_config_files tests/tools.sh" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +ac_script=' +:mline +/\\$/{ + N + s,\\\n,, + b mline +} +t clear +:clear +s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g +t quote +s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g +t quote +b any +:quote +s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g +s/\[/\\&/g +s/\]/\\&/g +s/\$/$$/g +H +:any +${ + g + s/^\n// + s/\n/ /g + p +} +' +DEFS=`sed -n "$ac_script" confdefs.h` + + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_TESTS_TRUE}" && test -z "${BUILD_TESTS_FALSE}"; then + as_fn_error $? "conditional \"BUILD_TESTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_YELP_TOOLS_TRUE}" && test -z "${HAVE_YELP_TOOLS_FALSE}"; then + as_fn_error $? "conditional \"HAVE_YELP_TOOLS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by gtk-doc $as_me 1.28, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +gtk-doc config.status 1.28 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h | --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "gtk-doc.pc") CONFIG_FILES="$CONFIG_FILES gtk-doc.pc" ;; + "cmake/Makefile") CONFIG_FILES="$CONFIG_FILES cmake/Makefile" ;; + "cmake/GtkDocConfigVersion.cmake") CONFIG_FILES="$CONFIG_FILES cmake/GtkDocConfigVersion.cmake" ;; + "gtkdoc/config.py") CONFIG_FILES="$CONFIG_FILES gtkdoc/config.py" ;; + "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;; + "help/manual/Makefile") CONFIG_FILES="$CONFIG_FILES help/manual/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "tests/annotations/Makefile") CONFIG_FILES="$CONFIG_FILES tests/annotations/Makefile" ;; + "tests/annotations/src/Makefile") CONFIG_FILES="$CONFIG_FILES tests/annotations/src/Makefile" ;; + "tests/annotations/docs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/annotations/docs/Makefile" ;; + "tests/bugs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/bugs/Makefile" ;; + "tests/bugs/src/Makefile") CONFIG_FILES="$CONFIG_FILES tests/bugs/src/Makefile" ;; + "tests/bugs/docs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/bugs/docs/Makefile" ;; + "tests/empty/Makefile") CONFIG_FILES="$CONFIG_FILES tests/empty/Makefile" ;; + "tests/empty/src/Makefile") CONFIG_FILES="$CONFIG_FILES tests/empty/src/Makefile" ;; + "tests/empty/docs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/empty/docs/Makefile" ;; + "tests/fail/Makefile") CONFIG_FILES="$CONFIG_FILES tests/fail/Makefile" ;; + "tests/fail/src/Makefile") CONFIG_FILES="$CONFIG_FILES tests/fail/src/Makefile" ;; + "tests/fail/docs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/fail/docs/Makefile" ;; + "tests/gobject/Makefile") CONFIG_FILES="$CONFIG_FILES tests/gobject/Makefile" ;; + "tests/gobject/src/Makefile") CONFIG_FILES="$CONFIG_FILES tests/gobject/src/Makefile" ;; + "tests/gobject/docs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/gobject/docs/Makefile" ;; + "tests/program/Makefile") CONFIG_FILES="$CONFIG_FILES tests/program/Makefile" ;; + "tests/program/src/Makefile") CONFIG_FILES="$CONFIG_FILES tests/program/src/Makefile" ;; + "tests/program/docs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/program/docs/Makefile" ;; + "tests/repro/Makefile") CONFIG_FILES="$CONFIG_FILES tests/repro/Makefile" ;; + "tests/repro/src/Makefile") CONFIG_FILES="$CONFIG_FILES tests/repro/src/Makefile" ;; + "tests/repro/docs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/repro/docs/Makefile" ;; + "gtkdoc-check") CONFIG_FILES="$CONFIG_FILES gtkdoc-check" ;; + "gtkdoc-depscan") CONFIG_FILES="$CONFIG_FILES gtkdoc-depscan" ;; + "gtkdoc-fixxref") CONFIG_FILES="$CONFIG_FILES gtkdoc-fixxref" ;; + "gtkdoc-mkdb") CONFIG_FILES="$CONFIG_FILES gtkdoc-mkdb" ;; + "gtkdoc-mkhtml") CONFIG_FILES="$CONFIG_FILES gtkdoc-mkhtml" ;; + "gtkdoc-mkhtml2") CONFIG_FILES="$CONFIG_FILES gtkdoc-mkhtml2" ;; + "gtkdoc-mkman") CONFIG_FILES="$CONFIG_FILES gtkdoc-mkman" ;; + "gtkdoc-mkpdf") CONFIG_FILES="$CONFIG_FILES gtkdoc-mkpdf" ;; + "gtkdoc-rebase") CONFIG_FILES="$CONFIG_FILES gtkdoc-rebase" ;; + "gtkdoc-scan") CONFIG_FILES="$CONFIG_FILES gtkdoc-scan" ;; + "gtkdoc-scangobj") CONFIG_FILES="$CONFIG_FILES gtkdoc-scangobj" ;; + "gtkdocize") CONFIG_FILES="$CONFIG_FILES gtkdocize" ;; + "tests/tools.sh") CONFIG_FILES="$CONFIG_FILES tests/tools.sh" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + + +eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + "gtkdoc-check":F) chmod +x gtkdoc-check ;; + "gtkdoc-depscan":F) chmod +x gtkdoc-depscan ;; + "gtkdoc-fixxref":F) chmod +x gtkdoc-fixxref ;; + "gtkdoc-mkdb":F) chmod +x gtkdoc-mkdb ;; + "gtkdoc-mkhtml":F) chmod +x gtkdoc-mkhtml ;; + "gtkdoc-mkhtml2":F) chmod +x gtkdoc-mkhtml2 ;; + "gtkdoc-mkman":F) chmod +x gtkdoc-mkman ;; + "gtkdoc-mkpdf":F) chmod +x gtkdoc-mkpdf ;; + "gtkdoc-rebase":F) chmod +x gtkdoc-rebase ;; + "gtkdoc-scan":F) chmod +x gtkdoc-scan ;; + "gtkdoc-scangobj":F) chmod +x gtkdoc-scangobj ;; + "gtkdocize":F) chmod +x gtkdocize ;; + "tests/tools.sh":F) chmod +x tests/tools.sh ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: +gtk-doc was configured with the following options: +==================================================" >&5 +$as_echo "$as_me: +gtk-doc was configured with the following options: +==================================================" >&6;} + +test -n "$DBLATEX$FOP" \ + && { $as_echo "$as_me:${as_lineno-$LINENO}: ** PDF support enabled, using $DBLATEX$FOP" >&5 +$as_echo "$as_me: ** PDF support enabled, using $DBLATEX$FOP" >&6;} \ + || { $as_echo "$as_me:${as_lineno-$LINENO}: PDF support disabled, no dblatex or fop available" >&5 +$as_echo "$as_me: PDF support disabled, no dblatex or fop available" >&6;} +test -n "$HIGHLIGHT" \ + && { $as_echo "$as_me:${as_lineno-$LINENO}: ** Syntax highlighting of examples enabled, using $HIGHLIGHT" >&5 +$as_echo "$as_me: ** Syntax highlighting of examples enabled, using $HIGHLIGHT" >&6;} \ + || { $as_echo "$as_me:${as_lineno-$LINENO}: Syntax highlighting of examples disabled" >&5 +$as_echo "$as_me: Syntax highlighting of examples disabled" >&6;} +test "x$build_tests" != "xno" \ + && { $as_echo "$as_me:${as_lineno-$LINENO}: ** Building regression tests" >&5 +$as_echo "$as_me: ** Building regression tests" >&6;} \ + || { $as_echo "$as_me:${as_lineno-$LINENO}: Skipping regression tests" >&5 +$as_echo "$as_me: Skipping regression tests" >&6;} +test "x$enable_debug" != "xno" \ + && { $as_echo "$as_me:${as_lineno-$LINENO}: ** Debug tracing enabled" >&5 +$as_echo "$as_me: ** Debug tracing enabled" >&6;} \ + || { $as_echo "$as_me:${as_lineno-$LINENO}: Debug tracing disabled" >&5 +$as_echo "$as_me: Debug tracing disabled" >&6;} +test "x$have_yelp_tools" != "xno" \ + && { $as_echo "$as_me:${as_lineno-$LINENO}: ** Documentation enabled" >&5 +$as_echo "$as_me: ** Documentation enabled" >&6;} \ + || { $as_echo "$as_me:${as_lineno-$LINENO}: Documentation disabled" >&5 +$as_echo "$as_me: Documentation disabled" >&6;} diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..05500b9 --- /dev/null +++ b/configure.ac @@ -0,0 +1,279 @@ +dnl Process this file with autoconf to produce a configure script. +AC_PREREQ([2.63]) + +dnl We're using a two digit number for the releases and +dnl a three digit number for the development version +m4_define(gtk_doc_version, 1.28) + +AC_INIT([gtk-doc],[gtk_doc_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk-doc],[gtk-doc]) + +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_SRCDIR([gtk-doc.pc.in]) +AC_CONFIG_AUX_DIR([build-aux]) + +AM_INIT_AUTOMAKE([1.11 check-news std-options -Wno-portability tar-ustar no-dist-gzip dist-xz]) +AM_MAINTAINER_MODE([enable]) + +# Support silent build rules, requires at least automake-1.11. Disable +# by either passing --disable-silent-rules to configure or passing V=1 +# to make +AM_SILENT_RULES([yes]) + +# Check for programs +AC_PROG_CC + +# Initialize libtool +LT_PREREQ([2.2]) +LT_INIT + +dnl Make sure we have pkg-config >= 0.19, so installing in $(datadir) is OK. +PKG_PROG_PKG_CONFIG([0.19]) + +dnl +dnl Check for Python. +dnl +AM_PATH_PYTHON([2.7]) + +dnl +dnl Check for xsltproc +dnl +AC_PATH_PROG([XSLTPROC], [xsltproc]) +if test -z "$XSLTPROC"; then + AC_MSG_ERROR([xsltproc not found]) +fi + +dnl +dnl Check for dblatex/fop (for pdf output) +dnl +AC_PATH_PROG([DBLATEX], [dblatex]) +if test -z "$DBLATEX"; then + AC_PATH_PROG([FOP], [fop]) + if test -z "$FOP"; then + AC_MSG_WARN([neither dblatex nor fop found, so no pdf output from xml]) + fi +fi + +dnl check for DocBook DTD and stylesheets in the local catalog. +JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.3//EN], [DocBook XML DTD V4.3]) +JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl], [DocBook XSL Stylesheets]) + +dnl +dnl Check for syntax highlighters +dnl +AC_ARG_WITH([highlight], + AS_HELP_STRING([--with-highlight], [Select source code syntax highlighter (no|source-highlight|highlight|vim|auto)]), + , [with_highlight=auto]) + +case $with_highlight in + no|source-highlight|highlight|vim|auto) ;; + *) AC_MSG_ERROR([Invalid value for syntax highlighting option.]) ;; +esac + +HIGHLIGHT_OPTIONS="" +if test "$with_highlight" = "auto"; then + AC_PATH_PROG([HIGHLIGHT], [source-highlight]) + if test -n "$HIGHLIGHT"; then + HIGHLIGHT_OPTIONS="-t4 -s\$SRC_LANG -cstyle.css --no-doc -i" + else + AC_PATH_PROG([HIGHLIGHT], [highlight]) + if test -n "$HIGHLIGHT"; then + HIGHLIGHT_OPTIONS="--syntax=\$SRC_LANG --out-format=xhtml -f --class-name=gtkdoc " + else + AC_PATH_PROG([HIGHLIGHT], [vim]) + if test -n "$HIGHLIGHT"; then + dnl vim is useless if it does not support syntax highlighting + AC_MSG_CHECKING([whether vim has +syntax feature]) + if $HIGHLIGHT --version | grep '+syntax' >/dev/null; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + HIGHLIGHT= + fi + fi + fi + fi +else + if test "$with_highlight" != "no"; then + AC_PATH_PROG([HIGHLIGHT], [$with_highlight], [no]) + fi + + case $with_highlight in + source-highlight) HIGHLIGHT_OPTIONS="-t4 -s\$SRC_LANG -cstyle.css --no-doc -i";; + highlight) HIGHLIGHT_OPTIONS="--syntax=\$SRC_LANG --out-format=xhtml -f --class-name=gtkdoc ";; + vim) + AC_MSG_CHECKING([whether vim has +syntax feature]) + if $HIGHLIGHT --version | grep '+syntax' >/dev/null; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + HIGHLIGHT=no + fi + ;; + esac + + if test "$HIGHLIGHT" = "no" && test "$with_highlight" != "no"; then + AC_MSG_ERROR([Could not find requested syntax highlighter]) + fi +fi +AC_SUBST([HIGHLIGHT_OPTIONS]) + +dnl +dnl Set runtime package dirs so we can find the script containing common routines. +dnl +dnl From Autoconf Macro Archive: +m4_define([AC_DEFINE_DIR], [ + prefix_NONE= + exec_prefix_NONE= + test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix + test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix + eval ac_define_dir="\"[$]$2\"" + eval ac_define_dir="\"$ac_define_dir\"" + AC_SUBST($1, "$ac_define_dir") + test "$prefix_NONE" && prefix=NONE + test "$exec_prefix_NONE" && exec_prefix=NONE +]) +PACKAGE_DATA_DIR="${datadir}/${PACKAGE}/data" +AC_DEFINE_DIR([PACKAGE_DATA_DIR], [PACKAGE_DATA_DIR]) +PYTHON_PACKAGE_DIR="${datadir}/${PACKAGE}/python" +AC_DEFINE_DIR([PYTHON_PACKAGE_DIR], [PYTHON_PACKAGE_DIR]) + +dnl Only use -Wall if we have gcc +if test "x$GCC" = "xyes"; then + if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then + CFLAGS="$CFLAGS -Wall" + fi +fi + +dnl if glib is available we can enable the tests +PKG_CHECK_MODULES(TEST_DEPS, [glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0], + [ glib_prefix="`$PKG_CONFIG --variable=prefix glib-2.0`" + gtk_doc_use_libtool="yes" + build_tests="yes" + ], + [ gtk_doc_use_libtool="no" + build_tests="no" + ] +) +AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL" -a x$gtk_doc_use_libtool = xyes ) +dnl this enables the rule in test/Makefile.am +AM_CONDITIONAL(BUILD_TESTS, test x$build_tests = xyes) +AC_SUBST(glib_prefix) + +dnl enable runtime debugging code +AC_MSG_CHECKING(whether to enable runtime debugging code) +AC_ARG_ENABLE([debug], + AS_HELP_STRING([--enable-debug], + [enable runtime debugging code (default=no)]),, + [enable_debug="no"]) +AC_MSG_RESULT($enable_debug) + +dnl check what date format we can use for the makefile tracing in tests +dnl this is mostly to detect the date command on macosx that is quite cripled +dnl and broken too +AC_MSG_CHECKING(whether date can output nanoseconds) +date +%s.%N | grep -q 'N' +if test "$?" = "1"; then + TS_FMT="+%s.%N" + ELAPSED_FMT="+%H:%M:%S.%N" + AC_MSG_RESULT(yes) +else + TS_FMT="+%s.0" + ELAPSED_FMT="+%H:%M:%S" + AC_MSG_RESULT(no) +fi +AC_SUBST(TS_FMT) +AC_SUBST(ELAPSED_FMT) + +AC_MSG_CHECKING(whether date can format dates) +date >/dev/null 2>&1 --utc --date @1.1 $ELAPSED_FMT +if test "$?" = "0"; then + DATE_FMT_CMD="date --utc $ELAPSED_FMT --date @0" + AC_MSG_RESULT(yes) +else + DATE_FMT_CMD="echo " + AC_MSG_RESULT(no) +fi +AC_SUBST(DATE_FMT_CMD) + +dnl +dnl Documentation +dnl +AC_MSG_CHECKING([for yelp-tools]) +have_yelp_tools=no +m4_ifdef([YELP_HELP_INIT],[ +AC_MSG_RESULT([yes]) +YELP_HELP_INIT +have_yelp_tools=yes +]) +if test "x$have_yelp_tools" != "xyes"; then + AC_MSG_RESULT([no]) +fi +AM_CONDITIONAL([HAVE_YELP_TOOLS],[test x$have_yelp_tools = xyes]) + +# cmake/GtkDocConfig.cmake is handled in the Makefile, not here. +AC_CONFIG_FILES([Makefile +gtk-doc.pc +cmake/Makefile +cmake/GtkDocConfigVersion.cmake +gtkdoc/config.py +help/Makefile +help/manual/Makefile +tests/Makefile +tests/annotations/Makefile +tests/annotations/src/Makefile +tests/annotations/docs/Makefile +tests/bugs/Makefile +tests/bugs/src/Makefile +tests/bugs/docs/Makefile +tests/empty/Makefile +tests/empty/src/Makefile +tests/empty/docs/Makefile +tests/fail/Makefile +tests/fail/src/Makefile +tests/fail/docs/Makefile +tests/gobject/Makefile +tests/gobject/src/Makefile +tests/gobject/docs/Makefile +tests/program/Makefile +tests/program/src/Makefile +tests/program/docs/Makefile +tests/repro/Makefile +tests/repro/src/Makefile +tests/repro/docs/Makefile +]) + +dnl run chmod on these after parsing them. +AC_CONFIG_FILES([gtkdoc-check], [chmod +x gtkdoc-check]) +AC_CONFIG_FILES([gtkdoc-depscan], [chmod +x gtkdoc-depscan]) +AC_CONFIG_FILES([gtkdoc-fixxref], [chmod +x gtkdoc-fixxref]) +AC_CONFIG_FILES([gtkdoc-mkdb], [chmod +x gtkdoc-mkdb]) +AC_CONFIG_FILES([gtkdoc-mkhtml], [chmod +x gtkdoc-mkhtml]) +AC_CONFIG_FILES([gtkdoc-mkhtml2], [chmod +x gtkdoc-mkhtml2]) +AC_CONFIG_FILES([gtkdoc-mkman], [chmod +x gtkdoc-mkman]) +AC_CONFIG_FILES([gtkdoc-mkpdf], [chmod +x gtkdoc-mkpdf]) +AC_CONFIG_FILES([gtkdoc-rebase], [chmod +x gtkdoc-rebase]) +AC_CONFIG_FILES([gtkdoc-scan], [chmod +x gtkdoc-scan]) +AC_CONFIG_FILES([gtkdoc-scangobj], [chmod +x gtkdoc-scangobj]) +AC_CONFIG_FILES([gtkdocize], [chmod +x gtkdocize]) +AC_CONFIG_FILES([tests/tools.sh], [chmod +x tests/tools.sh]) +AC_OUTPUT + +AC_MSG_NOTICE([ +gtk-doc was configured with the following options: +==================================================]) + +test -n "$DBLATEX$FOP" \ + && AC_MSG_NOTICE([** PDF support enabled, using $DBLATEX$FOP]) \ + || AC_MSG_NOTICE([ PDF support disabled, no dblatex or fop available]) +test -n "$HIGHLIGHT" \ + && AC_MSG_NOTICE([** Syntax highlighting of examples enabled, using $HIGHLIGHT]) \ + || AC_MSG_NOTICE([ Syntax highlighting of examples disabled]) +test "x$build_tests" != "xno" \ + && AC_MSG_NOTICE([** Building regression tests]) \ + || AC_MSG_NOTICE([ Skipping regression tests]) +test "x$enable_debug" != "xno" \ + && AC_MSG_NOTICE([** Debug tracing enabled]) \ + || AC_MSG_NOTICE([ Debug tracing disabled]) +test "x$have_yelp_tools" != "xno" \ + && AC_MSG_NOTICE([** Documentation enabled]) \ + || AC_MSG_NOTICE([ Documentation disabled]) diff --git a/devhelp2.xsd b/devhelp2.xsd new file mode 100644 index 0000000..a0b96dc --- /dev/null +++ b/devhelp2.xsd @@ -0,0 +1,217 @@ + + + + + + + Devhelp2 files are use in the 'devhelp' documentation browser. + + + + + + + Known keyword types. + + + + + + + + + + + + + + + + + + + + + Known programing languages. + + + + + + + + + + + + + + + + + + + Sub tags for the hierachy of the chapters and parts. + + + + + + + + + + + + + + + The chapters tag encloses the structure of the reference manual. Each + sub unit is represented by a sub tag. + + + + + + + + + + + + + The keyword tag points to the documentation of a api symbol. + + + + + + + Type of the keyword. + + + + + + + Keyword name. + + + + + + + Relative link for the keyword. + + + + + + + Version since that the keyword is part of the API. + + + + + + + Marks the keyword as deprecated. + + + + + + + Document the stability status. + + + + + + + + + + The functions tag encloses all api symbols of the reference manual. Each + sub unit is represented by a keyword tag. + + + + + + + + + + + + + Toplevel element of a devhelp book. A devhelp book list the structure of + a developer manual together with development related metadata. + + + + + + + + + + + Title of the reference manual. + + + + + + + Entry point to the manual. Can be given as a relative path to the + location of the devhelp2 file. + + + + + + + Author of the document. Multiple authors are separated by ','. + + + + + + + Short name of the manual. + + + + + + + Version of the devhelp xml specification (2). + + + + + + + Programing language this manual refers to. + + + + + + + URL for the online version of the docs. + + + + + + diff --git a/devhelp2.xsl b/devhelp2.xsl new file mode 100644 index 0000000..37c235a --- /dev/null +++ b/devhelp2.xsl @@ -0,0 +1,173 @@ + + + + + + + + + + + + book + + + .devhelp2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + diff --git a/doc/README b/doc/README new file mode 100644 index 0000000..f0636d6 --- /dev/null +++ b/doc/README @@ -0,0 +1,27 @@ +Note +==== + +There is now a user manual which can be read using yelp and can be found under +'development'. Please refer to this documentation for up-to-date information. + + +Files +===== + +setting-up.txt + 5-step guide to setting up a module to use gtk-doc. + +gnome.txt + information on the source code comments format which the Gnome project + has just started to use. + +sections-file.txt + describes the MODULE-sections.txt file which is used to organise the + documentation. + +style-guide.txt + Initial draft of a style guide for writing GTK+ docs. + +authors.txt + notes for authors of the GTK documentation. The abbreviations to use, + a few useful DocBook tags etc. diff --git a/doc/authors.txt b/doc/authors.txt new file mode 100644 index 0000000..b46b41c --- /dev/null +++ b/doc/authors.txt @@ -0,0 +1,151 @@ +Note +==== + +There is now a user manual which can be read using yelp and can be found under +'development'. Please refer to this documentation for up-to-date information. + + +General +======= + +The files to edit manually are generated in the tmpl/ directory. +Remember to use < or > instead of '<' and '>', in these files. + +The first part of each function/macro/struct etc. description should be +a very short summary of what it is. This may be used at some point to +produce a short reference guide which can be printed out. + +For macros which return a value just like a function, you must manually +add a '@Returns: ' field. + +You may want to rearrange the functions/macros etc. to split them into +related sections. To do this rearrange the MODULE-sections.txt +files. You can also add between functions. Currently this just +results in a blank line between them in the synopsis. + +If a function or macro has a very long description, you may want the table +of parameters to go somewhere in the middle rather than after the description +as would normally happen. To place the table of parameters in the middle of +the description simple write "" on its own line at the +desired location. + + +Abbreviations +============= + +These are expanded into appropriate DocBook tags, saving a lot of typing. +I've used the Gnome ones (see gnome.txt) but also added '#'. + + Use function() to refer to functions or macros which take arguments. + + Use @param to refer to parameters. (I've also used this when referring to + parameters of other functions, related to the one being described.) + + Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS. + + Use #symbol to refer to other types of symbol, e.g. structs and enums + and macros which don't take arguments. + + + +Useful DocBook Tags +=================== + +These are the DocBook tags which I have used or I think could be useful. +Let me know if I'm doing something wrong! + + +To link to another section in the GTK docs: + + Hash Tables + + The linkend is the SGML id on the top item of the page you want to link to. + For most pages this is currently the part ("gtk", "gdk", glib") and then + the page title ("Hash Tables"). For widgets it is just the class name. + Spaces and underscores are converted to '-' to conform to SGML. + + +To refer to an external function, e.g. a standard C function: + + ... + + +To include example code: + + + Using a GHashTable. + + ... + + + + or possibly this, for very short code fragments which don't need a title: + + + + ... + + + + +To include bulleted lists: + + + + + + ... + + + + + + ... + + + + + + +To include a note which stands out from the text: + + + + Make sure you free the data after use. + + + +To refer to a type: + + unsigned char + + +To refer to an external structure (not one described in the GTK docs): + + XFontStruct + + +To refer to a field of a structure: + + len + + +To refer to a class name, we could possibly use: + + GtkWidget + + but you'll probably be using #GtkWidget instead (to automatically create + a link to the GtkWidget page - see the abbreviations above). + + +To emphasize text: + + This is important + + but I haven't been using it so far. + + +For filenames use: + + c:\windows + diff --git a/doc/gnome.txt b/doc/gnome.txt new file mode 100644 index 0000000..8ebffa1 --- /dev/null +++ b/doc/gnome.txt @@ -0,0 +1,84 @@ +Note +==== + +There is now a user manual which can be read using yelp and can be found under +'development'. Please refer to this documentation for up-to-date information. + + +HowTo +===== + +These are the comment blocks used in Gnome source files to document +functions (and macros, signals and properties, if you want). + +/** + * function_name: + * @par1: description of parameter 1. These can extend over more than + * one line. + * @par2: description of parameter 2 + * + * The function description goes here. You can use @par1 to refer to parameters + * so that they are highlighted in the output. You can also use %constant + * for constants, function_name2() for functions and #GtkWidget for links to + * other declarations (which may be documented elsewhere). + * + * Returns: an integer. + */ + +The block starts with '/**'. +Each line starts with ' * '. + +The second line is the function name, optionally followed by a ':'. In +order to document signals in inline comments, use a name of the form +class::signal, e.g. GtkWidget::notify-child. For properties, use a +name of the form class:property, e.g. GtkAlignment:top-padding. Note +that gtk-doc expects the signal and property names to be spelled with +hyphens, not underlines. + +Following the function name are the parameters, e.g. '@par1:' above. + +A blank line MUST be used to separate parameter descriptions from the main +description (otherwise it is assumed to be a continuation of the parameter +description.) + +After the main description is a 'Returns:' line to describe the +returned value of the function (if it is not void). + +Text inside the descriptions can use these special characters (they +will be expanded into appropriate DocBook tags): + + @name a parameter. + %name a constant. + name() reference to a function, or a macro which works like a function + (this will be turned into a hypertext link if the function is + documented anywhere). + #name reference to any other type of declaration, e.g. a struct, enum, + union, or macro (this will also be turned into a link if possible). + +To avoid problems, the characters '<', '>' and '&' in the descriptions are +converted into the SGML entities < > and &. +This means that you can't use Docbook SGML tags, unless specify the --sgml-mode +option for gtkdoc-mkdb, which suppresses the escaping of '<', '>' and +'&' and allows Docbook markup in inline comments. + +If you are using markup in inline comments, you must be careful to to +not run into problems with the automatic splitting of the comment in +paragraphs at empty lines. A line counts as empty for this purpose, if +it is empty after the removal of the initial ' * ' prefix. Thus you +can work around this problem by adding some trailing whitespace to +lines which should appear as empty, but not end a paragraph. This is +especially relevant in code examples, which often contain empty lines. + +Some more hints regarding examples: Hyperlinks in the formatted examples +are confusing, therefore you should suppress the gtk-doc markup by using +function() instead of function(). Use character entities to refer +to the characters %, &, < or #, e.g. + + if (a < b && verbose) + printf ("bla %s %#x", bla, a); + +would become + + if (a < b && verbose) + printf ("bla %s %#x", bla, a); + diff --git a/doc/sections-file.txt b/doc/sections-file.txt new file mode 100644 index 0000000..235d6e8 --- /dev/null +++ b/doc/sections-file.txt @@ -0,0 +1,66 @@ +Note +==== + +There is now a user manual which can be read using yelp and can be found under +'development'. Please refer to this documentation for up-to-date information. + + +*-section.txt +============= + +This describes the MODULE-sections.txt file which is used to organise the +documentation output by gtk-doc. + +The file is divided into sections. Each section will be output to a separate +file in the templates, which also corresponds to a SGML file, and a file in +the final HTML files. Each section contains a list of function/macro etc. +names, which can be rearranged into the desired order. + +The ... tag is used to specify the file name, without any +suffix. For example, using 'gnome-config' will result in the +section declarations being output in the template file tmpl/gnome-config.sgml, +which will be converted into the DocBook SGML file sgml/gnome-config.sgml. +(The name of the html file is based on the module name and the section title, +or for widgets it is based on the widget name converted to lower case). + +The ... tag is used to specify the title of the section. +It is only useful before the templates are initially created, since the title +set in the template file overrides this. + +You can group items in the section by using the tag. Currently +it outputs a blank line between subsections in the synopsis section. +You can also use for standard GtkObject declarations +(e.g. the functions like gtk_object_get_type and macros like GTK_OBJECT(), +GTK_IS_OBJECT() etc.) Currently these are left out of the documentation. +You can also use for private declarations which will not +be output (Its a handy way to avoid warning messages about unused +declarations.). If your library contains private types which you don't want +to appear in the object hierarchy and the list of implemented or required +interfaces, add them to a Private subsection. + +You can also use ... to specify the #include files which +are shown in the synopsis sections. It contains a comma-separate list of +#include files, without the angle brackets. If you set it outside of any +sections, it acts for all sections until the end of the file. If you set it +within a section, it only applies to that section. + +If a line starts with a '#' it is treated as a comment and ignored. + +Example MODULE-sections.txt file: + +# This is a comment. +gnome.h + +
+gnome-dateedit +GnomeDateEdit +gnome_date_edit_new +gnome_date_edit_set_time +gnome_date_edit_set_popup_range +gnome_date_edit_get_date + +GNOME_DATE_EDIT +GNOME_IS_DATE_EDIT +gnome_date_edit_get_type +GNOME_DATE_EDIT_CLASS +
diff --git a/doc/setting-up.txt b/doc/setting-up.txt new file mode 100644 index 0000000..d3a6e5b --- /dev/null +++ b/doc/setting-up.txt @@ -0,0 +1,86 @@ +Note +==== + +There is now a user manual which can be read using yelp and can be found under +'development'. Please refer to this documentation for up-to-date information. + + +How to Set Up an Application or Library to use GTK-Doc +====================================================== + +This assumes that you are using autoconf & automake to build your package, +and already have gtk-doc installed properly. + + +1. Add this line to your autogen.sh, before the calls to autoheader, automake + or autoconf: + + gtkdocize || exit 1 + + If you are using gnome-autogen.sh it already runs gtkdocize for you. + If you don't have an autogen.sh script you may need to run gtkdocize + manually. (All gtkdocize does is copy gtk-doc.make to your project.) + + +2. Add this line to your configure.in (somewhere before the call to AC_OUTPUT) + + GTK_DOC_CHECK(1.0) + + The number in brackets is the minimum version of gtk-doc required. + + +3. Create a directory in your project where you want the docs to be built, + e.g. 'myproject/docs/reference'. If you want to create several separate + pieces of documentation you can create subdirectories for each one here. + (e.g. GTK+ has subdirectories for gtk, gdk and gdk-pixbuf.) + + +4. Copy examples/Makefile.am to this directory (or subdirectories) and edit + the variables at the top of the file. (See the GTK+ source for an example.) + + +5. Add the new Makefile(s) to your configure.in's AC_OUTPUT call, and make sure + all the SUBDIRS variables are set properly so the docs directory is built. + + +6. If your library or application includes GtkObjects/GObjects, and you want + their signals, arguments/parameters and position in the hierarchy to be + documented: + + Create a MODULE.types file in the docs directory, e.g. "myproject.types". + This should contain any '#include' directives needed to compile a program + with your module, and a list of functions to initialize all of the widgets + and objects in the library. For example, the gtk.types file starts like + this: + + #include + + gtk_accel_label_get_type + gtk_adjustment_get_type + gtk_alignment_get_type + gtk_arrow_get_type + +============================================================================= + +That's it! If you now build the application or library you should get a +complete set of documentation. gtk-doc is normally off by default so you +may have to pass '--enable-gtk-doc' to autogen.sh or configure.in. + +(Note that due to a problem with make the build may fail the very first time +it is run, but if you run make again it should work. It only fails because +there are no files in the tmpl/ directory initially. As soon as these are +created it works fine.) + + +You can tweak the output in several ways: + + o modify the main SGML file to add introductory sections or to split the + documentation into several chapters. + + o modify the MODULE-sections.txt file to rearrange the documentation into + different sections or a different order (see sections-file.txt for info). + + o add a MODULE-overrides.txt to override particular declarations. + + +Damon diff --git a/doc/style-guide.txt b/doc/style-guide.txt new file mode 100644 index 0000000..59da5e4 --- /dev/null +++ b/doc/style-guide.txt @@ -0,0 +1,234 @@ +Note +==== + +There is now a user manual which can be read using yelp and can be found under +'development'. Please refer to this documentation for up-to-date information. + + +NOTE: This is only a draft version. Don't make major changes to your + documentation until we've agreed on all this. + + +GTK+ Reference Documentation Style Guide +======================================== + +This file describes the way the GTK+ reference documentation should be written, +so that we produce consistent documentation. + +We will also designate one or two of the template files as 'model' templates, +i.e. they are to be taken as the 'correct' way to write the documentation: + + GtkFontSelectionDialog - contains example code and descriptions of enums. + GtkMisc - contains description of fields in a widget struct. + + +Language +======== + +Use American spelling rather than British, i.e. color rather than colour, +organize rather than organise etc. + +End all descriptions of functions & parameters with a period '.'. + + +Organizing Sections +=================== + +The organization of the sections is determined by the glib-sections.txt, +gdk-sections.txt and gtk-sections.txt files. + +Group related functions/macros/enums etc. and place a "" tag +(on its own line) between groups. This results in a blank line in the synopsis +between the groups, which makes it a bit easier to read. + +Order the groups sections by placing the most important/commonly-used +functions/macros etc. first. For pairs of accessor functions place them +together with the 'get' function first and then the 'set' function. + +Private functions etc. should be placed at the end of the "
", +after a "" line. They will not appear in the HTML output +and they do not have to be documented (they will disappear form the template +files the next time 'make templates' is run). + +Enumerations should appear after the first function which uses them. + + +Section Descriptions +=================== + +For widgets, start the main description with - + + + +The #GtkFontSelectionDialog widget ... + + +If you want to include subsections in the main description, to conform to +DocBook SGML you must have 0 or more leading paragraphs (or possibly other +DocBook tags - see the DTD), then 1 or more subsections, with +nothing after. e.g. + + + +Introduction to the section.... + + + First Subsection + + This is the first subsection. + + + + Second Subsection + + This is the second subsection. + + + + +Functions & Macro Descriptions +============================== + +Start the description with a phrase like this: + 'Looks up a key in a GHashTable'. +i.e. assume that 'This function' (or 'This macro') precedes it. + + +Function Parameters +=================== + +For object-oriented code, denote the object parameter with 'a', +e.g. 'a #GHashTable'. + +Use 'the' for the rest of the parameters. + + +Widget Structs +============== + +Some widget structs have fields which are useful to the developer, since +there are currently no accessor functions to retrieve the particular field. + +These fields should be documented as follows: + +----------------------------------------------------------------------- + + +The #GtkFixedChild-struct struct contains the following fields. +(These fields should be considered read-only. They should never be set by +an application.) + + +@widget: the child #GtkWidget. +@x: the horizontal position of the widget within the #GtkFixed + container. +@y: the vertical position of the widget within the #GtkFixed + container. +----------------------------------------------------------------------- + + +If a widget struct is completely private, use this: + +----------------------------------------------------------------------- + + +The #GtkFontSelectionDialog-struct struct contains private data only, and +should be accessed using the functions below. + +----------------------------------------------------------------------- + +Note that the links to the widget names go to the top of the page, +e.g. links to #GtkAccelLabel result in a link to the GtkAccelLabel page. +If you want to link to the widget struct, you must append '-struct', +e.g. #GtkAccelLabel-struct + +Whether a particular field in a structure is output in the +documentation is determined by adding /*< public >*/ and +/*< private >*/ comments into the header files. For instance, +GtkEditable looks like: + +----------------------------------------------------------------------- +struct _GtkEditable +{ + GtkWidget widget; + + /*< public >*/ + guint current_pos; + + guint selection_start_pos; + guint selection_end_pos; + guint has_selection : 1; + + /*< private >*/ + guint editable : 1; + guint visible : 1; + GdkIC *ic; + GdkICAttr *ic_attr; + + gchar *clipboard_text; +}; +----------------------------------------------------------------------- + +You should add these as you go along. Please send these changes +in along with your patches for the reference docs. Widget structures +are by default all private, other structures are by default all public. + + +Enumerations +============ + +A lot of the enumerations in GTK+ are currently placed in the "Standard +Enumerations" section. However, some of these are specific to a particular +widget and so should be moved to the widget's section and documented there. + +The enumeration values should be documented as follows: + +----------------------------------------------------------------------- + + +A set of bit flags used to specify the filter being set +when calling gtk_font_selection_dialog_set_filter() or +gtk_font_selection_set_filter(). + + +@GTK_FONT_FILTER_BASE: the base filter, which can't be changed by the user. +@GTK_FONT_FILTER_USER: the user filter, which can be changed from within the 'Filter' page + of the #GtkFontSelection widget. +----------------------------------------------------------------------- + + +See Also +======== + +To link to related widgets/pages, use a like below. +If there aren't any related pages, simply leave the See_Also section as it is, +and it will not be output. +Note that ancestors of widgets may automatically be added here, so +don't add them yourself. + +----------------------------------------------------------------------- + + + + + +#GtkFontSelection +the underlying widget for selecting fonts. + + + + +----------------------------------------------------------------------- + + +Including Hypertext Links +========================= + +Use the tag to include hypertext links, e.g. + +Gnome's home page is at www.gnome.org. + +Remember that the documentation may be printed, so it is probably best +to repeat the URL within the link. + +Damon, 1 June 1999 diff --git a/examples/Makefile.am b/examples/Makefile.am new file mode 100644 index 0000000..bf1d41f --- /dev/null +++ b/examples/Makefile.am @@ -0,0 +1,111 @@ +# -*- mode: makefile -*- +# +# Makefile.am - template makefile for gtk-doc module +# Copyright (C) 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# As a special exception, the above copyright owner gives unlimited +# permission to copy, distribute and modify this Makefile.am template. +# You need not follow the terms of the GNU General Public License when +# using or distributing such Makefile.am files, even though portions of +# the text of the Makefile.am appear in them. The GNU General Public +# License (GPL) does govern all other use of the material that constitutes +# the Makefile.am template. + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE= + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=2 + +# The top-level XML file. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml + +# Directories containing the source code. +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk +DOC_SOURCE_DIR= + +# Extra options to pass to gtkdoc-scangobj. Normally not needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS= + +# Extra options to supply to gtkdoc-mkdb +# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml +MKDB_OPTIONS=--xml-mode --output-format=xml + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Normally not needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB= +CFILE_GLOB= + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES= + +# Header files or dirs to ignore when scanning. Use base file/dir names +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code +IGNORE_HFILES= + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.xml building.xml changes-2.0.xml +content_files= + +# Files where gtk-doc abbrevations (#GtkWidget) are expanded +# e.g. expand_content_files=running.xml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS= +GTKDOC_LIBS= + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Comment this out if you don't want 'make check' to test you doc status +# and run some sanity checks +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/examples/README b/examples/README new file mode 100644 index 0000000..c0a5815 --- /dev/null +++ b/examples/README @@ -0,0 +1,9 @@ + +The Makefile.am here should be copied to your project's API documentation +directory, and the variables edited appropriately. + +See doc/setting-up.txt for documentation on setting up a project to use +gtk-doc. + +See the GTK+ and libglade sources for example Makefile.am option settings. + diff --git a/gtk-doc-fo.xsl b/gtk-doc-fo.xsl new file mode 100644 index 0000000..da415e1 --- /dev/null +++ b/gtk-doc-fo.xsl @@ -0,0 +1,35 @@ + + + + + + + + + 7pt + always + + + + + + #D0D0D0 + 0.5pt + solid + #575757 + 3pt + + + + + + blue + inherit + + + + + + diff --git a/gtk-doc.doap b/gtk-doc.doap new file mode 100644 index 0000000..b34b2af --- /dev/null +++ b/gtk-doc.doap @@ -0,0 +1,39 @@ + + + gtk-doc + + Documentation generator for C code. + GTK-Doc is used to document C code. +It is typically used to document the public +API of libraries, such as the GTK+ and GNOME libraries, but it can also be +used to document application code. + + + + + + + + + C + Shell + + + + Stefan Sauer + + stefkost + + + + + Matthias Clasen + + matthiasc + + + diff --git a/gtk-doc.flat.make b/gtk-doc.flat.make new file mode 100644 index 0000000..1ba29e1 --- /dev/null +++ b/gtk-doc.flat.make @@ -0,0 +1,320 @@ +# -*- mode: makefile -*- +# +# gtk-doc.make - make rules for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2004-2007 Damon Chaplin +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +SETUP_FILES = \ + $(content_files) \ + $(expand_content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +EXTRA_DIST += \ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +gtkdoc-check.test: Makefile + $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ + echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ + chmod +x $@ + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test + +if GTK_DOC_BUILD_HTML +HTML_BUILD_STAMP=html-build.stamp +else +HTML_BUILD_STAMP= +endif +if GTK_DOC_BUILD_PDF +PDF_BUILD_STAMP=pdf-build.stamp +else +PDF_BUILD_STAMP= +endif + +all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +.PHONY: all-gtk-doc + +if ENABLE_GTK_DOC +all-local: all-gtk-doc +endif + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +#### setup #### + +GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@) +GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) +GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; + +setup-build.stamp: + -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + $(AM_V_at)touch setup-build.stamp + +#### scan #### + +GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@) +GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) +GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; + +GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@) +GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) +GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; + +scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + $(GTK_DOC_V_SCAN)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + $(AM_V_at)touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@) +GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@) +GTK_DOC_V_XML_0=@echo " DOC Building XML"; + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + $(GTK_DOC_V_XML)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + $(AM_V_at)touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@) +GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@) +GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; + +GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@) +GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@) +GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$$?" = "0"; then \ + mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + $(AM_V_at)touch html-build.stamp + +#### pdf #### + +GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@) +GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@) +GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ + mkpdf_options=""; \ + gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + $(AM_V_at)touch pdf-build.stamp + +############## + +clean-local: + @rm -f *~ *.bak + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ + rm -f $(DOC_MODULE)-sections.txt; \ + fi + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +install-data-local: + @installfiles=`echo $(builddir)/html/*`; \ + if test "$$installfiles" = '$(builddir)/html/*'; \ + then echo 1>&2 'Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo ' $(INSTALL_DATA) '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +if HAVE_GTK_DOC +dist-check-gtkdoc: docs +else +dist-check-gtkdoc: + @echo "*** gtk-doc is needed to run 'make dist'. ***" + @echo "*** gtk-doc was not found when 'configure' ran. ***" + @echo "*** please install gtk-doc and rerun 'configure'. ***" + @false +endif + +dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local + @mkdir $(distdir)/html + @cp ./html/* $(distdir)/html + @-cp ./$(DOC_MODULE).pdf $(distdir)/ + @-cp ./$(DOC_MODULE).types $(distdir)/ + @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ + @cd $(distdir) && rm -f $(DISTCLEANFILES) + @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/gtk-doc.m4 b/gtk-doc.m4 new file mode 100644 index 0000000..2d12f01 --- /dev/null +++ b/gtk-doc.m4 @@ -0,0 +1,113 @@ +# -*- mode: autoconf -*- +# +# gtk-doc.m4 - configure macro to check for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# As a special exception, the above copyright owner gives unlimited +# permission to copy, distribute and modify the configure scripts that +# are the output of Autoconf when processing the Macro. You need not +# follow the terms of the GNU General Public License when using or +# distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. + +# serial 2 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) + AC_MSG_CHECKING([for gtk-doc]) + PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) + AC_MSG_RESULT($have_gtk_doc) + + if test "$have_gtk_doc" = "no"; then + AC_MSG_WARN([ + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found.]) + fi + + dnl check for tools we added during development + dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that + dnl may not be writable by the user. Currently, automake requires that the + dnl test name must end in '.test'. + dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 + AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) + AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) + + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then + AC_MSG_ERROR([ + You must have $gtk_doc_requires installed to build documentation for + $PACKAGE_NAME. Please install gtk-doc or disable building the + documentation by adding '--disable-gtk-doc' to '[$]0'.]) + fi + + dnl don't check for glib if we build glib + if test "x$PACKAGE_NAME" != "xglib"; then + dnl don't fail if someone does not have glib + PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) + fi + + dnl enable/disable output formats + AC_ARG_ENABLE([gtk-doc-html], + AS_HELP_STRING([--enable-gtk-doc-html], + [build documentation in html format [[default=yes]]]),, + [enable_gtk_doc_html=yes]) + AC_ARG_ENABLE([gtk-doc-pdf], + AS_HELP_STRING([--enable-gtk-doc-pdf], + [build documentation in pdf format [[default=no]]]),, + [enable_gtk_doc_pdf=no]) + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 + fi + AC_SUBST([AM_DEFAULT_VERBOSITY]) + + AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) +]) diff --git a/gtk-doc.make b/gtk-doc.make new file mode 100644 index 0000000..f87eaab --- /dev/null +++ b/gtk-doc.make @@ -0,0 +1,320 @@ +# -*- mode: makefile -*- +# +# gtk-doc.make - make rules for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2004-2007 Damon Chaplin +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +SETUP_FILES = \ + $(content_files) \ + $(expand_content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +EXTRA_DIST = \ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +gtkdoc-check.test: Makefile + $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ + echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ + chmod +x $@ + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test + +if GTK_DOC_BUILD_HTML +HTML_BUILD_STAMP=html-build.stamp +else +HTML_BUILD_STAMP= +endif +if GTK_DOC_BUILD_PDF +PDF_BUILD_STAMP=pdf-build.stamp +else +PDF_BUILD_STAMP= +endif + +all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +.PHONY: all-gtk-doc + +if ENABLE_GTK_DOC +all-local: all-gtk-doc +endif + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +#### setup #### + +GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@) +GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) +GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; + +setup-build.stamp: + -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + $(AM_V_at)touch setup-build.stamp + +#### scan #### + +GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@) +GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) +GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; + +GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@) +GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) +GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; + +scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + $(GTK_DOC_V_SCAN)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + $(AM_V_at)touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@) +GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@) +GTK_DOC_V_XML_0=@echo " DOC Building XML"; + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + $(GTK_DOC_V_XML)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + $(AM_V_at)touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@) +GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@) +GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; + +GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@) +GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@) +GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$$?" = "0"; then \ + mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + $(AM_V_at)touch html-build.stamp + +#### pdf #### + +GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@) +GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@) +GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ + mkpdf_options=""; \ + gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + $(AM_V_at)touch pdf-build.stamp + +############## + +clean-local: + @rm -f *~ *.bak + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ + rm -f $(DOC_MODULE)-sections.txt; \ + fi + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +install-data-local: + @installfiles=`echo $(builddir)/html/*`; \ + if test "$$installfiles" = '$(builddir)/html/*'; \ + then echo 1>&2 'Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo ' $(INSTALL_DATA) '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +if HAVE_GTK_DOC +dist-check-gtkdoc: docs +else +dist-check-gtkdoc: + @echo "*** gtk-doc is needed to run 'make dist'. ***" + @echo "*** gtk-doc was not found when 'configure' ran. ***" + @echo "*** please install gtk-doc and rerun 'configure'. ***" + @false +endif + +dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local + @mkdir $(distdir)/html + @cp ./html/* $(distdir)/html + @-cp ./$(DOC_MODULE).pdf $(distdir)/ + @-cp ./$(DOC_MODULE).types $(distdir)/ + @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ + @cd $(distdir) && rm -f $(DISTCLEANFILES) + @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/gtk-doc.pc.in b/gtk-doc.pc.in new file mode 100644 index 0000000..fbce721 --- /dev/null +++ b/gtk-doc.pc.in @@ -0,0 +1,7 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +data_dir=@datadir@/@PACKAGE@/data + +Name: gtk-doc +Description: API documentation generator +Version: @VERSION@ diff --git a/gtk-doc.xsl b/gtk-doc.xsl new file mode 100644 index 0000000..3471e6c --- /dev/null +++ b/gtk-doc.xsl @@ -0,0 +1,828 @@ + + + + + + + + + + + + + + + + 2 + + book toc + chapter toc + glossary toc + index toc + part toc + reference toc + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + en + + + + + + + + + + + + + + + + + + + No "en" localization of " + + " exists. + + + + + + + + bullet + + + + + + + + + + No "en" localization of dingbat + + exists; using "en". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.36 + + + + +FATAL-ERROR: You need the DocBook XSL Stylesheets version 1.36 or higher +to build the documentation. +Get a newer version at http://docbook.sourceforge.net/projects/xsl/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + <xsl:copy-of select="$title"/>: <xsl:apply-templates select="$home" mode="object.title.markup"/> + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.66 + + + + + + + + + + + + 1.66 + + + + + + + + + + +
+ + + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + + +
+ + + +

+ + + +

+
+ +

+ + + + + + + + +

+
+
+

+ +

+
+
+
+ + + + + + + em-dash + + + + + + + + + idx + + + + + + gls + + + + + + + + + + + + + +   |  + + + + +   ] + + + + + + + + + + + + + + + + + + + + + + + + + + + In gtk-doc.xsl: For acronym () no value found! + + + + http://foldoc.org/ + + + + + + + + + + + + + + + + + + diff --git a/gtkdoc-check.in b/gtkdoc-check.in new file mode 100755 index 0000000..8c8e917 --- /dev/null +++ b/gtkdoc-check.in @@ -0,0 +1,37 @@ +#!@PYTHON@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2007 David Nečas +# 2007-2017 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import argparse +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, check, config + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-check version %s - run documentation unit tests' % config.version) + parser.add_argument('--version', action='version', version=config.version) + options = parser.parse_args() + + common.setup_logging() + + sys.exit(check.run(options)) diff --git a/gtkdoc-depscan.in b/gtkdoc-depscan.in new file mode 100644 index 0000000..9bfaf30 --- /dev/null +++ b/gtkdoc-depscan.in @@ -0,0 +1,404 @@ +#!@PYTHON@ + +from __future__ import print_function + +import gzip, os.path, re + +from os import environ, popen, walk +from optparse import OptionParser +from sys import stderr + +from xml.sax import ContentHandler, make_parser +from xml.sax.handler import feature_external_ges + +default_books = ['atk', 'gdk', 'gdk-pixbuf', 'glib', 'gio', 'gobject', 'gtk', 'pango'] + +__comment_regex = re.compile(r'/\*.*?\*/', re.DOTALL) +__word_regex = re.compile(r'\b[A-Za-z_][A-Za-z0-9_]*\b') + +u2a_table = { 0x2018:0x27, 0x2019:0x27, 0x201C:0x22, 0x201D:0x22 } + +class Book(object): + def __init__(self, name, folders, version=None): + self.__catalog = None + self.__name = name + self.__symbols = None + self.__timestamp = 0 + self.__title = None + self.__version = version + + for f in folders: + catalogs = map( + lambda n: os.path.join(f, name, n % name), + ['%s.devhelp2', '%s.devhelp2.gz']) + catalogs = map( + lambda n: (os.path.getmtime(n), n), + filter(os.path.isfile, catalogs)) + + catalogs.sort() + + if catalogs: + self.__catalog = catalogs[-1][1] + break + + if not self.__catalog: + raise IOError('No devhelp book found for "%s"' % name) + + def __cmp__(self, other): + if isinstance(other, Book): + return cmp(self.name, other.name) + + return 0 + + def __repr__(self): + return '' % self.__name + + def parse(self): + timestamp = os.path.getmtime(self.__catalog) + + if not self.__symbols or timestamp > self.__timestamp: + class DevhelpContentHandler(ContentHandler): + def __init__(self, book, symbols): + self.__book = book + self.__symbols = symbols + + def startElement(self, name, attrs): + if 'book' == name: + self.title = attrs.get('title') + return + + if 'keyword' == name: + symbol = Symbol.from_xml(self.__book, attrs) + if symbol: self.__symbols[symbol.name] = symbol + return + + self.__symbols, self.__timestamp = dict(), timestamp + handler = DevhelpContentHandler(self, self.__symbols) + + parser = make_parser() + parser.setFeature(feature_external_ges, False) + parser.setContentHandler(handler) + + if self.__catalog.endswith('.gz'): + parser.parse(gzip.open(self.__catalog)) + + else: + parser.parse(open(self.__catalog)) + + self.__title = handler.title + + def _get_symbols(self): + self.parse(); return self.__symbols + def _get_title(self): + self.parse(); return self.__title + + def find_requirements(self): + requirements = dict() + + for symbol in self.symbols.values(): + if not symbol.matches: + continue + + if symbol.since and symbol.since > self.version: + symbol_list = requirements.get(symbol.since, []) + requirements[symbol.since] = symbol_list + symbol_list.append(symbol) + + return requirements + + catalog = property(lambda self: self.__catalog) + name = property(lambda self: self.__name) + version = property(lambda self: self.__version) + + symbols = property(_get_symbols) + title = property(_get_title) + +class Symbol(object): + known_attributes = ('name', 'type', 'link', 'deprecated', 'since') + + class DeprecationInfo(object): + def __init__(self, text): + if text.count(':'): + pair = text.split(':', 1) + + self.__version = Symbol.VersionInfo(pair[0]) + self.__details = pair[1].strip() + + else: + self.__version = None + self.__details = text.strip() + + def __cmp__(self, other): + if isinstance(other, Symbol.DeprecationInfo): + return cmp(self.version, other.version) + + if isinstance(other, Symbol.VersionInfo): + return cmp(self.version, other) + + return 1 + + def __str__(self): + if not self.__version: + return self.__details and str(self.__details) or 'Deprecated' + + if self.__details: + return 'Since %s: %s' % (self.__version, self.__details) + + return 'Since %s' % self.__version + + details = property(lambda self: self.__details) + version = property(lambda self: self.__version) + + class VersionInfo(object): + def __init__(self, text): + match = re.match(r'^\w*\s*((?:\d+\.)*\d+)', text) + + self.__numbers = map(int, match.group(1).split('.')) + self.__hash = reduce(lambda x, y: x * 1000 + y, reversed(self.__numbers)) + self.__text = text.strip() + + def __get_number(self, index): + if len(self.__numbers) > index: + return self.__numbers[index] + + return 0 + + def __cmp__(self, other): + if isinstance(other, Symbol.VersionInfo): + return cmp(self.numbers, other.numbers) + + return 1 + + def __hash__(self): + return self.__hash + + def __repr__(self): + return '.'.join(map(str, self.__numbers)) + + major = property(lambda self: self.__get_number(0)) + minor = property(lambda self: self.__get_number(1)) + patch = property(lambda self: self.__get_number(2)) + numbers = property(lambda self: self.__numbers) + text = property(lambda self: self.__text) + + @classmethod + def from_xml(cls, book, attrs): + name, type, link, deprecated, since = map(attrs.get, Symbol.known_attributes) + + name = name.strip().translate(u2a_table) + + if name.endswith('()'): + if not type in ('function', 'macro'): + type = (name[0].islower() and 'function' or 'macro') + + name = name[:-2].strip() + + words = name.split(' ') + + if len(words) > 1: + if words[0] in ('enum', 'struct', 'union'): + if not type: type = words[0] + name = name[len(words[0]):].strip() + elif 'property' == words[-1]: + assert('The' == words[0]) + owner = link.split('#', 1)[1].split('-', 1)[0] + type, name = 'property', '%s::%s' % (owner, name.split('"')[1]) + elif 'signal' == words[-1]: + assert('The' == words[0]) + owner = link.split('#', 1)[1].split('-', 1)[0] + type, name = 'signal', '%s:%s' % (owner, name.split('"')[1]) + + if not type: return None + + if None != deprecated: deprecated = Symbol.DeprecationInfo(deprecated) + if since: since = Symbol.VersionInfo(since) + + if name.count(' '): + print >>stderr, ( + 'WARNING: Malformed symbol name: "%s" (type=%s) in %s.' % ( + name, type, book.name)) + + return Symbol(book, name, type, link, deprecated, since) + + def __init__(self, book, name, type, link=None, deprecated=None, since=None): + self.__book = book + self.__name = name + self.__type = type + self.__link = link + self.__deprecated = deprecated + self.__since = since + self.__matches = [] + + def __repr__(self): + return ( + '' % ( + self.name, self.type, self.since, self.deprecated)) + + + book = property(lambda self: self.__book) + name = property(lambda self: self.__name) + type = property(lambda self: self.__type) + link = property(lambda self: self.__link) + deprecated = property(lambda self: self.__deprecated) + matches = property(lambda self: self.__matches) + since = property(lambda self: self.__since) + +def parse_cmdline(): + options = OptionParser(version="@VERSION@") + + options.add_option('-b', '--book', dest='books', + help='name of a devhelp book to consider', + default=[], action='append') + options.add_option('-d', '--html-dir', metavar='PATH', dest='dirs', + help='path of additional folders with devhelp books', + default=[], action='append') + options.add_option('-s', '--summarize', action='store_true', default=False, + help='print only a brief summary', dest='summarize') + options.add_option('-u', '--list-unknown', action='store_true', default=False, + help='list symbols not found in any book', dest='unknown') + options.add_option('-v', '--verbose', action='store_true', default=False, + help='print additional information') + + return options.parse_args() + +def merge_gnome_path(options): + path = environ.get('GNOME2_PATH') + path = path and path.split(':') or [] + + prefix = popen( + '@PKG_CONFIG@ --variable=prefix glib-2.0' + ).readline().rstrip() + + path.insert(0, prefix) + path = filter(None, [p.strip() for p in path]) + + path = [[ + os.path.join(p, 'share', 'devhelp', 'books'), + os.path.join(p, 'share', 'gtk-doc', 'html')] + for p in path] + + path = reduce(list.__add__, path) + path = filter(os.path.isdir, path) + + options.dirs += path + +def summarize_matches(matches): + counts = {} + for filename, lineno, symbol in matches: + if not isinstance(symbol, Symbol): + if options.verbose: + print('%s:%d: unknown symbol %s' % (filename, lineno, symbol)) + continue + + since = '%s-%s' % (symbol.book.name, symbol.since) + name = symbol.name + if since not in counts: + counts[since] = {} + counts[since][name] = counts[since].get(name, 0) + 1 + + for since, stats in counts.items(): + counts[since] = list(sorted(stats.items(), key=lambda x: -x[1])) + + return counts + +if '__main__' == __name__: + options, args = parse_cmdline() + + merge_gnome_path(options) + + if not options.books: + options.books = default_books + + def trace(message, *args): + if options.verbose: print(message % args) + + def parse_book(name): + try: + match = re.match(r'^(.*?)(?::(\d+(?:\.\d+)*))?$', name) + name, version = match.groups() + trace('reading book: %s', name) + + version = version and Symbol.VersionInfo(version) + return name, Book(name, options.dirs, version) + + except IOError as e: + print >>stderr, 'WARNING: %s.' % e + + def scan_source_file(name): + contents = None + + try: + contents = __comment_regex.sub('', file(name).read()) + + except IOError as e: + print >>stderr, e + + if contents: + trace('scanning: %s', name) + lines = contents.split('\n') + + for lineno in range(len(lines)): + for word in __word_regex.findall(lines[lineno]): + symbol = symbols.get(word) + + if symbol: + symbol.matches.append((name, lineno, symbol)) + + elif options.unknown and word.find('_') > 0: + unknown_symbols.append((name, lineno, word)) + + unknown_symbols = [] + matches, symbols = dict(), dict() + books = dict(filter(None, map(parse_book, set(options.books)))) + + for book in books.values(): + symbols.update(book.symbols) + + for name in args: + if os.path.isdir(name): + for path, dirs, files in walk(name): + for f in files: + if f.endswith('.c'): + scan_source_file(os.path.join(path, f)) + + else: + scan_source_file(name) + + matches = [] + + for book in books.values(): + requirements = book.find_requirements().items() + requirements.sort() + + if requirements: + for symbol in requirements[-1][1]: + matches += symbol.matches + + if options.unknown: + matches += unknown_symbols + + matches.sort() + + if options.summarize: + summary = summarize_matches(matches) + for since in sorted(summary.keys()): + print('%s required for' % since) + for x in summary[since]: + print(' %u %s' % (x[1], x[0])) + else: + for filename, lineno, symbol in matches: + if isinstance(symbol, Symbol): + args = filename, lineno, symbol.book.name, symbol.since, symbol.name + print('%s:%d: %s-%s required for %s' % args) + + elif options.verbose: + print('%s:%d: unknown symbol %s' % (filename, lineno, symbol)) + + if options.unknown: + unknown = [m[2].split('_')[0].lower() for m in unknown_symbols] + unknown = list(set(unknown)) + unknown.sort() + + print('unknown prefixes: %s' % ', '.join(unknown)) + + raise SystemExit(matches and 1 or 0) diff --git a/gtkdoc-fixxref.in b/gtkdoc-fixxref.in new file mode 100755 index 0000000..44f6bd1 --- /dev/null +++ b/gtkdoc-fixxref.in @@ -0,0 +1,57 @@ +#!@PYTHON@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import argparse +import os +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, fixxref + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-fixxref version %s - fix cross references in html files' % config.version) + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('--module', required=True, + help='Name of the doc module being processed.') + parser.add_argument('--module-dir', default='', + help='The directory which contains the generated HTML.') + parser.add_argument('--html-dir', default='', + help='The directory where gtk-doc generated documentation is' + 'installed.') + parser.add_argument('--extra-dir', default=[], action='append', + help='Directories to recursively scan for indices (*.devhelp2)' + 'in addition to HTML_DIR') + parser.add_argument('--src-lang', default='c', + help='Programing language used for syntax highlighting. The' + 'available languages depend on the source' + 'highlighter you use.') + + options = parser.parse_args() + + if not options.module_dir: + options.module_dir = os.path.join(options.html_dir, options.module) + + common.setup_logging() + + fixxref.Run(options) diff --git a/gtkdoc-mkdb.in b/gtkdoc-mkdb.in new file mode 100755 index 0000000..42d5731 --- /dev/null +++ b/gtkdoc-mkdb.in @@ -0,0 +1,61 @@ +#!@PYTHON@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +from __future__ import print_function + +import argparse +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, mkdb + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('--module', required=True, + help='Name of the doc module being parsed') + parser.add_argument('--source-dir', action='append', dest='source_dir', default=[]) + parser.add_argument('--source-suffixes', dest='source_suffixes', default='') + parser.add_argument('--ignore-files', dest='ignore_files', default='') + parser.add_argument('--output-dir', dest='output_dir', default='') + parser.add_argument('--tmpl-dir', dest='tmpl_dir', help="DEPRECATED") + parser.add_argument('--main-sgml-file', dest='main_sgml_file', default='') + parser.add_argument('--expand-content-files', dest='expand_content_files', default='') + group = parser.add_mutually_exclusive_group() + group.add_argument('--sgml-mode', action='store_true', default=False, dest='sgml_mode') + group.add_argument('--xml-mode', action='store_true', default=False, dest='xml_mode') + parser.add_argument('--default-stability', dest='default_stability', + choices=['', 'Stable', 'Private', 'Unstable'], default='') + parser.add_argument('--default-includes', dest='default_includes', default='') + parser.add_argument('--output-format', default='xml') # MUST be 'xml', deprecate? + parser.add_argument('--name-space', dest='name_space', default='') + parser.add_argument('--outputallsymbols', default=False, action='store_true') + parser.add_argument('--outputsymbolswithoutsince', default=False, action='store_true') + + options = parser.parse_args() + + if options.output_format != "xml": + sys.exit('Invalid format "%s" passed to --output.format' % options.output_format) + + common.setup_logging() + + mkdb.Run(options) diff --git a/gtkdoc-mkhtml.in b/gtkdoc-mkhtml.in new file mode 100644 index 0000000..0d0a15d --- /dev/null +++ b/gtkdoc-mkhtml.in @@ -0,0 +1,51 @@ +#!@PYTHON@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Owen Taylor +# 2001-2005 Damon Chaplin +# 2009-2017 Stefan Sauer +# 2017 Jussi Pakkanen +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import argparse +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, mkhtml + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-mkhtml version %s - generate documentation in html format' % config.version) + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('--verbose', default=False, action='store_true', + help='Print extra output while processing') + parser.add_argument('--path', default=[], action='append', + help='Extra source directories') + parser.add_argument('args', nargs='*', + help='MODULE DRIVER_FILE') + # TODO: only for testing, replace with env-var + parser.add_argument('--uninstalled', action='store_true', default=False, + help='???') + + options = parser.parse_args() + if len(options.args) < 2: + sys.exit('Too few arguments') + + common.setup_logging() + + sys.exit(mkhtml.run(options)) diff --git a/gtkdoc-mkhtml2.in b/gtkdoc-mkhtml2.in new file mode 100644 index 0000000..06355cc --- /dev/null +++ b/gtkdoc-mkhtml2.in @@ -0,0 +1,44 @@ +#!@PYTHON@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2018 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import argparse +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, mkhtml2 + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-mkhtml version %s - generate documentation in html format' % config.version) + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('args', nargs='*', + help='MODULE DRIVER_FILE') + # TODO: only for testing, replace with env-var + parser.add_argument('--uninstalled', action='store_true', default=False, + help='???') + + options = parser.parse_args() + if len(options.args) != 2: + sys.exit('Too few arguments') + + common.setup_logging() + + sys.exit(mkhtml2.run(options)) diff --git a/gtkdoc-mkman.in b/gtkdoc-mkman.in new file mode 100644 index 0000000..c5445cd --- /dev/null +++ b/gtkdoc-mkman.in @@ -0,0 +1,49 @@ +#!@PYTHON@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Owen Taylor +# 2001-2005 Damon Chaplin +# 2009-2017 Stefan Sauer +# 2017 Jussi Pakkanen +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import argparse +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, mkman + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-mkman version %s - generate documentation in man format' % config.version) + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('--verbose', default=False, action='store_true', + help='Print extra output while processing') + parser.add_argument('--path', default=[], action='append', + help='Extra source directories') + parser.add_argument('args', nargs=2, + help='MODULE DRIVER_FILE') + # TODO: only for testing, replace with env-var + parser.add_argument('--uninstalled', action='store_true', default=False, + help='???') + + options = parser.parse_args() + + common.setup_logging() + + sys.exit(mkman.run(options)) diff --git a/gtkdoc-mkpdf.in b/gtkdoc-mkpdf.in new file mode 100755 index 0000000..e8c0c03 --- /dev/null +++ b/gtkdoc-mkpdf.in @@ -0,0 +1,48 @@ +#!@PYTHON@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2009-2017 Stefan Sauer +# 2017 Jussi Pakkanen +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import argparse +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, mkpdf + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-mkpdf version %s - generate documentation in pdf format' % config.version) + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('--verbose', default=False, action='store_true', + help='Print extra output while processing.') + parser.add_argument('--path', default=[], action='append', + help='Extra source directories.') + parser.add_argument('--imgdir', default=[], action='append', + help='Extra image directories.') + parser.add_argument('--uninstalled', action='store_true', default=False, + help='???') + parser.add_argument('args', nargs=2, + help='MODULE DRIVER_FILE') + + options = parser.parse_args() + + common.setup_logging() + + sys.exit(mkpdf.run(options)) diff --git a/gtkdoc-rebase.in b/gtkdoc-rebase.in new file mode 100755 index 0000000..17a71c2 --- /dev/null +++ b/gtkdoc-rebase.in @@ -0,0 +1,56 @@ +#!@PYTHON@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007 David Necas (Yeti) +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import argparse +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, rebase + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-rebase version %s - rewrite links in html docs' % config.version) + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('--html-dir', required=True, + help='The directory which contains the installed HTML') + parser.add_argument('--other-dir', default=[], action='append', + help='Directories to recursively scan for indices (*.devhelp2).' + 'May be used more than once for multiple directories.') + parser.add_argument('--dest-dir', default='', + help='Staging area virtual root, this prefix will be removed' + 'from HTML_DIR for relative link calculation.') + parser.add_argument('--aggressive', action='store_true', default=False, + help='Rebase links to all files that are under a directory matching a package name.') + parser.add_argument('--verbose', action='store_true', default=False, + help='Print extra output while processing') + parser.add_argument('--online', action='store_true', default=False, + help='Prefer cross-references to online documents') + parser.add_argument('--relative', action='store_true', default=False, + help='Prefer relative cross-references') + + options = parser.parse_args() + + common.setup_logging() + + sys.exit(rebase.run(options)) diff --git a/gtkdoc-scan.in b/gtkdoc-scan.in new file mode 100755 index 0000000..954c811 --- /dev/null +++ b/gtkdoc-scan.in @@ -0,0 +1,59 @@ +#!@PYTHON@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +from __future__ import print_function + +import argparse +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, scan + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-scan version %s - scan header files for public symbols' % config.version) + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('--module', required=True, + help='Name of the doc module being processed.') + parser.add_argument('--source-dir', action='append', default=[], + help='Directories containing the source files to scan') + parser.add_argument('--ignore-headers', default='', + help='A space-separated list of header files/dirs not to scan') + parser.add_argument('--output-dir', default='.', + help='The directory where the results are stored') + parser.add_argument('--deprecated-guards', default='does_not_match_any_cpp_symbols_at_all_nope', + help='A |-separated list of symbols used as deprecation guards') + parser.add_argument('--ignore-decorators', default='(?=no)match', + help='A |-separated list of additional decorators in' + 'declarations that should be ignored') + parser.add_argument('--rebuild-sections', action='store_true', default=False, + help='Rebuild (overwrite) the MODULE-sections.txt file') + parser.add_argument('--rebuild-types', action='store_true', default=False, + help='Automatically recreate the MODULE.types file using' + 'all the *_get_type() functions found') + parser.add_argument('headers', nargs='*') + + options = parser.parse_args() + + common.setup_logging() + + scan.Run(options) diff --git a/gtkdoc-scangobj.in b/gtkdoc-scangobj.in new file mode 100644 index 0000000..4cbe130 --- /dev/null +++ b/gtkdoc-scangobj.in @@ -0,0 +1,71 @@ +#!@PYTHON@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import argparse +import os +import sys +sys.path.append('@PYTHON_PACKAGE_DIR@') + +from gtkdoc import common, config, scangobj + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='gtkdoc-rebase version %s - introspect g-objects' % config.version) + parser.add_argument('--version', action='version', version=config.version) + parser.add_argument('--module', required=True, + help='Name of the doc module being parsed') + parser.add_argument('--types', default='', + help='The name of the file to store the types in') + parser.add_argument('--type-init-func', default='', + help='The init function(s) to call instead of g_type_init()') + parser.add_argument('--query-child-properties', default='', + help='A function that returns a list of child properties for a class') + parser.add_argument('--output-dir', default='.', + help='The directory where the results are stored') + parser.add_argument('--cc', default='', help='The compiler to use') + parser.add_argument('--ld', default='', help='The linker to use') + parser.add_argument('--cflags', default='', help='Compiler flags') + parser.add_argument('--ldflags', default='', help='Linker flags') + parser.add_argument('--run', default='', + help='Command for running the scanner') + parser.add_argument('--verbose', action='store_true', default=False, + help='Print extra output while processing') + + options = parser.parse_args() + + if options.types == '': + options.types = os.path.join(options.output_dir, options.module + '.types') + + if not options.cc: + options.cc = os.environ.get('CC', 'gcc') + if not options.ld: + options.ld = os.environ.get('LD', options.cc) + if not options.cflags: + options.cflags = os.environ.get('CFLAGS', '') + if not options.ldflags: + options.ldflags = os.environ.get('LDFLAGS', '') + if not options.run: + options.run = os.environ.get('RUN', '') + + common.setup_logging() + + sys.exit(scangobj.run(options)) diff --git a/gtkdoc/__init__.py b/gtkdoc/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gtkdoc/__init__.py diff --git a/gtkdoc/check.py b/gtkdoc/check.py new file mode 100755 index 0000000..7f32b60 --- /dev/null +++ b/gtkdoc/check.py @@ -0,0 +1,155 @@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2007 David Nečas +# 2007-2017 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +""" +The check tool runs various tests on built documentation and outputs test +results. Can be run druring make check, by adding this to the documentations +Makefile.am: TESTS = $(GTKDOC_CHECK). +""" + +# Support both Python 2 and 3 +from __future__ import print_function + +import os +import re +from glob import glob + +from . import common + + +class FileFormatError(Exception): + pass + + +def grep(regexp, lines, what): + pattern = re.compile(regexp) + for line in lines: + for match in re.finditer(pattern, line): + return match.group(1) + raise FileFormatError(what) + + +def check_empty(filename): + with open(filename, "rb") as f: + count = sum(1 for line in f if line.strip()) + return count + + +def check_includes(filename): + # Check that each XML file in the xml directory is included in doc_main_file + with common.open_text(filename) as f: + lines = f.read().splitlines() + num_missing = 0 + for include in glob('xml/*.xml'): + try: + next(line for line in lines if include in line) + except StopIteration: + num_missing += 1 + print('%s:1:E: doesn\'t appear to include "%s"' % (filename, include)) + + return num_missing + + +def get_variable(env, lines, variable): + value = env.get(variable, + grep(r'^\s*' + variable + r'\s*=\s*(\S+)', lines, variable)) + return value + + +def read_file(filename): + with common.open_text(filename) as f: + return f.read().splitlines() + + +def run_tests(workdir, doc_module, doc_main_file): + checks = 4 + + print('Running suite(s): gtk-doc-' + doc_module) + + # Test #1 + statusfilename = os.path.join(workdir, doc_module + '-undocumented.txt') + statusfile = read_file(statusfilename) + try: + undocumented = int(grep(r'^(\d+)\s+not\s+documented\.\s*$', + statusfile, 'number of undocumented symbols')) + incomplete = int(grep(r'^(\d+)\s+symbols?\s+incomplete\.\s*$', + statusfile, 'number of incomplete symbols')) + except FileFormatError as e: + print('Cannot find %s in %s' % (str(e), statusfilename)) + return checks # consider all failed + + total = undocumented + incomplete + if total: + print(doc_module + '-undocumented.txt:1:E: %d undocumented or incomplete symbols' % total) + + # Test #2 + undeclared = check_empty(os.path.join(workdir, doc_module + '-undeclared.txt')) + if undeclared: + print(doc_module + '-undeclared.txt:1:E: %d undeclared symbols\n' % undeclared) + + # Test #3 + unused = check_empty(os.path.join(workdir, doc_module + '-unused.txt')) + if unused: + print(doc_module + '-unused.txt:1:E: %d unused documentation entries\n' % unused) + + # Test #4 + missing_includes = check_includes(os.path.join(workdir, doc_main_file)) + + # Test Summary + failed = (total > 0) + (undeclared != 0) + (unused != 0) + (missing_includes != 0) + rate = 100.0 * (checks - failed) / checks + print("%.1f%%: Checks %d, Failures: %d" % (rate, checks, failed)) + return failed + + +def run(options=None): + """Runs the tests. + + Returns: + int: a system exit code. + """ + + # Get parameters from test env, if not there try to grab them from the makefile + # We like Makefile.am more but builddir does not necessarily contain one. + makefilename = 'Makefile.am' + if not os.path.exists(makefilename): + makefilename = 'Makefile' + makefile = [] + try: + makefile = read_file(makefilename) + except (OSError, IOError): + pass + + # For historic reasons tests are launched in srcdir + workdir = os.environ.get('BUILDDIR', None) + if not workdir: + workdir = '.' + + try: + doc_module = get_variable(os.environ, makefile, 'DOC_MODULE') + doc_main_file = get_variable(os.environ, makefile, 'DOC_MAIN_SGML_FILE') + except FileFormatError as e: + print('Cannot find %s in %s' % (str(e), makefilename)) + return 1 + + doc_main_file = doc_main_file.replace('$(DOC_MODULE)', doc_module) + + return run_tests(workdir, doc_module, doc_main_file) diff --git a/gtkdoc/common.py b/gtkdoc/common.py new file mode 100644 index 0000000..f62e6de --- /dev/null +++ b/gtkdoc/common.py @@ -0,0 +1,614 @@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2001 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +# Support both Python 2 and 3 +from __future__ import print_function + +from collections import OrderedDict +import logging +import os +import re +import subprocess +import sys +import six +import codecs + +from . import config + + +def open_text(filename, mode='r', encoding='utf-8'): + """An open() which removes some differences between Python 2 and 3 and + has saner defaults. + + Unlike the builtin open by default utf-8 is use and not the locale + encoding (which is ANSI on Windows for example, not very helpful) + + For Python 2, files are opened in text mode like with Python 3. + """ + + if mode not in ('r', 'w'): + raise ValueError("mode %r not supported, must be 'r' or 'w'" % mode) + + if six.PY3: + return open(filename, mode, encoding=encoding) + else: + # We can't use io.open() here as its write method is too strict and + # only allows unicode instances and not everything in the codebase + # forces unicode at the moment. codecs.open() on the other hand + # happily takes ASCII str and decodes it. + return codecs.open(filename, mode, encoding=encoding) + + +def setup_logging(): + """Check GTKDOC_TRACE environment variable. + + Set python log level to the value of the environment variable (DEBUG, INFO, + WARNING, ERROR and CRITICAL) or INFO if the environment variable is empty. + """ + log_level = os.environ.get('GTKDOC_TRACE', 'WARNING') + if log_level == '': + log_level = 'WARNING' + logging.basicConfig(stream=sys.stdout, + level=logging.getLevelName(log_level.upper()), + format='%(asctime)s:%(filename)s:%(funcName)s:%(lineno)d:%(levelname)s:%(message)s') + # When redirecting the output on python2 or if run with a non utf-8 locale + # we get UnicodeEncodeError: + encoding = sys.stdout.encoding + if 'PYTHONIOENCODING' not in os.environ and (not encoding or encoding != 'UTF-8'): + sys.stdout.flush() + if six.PY3: + sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1) + else: + import codecs + sys.stdout = codecs.getwriter('utf8')(sys.stdout) + + +def UpdateFileIfChanged(old_file, new_file, make_backup): + """Compares the old version of the file with the new version and if the + file has changed it moves the new version into the old versions place. This + is used so we only change files if needed, so we can do proper dependency + tracking. + + Args: + old_file (str): The pathname of the old file. + new_file (str): The pathname of the new version of the file. + make_backup (bool): True if a backup of the old file should be kept. + It will have the .bak suffix added to the file name. + + Returns: + bool: It returns False if the file hasn't changed, and True if it has. + """ + + logging.debug("Comparing %s with %s...", old_file, new_file) + + if os.path.exists(old_file): + old_contents = new_contents = None + with open(old_file, 'rb') as f: + old_contents = f.read() + with open(new_file, 'rb') as f: + new_contents = f.read() + if old_contents == new_contents: + os.unlink(new_file) + logging.debug("-> content is the same.") + return False + + if make_backup: + backupname = old_file + '.bak' + if os.path.exists(backupname): + os.unlink(backupname) + os.rename(old_file, backupname) + else: + os.unlink(old_file) + logging.debug("-> content differs.") + else: + logging.debug("-> %s created.", old_file) + + os.rename(new_file, old_file) + return True + + +def GetModuleDocDir(module_name): + """Get the docdir for the given module via pkg-config + + Args: + module_name (string): The module, e.g. 'glib-2.0' + + Returns: + str: the doc directory or None + """ + path = None + try: + path = subprocess.check_output([config.pkg_config, '--variable=prefix', module_name], universal_newlines=True) + except subprocess.CalledProcessError: + return None + return os.path.join(path.strip(), 'share/gtk-doc/html') + + +def LogWarning(filename, line, message): + """Log a warning in gcc style format + + Args: + file (str): The file the error comes from + line (int): line number in the file + message (str): the error message to print + """ + filename = filename or "unknown" + + # TODO: write to stderr + print("%s:%d: warning: %s" % (filename, line, message)) + + +def CreateValidSGMLID(xml_id): + """Creates a valid SGML 'id' from the given string. + + According to http://www.w3.org/TR/html4/types.html#type-id "ID and NAME + tokens must begin with a letter ([A-Za-z]) and may be followed by any number + of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), + and periods (".")." + + When creating SGML IDS, we append ":CAPS" to all all-caps identifiers to + prevent name clashes (SGML ids are case-insensitive). (It basically never is + the case that mixed-case identifiers would collide.) + + Args: + id (str): The text to be converted into a valid SGML id. + + Returns: + str: The converted id. + """ + + # Special case, '_' would end up as '' so we use 'gettext-macro' instead. + if xml_id == '_': + return "gettext-macro" + + xml_id = re.sub(r'[,;]', '', xml_id) + xml_id = re.sub(r'[_ ]', '-', xml_id) + xml_id = re.sub(r'^-+', '', xml_id) + xml_id = xml_id.replace('::', '-') + xml_id = xml_id.replace(':', '--') + + # Append ":CAPS" to all all-caps identifiers + # FIXME: there are some inconsistencies here, we have index files containing e.g. TRUE--CAPS + if xml_id.isupper() and not xml_id.endswith('-CAPS'): + xml_id += ':CAPS' + + return xml_id + + +# Parsing helpers (move to mkdb ?) + +class ParseError(Exception): + pass + + +def PreprocessStructOrEnum(declaration): + """Trim a type declaration for display. + + Removes private sections and comments from the declaration. + + Args: + declaration (str): the type declaration (struct or enum) + + Returns: + str: the trimmed declaration + """ + # Remove private symbols + # Assume end of declaration if line begins with '}' + declaration = re.sub(r'\n?[ \t]*/\*\s*<\s*(private|protected)\s*>\s*\*/.*?(?:/\*\s*<\s*public\s*>\s*\*/|(?=^\}))', + '', declaration, flags=re.MULTILINE | re.DOTALL) + + # Remove all other comments + declaration = re.sub(r'\n\s*/\*.*?\*/\s*\n', r'\n', declaration, flags=re.MULTILINE | re.DOTALL) + declaration = re.sub(r'/\*([^*]+|\*(?!/))*\*/', r' ', declaration) + declaration = re.sub(r'\n\s*//.*?\n', r'\n', declaration, flags=re.MULTILINE | re.DOTALL) + declaration = re.sub(r'//.*', '', declaration) + + return declaration + + +# TODO: output_function_params is always passed as 0 +# TODO: we always pass both functions +def ParseStructDeclaration(declaration, is_object, output_function_params, typefunc=None, namefunc=None): + """ Parse a struct declaration. + + Takes a structure declaration and breaks it into individual type declarations. + + Args: + declaration (str): the declaration to parse + is_object (bool): true if this is an object structure + output_function_params (bool): true if full type is wanted for function pointer members + typefunc (func): function to apply to type + namefunc (func): function to apply to name + + Returns: + dict: map of (symbol, decl) pairs describing the public declaration + """ + + # For forward struct declarations just return an empty array. + if re.search(r'(?:struct|union)\s+\S+\s*;', declaration, flags=re.MULTILINE | re.DOTALL): + return {} + + # Remove all private parts of the declaration + # For objects, assume private + if is_object: + declaration = re.sub(r'''((?:struct|union)\s+\w*\s*\{) + .*? + (?:/\*\s*<\s*public\s*>\s*\*/|(?=\}))''', + r'\1', declaration, flags=re.MULTILINE | re.DOTALL | re.VERBOSE) + + # Remove g_iface, parent_instance and parent_class if they are first member + declaration = re.sub(r'(\{)\s*(\w)+\s+(g_iface|parent_instance|parent_class)\s*;', r'\1', declaration) + + declaration = PreprocessStructOrEnum(declaration) + + if declaration.strip() == '': + return {} + + # Prime match after "struct/union {" declaration + match = re.search(r'(?:struct|union)\s+\w*\s*\{', declaration, flags=re.MULTILINE | re.DOTALL) + if not match: + raise ParseError('Declaration "%s" does not begin with "struct/union [NAME] {"' % declaration) + + logging.debug('public fields in struct/union: %s', declaration) + + result = OrderedDict() + + # Treat lines in sequence, allowing singly nested anonymous structs and unions. + for m in re.finditer(r'\s*([^{;]+(\{[^\}]*\}[^{;]+)?);', declaration[match.end():], flags=re.MULTILINE | re.DOTALL): + line = m.group(1) + + logging.debug('checking "%s"', line) + + if re.search(r'^\s*\}\s*\w*\s*$', line): + break + + # FIXME: Just ignore nested structs and unions for now + if '{' in line: + continue + + # ignore preprocessor directives + line = re.sub(r'^#.*?\n\s*', '', line, flags=re.MULTILINE | re.DOTALL) + + if re.search(r'^\s*\}\s*\w*\s*$', line): + break + + func_match = re.search(r'''^ + (const\s+|G_CONST_RETURN\s+|unsigned\s+|signed\s+|long\s+|short\s+)*(struct\s+|enum\s+)? # mod1 + (\w+)\s* # type + (\**(?:\s*restrict)?)\s* # ptr1 + (const\s+)? # mod2 + (\**\s*) # ptr2 + (const\s+)? # mod3 + \(\s*\*\s*(\w+)\s*\)\s* # name + \(([^)]*)\)\s* # func_params + $''', line, flags=re.VERBOSE) + vars_match = re.search(r'''^ + ((?:const\s+|volatile\s+|unsigned\s+|signed\s+|short\s+|long\s+)?)(struct\s+|enum\s+)? # mod1 + (\w+)\s* # type + (\** \s* const\s+)? # mod2 + (.*) # variables + $''', line, flags=re.VERBOSE) + + # Try to match structure members which are functions + if func_match: + mod1 = func_match.group(1) or '' + if func_match.group(2): + mod1 += func_match.group(2) + func_type = func_match.group(3) + ptr1 = func_match.group(4) + mod2 = func_match.group(5) or '' + ptr2 = func_match.group(6) + mod3 = func_match.group(7) or '' + name = func_match.group(8) + func_params = func_match.group(9) + ptype = func_type + if typefunc: + ptype = typefunc(func_type, '%s' % func_type) + pname = name + if namefunc: + pname = namefunc(name) + + if output_function_params: + result[name] = '%s%s%s%s%s%s (*%s) (%s)' % ( + mod1, ptype, ptr1, mod2, ptr2, mod3, pname, func_params) + else: + result[name] = '%s ()' % pname + + # Try to match normal struct fields of comma-separated variables/ + elif vars_match: + mod1 = vars_match.group(1) or '' + if vars_match.group(2): + mod1 += vars_match.group(2) + vtype = vars_match.group(3) + ptype = vtype + if typefunc: + ptype = typefunc(vtype, '%s' % vtype) + mod2 = vars_match.group(4) or '' + if mod2: + mod2 = ' ' + mod2 + var_list = vars_match.group(5) + + logging.debug('"%s" "%s" "%s" "%s"', mod1, vtype, mod2, var_list) + + mod1 = mod1.replace(' ', ' ') + mod2 = mod2.replace(' ', ' ') + + for n in var_list.split(','): + # Each variable can have any number of '*' before the identifier, + # and be followed by any number of pairs of brackets or a bit field specifier. + # e.g. *foo, ***bar, *baz[12][23], foo : 25. + m = re.search( + r'^\s* (\**(?:\s*restrict\b)?) \s* (\w+) \s* (?: ((?:\[[^\]]*\]\s*)+) | (:\s*\d+)?) \s* $', + n, flags=re.VERBOSE) + if m: + ptrs = m.group(1) + name = m.group(2) + array = m.group(3) or '' + bits = m.group(4) + if bits: + bits = ' ' + bits + else: + bits = '' + if ptrs and not ptrs.endswith('*'): + ptrs += ' ' + + array = array.replace(' ', ' ') + bits = bits.replace(' ', ' ') + + pname = name + if namefunc: + pname = namefunc(name) + + result[name] = '%s%s%s %s%s%s%s;' % (mod1, ptype, mod2, ptrs, pname, array, bits) + + logging.debug('Matched line: %s%s%s %s%s%s%s', mod1, ptype, mod2, ptrs, pname, array, bits) + else: + logging.warning('Cannot parse struct field: "%s"', n) + + else: + logging.warning('Cannot parse structure field: "%s"', line) + + return result + + +def ParseEnumDeclaration(declaration): + """Parse an enum declaration. + + This function takes a enumeration declaration and breaks it into individual + enum member declarations. + + Args: + declaration (str): the declaration to parse + + Returns: + str: list of strings describing the public declaration + """ + + # For forward struct declarations just return an empty array. + if re.search(r'enum\s+\S+\s*;', declaration, flags=re.MULTILINE | re.DOTALL): + return () + + declaration = PreprocessStructOrEnum(declaration) + + if declaration.strip() == '': + return () + + result = [] + + # Remove parenthesized expressions (in macros like GTK_BLAH = BLAH(1,3)) + # to avoid getting confused by commas they might contain. This doesn't + # handle nested parentheses correctly. + declaration = re.sub(r'\([^)\n]+\)', '', declaration) + + # Remove apostrophed characters (e.g. '}' or ',') values to avoid getting + # confused with end of enumeration. + # See https://bugzilla.gnome.org/show_bug.cgi?id=741305 + declaration = re.sub(r'\'.\'', '', declaration) + + # Remove comma from comma - possible whitespace - closing brace sequence + # since it is legal in GNU C and C99 to have a trailing comma but doesn't + # result in an actual enum member + declaration = re.sub(r',(\s*})', r'\1', declaration) + + # Prime match after "typedef enum {" declaration + match = re.search(r'(typedef\s+)?enum\s*(\S+\s*)?\{', declaration, flags=re.MULTILINE | re.DOTALL) + if not match: + raise ParseError('Enum declaration "%s" does not begin with "typedef enum {" or "enum [NAME] {"' % declaration) + + logging.debug("public fields in enum: %s'", declaration) + + # Treat lines in sequence. + for m in re.finditer(r'\s*([^,\}]+)([,\}])', declaration[match.end():], flags=re.MULTILINE | re.DOTALL): + line = m.group(1) + terminator = m.group(2) + + # ignore preprocessor directives + line = re.sub(r'^#.*?\n\s*', '', line, flags=re.MULTILINE | re.DOTALL) + + m1 = re.search(r'^(\w+)\s*(=.*)?$', line, flags=re.MULTILINE | re.DOTALL) + # Special case for GIOCondition, where the values are specified by + # macros which expand to include the equal sign like '=1'. + m2 = re.search(r'^(\w+)\s*GLIB_SYSDEF_POLL', line, flags=re.MULTILINE | re.DOTALL) + if m1: + result.append(m1.group(1)) + elif m2: + result.append(m2.group(1)) + elif line.strip().startswith('#'): + # Special case include of , just ignore it + # Special case for #ifdef/#else/#endif, just ignore it + break + else: + logging.warning('Cannot parse enumeration member: %s', line) + + if terminator == '}': + break + + return result + + +def ParseFunctionDeclaration(declaration, typefunc, namefunc): + """Parse a function declaration. + + This function takes a function declaration and breaks it into individual + parameter declarations. + + Args: + declaration (str): the declaration to parse + typefunc (func): function to apply to type + namefunc (func): function to apply to name + + Returns: + dict: map of (symbol, decl) pairs describing the prototype + """ + + result = OrderedDict() + + param_num = 0 + while declaration: + logging.debug('decl=[%s]', declaration) + + # skip whitespace and commas + declaration, n = re.subn(r'^[\s,]+', '', declaration) + if n: + continue + + declaration, n = re.subn(r'^void\s*[,\n]', '', declaration) + if n: + if param_num != 0: + logging.warning('void used as parameter %d in function %s', param_num, declaration) + result['void'] = namefunc('void') + param_num += 1 + continue + + declaration, n = re.subn(r'^\s*[_a-zA-Z0-9]*\.\.\.\s*[,\n]', '', declaration) + if n: + result['...'] = namefunc('...') + param_num += 1 + continue + + # allow alphanumerics, '_', '[' & ']' in param names, try to match a standard parameter + # $1 $2 $3 $4 $5 + regex = r'^\s*((?:(?:G_CONST_RETURN|G_GNUC_[A-Z_]+\s+|unsigned long|unsigned short|signed long|signed short|unsigned|signed|long|short|volatile|const)\s+)*)((?:struct\b|enum\b)?\s*\w+)\s*((?:(?:const\b|restrict\b|G_GNUC_[A-Z_]+\b)?\s*\*?\s*(?:const\b|restrict\b|G_GNUC_[A-Z_]+\b)?\s*)*)(\w+)?\s*((?:\[\S*\])*)\s*(?:G_GNUC_[A-Z_]+)?\s*[,\n]' + m = re.match(regex, declaration) + if m: + declaration = re.sub(regex, '', declaration) + + pre = m.group(1) or '' + type = m.group(2) + ptr = m.group(3) or '' + name = m.group(4) or '' + array = m.group(5) or '' + + pre = re.sub(r'\s+', ' ', pre) + type = re.sub(r'\s+', ' ', type) + ptr = re.sub(r'\s+', ' ', ptr) + ptr = re.sub(r'\s+$', '', ptr) + if ptr and not ptr.endswith('*'): + ptr += ' ' + + logging.debug('"%s" "%s" "%s" "%s" "%s"', pre, type, ptr, name, array) + + m = re.search(r'^((un)?signed .*)\s?', pre) + if name == '' and m: + name = type + type = m.group(1) + pre = '' + + if name == '': + name = 'Param' + str(param_num + 1) + + logging.debug('"%s" "%s" "%s" "%s" "%s"', pre, type, ptr, name, array) + + xref = typefunc(type, '%s' % type) + result[name] = namefunc('%s%s %s%s%s' % (pre, xref, ptr, name, array)) + param_num += 1 + continue + + # Try to match parameters which are functions + # $1 $2 $3 $4 $5 $6 $7 $8 + regex = r'^(const\s+|G_CONST_RETURN\s+|G_GNUC_[A-Z_]+\s+|signed\s+|unsigned\s+)*(struct\s+)?(\w+)\s*(\**)\s*(?:restrict\b)?\s*(const\s+)?\(\s*(\*[\s\*]*)\s*(\w+)\s*\)\s*\(([^)]*)\)\s*[,\n]' + m = re.match(regex, declaration) + if m: + declaration = re.sub(regex, '', declaration) + + mod1 = m.group(1) or '' + if m.group(2): + mod1 += m.group(2) + type = m.group(3) + ptr1 = m.group(4) + mod2 = m.group(5) or '' + func_ptr = m.group(6) + name = m.group(7) + func_params = m.group(8) or '' + + if ptr1 and not ptr1.endswith('*'): + ptr1 += ' ' + func_ptr = re.sub(r'\s+', ' ', func_ptr) + + logging.debug('"%s" "%s" "%s" "%s" "%s"', mod1, type, mod2, func_ptr, name) + + xref = typefunc(type, '%s' % type) + result[name] = namefunc('%s%s%s%s (%s%s) (%s)' % (mod1, xref, ptr1, mod2, func_ptr, name, func_params)) + param_num += 1 + continue + + logging.warning('Cannnot parse args for function in "%s"', declaration) + break + + return result + + +def ParseMacroDeclaration(declaration, namefunc): + """Parse a macro declaration. + + This function takes a macro declaration and breaks it into individual + parameter declarations. + + Args: + declaration (str): the declaration to parse + namefunc (func): function to apply to name + + Returns: + dict: map of (symbol, decl) pairs describing the macro + """ + + result = OrderedDict() + + logging.debug('decl=[%s]', declaration) + + m = re.search(r'^\s*#\s*define\s+\w+\(([^\)]*)\)', declaration) + if m: + params = m.group(1) + params = re.sub(r'\n', '', params) + + logging.debug('params=[%s]', params) + + for param in params.split(','): + param = param.strip() + + # Allow varargs variations + if param.endswith('...'): + param = '...' + + if param != '': + result[param] = namefunc(param) + + return result diff --git a/gtkdoc/config.py b/gtkdoc/config.py new file mode 100644 index 0000000..f3a95f5 --- /dev/null +++ b/gtkdoc/config.py @@ -0,0 +1,16 @@ +version = "1.28" + +# tools +dblatex = '/usr/bin/dblatex' +fop = '' +highlight = '/usr/bin/source-highlight' +highlight_options = '-t4 -s$SRC_LANG -cstyle.css --no-doc -i' +pkg_config = '/usr/bin/pkg-config' +xsltproc = '/usr/bin/xsltproc' + +# configured directories +prefix = '/usr' +datarootdir = "${prefix}/share".replace('${prefix}', prefix) +datadir = "${datarootdir}".replace('${datarootdir}', datarootdir) + +exeext = '' diff --git a/gtkdoc/config.py.in b/gtkdoc/config.py.in new file mode 100644 index 0000000..472c7df --- /dev/null +++ b/gtkdoc/config.py.in @@ -0,0 +1,16 @@ +version = "@VERSION@" + +# tools +dblatex = '@DBLATEX@' +fop = '@FOP@' +highlight = '@HIGHLIGHT@' +highlight_options = '@HIGHLIGHT_OPTIONS@' +pkg_config = '@PKG_CONFIG@' +xsltproc = '@XSLTPROC@' + +# configured directories +prefix = '@prefix@' +datarootdir = "@datarootdir@".replace('${prefix}', prefix) +datadir = "@datadir@".replace('${datarootdir}', datarootdir) + +exeext = '@EXEEXT@' diff --git a/gtkdoc/fixxref.py b/gtkdoc/fixxref.py new file mode 100755 index 0000000..a5f3af2 --- /dev/null +++ b/gtkdoc/fixxref.py @@ -0,0 +1,451 @@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +''"Fix cross-references in the HTML documentation.''" + +# Support both Python 2 and 3 +from __future__ import print_function + +import logging +import os +import re +import shlex +import subprocess +import sys +import tempfile + +from . import common, config + +# This contains all the entities and their relative URLs. +Links = {} + +# failing link targets we don't warn about even once +NoLinks = { + 'char', + 'double', + 'float', + 'int', + 'long', + 'main', + 'signed', + 'unsigned', + 'va-list', + 'void', + 'GBoxed', + 'GEnum', + 'GFlags', + 'GInterface' +} + + +def Run(options): + logging.info('options: %s', str(options.__dict__)) + + LoadIndicies(options.module_dir, options.html_dir, options.extra_dir) + ReadSections(options.module) + FixCrossReferences(options.module_dir, options.module, options.src_lang) + + +# TODO(ensonic): try to refactor so that we get a list of path's and then just +# loop over them. +# - module_dir is by default 'html' +# - html_dir can be set by configure, defaults to $(docdir) +def LoadIndicies(module_dir, html_dir, extra_dirs): + # Cache of dirs we already scanned for index files + dir_cache = {} + + path_prefix = '' + m = re.search(r'(.*?)/share/gtk-doc/html', html_dir) + if m: + path_prefix = m.group(1) + logging.info('Path prefix: %s', path_prefix) + prefix_match = r'^' + re.escape(path_prefix) + r'/' + + # We scan the directory containing GLib and any directories in GNOME2_PATH + # first, but these will be overriden by any later scans. + dir = common.GetModuleDocDir('glib-2.0') + if dir and os.path.exists(dir): + # Some predefined link targets to get links into type hierarchies as these + # have no targets. These are always absolute for now. + Links['GBoxed'] = dir + '/gobject/gobject-Boxed-Types.html' + Links['GEnum'] = dir + '/gobject/gobject-Enumeration-and-Flag-Types.html' + Links['GFlags'] = dir + '/gobject/gobject-Enumeration-and-Flag-Types.html' + Links['GInterface'] = dir + '/gobject/GTypeModule.html' + + if dir != html_dir: + logging.info('Scanning GLib directory: %s', dir) + ScanIndices(dir, (re.search(prefix_match, dir) is None), dir_cache) + + path = os.environ.get('GNOME2_PATH') + if path: + for dir in path.split(':'): + dir += 'share/gtk-doc/html' + if os.path.exists(dir) and dir != html_dir: + logging.info('Scanning GNOME2_PATH directory: %s', dir) + ScanIndices(dir, (re.search(prefix_match, dir) is None), dir_cache) + + logging.info('Scanning HTML_DIR directory: %s', html_dir) + ScanIndices(html_dir, False, dir_cache) + logging.info('Scanning MODULE_DIR directory: %s', module_dir) + ScanIndices(module_dir, False, dir_cache) + + # check all extra dirs, but skip already scanned dirs or subdirs of those + for dir in extra_dirs: + dir = dir.rstrip('/') + logging.info('Scanning EXTRA_DIR directory: %s', dir) + + # If the --extra-dir option is not relative and is not sharing the same + # prefix as the target directory of the docs, we need to use absolute + # directories for the links + if not dir.startswith('..') and re.search(prefix_match, dir) is None: + ScanIndices(dir, True, dir_cache) + else: + ScanIndices(dir, False, dir_cache) + + +def ScanIndices(scan_dir, use_absolute_links, dir_cache): + if not scan_dir or scan_dir in dir_cache: + return + dir_cache[scan_dir] = 1 + + logging.info('Scanning index directory: %s, absolute: %d', scan_dir, use_absolute_links) + + # TODO(ensonic): this code is the same as in rebase.py + if not os.path.isdir(scan_dir): + logging.info('Cannot open dir "%s"', scan_dir) + return + + subdirs = [] + for entry in sorted(os.listdir(scan_dir)): + full_entry = os.path.join(scan_dir, entry) + if os.path.isdir(full_entry): + subdirs.append(full_entry) + continue + + if entry.endswith('.devhelp2'): + # if devhelp-file is good don't read index.sgml + ReadDevhelp(full_entry, use_absolute_links) + elif entry == "index.sgml.gz" and not os.path.exists(os.path.join(scan_dir, 'index.sgml')): + # debian/ubuntu started to compress this as index.sgml.gz :/ + print(''' Please fix https://bugs.launchpad.net/ubuntu/+source/gtk-doc/+bug/77138 . For now run: +gunzip %s +''' % full_entry) + elif entry.endswith('.devhelp2.gz') and not os.path.exists(full_entry[:-3]): + # debian/ubuntu started to compress this as *devhelp2.gz :/ + print('''Please fix https://bugs.launchpad.net/ubuntu/+source/gtk-doc/+bug/1466210 . For now run: +gunzip %s +''' % full_entry) + # we could consider supporting: gzip module + + # Now recursively scan the subdirectories. + for subdir in subdirs: + ScanIndices(subdir, use_absolute_links, dir_cache) + + +def ReadDevhelp(file, use_absolute_links): + # Determine the absolute directory, to be added to links in $file + # if we need to use an absolute link. + # $file will be something like /prefix/gnome/share/gtk-doc/html/gtk/$file + # We want the part up to 'html/.*' since the links in $file include + # the rest. + dir = "../" + if use_absolute_links: + # For uninstalled index files we'd need to map the path to where it + # will be installed to + if not file.startswith('./'): + m = re.search(r'(.*\/)(.*?)\/.*?\.devhelp2', file) + dir = m.group(1) + m.group(2) + '/' + else: + m = re.search(r'(.*\/)(.*?)\/.*?\.devhelp2', file) + if m: + dir += m.group(2) + '/' + else: + dir = '' + + logging.info('Scanning index file=%s, absolute=%d, dir=%s', file, use_absolute_links, dir) + + for line in common.open_text(file): + m = re.search(r' link="([^#]*)#([^"]*)"', line) + if m: + link = m.group(1) + '#' + m.group(2) + logging.debug('Found id: %s href: %s', m.group(2), link) + Links[m.group(2)] = dir + link + + +def ReadSections(module): + """We don't warn on missing links to non-public sysmbols.""" + for line in common.open_text(module + '-sections.txt'): + m1 = re.search(r'^', line) + if line.startswith('#') or line.strip() == '': + continue + elif line.startswith('
'): + subsection = '' + elif m1: + subsection = m1.group(1) + elif line.startswith('') or line.startswith('
'): + continue + elif re.search(r'^(.*)<\/TITLE>', line): + continue + elif re.search(r'^<FILE>(.*)<\/FILE>', line): + continue + elif re.search(r'^<INCLUDE>(.*)<\/INCLUDE>', line): + continue + else: + symbol = line.strip() + if subsection == "Standard" or subsection == "Private": + NoLinks.add(common.CreateValidSGMLID(symbol)) + + +def FixCrossReferences(module_dir, module, src_lang): + # TODO(ensonic): use glob.glob()? + for entry in sorted(os.listdir(module_dir)): + full_entry = os.path.join(module_dir, entry) + if os.path.isdir(full_entry): + continue + elif entry.endswith('.html') or entry.endswith('.htm'): + FixHTMLFile(src_lang, module, full_entry) + + +def FixHTMLFile(src_lang, module, file): + logging.info('Fixing file: %s', file) + + content = common.open_text(file).read() + + if config.highlight: + # FIXME: ideally we'd pass a clue about the example language to the highligher + # unfortunately the "language" attribute is not appearing in the html output + # we could patch the customization to have <code class="xxx"> inside of <pre> + if config.highlight.endswith('vim'): + def repl_func(m): + return HighlightSourceVim(src_lang, m.group(1), m.group(2)) + content = re.sub( + r'<div class=\"(example-contents|informalexample)\"><pre class=\"programlisting\">(.*?)</pre></div>', + repl_func, content, flags=re.DOTALL) + else: + def repl_func(m): + return HighlightSource(src_lang, m.group(1), m.group(2)) + content = re.sub( + r'<div class=\"(example-contents|informalexample)\"><pre class=\"programlisting\">(.*?)</pre></div>', + repl_func, content, flags=re.DOTALL) + + content = re.sub(r'\<GTKDOCLINK\s+HREF=\"(.*?)\"\>(.*?)\</GTKDOCLINK\>', + r'\<GTKDOCLINK\ HREF=\"\1\"\>\2\</GTKDOCLINK\>', content, flags=re.DOTALL) + + # From the highlighter we get all the functions marked up. Now we can turn them into GTKDOCLINK items + def repl_func(m): + return MakeGtkDocLink(m.group(1), m.group(2), m.group(3)) + content = re.sub(r'(<span class=\"function\">)(.*?)(</span>)', repl_func, content, flags=re.DOTALL) + # We can also try the first item in stuff marked up as 'normal' + content = re.sub( + r'(<span class=\"normal\">\s*)(.+?)((\s+.+?)?\s*</span>)', repl_func, content, flags=re.DOTALL) + + lines = content.rstrip().split('\n') + + def repl_func_with_ix(i): + def repl_func(m): + return MakeXRef(module, file, i + 1, m.group(1), m.group(2)) + return repl_func + + for i in range(len(lines)): + lines[i] = re.sub(r'<GTKDOCLINK\s+HREF="([^"]*)"\s*>(.*?)</GTKDOCLINK\s*>', repl_func_with_ix(i), lines[i]) + if 'GTKDOCLINK' in lines[i]: + logging.info('make xref failed for line %d: "%s"', i, lines[i]) + + new_file = file + '.new' + content = '\n'.join(lines) + with common.open_text(new_file, 'w') as h: + h.write(content) + + os.unlink(file) + os.rename(new_file, file) + + +def MakeXRef(module, file, line, id, text): + href = Links.get(id) + + # This is a workaround for some inconsistency we have with CreateValidSGMLID + if not href and ':' in id: + href = Links.get(id.replace(':', '--')) + # poor mans plural support + if not href and id.endswith('s'): + tid = id[:-1] + href = Links.get(tid) + if not href: + href = Links.get(tid + '-struct') + if not href: + href = Links.get(id + '-struct') + + if href: + # if it is a link to same module, remove path to make it work uninstalled + m = re.search(r'^\.\./' + module + '/(.*)$', href) + if m: + href = m.group(1) + logging.info('Fixing link to uninstalled doc: %s, %s, %s', id, href, text) + else: + logging.info('Fixing link: %s, %s, %s', id, href, text) + return "<a href=\"%s\">%s</a>" % (href, text) + else: + logging.info('no link for: %s, %s', id, text) + + # don't warn multiple times and also skip blacklisted (ctypes) + if id in NoLinks: + return text + # if it's a function, don't warn if it does not contain a "_" + # (transformed to "-") + # - gnome coding style would use '_' + # - will avoid wrong warnings for ansi c functions + if re.search(r' class=\"function\"', text) and '-' not in id: + return text + # if it's a 'return value', don't warn (implicitly created link) + if re.search(r' class=\"returnvalue\"', text): + return text + # if it's a 'type', don't warn if it starts with lowercase + # - gnome coding style would use CamelCase + if re.search(r' class=\"type\"', text) and id[0].islower(): + return text + # don't warn for self links + if text == id: + return text + + common.LogWarning(file, line, 'no link for: "%s" -> (%s).' % (id, text)) + NoLinks.add(id) + return text + + +def MakeGtkDocLink(pre, symbol, post): + id = common.CreateValidSGMLID(symbol) + + # these are implicitely created links in highlighed sources + # we don't want warnings for those if the links cannot be resolved. + NoLinks.add(id) + + return pre + '<GTKDOCLINK HREF="' + id + '">' + symbol + '</GTKDOCLINK>' + post + + +def HighlightSource(src_lang, type, source): + # write source to a temp file + # FIXME: use .c for now to hint the language to the highlighter + with tempfile.NamedTemporaryFile(mode='w+', suffix='.c') as f: + temp_source_file = HighlightSourcePreProcess(f, source) + highlight_options = config.highlight_options.replace('$SRC_LANG', src_lang) + + logging.info('running %s %s %s', config.highlight, highlight_options, temp_source_file) + + # format source + highlighted_source = subprocess.check_output( + [config.highlight] + shlex.split(highlight_options) + [temp_source_file]).decode('utf-8') + logging.debug('result: [%s]', highlighted_source) + if config.highlight.endswith('/source-highlight'): + highlighted_source = re.sub(r'^<\!-- .*? -->', '', highlighted_source, flags=re.MULTILINE | re.DOTALL) + highlighted_source = re.sub( + r'<pre><tt>(.*?)</tt></pre>', r'\1', highlighted_source, flags=re.MULTILINE | re.DOTALL) + elif config.highlight.endswith('/highlight'): + # need to rewrite the stylesheet classes + highlighted_source = highlighted_source.replace('<span class="gtkdoc com">', '<span class="comment">') + highlighted_source = highlighted_source.replace('<span class="gtkdoc dir">', '<span class="preproc">') + highlighted_source = highlighted_source.replace('<span class="gtkdoc kwd">', '<span class="function">') + highlighted_source = highlighted_source.replace('<span class="gtkdoc kwa">', '<span class="keyword">') + highlighted_source = highlighted_source.replace('<span class="gtkdoc line">', '<span class="linenum">') + highlighted_source = highlighted_source.replace('<span class="gtkdoc num">', '<span class="number">') + highlighted_source = highlighted_source.replace('<span class="gtkdoc str">', '<span class="string">') + highlighted_source = highlighted_source.replace('<span class="gtkdoc sym">', '<span class="symbol">') + # maybe also do + # highlighted_source = re.sub(r'</span>(.+)<span', '</span><span class="normal">\1</span><span') + + return HighlightSourcePostprocess(type, highlighted_source) + + +def HighlightSourceVim(src_lang, type, source): + # write source to a temp file + with tempfile.NamedTemporaryFile(mode='w+', suffix='.h') as f: + temp_source_file = HighlightSourcePreProcess(f, source) + + # format source + # TODO(ensonic): use p.communicate() + script = "echo 'let html_number_lines=0|let html_use_css=1|let html_use_xhtml=1|e %s|syn on|set syntax=%s|run! plugin/tohtml.vim|run! syntax/2html.vim|w! %s.html|qa!' | " % ( + temp_source_file, src_lang, temp_source_file) + script += "%s -n -e -u NONE -T xterm >/dev/null" % config.highlight + subprocess.check_call([script], shell=True) + + highlighted_source = common.open_text(temp_source_file + ".html").read() + highlighted_source = re.sub(r'.*<pre\b[^>]*>\n', '', highlighted_source, flags=re.DOTALL) + highlighted_source = re.sub(r'</pre>.*', '', highlighted_source, flags=re.DOTALL) + + # need to rewrite the stylesheet classes + highlighted_source = highlighted_source.replace('<span class="Comment">', '<span class="comment">') + highlighted_source = highlighted_source.replace('<span class="PreProc">', '<span class="preproc">') + highlighted_source = highlighted_source.replace('<span class="Statement">', '<span class="keyword">') + highlighted_source = highlighted_source.replace('<span class="Identifier">', '<span class="function">') + highlighted_source = highlighted_source.replace('<span class="Constant">', '<span class="number">') + highlighted_source = highlighted_source.replace('<span class="Special">', '<span class="symbol">') + highlighted_source = highlighted_source.replace('<span class="Type">', '<span class="type">') + + # remove temp files + os.unlink(temp_source_file + '.html') + + return HighlightSourcePostprocess(type, highlighted_source) + + +def HighlightSourcePreProcess(f, source): + # chop of leading and trailing empty lines, leave leading space in first real line + source = source.strip(' ') + source = source.strip('\n') + source = source.rstrip() + + # cut common indent + m = re.search(r'^(\s+)', source) + if m: + source = re.sub(r'^' + m.group(1), '', source, flags=re.MULTILINE) + # avoid double entity replacement + source = source.replace('<', '<') + source = source.replace('>', '>') + source = source.replace('&', '&') + if sys.version_info < (3,): + source = source.encode('utf-8') + f.write(source) + f.flush() + return f.name + + +def HighlightSourcePostprocess(type, highlighted_source): + # chop of leading and trailing empty lines + highlighted_source = highlighted_source.strip() + + # turn common urls in comments into links + highlighted_source = re.sub(r'<span class="url">(.*?)</span>', + r'<span class="url"><a href="\1">\1</a></span>', + highlighted_source, flags=re.DOTALL) + + # we do own line-numbering + line_count = highlighted_source.count('\n') + source_lines = '\n'.join([str(i) for i in range(1, line_count + 2)]) + + return """<div class="%s"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>%s</pre></td> + <td class="listing_code"><pre class="programlisting">%s</pre></td> + </tr> + </tbody> + </table> +</div> +""" % (type, source_lines, highlighted_source) diff --git a/gtkdoc/md_to_db.py b/gtkdoc/md_to_db.py new file mode 100644 index 0000000..c8ff324 --- /dev/null +++ b/gtkdoc/md_to_db.py @@ -0,0 +1,758 @@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +""" +Markdown to Docbook converter +""" + +import logging +import re + +# external functions +ExpandAbbreviations = MakeXRef = MakeHashXRef = tagify = None + +# Elements to consider non-block items in MarkDown parsing +MD_TEXT_LEVEL_ELEMENTS = { + 'emphasis', 'envar', 'filename', 'firstterm', 'footnote', 'function', 'literal', + 'manvolnum', 'option', 'replaceable', 'structfield', 'structname', 'title', + 'varname' +} +MD_ESCAPABLE_CHARS = r'\`*_{}[]()>#+-.!' +MD_GTK_ESCAPABLE_CHARS = r'@%' + + +def Init(): + # TODO(enonic): find a better way to do this + global ExpandAbbreviations, MakeXRef, MakeHashXRef, tagify + from .mkdb import ExpandAbbreviations, MakeXRef, MakeHashXRef, tagify + + +def MarkDownParseBlocks(lines, symbol, context): + md_blocks = [] + md_block = {"type": ''} + + logging.debug("parsing %s lines", len(lines)) + for line in lines: + logging.info("type='%s', int='%s', parsing '%s'", md_block["type"], md_block.get('interrupted'), line) + first_char = None + if line: + first_char = line[0] + + if md_block["type"] == "markup": + if 'closed' not in md_block: + if md_block["start"] in line: + md_block["depth"] += 1 + + if md_block["end"] in line: + if md_block["depth"] > 0: + md_block["depth"] -= 1 + else: + logging.info("closing tag '%s'", line) + md_block["closed"] = 1 + # TODO(ensonic): reparse inner text with MarkDownParseLines? + + md_block["text"] += "\n" + line + logging.info("add to markup: '%s'", line) + continue + + deindented_line = line.lstrip() + + if md_block["type"] == "heading": + # a heading is ended by any level less than or equal + if md_block["level"] == 1: + heading_match = re.search(r'^[#][ \t]+(.+?)[ \t]*[#]*[ \t]*(?:{#([^}]+)})?[ \t]*$', line) + if re.search(r'^={4,}[ \t]*$', line): + text = md_block["lines"].pop() + md_block.pop("interrupted", None) + md_blocks.append(md_block) + md_block = {'type': "heading", + 'text': text, + 'lines': [], + 'level': 1, + } + continue + elif heading_match: + md_block.pop("interrupted", None) + md_blocks.append(md_block) + md_block = {'type': "heading", + 'text': heading_match.group(1), + 'lines': [], + 'level': 1, + } + if heading_match.group(2): + md_block['id'] = heading_match.group(2) + continue + else: + # push lines into the block until the end is reached + md_block["lines"].append(line) + continue + + else: + heading_match = re.search(r'^([#]{1,2})[ \t]+(.+?)[ \t]*[#]*[ \t]*(?:{#([^}]+)})?[ \t]*$', line) + if re.search(r'^[=]{4,}[ \t]*$', line): + text = md_block["lines"].pop() + md_block.pop("interrupted", None) + md_blocks.append(md_block) + md_block = {'type': "heading", + 'text': text, + 'lines': [], + 'level': 1, + } + continue + elif re.search(r'^[-]{4,}[ \t]*$', line): + text = md_block["lines"].pop() + md_block.pop("interrupted", None) + md_blocks.append(md_block) + md_block = {'type': "heading", + 'text': text, + 'lines': [], + 'level': 2, + } + continue + elif heading_match: + md_block.pop("interrupted", None) + md_blocks.append(md_block) + md_block = {'type': "heading", + 'text': heading_match.group(2), + 'lines': [], + 'level': len(heading_match.group(1)) + } + if heading_match.group(3): + md_block['id'] = heading_match.group(3) + continue + else: + # push lines into the block until the end is reached + md_block["lines"].append(line) + continue + elif md_block["type"] == "code": + end_of_code_match = re.search(r'^[ \t]*\]\|(.*)', line) + if end_of_code_match: + md_blocks.append(md_block) + md_block = {'type': "paragraph", + 'text': end_of_code_match.group(1), + 'lines': [], + } + else: + md_block["lines"].append(line) + continue + + if deindented_line == '': + logging.info('setting "interrupted" due to empty line') + md_block["interrupted"] = 1 + continue + + if md_block["type"] == "quote": + if 'interrupted' not in md_block: + line = re.sub(r'^[ ]*>[ ]?', '', line) + md_block["lines"].append(line) + continue + + elif md_block["type"] == "li": + marker = md_block["marker"] + marker_match = re.search(r'^([ ]{0,3})(%s)[ ](.*)' % marker, line) + if marker_match: + indentation = marker_match.group(1) + if md_block["indentation"] != indentation: + md_block["lines"].append(line) + else: + ordered = md_block["ordered"] + md_block.pop('last', None) + md_blocks.append(md_block) + md_block = {'type': "li", + 'ordered': ordered, + 'indentation': indentation, + 'marker': marker, + 'last': 1, + 'lines': [re.sub(r'^[ ]{0,4}', '', marker_match.group(3))], + } + continue + + if 'interrupted' in md_block: + if first_char == " ": + md_block["lines"].append('') + line = re.sub(r'^[ ]{0,4}', '', line) + md_block["lines"].append(line) + md_block.pop("interrupted", None) + continue + else: + line = re.sub(r'^[ ]{0,4}', '', line) + md_block["lines"].append(line) + continue + + # indentation sensitive types + heading_match = re.search(r'^([#]{1,2})[ \t]+(.+?)[ \t]*[#]*[ \t]*(?:{#([^}]+)})?[ \t]*$', line) + code_match = re.search(r'^[ \t]*\|\[[ ]*(?:<!-- language="([^"]+?)" -->)?', line) + if heading_match: + # atx heading (#) + md_blocks.append(md_block) + md_block = {'type': "heading", + 'text': heading_match.group(2), + 'lines': [], + 'level': len(heading_match.group(1)), + } + if heading_match.group(3): + md_block['id'] = heading_match.group(3) + continue + elif re.search(r'^={4,}[ \t]*$', line): + # setext heading (====) + + if md_block["type"] == "paragraph" and "interrupted" in md_block: + md_blocks.append(md_block.copy()) + md_block["type"] = "heading" + md_block["lines"] = [] + md_block["level"] = 1 + continue + elif re.search(r'^-{4,}[ \t]*$', line): + # setext heading (-----) + + if md_block["type"] == "paragraph" and "interrupted" in md_block: + md_blocks.append(md_block.copy()) + md_block["type"] = "heading" + md_block["lines"] = [] + md_block["level"] = 2 + + continue + elif code_match: + # code + md_block["interrupted"] = 1 + md_blocks.append(md_block) + md_block = {'type': "code", + 'lines': [], + } + if code_match.group(1): + md_block['language'] = code_match.group(1) + continue + + # indentation insensitive types + markup_match = re.search(r'^[ ]*<\??(\w+)[^>]*([\/\?])?[ \t]*>', line) + li_match = re.search(r'^([ ]*)[*+-][ ](.*)', line) + quote_match = re.search(r'^[ ]*>[ ]?(.*)', line) + if re.search(r'^[ ]*<!DOCTYPE/', line): + md_blocks.append(md_block) + md_block = {'type': "markup", + 'text': deindented_line, + 'start': '<', + 'end': '>', + 'depth': 0, + } + + elif markup_match: + # markup, including <?xml version="1.0"?> + tag = markup_match.group(1) + is_self_closing = markup_match.group(2) is not None + + # skip link markdown + # TODO(ensonic): consider adding more uri schemes (ftp, ...) + if re.search(r'https?', tag): + logging.info("skipping link '%s'", tag) + else: + # for TEXT_LEVEL_ELEMENTS, we want to keep them as-is in the paragraph + # instead of creation a markdown block. + scanning_for_end_of_text_level_tag = ( + md_block["type"] == "paragraph" and + 'start' in md_block and + 'closed' not in md_block) + logging.info("markup found '%s', scanning %s ?", tag, scanning_for_end_of_text_level_tag) + if tag not in MD_TEXT_LEVEL_ELEMENTS and not scanning_for_end_of_text_level_tag: + md_blocks.append(md_block) + + if is_self_closing: + logging.info("self-closing docbook '%s'", tag) + md_block = {'type': "self-closing tag", + 'text': deindented_line, + } + is_self_closing = 0 + continue + + logging.info("new markup '%s'", tag) + md_block = {'type': "markup", + 'text': deindented_line, + 'start': '<' + tag + '>', + 'end': '</' + tag + '>', + 'depth': 0, + } + if re.search(r'<\/%s>' % tag, deindented_line): + md_block["closed"] = 1 + + continue + else: + if tag in MD_TEXT_LEVEL_ELEMENTS: + logging.info("text level docbook '%s' in '%s' state", tag, md_block["type"]) + # TODO(ensonic): handle nesting + if not scanning_for_end_of_text_level_tag: + if not re.search(r'<\/%s>' % tag, deindented_line): + logging.info("new text level markup '%s'", tag) + md_block["start"] = '<' + tag + '>' + md_block["end"] = '</' + tag + '>' + md_block.pop("closed", None) + logging.info("scanning for end of '%s'", tag) + + else: + if md_block["end"] in deindented_line: + md_block["closed"] = 1 + logging.info("found end of '%s'", tag) + elif li_match: + # li + md_blocks.append(md_block) + indentation = li_match.group(1) + md_block = {'type': "li", + 'ordered': 0, + 'indentation': indentation, + 'marker': "[*+-]", + 'first': 1, + 'last': 1, + 'lines': [re.sub(r'^[ ]{0,4}', '', li_match.group(2))], + } + continue + elif quote_match: + md_blocks.append(md_block) + md_block = {'type': "quote", + 'lines': [quote_match.group(1)], + } + continue + + # list item + list_item_match = re.search(r'^([ ]{0,4})\d+[.][ ]+(.*)', line) + if list_item_match: + md_blocks.append(md_block) + indentation = list_item_match.group(1) + md_block = {'type': "li", + 'ordered': 1, + 'indentation': indentation, + 'marker': "\\d+[.]", + 'first': 1, + 'last': 1, + 'lines': [re.sub(r'^[ ]{0,4}', '', list_item_match.group(2))], + } + continue + + # paragraph + if md_block["type"] == "paragraph": + if "interrupted" in md_block: + md_blocks.append(md_block) + md_block = {'type': "paragraph", + 'text': line, + } + logging.info("new paragraph due to interrupted") + else: + md_block["text"] += "\n" + line + logging.info("add to paragraph: '%s'", line) + + else: + md_blocks.append(md_block) + md_block = {'type': "paragraph", + 'text': line, + } + logging.info("new paragraph due to different block type") + + md_blocks.append(md_block) + md_blocks.pop(0) + + return md_blocks + + +def MarkDownParseSpanElementsInner(text, markersref): + markup = '' + markers = {i: 1 for i in markersref} + + while text != '': + closest_marker = '' + closest_marker_position = -1 + text_marker = '' + offset = 0 + markers_rest = [] + + for marker, use in markers.items(): + if not use: + continue + + marker_position = text.find(marker) + + if marker_position < 0: + markers[marker] = 0 + continue + + if closest_marker == '' or marker_position < closest_marker_position: + closest_marker = marker + closest_marker_position = marker_position + + if closest_marker_position >= 0: + text_marker = text[closest_marker_position:] + + if text_marker == '': + markup += text + text = '' + continue + + markup += text[:closest_marker_position] + text = text[closest_marker_position:] + markers_rest = {k: v for k, v in markers.items() if v and k != closest_marker} + + if closest_marker == '![' or closest_marker == '[': + # 'id-ref' : local id reference + # 'title' : link short description/alt-text/tooltip + # 'a' : linked text + # 'href' : external link + # 'is-media': is link to media object + element = None + + # FIXME: '(?R)' is a recursive subpattern + # match a [...] block with no ][ inside or this thing again + # m = re.search(r'\[((?:[^][]|(?R))*)\]', text) + m = re.search(r'\[((?:[^][])*)\]', text) + if ']' in text and m: + element = {'is-media': text[0] == '!', + 'a': EscapeEntities(m.group(1)), + } + + offset = len(m.group(0)) + if element['is-media']: + offset += 1 + logging.debug("Recursive md-expr match: off=%d, text='%s', match='%s'", offset, text, m.group(1)) + + remaining_text = text[offset:] + # (link "alt-text") + m2 = re.search(r'''^\([ ]*([^)'"]*?)(?:[ ]+['"](.+?)['"])?[ ]*\)''', remaining_text) + # [id-reference] + m3 = re.search(r'^\s*\[([^\]<]*?)\]', remaining_text) + if m2: + element['href'] = m2.group(1) + if m2.group(2): + element['title'] = m2.group(2) + offset += len(m2.group(0)) + elif m3: + element['id-ref'] = m3.group(1) + offset += len(m3.group(0)) + else: + element = None + + if element: + logging.debug("output link for", element) + + if 'href' in element: + element['href'] = EscapeEntities(element['href']) + + if element['is-media']: + # media link + markup += '<inlinemediaobject><imageobject><imagedata fileref="' + \ + element['href'] + '"></imagedata></imageobject>' + + if 'a' in element: + markup += "<textobject><phrase>" + element['a'] + "</phrase></textobject>" + + markup += "</inlinemediaobject>" + elif 'id-ref' in element: + # internal link + element['a'] = MarkDownParseSpanElementsInner(element['a'], markers_rest) + markup += '<link linkend="' + element['id-ref'] + '"' + + if 'title' in element: + # title attribute not supported + pass + + markup += '>' + element['a'] + "</link>" + else: + # external link + element['a'] = MarkDownParseSpanElementsInner(element['a'], markers_rest) + markup += '<ulink url="' + element['href'] + '"' + + if 'title' in element: + # title attribute not supported + pass + + markup += '>' + element['a'] + "</ulink>" + + else: + markup += closest_marker + if closest_marker == '![': + offset = 2 + else: + offset = 1 + + elif closest_marker == '<': + m4 = re.search(r'^<(https?:[\/]{2}[^\s]+?)>', text, flags=re.I) + m5 = re.search(r'^<([A-Za-z0-9._-]+?@[A-Za-z0-9._-]+?)>', text) + m6 = re.search(r'^<[^>]+?>', text) + if m4: + element_url = EscapeEntities(m4.group(1)) + + markup += '<ulink url="' + element_url + '">' + element_url + '</ulink>' + offset = len(m4.group(0)) + elif m5: + markup += "<ulink url=\"mailto:" + m5.group(1) + "\">" + m5.group(1) + "</ulink>" + offset = len(m5.group(0)) + elif m6: + markup += m6.group(0) + offset = len(m6.group(0)) + else: + markup += "<" + offset = 1 + + elif closest_marker == "\\": + special_char = '' + if len(text) > 1: + special_char = text[1] + if special_char in MD_ESCAPABLE_CHARS or special_char in MD_GTK_ESCAPABLE_CHARS: + markup += special_char + offset = 2 + else: + markup += "\\" + offset = 1 + + elif closest_marker == "`": + m7 = re.search(r'^(`+)([^`]+?)\1(?!`)', text) + if m7: + element_text = EscapeEntities(m7.group(2)) + markup += "<literal>" + element_text + "</literal>" + offset = len(m7.group(0)) + else: + markup += "`" + offset = 1 + + elif closest_marker == "@": + # Convert '@param()' + # FIXME: we could make those also links ($symbol.$2), but that would be less + # useful as the link target is a few lines up or down + m7 = re.search(r'^(\A|[^\\])\@(\w+((\.|->)\w+)*)\s*\(\)', text) + m8 = re.search(r'^(\A|[^\\])\@(\w+((\.|->)\w+)*)', text) + m9 = re.search(r'^\\\@', text) + if m7: + markup += m7.group(1) + "<parameter>" + m7.group(2) + "()</parameter>\n" + offset = len(m7.group(0)) + elif m8: + # Convert '@param', but not '\@param'. + markup += m8.group(1) + "<parameter>" + m8.group(2) + "</parameter>\n" + offset = len(m8.group(0)) + elif m9: + markup += r"\@" + offset = len(m9.group(0)) + else: + markup += "@" + offset = 1 + + elif closest_marker == '#': + m10 = re.search(r'^(\A|[^\\])#([\w\-:\.]+[\w]+)\s*\(\)', text) + m11 = re.search(r'^(\A|[^\\])#([\w\-:\.]+[\w]+)', text) + m12 = re.search(r'^\\#', text) + if m10: + # handle #Object.func() + markup += m10.group(1) + MakeXRef(m10.group(2), tagify(m10.group(2) + "()", "function")) + offset = len(m10.group(0)) + elif m11: + # Convert '#symbol', but not '\#symbol'. + markup += m11.group(1) + MakeHashXRef(m11.group(2), "type") + offset = len(m11.group(0)) + elif m12: + markup += '#' + offset = len(m12.group(0)) + else: + markup += '#' + offset = 1 + + elif closest_marker == "%": + m12 = re.search(r'^(\A|[^\\])\%(-?\w+)', text) + m13 = re.search(r'^\\%', text) + if m12: + # Convert '%constant', but not '\%constant'. + # Also allow negative numbers, e.g. %-1. + markup += m12.group(1) + MakeXRef(m12.group(2), tagify(m12.group(2), "literal")) + offset = len(m12.group(0)) + elif m13: + markup += r"\%" + offset = len(m13.group(0)) + else: + markup += "%" + offset = 1 + + if offset > 0: + text = text[offset:] + + return markup + + +def MarkDownParseSpanElements(text): + markers = ["\\", '<', '![', '[', "`", '%', '#', '@'] + + text = MarkDownParseSpanElementsInner(text, markers) + + # Convert 'function()' or 'macro()'. + # if there is abc_*_def() we don't want to make a link to _def() + # FIXME: also handle abc(def(....)) : but that would need to be done recursively :/ + def f(m): + return m.group(1) + MakeXRef(m.group(2), tagify(m.group(2) + "()", "function")) + text = re.sub(r'([^\*.\w])(\w+)\s*\(\)', f, text) + return text + + +def EscapeEntities(text): + return text.replace('&', '&').replace('<', '<').replace('>', '>') + + +def ReplaceEntities(text): + entities = [["<", '<'], + [">", '>'], + ["*", '*'], + ["#", '#'], + ["%", '%'], + [":", ':'], + [""", '"'], + ["'", "'"], + [" ", ' '], + ["&", '&'], # Do this last, or the others get messed up. + ] + + for i in entities: + text = re.sub(i[0], i[1], text) + return text + + +def MarkDownOutputDocBook(blocksref, symbol, context): + output = '' + blocks = blocksref + + for block in blocks: + # $output += "\n<!-- beg type='" . $block->{"type"} . "'-->\n" + + if block["type"] == "paragraph": + text = MarkDownParseSpanElements(block["text"]) + if context == "li" and output == '': + if 'interrupted' in block: + output += "\n<para>%s</para>\n" % text + else: + output += "<para>%s</para>" % text + if len(blocks) > 1: + output += "\n" + else: + output += "<para>%s</para>\n" % text + + elif block["type"] == "heading": + + title = MarkDownParseSpanElements(block["text"]) + + if block["level"] == 1: + tag = "refsect2" + else: + tag = "refsect3" + + text = MarkDownParseLines(block["lines"], symbol, "heading") + if 'id' in block: + output += "<%s id=\"%s\">" % (tag, block["id"]) + else: + output += "<%s>" % tag + + output += "<title>%s%s\n" % (title, text, tag) + elif block["type"] == "li": + tag = "itemizedlist" + + if "first" in block: + if block["ordered"]: + tag = "orderedlist" + output += "<%s>\n" % tag + + if "interrupted" in block: + block["lines"].append('') + + text = MarkDownParseLines(block["lines"], symbol, "li") + output += "" + text + "\n" + if 'last' in block: + if block["ordered"]: + tag = "orderedlist" + output += "\n" % tag + + elif block["type"] == "quote": + text = MarkDownParseLines(block["lines"], symbol, "quote") + output += "
\n%s
\n" % text + elif block["type"] == "code": + tag = "programlisting" + + if "language" in block: + if block["language"] == "plain": + output += "\n" % tag + elif block["type"] == "markup": + text = ExpandAbbreviations(symbol, block["text"]) + output += text + "\n" + else: + output += block["text"] + "\n" + + # $output += "\n\n" + return output + + +def MarkDownParseLines(lines, symbol, context): + logging.info('md parse: ctx=%s, [%s]', context, '\n'.join(lines)) + blocks = MarkDownParseBlocks(lines, symbol, context) + output = MarkDownOutputDocBook(blocks, symbol, context) + return output + + +def MarkDownParse(text, symbol): + """Converts mark down syntax to the respective docbook. + + http://de.wikipedia.org/wiki/Markdown + Inspired by the design of ParseDown + http://parsedown.org/ + Copyright (c) 2013 Emanuil Rusev, erusev.com + + SUPPORTED MARKDOWN + ================== + + Atx-style Headers + ----------------- + + # Header 1 + + ## Header 2 ## + + Setext-style Headers + -------------------- + + Header 1 + ======== + + Header 2 + -------- + + Ordered (unnested) Lists + ------------------------ + + 1. item 1 + + 1. item 2 with loooong + description + + 3. item 3 + + Note: we require a blank line above the list items + """ + # TODO(ensonic): it would be nice to add id parameters to the refsect2 elements + + return MarkDownParseLines(text.splitlines(), symbol, '') diff --git a/gtkdoc/mkdb.py b/gtkdoc/mkdb.py new file mode 100644 index 0000000..f5e8995 --- /dev/null +++ b/gtkdoc/mkdb.py @@ -0,0 +1,4737 @@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +""" +Creates the DocBook files from the source comments. +""" + +from __future__ import print_function +from six import iteritems, iterkeys + +from collections import OrderedDict +import logging +import os +import re +import string + +from . import common, md_to_db + +# Options +MODULE = None +DB_OUTPUT_DIR = None +INLINE_MARKUP_MODE = None +DEFAULT_STABILITY = None +NAME_SPACE = '' +ROOT_DIR = '.' + +# These global arrays store information on signals. Each signal has an entry +# in each of these arrays at the same index, like a multi-dimensional array. +SignalObjects = [] # The GtkObject which emits the signal. +SignalNames = [] # The signal name. +SignalReturns = [] # The return type. +SignalFlags = [] # Flags for the signal +SignalPrototypes = [] # The rest of the prototype of the signal handler. + +# These global arrays store information on Args. Each Arg has an entry +# in each of these arrays at the same index, like a multi-dimensional array. +ArgObjects = [] # The GtkObject which has the Arg. +ArgNames = [] # The Arg name. +ArgTypes = [] # The Arg type - gint, GtkArrowType etc. +ArgFlags = [] # How the Arg can be used - readable/writable etc. +ArgNicks = [] # The nickname of the Arg. +ArgBlurbs = [] # Docstring of the Arg. +ArgDefaults = [] # Default value of the Arg. +ArgRanges = [] # The range of the Arg type + +# These global hashes store declaration info keyed on a symbol name. +Declarations = {} +DeclarationTypes = {} +DeclarationConditional = {} +DeclarationOutput = {} +Deprecated = {} +Since = {} +StabilityLevel = {} +StructHasTypedef = {} + +# These global hashes store the existing documentation. +SymbolDocs = {} +SymbolParams = {} +SymbolAnnotations = {} + +# These global hashes store documentation scanned from the source files. +SourceSymbolDocs = {} +SourceSymbolParams = {} +SourceSymbolSourceFile = {} +SourceSymbolSourceLine = {} + +# all documentation goes in here, so we can do coverage analysis +AllSymbols = {} +AllIncompleteSymbols = {} +AllUnusedSymbols = {} +AllDocumentedSymbols = {} + +# Undeclared yet documented symbols +UndeclaredSymbols = {} + +# These global arrays store GObject, subclasses and the hierarchy (also of +# non-object derived types). +Objects = [] +ObjectLevels = [] +ObjectRoots = {} + +Interfaces = {} +Prerequisites = {} + +# holds the symbols which are mentioned in -sections.txt and in which +# section they are defined +KnownSymbols = {} +SymbolSection = {} +SymbolSectionId = {} + +# collects index entries +IndexEntriesFull = {} +IndexEntriesSince = {} +IndexEntriesDeprecated = {} + +# Standard C preprocessor directives, which we ignore for '#' abbreviations. +PreProcessorDirectives = { + 'assert', 'define', 'elif', 'else', 'endif', 'error', 'if', 'ifdef', 'ifndef', + 'include', 'line', 'pragma', 'unassert', 'undef', 'warning' +} + +# remember used annotation (to write minimal glossary) +AnnotationsUsed = {} + +# the regexp that parses the annotation is in ScanSourceFile() +AnnotationDefinition = { + # the GObjectIntrospection annotations are defined at: + # https://live.gnome.org/GObjectIntrospection/Annotations + 'allow-none': "NULL is OK, both for passing and for returning.", + 'nullable': "NULL may be passed as the value in, out, in-out; or as a return value.", + 'not nullable': "NULL must not be passed as the value in, out, in-out; or as a return value.", + 'optional': "NULL may be passed instead of a pointer to a location.", + 'not optional': "NULL must not be passed as the pointer to a location.", + 'array': "Parameter points to an array of items.", + 'attribute': "Deprecated free-form custom annotation, replaced by (attributes) annotation.", + 'attributes': "Free-form key-value pairs.", + 'closure': "This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.", + 'constructor': "This symbol is a constructor, not a static method.", + 'destroy': "This parameter is a 'destroy_data', for callbacks.", + 'default': "Default parameter value (for in case the shadows-to function has less parameters).", + 'element-type': "Generics and defining elements of containers and arrays.", + 'error-domains': "Typed errors. Similar to throws in Java.", + 'foreign': "This is a foreign struct.", + 'get-value-func': "The specified function is used to convert a struct from a GValue, must be a GTypeInstance.", + 'in': "Parameter for input. Default is transfer none.", + 'inout': "Parameter for input and for returning results. Default is transfer full.", + 'in-out': "Parameter for input and for returning results. Default is transfer full.", + 'method': "This is a method", + 'not-error': "A GError parameter is not to be handled like a normal GError.", + 'out': "Parameter for returning results. Default is transfer full.", + 'out caller-allocates': "Out parameter, where caller must allocate storage.", + 'out callee-allocates': "Out parameter, where caller must allocate storage.", + 'ref-func': "The specified function is used to ref a struct, must be a GTypeInstance.", + 'rename-to': "Rename the original symbol's name to SYMBOL.", + 'scope call': "The callback is valid only during the call to the method.", + 'scope async': "The callback is valid until first called.", + 'scope notified': "The callback is valid until the GDestroyNotify argument is called.", + 'set-value-func': "The specified function is used to convert from a struct to a GValue, must be a GTypeInstance.", + 'skip': "Exposed in C code, not necessarily available in other languages.", + 'transfer container': "Free data container after the code is done.", + 'transfer floating': "Alias for transfer none, used for objects with floating refs.", + 'transfer full': "Free data after the code is done.", + 'transfer none': "Don't free data after the code is done.", + 'type': "Override the parsed C type with given type.", + 'unref-func': "The specified function is used to unref a struct, must be a GTypeInstance.", + 'virtual': "This is the invoker for a virtual method.", + 'value': "The specified value overrides the evaluated value of the constant.", + # Stability Level definition + # https://bugzilla.gnome.org/show_bug.cgi?id=170860 + 'Stable': '''The intention of a Stable interface is to enable arbitrary third parties to +develop applications to these interfaces, release them, and have confidence that +they will run on all minor releases of the product (after the one in which the +interface was introduced, and within the same major release). Even at a major +release, incompatible changes are expected to be rare, and to have strong +justifications. +''', + 'Unstable': '''Unstable interfaces are experimental or transitional. They are typically used to +give outside developers early access to new or rapidly changing technology, or +to provide an interim solution to a problem where a more general solution is +anticipated. No claims are made about either source or binary compatibility from +one minor release to the next. + +The Unstable interface level is a warning that these interfaces are subject to +change without warning and should not be used in unbundled products. + +Given such caveats, customer impact need not be a factor when considering +incompatible changes to an Unstable interface in a major or minor release. +Nonetheless, when such changes are introduced, the changes should still be +mentioned in the release notes for the affected release. +''', + 'Private': '''An interface that can be used within the GNOME stack itself, but that is not +documented for end-users. Such functions should only be used in specified and +documented ways. +''', +} + +# Function and other declaration output settings. +RETURN_TYPE_FIELD_WIDTH = 20 +MAX_SYMBOL_FIELD_WIDTH = 40 + +# XML header +doctype_header = None + +# refentry template +REFENTRY = string.Template('''${header} + + +${title} +3 +${MODULE} Library${image} + + +${title} +${short_desc} + +${stability} +${functions_synop}${args_synop}${signals_synop}${object_anchors}${other_synop}${hierarchy}${prerequisites}${derived}${interfaces}${implementations} +${include_output} + +Description +${extralinks}${long_desc} + + +Functions +${functions_details} + + +Types and Values +${other_details} + +${args_desc}${signals_desc}${see_also} + +''') + + +def Run(options): + global MODULE, INLINE_MARKUP_MODE, DEFAULT_STABILITY, NAME_SPACE, \ + DB_OUTPUT_DIR, doctype_header + + logging.info('options: %s', str(options.__dict__)) + + # We should pass the options variable around instead of this global variable horror + # but too much of the code expects these to be around. Fix this once the transition is done. + MODULE = options.module + INLINE_MARKUP_MODE = options.xml_mode or options.sgml_mode + DEFAULT_STABILITY = options.default_stability + NAME_SPACE = options.name_space + + main_sgml_file = options.main_sgml_file + if not main_sgml_file: + # backwards compatibility + if os.path.exists(MODULE + "-docs.sgml"): + main_sgml_file = MODULE + "-docs.sgml" + else: + main_sgml_file = MODULE + "-docs.xml" + + # extract docbook header or define default + doctype_header = GetDocbookHeader(main_sgml_file) + + # This is where we put all the DocBook output. + DB_OUTPUT_DIR = DB_OUTPUT_DIR if DB_OUTPUT_DIR else os.path.join(ROOT_DIR, "xml") + if not os.path.isdir(DB_OUTPUT_DIR): + os.mkdir(DB_OUTPUT_DIR) + + ReadKnownSymbols(os.path.join(ROOT_DIR, MODULE + "-sections.txt")) + ReadSignalsFile(os.path.join(ROOT_DIR, MODULE + ".signals")) + ReadArgsFile(os.path.join(ROOT_DIR, MODULE + ".args")) + ReadObjectHierarchy(os.path.join(ROOT_DIR, MODULE + ".hierarchy")) + ReadInterfaces(os.path.join(ROOT_DIR, MODULE + ".interfaces")) + ReadPrerequisites(os.path.join(ROOT_DIR, MODULE + ".prerequisites")) + + ReadDeclarationsFile(os.path.join(ROOT_DIR, MODULE + "-decl.txt"), 0) + if os.path.isfile(os.path.join(ROOT_DIR, MODULE + "-overrides.txt")): + ReadDeclarationsFile(os.path.join(ROOT_DIR, MODULE + "-overrides.txt"), 1) + + # Scan sources + if options.source_suffixes: + suffix_list = ['.' + ext for ext in options.source_suffixes.split(',')] + else: + suffix_list = ['.c', '.h'] + + source_dirs = options.source_dir + ignore_files = options.ignore_files + logging.info(" ignore files: " + ignore_files) + for sdir in source_dirs: + ReadSourceDocumentation(sdir, suffix_list, source_dirs, ignore_files) + + changed, book_top, book_bottom = OutputDB(os.path.join(ROOT_DIR, MODULE + "-sections.txt"), options) + OutputBook(main_sgml_file, book_top, book_bottom) + + logging.info("All files created: %d", changed) + + # If any of the DocBook files have changed, update the timestamp file (so + # it can be used for Makefile dependencies). + if changed or not os.path.exists(os.path.join(ROOT_DIR, "sgml.stamp")): + + # try to detect the common prefix + # GtkWidget, GTK_WIDGET, gtk_widget -> gtk + if NAME_SPACE == '': + NAME_SPACE = DetermineNamespace() + + logging.info('namespace prefix ="%s"', NAME_SPACE) + + OutputIndex("api-index-full", IndexEntriesFull) + OutputIndex("api-index-deprecated", IndexEntriesDeprecated) + OutputSinceIndexes() + OutputAnnotationGlossary() + + with open(os.path.join(ROOT_DIR, 'sgml.stamp'), 'w') as h: + h.write('timestamp') + + +def OutputObjectList(): + """This outputs the alphabetical list of objects, in a columned table.""" + # FIXME: Currently this also outputs ancestor objects which may not actually + # be in this module. + cols = 3 + + # FIXME: use .xml + old_object_index = os.path.join(DB_OUTPUT_DIR, "object_index.sgml") + new_object_index = os.path.join(DB_OUTPUT_DIR, "object_index.new") + + OUTPUT = common.open_text(new_object_index, 'w') + + OUTPUT.write('''%s + + + + + + +''' % (MakeDocHeader("informaltable"), cols)) + + count = 0 + object = None + for object in sorted(Objects): + xref = MakeXRef(object) + if count % cols == 0: + OUTPUT.write("\n") + OUTPUT.write("%s\n" % xref) + if count % cols == cols - 1: + OUTPUT.write("\n") + count += 1 + + if count == 0: + # emit an empty row, since empty tables are invalid + OUTPUT.write(" \n") + + else: + if count % cols > 0: + OUTPUT.write("\n") + + OUTPUT.write('''\n''') + OUTPUT.close() + + common.UpdateFileIfChanged(old_object_index, new_object_index, 0) + + +def TrimTextBlock(desc): + """Trims extra whitespace. + + Empty lines inside a block are preserved. + Args: + desc (str): the text block to trim. May contain newlines. + """ + + # strip trailing spaces on every line + return re.sub(r'\s+$', '\n', desc.lstrip(), flags=re.MULTILINE) + + +def OutputDB(file, options): + """Generate docbook files. + + This collects the output for each section of the docs, and outputs each file + when the end of the section is found. + + Args: + file (str): the $MODULE-sections.txt file which contains all of the + functions/macros/structs etc. being documented, organised + into sections and subsections. + options: commandline options + """ + + logging.info("Reading: %s", file) + INPUT = common.open_text(file) + filename = '' + book_top = '' + book_bottom = '' + includes = options.default_includes or '' + section_includes = '' + in_section = 0 + title = '' + section_id = '' + subsection = '' + num_symbols = 0 + changed = 0 + functions_synop = '' + other_synop = '' + functions_details = '' + other_details = '' + signals_synop = '' + signals_desc = '' + args_synop = '' + child_args_synop = '' + style_args_synop = '' + args_desc = '' + child_args_desc = '' + style_args_desc = '' + hierarchy_str = '' + hierarchy = [] + interfaces = '' + implementations = '' + prerequisites = '' + derived = '' + file_objects = [] + file_def_line = {} + symbol_def_line = {} + + MergeSourceDocumentation() + + line_number = 0 + for line in INPUT: + line_number += 1 + + if line.startswith('#'): + continue + + logging.info("section file data: %d: %s", line_number, line) + + m1 = re.search(r'^', line, re.I) + m2 = re.search(r'^(.*)<\/TITLE', line) + m3 = re.search(r'^<FILE>(.*)<\/FILE>', line) + m4 = re.search(r'^<INCLUDE>(.*)<\/INCLUDE>', line) + m5 = re.search(r'^(\S+)', line) + + if line.startswith('<SECTION>'): + num_symbols = 0 + in_section = False + file_objects = [] + symbol_def_line = {} + + elif m1: + other_synop += "\n" + functions_synop += "\n" + subsection = m1.group(1) + + elif line.startswith('<SUBSECTION>'): + continue + elif m2: + title = m2.group(1) + logging.info("Section: %s", title) + + # We don't want warnings if object & class structs aren't used. + DeclarationOutput[title] = 1 + DeclarationOutput["%sClass" % title] = 1 + DeclarationOutput["%sIface" % title] = 1 + DeclarationOutput["%sInterface" % title] = 1 + + elif m3: + filename = m3.group(1) + if filename not in file_def_line: + file_def_line[filename] = line_number + else: + common.LogWarning(file, line_number, "Double <FILE>%s</FILE> entry. Previous occurrence on line %s." % + (filename, file_def_line[filename])) + if title == '': + key = filename + ":Title" + if key in SourceSymbolDocs: + title = SourceSymbolDocs[key].rstrip() + + elif m4: + if in_section: + section_includes = m4.group(1) + else: + if options.default_includes: + common.LogWarning(file, line_number, "Default <INCLUDE> being overridden by command line option.") + else: + includes = m4.group(1) + + elif re.search(r'^<\/SECTION>', line): + logging.info("End of section: %s", title) + # TODO: also output if we have sections docs? + # long_desc = SymbolDocs.get(filename + ":Long_Description") + if num_symbols > 0: + # collect documents + book_bottom += " <xi:include href=\"xml/%s.xml\"/>\n" % filename + + key = filename + ":Include" + if key in SourceSymbolDocs: + if section_includes: + common.LogWarning(file, line_number, "Section <INCLUDE> being overridden by inline comments.") + section_includes = SourceSymbolDocs[key] + + if section_includes == '': + section_includes = includes + + signals_synop = re.sub(r'^\n*', '', signals_synop) + signals_synop = re.sub(r'\n+$', '\n', signals_synop) + + if signals_synop != '': + signals_synop = '''<refsect1 id="%s.signals" role="signal_proto"> +<title role="signal_proto.title">Signals + + + + + + +%s + + + + +''' % (section_id, signals_synop) + signals_desc = TrimTextBlock(signals_desc) + signals_desc = ''' +Signal Details +%s + +''' % (section_id, signals_desc) + + args_synop = re.sub(r'^\n*', '', args_synop) + args_synop = re.sub(r'\n+$', '\n', args_synop) + if args_synop != '': + args_synop = ''' +Properties + + + + + + +%s + + + + +''' % (section_id, args_synop) + args_desc = TrimTextBlock(args_desc) + args_desc = ''' +Property Details +%s + +''' % (section_id, args_desc) + + child_args_synop = re.sub(r'^\n*', '', child_args_synop) + child_args_synop = re.sub(r'\n+$', '\n', child_args_synop) + if child_args_synop != '': + args_synop += ''' +Child Properties + + + + + + +%s + + + + +''' % (section_id, child_args_synop) + child_args_desc = TrimTextBlock(child_args_desc) + args_desc += ''' +Child Property Details +%s + +''' % (section_id, child_args_desc) + + style_args_synop = re.sub(r'^\n*', '', style_args_synop) + style_args_synop = re.sub(r'\n+$', '\n', style_args_synop) + if style_args_synop != '': + args_synop += ''' +Style Properties + + + + + + +%s + + + + +''' % (section_id, style_args_synop) + style_args_desc = TrimTextBlock(style_args_desc) + args_desc += ''' +Style Property Details +%s + +''' % (section_id, style_args_desc) + + hierarchy_str = AddTreeLineArt(hierarchy) + if hierarchy_str != '': + hierarchy_str = ''' +Object Hierarchy +%s + + +''' % (section_id, hierarchy_str) + + interfaces = TrimTextBlock(interfaces) + if interfaces != '': + interfaces = ''' +Implemented Interfaces +%s + +''' % (section_id, interfaces) + + implementations = TrimTextBlock(implementations) + if implementations != '': + implementations = ''' +Known Implementations +%s + +''' % (section_id, implementations) + + prerequisites = TrimTextBlock(prerequisites) + if prerequisites != '': + prerequisites = ''' +Prerequisites +%s + +''' % (section_id, prerequisites) + + derived = TrimTextBlock(derived) + if derived != '': + derived = ''' +Known Derived Interfaces +%s + +''' % (section_id, derived) + + functions_synop = re.sub(r'^\n*', '', functions_synop) + functions_synop = re.sub(r'\n+$', '\n', functions_synop) + if functions_synop != '': + functions_synop = ''' +Functions + + + + + +%s + + + + +''' % (section_id, functions_synop) + + other_synop = re.sub(r'^\n*', '', other_synop) + other_synop = re.sub(r'\n+$', '\n', other_synop) + if other_synop != '': + other_synop = ''' +Types and Values + + + + + +%s + + + + +''' % (section_id, other_synop) + + file_changed = OutputDBFile(filename, title, section_id, + section_includes, + functions_synop, other_synop, + functions_details, other_details, + signals_synop, signals_desc, + args_synop, args_desc, + hierarchy_str, interfaces, + implementations, + prerequisites, derived, + file_objects) + if file_changed: + changed = True + + title = '' + section_id = '' + subsection = '' + in_section = 0 + section_includes = '' + functions_synop = '' + other_synop = '' + functions_details = '' + other_details = '' + signals_synop = '' + signals_desc = '' + args_synop = '' + child_args_synop = '' + style_args_synop = '' + args_desc = '' + child_args_desc = '' + style_args_desc = '' + hierarchy_str = '' + hierarchy = [] + interfaces = '' + implementations = '' + prerequisites = '' + derived = '' + + elif m5: + symbol = m5.group(1) + logging.info(' Symbol: "%s" in subsection: "%s"', symbol, subsection) + + # check for duplicate entries + if symbol not in symbol_def_line: + declaration = Declarations.get(symbol) + # FIXME: with this we'll output empty declaration + if declaration is not None: + if CheckIsObject(symbol): + file_objects.append(symbol) + + # We don't want standard macros/functions of GObjects, + # or private declarations. + if subsection != "Standard" and subsection != "Private": + synop, desc = OutputDeclaration(symbol, declaration) + type = DeclarationTypes[symbol] + + if type == 'FUNCTION' or type == 'USER_FUNCTION': + functions_synop += synop + functions_details += desc + elif type == 'MACRO' and re.search(symbol + r'\(', declaration): + functions_synop += synop + functions_details += desc + else: + other_synop += synop + other_details += desc + + sig_synop, sig_desc = GetSignals(symbol) + arg_synop, child_arg_synop, style_arg_synop, arg_desc, child_arg_desc, style_arg_desc = GetArgs( + symbol) + ifaces = GetInterfaces(symbol) + impls = GetImplementations(symbol) + prereqs = GetPrerequisites(symbol) + der = GetDerived(symbol) + hierarchy = GetHierarchy(symbol, hierarchy) + + signals_synop += sig_synop + signals_desc += sig_desc + args_synop += arg_synop + child_args_synop += child_arg_synop + style_args_synop += style_arg_synop + args_desc += arg_desc + child_args_desc += child_arg_desc + style_args_desc += style_arg_desc + interfaces += ifaces + implementations += impls + prerequisites += prereqs + derived += der + + # Note that the declaration has been output. + DeclarationOutput[symbol] = True + elif subsection != "Standard" and subsection != "Private": + UndeclaredSymbols[symbol] = True + common.LogWarning(file, line_number, "No declaration found for %s." % symbol) + + num_symbols += 1 + symbol_def_line[symbol] = line_number + + if section_id == '': + if title == '' and filename == '': + common.LogWarning(file, line_number, "Section has no title and no file.") + + # FIXME: one of those would be enough + # filename should be an internal detail for gtk-doc + if title == '': + title = filename + elif filename == '': + filename = title + + filename = filename.replace(' ', '_') + + section_id = SourceSymbolDocs.get(filename + ":Section_Id") + if section_id and section_id.strip() != '': + # Remove trailing blanks and use as is + section_id = section_id.rstrip() + elif CheckIsObject(title): + # GObjects use their class name as the ID. + section_id = common.CreateValidSGMLID(title) + else: + section_id = common.CreateValidSGMLID(MODULE + '-' + title) + + SymbolSection[symbol] = title + SymbolSectionId[symbol] = section_id + + else: + common.LogWarning(file, line_number, "Double symbol entry for %s. " + "Previous occurrence on line %d." % (symbol, symbol_def_line[symbol])) + INPUT.close() + + OutputMissingDocumentation() + OutputUndeclaredSymbols() + OutputUnusedSymbols() + + if options.outputallsymbols: + OutputAllSymbols() + + if options.outputsymbolswithoutsince: + OutputSymbolsWithoutSince() + + for filename in options.expand_content_files.split(): + file_changed = OutputExtraFile(filename) + if file_changed: + changed = True + + return (changed, book_top, book_bottom) + + +def DetermineNamespace(): + """Find common set of characters.""" + name_space = '' + pos = 0 + ratio = 0.0 + while True: + prefix = {} + letter = '' + for symbol in iterkeys(IndexEntriesFull): + if name_space == '' or name_space.lower() in symbol.lower(): + if len(symbol) > pos: + letter = symbol[pos:pos + 1] + # stop prefix scanning + if letter == "_": + # stop on "_" + break + # Should we also stop on a uppercase char, if last was lowercase + # GtkWidget, if we have the 'W' and had the 't' before + # or should we count upper and lowercase, and stop one 2nd uppercase, if we already had a lowercase + # GtkWidget, the 'W' would be the 2nd uppercase and with 't','k' we had lowercase chars before + # need to recound each time as this is per symbol + ul = letter.upper() + if ul in prefix: + prefix[ul] += 1 + else: + prefix[ul] = 1 + + if letter != '' and letter != "_": + maxletter = '' + maxsymbols = 0 + for letter in iterkeys(prefix): + logging.debug("ns prefix: %s: %s", letter, prefix[letter]) + if prefix[letter] > maxsymbols: + maxletter = letter + maxsymbols = prefix[letter] + + ratio = float(len(IndexEntriesFull)) / prefix[maxletter] + logging.debug('most symbols start with %s, that is %f', maxletter, (100 * ratio)) + if ratio > 0.9: + # do another round + name_space += maxletter + + pos += 1 + + else: + ratio = 0.0 + + if ratio < 0.9: + break + return name_space + + +def OutputIndex(basename, apiindex): + """Writes an index that can be included into the main-document into an tag. + + Args: + basename (str): name of the index file without extension + apiindex (dict): the index data + """ + old_index = os.path.join(DB_OUTPUT_DIR, basename + '.xml') + new_index = os.path.join(DB_OUTPUT_DIR, basename + '.new') + lastletter = " " + divopen = 0 + symbol = None + short_symbol = None + + OUTPUT = open(new_index, 'w') + + OUTPUT.write(MakeDocHeader("indexdiv") + "\n\n" % basename) + + logging.info("generate %s index (%d entries) with namespace %s", basename, len(apiindex), NAME_SPACE) + + # do a case insensitive sort while chopping off the prefix + mapped_keys = [ + { + 'original': x, + 'short': re.sub(r'^' + NAME_SPACE + r'\_?(.*)', r'\1', x.upper(), flags=re.I), + } for x in iterkeys(apiindex)] + sorted_keys = sorted(mapped_keys, key=lambda d: (d['short'], d['original'])) + + for key in sorted_keys: + symbol = key['original'] + short = key['short'] + if short != '': + short_symbol = short + else: + short_symbol = symbol + + # generate a short symbol description + symbol_desc = '' + symbol_section = '' + symbol_section_id = '' + symbol_type = '' + if symbol in DeclarationTypes: + symbol_type = DeclarationTypes[symbol].lower() + + if symbol_type == '': + logging.info("trying symbol %s", symbol) + m1 = re.search(r'(.*)::(.*)', symbol) + m2 = re.search(r'(.*):(.*)', symbol) + if m1: + oname = m1.group(1) + osym = m1.group(2) + logging.info(" trying object signal %s:%s in %d signals", oname, osym, len(SignalNames)) + for name in SignalNames: + logging.info(" " + name) + if name == osym: + symbol_type = "object signal" + if oname in SymbolSection: + symbol_section = SymbolSection[oname] + symbol_section_id = SymbolSectionId[oname] + break + elif m2: + oname = m2.group(1) + osym = m2.group(2) + logging.info(" trying object property %s::%s in %d properties", oname, osym, len(ArgNames)) + for name in ArgNames: + logging.info(" " + name) + if name == osym: + symbol_type = "object property" + if oname in SymbolSection: + symbol_section = SymbolSection[oname] + symbol_section_id = SymbolSectionId[oname] + break + else: + if symbol in SymbolSection: + symbol_section = SymbolSection[symbol] + symbol_section_id = SymbolSectionId[symbol] + + if symbol_type != '': + symbol_desc = ", " + symbol_type + if symbol_section != '': + symbol_desc += " in %s" % (symbol_section_id, symbol_section) + # symbol_desc +=" in " + ExpandAbbreviations(symbol, "#symbol_section") + + curletter = short_symbol[0].upper() + ixid = apiindex[symbol] + + logging.info(" add symbol %s with %s to index in section '%s' (derived from %s)", + symbol, ixid, curletter, short_symbol) + + if curletter != lastletter: + lastletter = curletter + + if divopen: + OUTPUT.write("\n") + + OUTPUT.write("%s\n" % curletter) + divopen = True + + OUTPUT.write('%s%s\n' % + (ixid, ixid, symbol, symbol_desc)) + + if divopen: + OUTPUT.write("\n") + + OUTPUT.write("\n") + OUTPUT.close() + + common.UpdateFileIfChanged(old_index, new_index, 0) + + +def OutputSinceIndexes(): + """Generate the 'since' api index files.""" + for version in set(Since.values()): + logging.info("Since : [%s]", version) + index = {x: IndexEntriesSince[x] for x in iterkeys(IndexEntriesSince) if Since[x] == version} + OutputIndex("api-index-" + version, index) + + +def OutputAnnotationGlossary(): + """Writes a glossary of the used annotation terms. + + The glossary file can be included into the main document. + """ + # if there are no annotations used return + if not AnnotationsUsed: + return + + old_glossary = os.path.join(DB_OUTPUT_DIR, "annotation-glossary.xml") + new_glossary = os.path.join(DB_OUTPUT_DIR, "annotation-glossary.new") + lastletter = " " + divopen = False + + # add acronyms that are referenced from acronym text + rerun = True + while rerun: + rerun = False + for annotation in AnnotationsUsed: + if annotation not in AnnotationDefinition: + continue + m = re.search(r'([\w ]+)<\/acronym>', AnnotationDefinition[annotation]) + if m and m.group(1) not in AnnotationsUsed: + AnnotationsUsed[m.group(1)] = 1 + rerun = True + break + + OUTPUT = common.open_text(new_glossary, 'w') + + OUTPUT.write('''%s + + Annotation Glossary +''' % MakeDocHeader("glossary")) + + for annotation in sorted(iterkeys(AnnotationsUsed), key=str.lower): + if annotation in AnnotationDefinition: + definition = AnnotationDefinition[annotation] + curletter = annotation[0].upper() + + if curletter != lastletter: + lastletter = curletter + + if divopen: + OUTPUT.write("\n") + + OUTPUT.write("%s\n" % curletter) + divopen = True + + OUTPUT.write(''' + %s + + %s + + +''' % (annotation, annotation, definition)) + + if divopen: + OUTPUT.write("\n") + + OUTPUT.write("\n") + OUTPUT.close() + + common.UpdateFileIfChanged(old_glossary, new_glossary, 0) + + +def ReadKnownSymbols(file): + """Collect the names of non-private symbols from the $MODULE-sections.txt file. + + Args: + file: the $MODULE-sections.txt file + """ + + subsection = '' + + logging.info("Reading: %s", file) + INPUT = common.open_text(file) + for line in INPUT: + if line.startswith('#'): + continue + + if line.startswith('
'): + subsection = '' + continue + + m = re.search(r'^', line, flags=re.I) + if m: + subsection = m.group(1) + continue + + if line.startswith(''): + continue + + if re.search(r'^(.*)<\/TITLE>', line): + continue + + m = re.search(r'^<FILE>(.*)<\/FILE>', line) + if m: + KnownSymbols[m.group(1) + ":Long_Description"] = 1 + KnownSymbols[m.group(1) + ":Short_Description"] = 1 + continue + + m = re.search(r'^<INCLUDE>(.*)<\/INCLUDE>', line) + if m: + continue + + m = re.search(r'^<\/SECTION>', line) + if m: + continue + + m = re.search(r'^(\S+)', line) + if m: + symbol = m.group(1) + if subsection != "Standard" and subsection != "Private": + KnownSymbols[symbol] = 1 + else: + KnownSymbols[symbol] = 0 + INPUT.close() + + +def OutputDeclaration(symbol, declaration): + """Returns the formatted documentation block for a symbol. + + Args: + symbol (str): the name of the function/macro/... + declaration (str): the declaration of the function/macro. + + Returns: + str: the formatted documentation + """ + + dtype = DeclarationTypes[symbol] + if dtype == 'MACRO': + return OutputMacro(symbol, declaration) + elif dtype == 'TYPEDEF': + return OutputTypedef(symbol, declaration) + elif dtype == 'STRUCT': + return OutputStruct(symbol, declaration) + elif dtype == 'ENUM': + return OutputEnum(symbol, declaration) + elif dtype == 'UNION': + return OutputUnion(symbol, declaration) + elif dtype == 'VARIABLE': + return OutputVariable(symbol, declaration) + elif dtype == 'FUNCTION': + return OutputFunction(symbol, declaration, dtype) + elif dtype == 'USER_FUNCTION': + return OutputFunction(symbol, declaration, dtype) + else: + logging.warning("Unknown symbol type %s for symbol %s", dtype, symbol) + return ('', '') + + +def OutputSymbolTraits(symbol): + """Returns the Since and StabilityLevel paragraphs for a symbol. + + Args: + symbol (str): the name to describe + + Returns: + str: paragraph or empty string + """ + + desc = '' + + if symbol in Since: + link_id = "api-index-" + Since[symbol] + desc += "<para role=\"since\">Since: <link linkend=\"%s\">%s</link></para>" % (link_id, Since[symbol]) + + if symbol in StabilityLevel: + stability = StabilityLevel[symbol] + if stability in AnnotationDefinition: + AnnotationsUsed[stability] = True + stability = "<acronym>%s</acronym>" % stability + desc += "<para role=\"stability\">Stability Level: %s</para>" % stability + return desc + + +def uri_escape(text): + if text is None: + return None + + # Build a char to hex map + escapes = {chr(i): ("%%%02X" % i) for i in range(256)} + + # Default unsafe characters. RFC 2732 ^(uric - reserved) + def do_escape(char): + return escapes[char] + return re.sub(r"([^A-Za-z0-9\-_.!~*'()]", do_escape, text) + + +def OutputSymbolExtraLinks(symbol): + """Returns extralinks for the symbol (if enabled). + + Args: + symbol (str): the name to describe + + Returns: + str: paragraph or empty string + """ + desc = '' + + if False: # NEW FEATURE: needs configurability + sstr = uri_escape(symbol) + mstr = uri_escape(MODULE) + desc += '''<ulink role="extralinks" url="http://www.google.com/codesearch?q=%s">code search</ulink> +<ulink role="extralinks" url="http://library.gnome.org/edit?module=%s&symbol=%s">edit documentation</ulink> +''' % (sstr, mstr, sstr) + + return desc + + +def OutputSectionExtraLinks(symbol, docsymbol): + desc = '' + + if False: # NEW FEATURE: needs configurability + sstr = uri_escape(symbol) + mstr = uri_escape(MODULE) + dsstr = uri_escape(docsymbol) + desc += '''<ulink role="extralinks" url="http://www.google.com/codesearch?q=%s">code search</ulink> +<ulink role="extralinks" url="http://library.gnome.org/edit?module=%s&symbol=%s">edit documentation</ulink> +''' % (sstr, mstr, dsstr) + return desc + + +def OutputMacro(symbol, declaration): + """Returns the synopsis and detailed description of a macro. + + Args: + symbol (str): the macro name. + declaration (str): the declaration of the macro. + + Returns: + str: the formated docs + """ + sid = common.CreateValidSGMLID(symbol) + condition = MakeConditionDescription(symbol) + synop = "<row><entry role=\"define_keyword\">#define</entry><entry role=\"function_name\"><link linkend=\"%s\">%s</link>" % ( + sid, symbol) + + fields = common.ParseMacroDeclaration(declaration, CreateValidSGML) + title = symbol + if len(fields) > 0: + title += '()' + + desc = '<refsect2 id="%s" role="macro"%s>\n<title>%s\n' % (sid, condition, title) + desc += MakeIndexterms(symbol, sid) + desc += "\n" + desc += OutputSymbolExtraLinks(symbol) + + if len(fields) > 0: + synop += "()" + + synop += "\n" + + # Don't output the macro definition if is is a conditional macro or it + # looks like a function, i.e. starts with "g_" or "_?gnome_", or it is + # longer than 2 lines, otherwise we get lots of complicated macros like + # g_assert. + if symbol not in DeclarationConditional and not symbol.startswith('g_') \ + and not re.search(r'^_?gnome_', symbol) and declaration.count('\n') < 2: + decl_out = CreateValidSGML(declaration) + desc += "%s\n" % decl_out + else: + desc += "" + "#define".ljust(RETURN_TYPE_FIELD_WIDTH) + symbol + m = re.search(r'^\s*#\s*define\s+\w+(\([^\)]*\))', declaration) + if m: + args = m.group(1) + pad = ' ' * (RETURN_TYPE_FIELD_WIDTH - len("#define ")) + # Align each line so that if should all line up OK. + args = args.replace('\n', '\n' + pad) + desc += CreateValidSGML(args) + + desc += "\n" + + desc += MakeDeprecationNote(symbol) + + parameters = OutputParamDescriptions("MACRO", symbol, fields) + + if symbol in SymbolDocs: + symbol_docs = ConvertMarkDown(symbol, SymbolDocs[symbol]) + desc += symbol_docs + + desc += parameters + desc += OutputSymbolTraits(symbol) + desc += "\n" + return (synop, desc) + + +def OutputTypedef(symbol, declaration): + """Returns the synopsis and detailed description of a typedef. + + Args: + symbol (str): the typedef. + declaration (str): the declaration of the typedef, + e.g. 'typedef unsigned int guint;' + + Returns: + str: the formated docs + """ + sid = common.CreateValidSGMLID(symbol) + condition = MakeConditionDescription(symbol) + desc = "\n%s\n" % (sid, condition, symbol) + synop = "typedef%s\n" % ( + sid, symbol) + + desc += MakeIndexterms(symbol, sid) + desc += "\n" + desc += OutputSymbolExtraLinks(symbol) + + if symbol not in DeclarationConditional: + decl_out = CreateValidSGML(declaration) + desc += "%s\n" % decl_out + + desc += MakeDeprecationNote(symbol) + + if symbol in SymbolDocs: + desc += ConvertMarkDown(symbol, SymbolDocs[symbol]) + + desc += OutputSymbolTraits(symbol) + desc += "\n" + return (synop, desc) + + +def OutputStruct(symbol, declaration): + """Returns the synopsis and detailed description of a struct. + + We check if it is a object struct, and if so we only output parts of it that + are noted as public fields. We also use a different IDs for object structs, + since the original ID is used for the entire RefEntry. + + Args: + symbol (str): the struct. + declaration (str): the declaration of the struct. + + Returns: + str: the formated docs + """ + is_gtype = False + default_to_public = True + if CheckIsObject(symbol): + logging.info("Found struct gtype: %s", symbol) + is_gtype = True + default_to_public = ObjectRoots[symbol] == 'GBoxed' + + sid = None + condition = None + if is_gtype: + sid = common.CreateValidSGMLID(symbol + "_struct") + condition = MakeConditionDescription(symbol + "_struct") + else: + sid = common.CreateValidSGMLID(symbol) + condition = MakeConditionDescription(symbol) + + # Determine if it is a simple struct or it also has a typedef. + has_typedef = False + if symbol in StructHasTypedef or re.search(r'^\s*typedef\s+', declaration): + has_typedef = True + + type_output = None + desc = None + if has_typedef: + # For structs with typedefs we just output the struct name. + type_output = '' + desc = "\n%s\n" % (sid, condition, symbol) + else: + type_output = "struct" + desc = "\nstruct %s\n" % (sid, condition, symbol) + + synop = "%s%s\n" % ( + type_output, sid, symbol) + + desc += MakeIndexterms(symbol, sid) + desc += "\n" + desc += OutputSymbolExtraLinks(symbol) + + # Form a pretty-printed, private-data-removed form of the declaration + + decl_out = '' + if re.search(r'^\s*$', declaration): + logging.info("Found opaque struct: %s", symbol) + decl_out = "typedef struct _%s %s;" % (symbol, symbol) + elif re.search(r'^\s*struct\s+\w+\s*;\s*$', declaration): + logging.info("Found opaque struct: %s", symbol) + decl_out = "struct %s;" % symbol + else: + m = re.search( + r'^\s*(typedef\s+)?struct\s*\w*\s*(?:\/\*.*\*\/)?\s*{(.*)}\s*\w*\s*;\s*$', declaration, flags=re.S) + if m: + struct_contents = m.group(2) + + public = default_to_public + new_declaration = '' + + for decl_line in struct_contents.splitlines(): + logging.info("Struct line: %s", decl_line) + m2 = re.search(r'/\*\s*<\s*public\s*>\s*\*/', decl_line) + m3 = re.search(r'/\*\s*<\s*(private|protected)\s*>\s*\*/', decl_line) + if m2: + public = True + elif m3: + public = False + elif public: + new_declaration += decl_line + "\n" + + if new_declaration: + # Strip any blank lines off the ends. + new_declaration = re.sub(r'^\s*\n', '', new_declaration) + new_declaration = re.sub(r'\n\s*$', r'\n', new_declaration) + + if has_typedef: + decl_out = "typedef struct {\n%s} %s;\n" % (new_declaration, symbol) + else: + decl_out = "struct %s {\n%s};\n" % (symbol, new_declaration) + + else: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Couldn't parse struct:\n%s" % declaration) + + # If we couldn't parse the struct or it was all private, output an + # empty struct declaration. + if decl_out == '': + if has_typedef: + decl_out = "typedef struct _%s %s;" % (symbol, symbol) + else: + decl_out = "struct %s;" % symbol + + decl_out = CreateValidSGML(decl_out) + desc += "%s\n" % decl_out + + desc += MakeDeprecationNote(symbol) + + if symbol in SymbolDocs: + desc += ConvertMarkDown(symbol, SymbolDocs[symbol]) + + # Create a table of fields and descriptions + + # FIXME: Inserting  's into the produced type declarations here would + # improve the output in most situations ... except for function + # members of structs! + def pfunc(*args): + return '%s' % (common.CreateValidSGMLID(sid + '.' + args[0]), args[0]) + fields = common.ParseStructDeclaration(declaration, not default_to_public, 0, MakeXRef, pfunc) + params = SymbolParams.get(symbol) + + # If no parameters are filled in, we don't generate the description + # table, for backwards compatibility. + found = False + if params: + found = next((True for p in params.values() if p.strip() != ''), False) + + if found: + field_descrs = params + missing_parameters = '' + unused_parameters = '' + sid = common.CreateValidSGMLID(symbol + ".members") + + desc += '''\nMembers + + + + + + +''' % sid + + for field_name, text in iteritems(fields): + param_annotations = '' + + desc += "%s\n" % text + if field_name in field_descrs: + (field_descr, param_annotations) = ExpandAnnotation(symbol, field_descrs[field_name]) + field_descr = ConvertMarkDown(symbol, field_descr) + # trim + field_descr = re.sub(r'^(\s|\n)+', '', field_descr, flags=re.M | re.S) + field_descr = re.sub(r'(\s|\n)+$', '', field_descr, flags=re.M | re.S) + desc += "%s\n%s\n" % ( + field_descr, param_annotations) + del field_descrs[field_name] + else: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Field description for %s::%s is missing in source code comment block." % (symbol, field_name)) + if missing_parameters != '': + missing_parameters += ", " + field_name + else: + missing_parameters = field_name + + desc += "\n" + + desc += "\n" + + desc += "\n\n" + for field_name in field_descrs: + # Documenting those standard fields is not required anymore, but + # we don't want to warn if they are documented anyway. + m = re.search(r'(g_iface|parent_instance|parent_class)', field_name) + if m: + continue + + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Field description for %s::%s is not used from source code comment block." % (symbol, field_name)) + if unused_parameters != '': + unused_parameters += ", " + field_name + else: + unused_parameters = field_name + + # remember missing/unused parameters (needed in tmpl-free build) + if missing_parameters != '' and (symbol not in AllIncompleteSymbols): + AllIncompleteSymbols[symbol] = missing_parameters + + if unused_parameters != '' and (symbol not in AllUnusedSymbols): + AllUnusedSymbols[symbol] = unused_parameters + else: + if fields: + if symbol not in AllIncompleteSymbols: + AllIncompleteSymbols[symbol] = "" + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Field descriptions for struct %s are missing in source code comment block." % symbol) + logging.info("Remaining structs fields: " + ':'.join(fields) + "\n") + + desc += OutputSymbolTraits(symbol) + desc += "\n" + return (synop, desc) + + +def OutputUnion(symbol, declaration): + """Returns the synopsis and detailed description of a union. + + Args: + symbol (str): the union. + declaration (str): the declaration of the union. + + Returns: + str: the formated docs + """ + is_gtype = False + if CheckIsObject(symbol): + logging.info("Found union gtype: %s", symbol) + is_gtype = True + + sid = None + condition = None + if is_gtype: + sid = common.CreateValidSGMLID(symbol + "_union") + condition = MakeConditionDescription(symbol + "_union") + else: + sid = common.CreateValidSGMLID(symbol) + condition = MakeConditionDescription(symbol) + + # Determine if it is a simple struct or it also has a typedef. + has_typedef = False + if symbol in StructHasTypedef or re.search(r'^\s*typedef\s+', declaration): + has_typedef = True + + type_output = None + desc = None + if has_typedef: + # For unions with typedefs we just output the union name. + type_output = '' + desc = "\n%s\n" % (sid, condition, symbol) + else: + type_output = "union" + desc = "\nunion %s\n" % (sid, condition, symbol) + + synop = "%s%s\n" % ( + type_output, sid, symbol) + + desc += MakeIndexterms(symbol, sid) + desc += "\n" + desc += OutputSymbolExtraLinks(symbol) + desc += MakeDeprecationNote(symbol) + + if symbol in SymbolDocs: + desc += ConvertMarkDown(symbol, SymbolDocs[symbol]) + + # Create a table of fields and descriptions + + # FIXME: Inserting  's into the produced type declarations here would + # improve the output in most situations ... except for function + # members of structs! + def pfunc(*args): + return '%s' % (common.CreateValidSGMLID(sid + '.' + args[0]), args[0]) + fields = common.ParseStructDeclaration(declaration, 0, 0, MakeXRef, pfunc) + params = SymbolParams.get(symbol) + + # If no parameters are filled in, we don't generate the description + # table, for backwards compatibility + found = False + if params: + found = next((True for p in params.values() if p.strip() != ''), False) + + logging.debug('Union %s has %d entries, found=%d, has_typedef=%d', symbol, len(fields), found, has_typedef) + + if found: + field_descrs = params + missing_parameters = '' + unused_parameters = '' + sid = common.CreateValidSGMLID('%s.members' % symbol) + + desc += '''\nMembers + + + + + + +''' % sid + + for field_name, text in iteritems(fields): + param_annotations = '' + + desc += "%s\n" % text + if field_name in field_descrs: + (field_descr, param_annotations) = ExpandAnnotation(symbol, field_descrs[field_name]) + field_descr = ConvertMarkDown(symbol, field_descr) + + # trim + field_descr = re.sub(r'^(\s|\n)+', '', field_descr, flags=re.M | re.S) + field_descr = re.sub(r'(\s|\n)+$', '', field_descr, flags=re.M | re.S) + desc += "%s\n%s\n" % ( + field_descr, param_annotations) + del field_descrs[field_name] + else: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Field description for %s::%s is missing in source code comment block." % (symbol, field_name)) + if missing_parameters != '': + missing_parameters += ", " + field_name + else: + missing_parameters = field_name + + desc += "\n" + + desc += "\n" + + desc += "\n" + for field_name in field_descrs: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Field description for %s::%s is not used from source code comment block." % (symbol, field_name)) + if unused_parameters != '': + unused_parameters += ", " + field_name + else: + unused_parameters = field_name + + # remember missing/unused parameters (needed in tmpl-free build) + if missing_parameters != '' and (symbol not in AllIncompleteSymbols): + AllIncompleteSymbols[symbol] = missing_parameters + + if unused_parameters != '' and (symbol not in AllUnusedSymbols): + AllUnusedSymbols[symbol] = unused_parameters + else: + if len(fields) > 0: + if symbol not in AllIncompleteSymbols: + AllIncompleteSymbols[symbol] = "" + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Field descriptions for union %s are missing in source code comment block." % symbol) + logging.info("Remaining union fields: " + ':'.join(fields) + "\n") + + desc += OutputSymbolTraits(symbol) + desc += "\n" + return (synop, desc) + + +def OutputEnum(symbol, declaration): + """Returns the synopsis and detailed description of a enum. + + Args: + symbol (str): the enum. + declaration (str): the declaration of the enum. + + Returns: + str: the formated docs + """ + is_gtype = False + if CheckIsObject(symbol): + logging.info("Found enum gtype: %s", symbol) + is_gtype = True + + sid = None + condition = None + if is_gtype: + sid = common.CreateValidSGMLID(symbol + "_enum") + condition = MakeConditionDescription(symbol + "_enum") + else: + sid = common.CreateValidSGMLID(symbol) + condition = MakeConditionDescription(symbol) + + synop = "enum%s\n" % ( + sid, symbol) + desc = "\nenum %s\n" % (sid, condition, symbol) + + desc += MakeIndexterms(symbol, sid) + desc += "\n" + desc += OutputSymbolExtraLinks(symbol) + desc += MakeDeprecationNote(symbol) + + if symbol in SymbolDocs: + desc += ConvertMarkDown(symbol, SymbolDocs[symbol]) + + # Create a table of fields and descriptions + + fields = common.ParseEnumDeclaration(declaration) + params = SymbolParams.get(symbol) + + # If nothing at all is documented log a single summary warning at the end. + # Otherwise, warn about each undocumented item. + + found = False + if params: + found = next((True for p in params.values() if p.strip() != ''), False) + field_descrs = params + else: + field_descrs = {} + + missing_parameters = '' + unused_parameters = '' + + sid = common.CreateValidSGMLID("%s.members" % symbol) + desc += '''\nMembers + + + + + + +''' % sid + + for field_name in fields: + field_descr = field_descrs.get(field_name) + param_annotations = '' + + sid = common.CreateValidSGMLID(field_name) + condition = MakeConditionDescription(field_name) + desc += "%s\n" % ( + sid, field_name) + if field_descr: + field_descr, param_annotations = ExpandAnnotation(symbol, field_descr) + field_descr = ConvertMarkDown(symbol, field_descr) + desc += "%s\n%s\n" % ( + field_descr, param_annotations) + del field_descrs[field_name] + else: + if found: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Value description for %s::%s is missing in source code comment block." % (symbol, field_name)) + if missing_parameters != '': + missing_parameters += ", " + field_name + else: + missing_parameters = field_name + desc += "\n" + desc += "\n" + + desc += "\n" + for field_name in field_descrs: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Value description for %s::%s is not used from source code comment block." % (symbol, field_name)) + if unused_parameters != '': + unused_parameters += ", " + field_name + else: + unused_parameters = field_name + + # remember missing/unused parameters (needed in tmpl-free build) + if missing_parameters != '' and (symbol not in AllIncompleteSymbols): + AllIncompleteSymbols[symbol] = missing_parameters + + if unused_parameters != '' and (symbol not in AllUnusedSymbols): + AllUnusedSymbols[symbol] = unused_parameters + + if not found: + if len(fields) > 0: + if symbol not in AllIncompleteSymbols: + AllIncompleteSymbols[symbol] = "" + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Value descriptions for %s are missing in source code comment block." % symbol) + + desc += OutputSymbolTraits(symbol) + desc += "\n" + return (synop, desc) + + +def OutputVariable(symbol, declaration): + """Returns the synopsis and detailed description of a variable. + + Args: + symbol (str): the extern'ed variable. + declaration (str): the declaration of the variable. + + Returns: + str: the formated docs + """ + sid = common.CreateValidSGMLID(symbol) + condition = MakeConditionDescription(symbol) + + logging.info("ouputing variable: '%s' '%s'", symbol, declaration) + + type_output = None + m1 = re.search( + r'^\s*extern\s+((const\s+|signed\s+|unsigned\s+|long\s+|short\s+)*\w+)(\s+\*+|\*+|\s)(\s*)(const\s+)*([A-Za-z]\w*)\s*;', declaration) + m2 = re.search( + r'\s*((const\s+|signed\s+|unsigned\s+|long\s+|short\s+)*\w+)(\s+\*+|\*+|\s)(\s*)(const\s+)*([A-Za-z]\w*)\s*=', declaration) + if m1: + mod1 = m1.group(1) or '' + ptr = m1.group(3) or '' + space = m1.group(4) or '' + mod2 = m1.group(5) or '' + type_output = "extern %s%s%s%s" % (mod1, ptr, space, mod2) + elif m2: + mod1 = m2.group(1) or '' + ptr = m2.group(3) or '' + space = m2.group(4) or '' + mod2 = m2.group(5) or '' + type_output = '%s%s%s%s' % (mod1, ptr, space, mod2) + else: + type_output = "extern" + + synop = "%s%s\n" % ( + type_output, sid, symbol) + + desc = "\n%s\n" % (sid, condition, symbol) + + desc += MakeIndexterms(symbol, sid) + desc += "\n" + desc += OutputSymbolExtraLinks(symbol) + + decl_out = CreateValidSGML(declaration) + desc += "%s\n" % decl_out + + desc += MakeDeprecationNote(symbol) + + if symbol in SymbolDocs: + desc += ConvertMarkDown(symbol, SymbolDocs[symbol]) + + if symbol in SymbolAnnotations: + param_desc = SymbolAnnotations[symbol] + param_annotations = '' + (param_desc, param_annotations) = ExpandAnnotation(symbol, param_desc) + if param_annotations != '': + desc += "\n%s" % param_annotations + + desc += OutputSymbolTraits(symbol) + desc += "\n" + return (synop, desc) + + +def OutputFunction(symbol, declaration, symbol_type): + """Returns the synopsis and detailed description of a function. + + Args: + symbol (str): the function. + declaration (str): the declaration of the function. + + Returns: + str: the formated docs + """ + sid = common.CreateValidSGMLID(symbol) + condition = MakeConditionDescription(symbol) + + # Take out the return type + # $1 $2 $3 + regex = r'\s*((?:const\s+|G_CONST_RETURN\s+|signed\s+|unsigned\s+|long\s+|short\s+|struct\s+|enum\s+)*)(\w+)(\s*\**\s*(?:const|G_CONST_RETURN)?\s*\**\s*(?:restrict)?\s*)<\/RETURNS>\n' + m = re.search(regex, declaration) + declaration = re.sub(regex, '', declaration) + type_modifier = m.group(1) or '' + type = m.group(2) + pointer = m.group(3) + pointer = pointer.rstrip() + xref = MakeXRef(type, tagify(type, "returnvalue")) + start = '' + # if (symbol_type == 'USER_FUNCTION') + # start = "typedef " + # + + # We output const rather than G_CONST_RETURN. + type_modifier = re.sub(r'G_CONST_RETURN', 'const', type_modifier) + pointer = re.sub(r'G_CONST_RETURN', 'const', pointer) + pointer = re.sub(r'^\s+', ' ', pointer) + + ret_type_output = "%s%s%s%s\n" % (start, type_modifier, xref, pointer) + + indent_len = len(symbol) + 2 + char1 = char2 = char3 = '' + if symbol_type == 'USER_FUNCTION': + indent_len += 3 + char1 = "(" + char2 = "*" + char3 = ")" + + symbol_output = "%s%s%s%s" % (char1, sid, char2, symbol, char3) + if indent_len < MAX_SYMBOL_FIELD_WIDTH: + symbol_desc_output = "%s%s%s%s " % (char1, char2, symbol, char3) + else: + indent_len = MAX_SYMBOL_FIELD_WIDTH - 8 + symbol_desc_output = ('%s%s%s%s\n' % (char1, char2, symbol, char3)) + (' ' * (indent_len - 1)) + + synop = "%s%s ()\n" % ( + ret_type_output, symbol_output) + + desc = "\n%s ()\n" % (sid, condition, symbol) + + desc += MakeIndexterms(symbol, sid) + desc += "\n" + desc += OutputSymbolExtraLinks(symbol) + + desc += "%s%s(" % (ret_type_output, symbol_desc_output) + + def tagfun(*args): + return tagify(args[0], "parameter") + + fields = common.ParseFunctionDeclaration(declaration, MakeXRef, tagfun) + + first = True + for field_name in fields.values(): + if first: + desc += field_name + first = False + else: + desc += ",\n" + (' ' * indent_len) + field_name + + desc += ");\n" + + desc += MakeDeprecationNote(symbol) + + if symbol in SymbolDocs: + desc += ConvertMarkDown(symbol, SymbolDocs[symbol]) + + if symbol in SymbolAnnotations: + param_desc = SymbolAnnotations[symbol] + (param_desc, param_annotations) = ExpandAnnotation(symbol, param_desc) + if param_annotations != '': + desc += "\n%s" % param_annotations + + desc += OutputParamDescriptions("FUNCTION", symbol, iterkeys(fields)) + desc += OutputSymbolTraits(symbol) + desc += "\n" + return (synop, desc) + + +def OutputParamDescriptions(symbol_type, symbol, fields): + """Returns the DocBook output describing the parameters of a symbol. + + This can be used for functions, macros or signal handlers. + + Args: + symbol_type (str): 'FUNCTION', 'MACRO' or 'SIGNAL'. Signal + handlers have an implicit user_data parameter last. + symbol (str): the name of the symbol being described. + fields (list): parsed fields from the declaration, used to determine + undocumented/unused entries + + Returns: + str: the formated parameter docs + """ + output = '' + num_params = 0 + field_descrs = None + + if fields: + field_descrs = [f for f in fields if f not in ['void', 'Returns']] + else: + field_descrs = [] + + params = SymbolParams.get(symbol) + logging.info("param_desc(%s, %s) = %s", symbol_type, symbol, str(params)) + # This might be an empty dict, but for SIGNALS we append the user_data docs. + # TODO(ensonic): maybe create that docstring in GetSignals() + if params is not None: + returns = '' + params_desc = '' + missing_parameters = '' + unused_parameters = '' + + for param_name, param_desc in iteritems(params): + (param_desc, param_annotations) = ExpandAnnotation(symbol, param_desc) + param_desc = ConvertMarkDown(symbol, param_desc) + # trim + param_desc = re.sub(r'^(\s|\n)+', '', param_desc, flags=re.M | re.S) + param_desc = re.sub(r'(\s|\n)+$', '', param_desc, flags=re.M | re.S) + if param_name == "Returns": + returns = param_desc + if param_annotations != '': + returns += "\n%s" % param_annotations + + elif param_name == "void": + # FIXME: &common.LogWarning()? + logging.info("!!!! void in params for %s?\n", symbol) + else: + if fields: + if param_name not in field_descrs: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Parameter description for %s::%s is not used from source code comment block." % (symbol, param_name)) + if unused_parameters != '': + unused_parameters += ", " + param_name + else: + unused_parameters = param_name + else: + field_descrs.remove(param_name) + + if param_desc != '': + params_desc += "%s\n%s\n%s\n" % ( + param_name, param_desc, param_annotations) + num_params += 1 + + for param_name in field_descrs: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Parameter description for %s::%s is missing in source code comment block." % (symbol, param_name)) + if missing_parameters != '': + missing_parameters += ", " + param_name + else: + missing_parameters = param_name + + # Signals have an implicit user_data parameter which we describe. + if symbol_type == "SIGNAL": + params_desc += "user_data\nuser data set when the signal handler was connected.\n\n" + + # Start a table if we need one. + if params_desc != '': + sid = common.CreateValidSGMLID("%s.parameters" % symbol) + + output += '''\nParameters + + + + + + +''' % sid + output += params_desc + output += "\n" + + # Output the returns info last + if returns != '': + sid = common.CreateValidSGMLID("%s.returns" % symbol) + + output += '''\nReturns +''' % sid + output += returns + output += "\n" + + # remember missing/unused parameters (needed in tmpl-free build) + if missing_parameters != '' and (symbol not in AllIncompleteSymbols): + AllIncompleteSymbols[symbol] = missing_parameters + + if unused_parameters != '' and (symbol not in AllUnusedSymbols): + AllUnusedSymbols[symbol] = unused_parameters + + if num_params == 0 and fields and field_descrs: + if symbol not in AllIncompleteSymbols: + AllIncompleteSymbols[symbol] = "" + return output + + +def ParseStabilityLevel(stability, file, line, message): + """Parses a stability level and outputs a warning if it isn't valid. + Args: + stability (str): the stability text. + file, line: context for error message + message: description of where the level is from, to use in any error message. + Returns: + str: the parsed stability level string. + """ + stability = stability.strip() + sl = stability.strip().lower() + if sl == 'stable': + stability = "Stable" + elif sl == 'unstable': + stability = "Unstable" + elif sl == 'private': + stability = "Private" + else: + common.LogWarning(file, line, + "%s is %s. It should be one of these: Stable, " + "Unstable, or Private." % ( + message, stability)) + return str(stability) + + +def OutputDBFile(file, title, section_id, includes, functions_synop, other_synop, functions_details, other_details, signals_synop, signals_desc, args_synop, args_desc, hierarchy, interfaces, implementations, prerequisites, derived, file_objects): + """Outputs the final DocBook file for one section. + + Args: + file (str): the name of the file. + title (str): the title from the $MODULE-sections.txt file + section_id (str): the id to use for the toplevel tag. + includes (str): comma-separates list of include files added at top of + synopsis, with '<' '>' around them (if not already enclosed in ''). + functions_synop (str): the DocBook for the Functions Synopsis part. + other_synop (str): the DocBook for the Types and Values Synopsis part. + functions_details (str): the DocBook for the Functions Details part. + other_details (str): the DocBook for the Types and Values Details part. + signal_synop (str): the DocBook for the Signal Synopsis part + signal_desc (str): the DocBook for the Signal Description part + args_synop (str): the DocBook for the Arg Synopsis part + args_desc (str): the DocBook for the Arg Description part + hierarchy (str): the DocBook for the Object Hierarchy part + interfaces (str): the DocBook for the Interfaces part + implementations (str): the DocBook for the Known Implementations part + prerequisites (str): the DocBook for the Prerequisites part + derived (str): the DocBook for the Derived Interfaces part + file_objects (list): objects in this file + + Returns: + bool: True if the docs where updated + """ + + logging.info("Output docbook for file %s with title '%s'", file, title) + + # The edited title overrides the one from the sections file. + new_title = SymbolDocs.get(file + ":Title") + if new_title and not new_title.strip() == '': + title = new_title + logging.info("Found title: %s", title) + + short_desc = SymbolDocs.get(file + ":Short_Description") + if not short_desc or short_desc.strip() == '': + short_desc = '' + else: + # Don't use ConvertMarkDown here for now since we don't want blocks + short_desc = ExpandAbbreviations(title + ":Short_description", short_desc) + logging.info("Found short_desc: %s", short_desc) + + long_desc = SymbolDocs.get(file + ":Long_Description") + if not long_desc or long_desc.strip() == '': + long_desc = '' + else: + long_desc = ConvertMarkDown(title + ":Long_description", long_desc) + logging.info("Found long_desc: %s", long_desc) + + see_also = SymbolDocs.get(file + ":See_Also") + if not see_also or re.search(r'^\s*()?\s*()?\s*$', see_also): + see_also = '' + else: + see_also = ConvertMarkDown(title + ":See_Also", see_also) + logging.info("Found see_also: %s", see_also) + + if see_also: + see_also = "\nSee Also\n%s\n\n" % (section_id, see_also) + + stability = SymbolDocs.get(file + ":Stability_Level") + if not stability or re.search(r'^\s*$', stability): + stability = '' + else: + line_number = GetSymbolSourceLine(file + ":Stability_Level") + stability = ParseStabilityLevel(stability, file, line_number, "Section stability level") + logging.info("Found stability: %s", stability) + + if not stability: + stability = DEFAULT_STABILITY or '' + + if stability: + if stability in AnnotationDefinition: + AnnotationsUsed[stability] = True + stability = "%s" % stability + stability = "\nStability Level\n%s, unless otherwise indicated\n\n" % ( + section_id, stability) + + image = SymbolDocs.get(file + ":Image") + if not image or re.search(r'^\s*$', image): + image = '' + else: + image = image.strip() + + format = None + + il = image.lower() + if re.search(r'jpe?g$', il): + format = "format='JPEG'" + elif il.endswith('png'): + format = "format='PNG'" + elif il.endswith('svg'): + format = "format='SVG'" + else: + format = '' + + image = " \n" % (image, format) + + include_output = '' + if includes: + include_output += "Includes" % section_id + for include in includes.split(','): + if re.search(r'^\".+\"$', include): + include_output += "#include %s\n" % include + else: + include = re.sub(r'^\s+|\s+$', '', include, flags=re.S) + include_output += "#include <%s>\n" % include + + include_output += "\n" + + extralinks = OutputSectionExtraLinks(title, "Section:%s" % file) + + old_db_file = os.path.join(DB_OUTPUT_DIR, file + '.xml') + new_db_file = os.path.join(DB_OUTPUT_DIR, file + '.xml.new') + + OUTPUT = common.open_text(new_db_file, 'w') + + object_anchors = '' + for fobject in file_objects: + if fobject == section_id: + continue + sid = common.CreateValidSGMLID(fobject) + logging.info("Adding anchor for %s\n", fobject) + object_anchors += "" % sid + + # Make sure we produce valid docbook + if not functions_details: + functions_details = "" + + # We used to output this, but is messes up our common.UpdateFileIfChanged code + # since it changes every day (and it is only used in the man pages): + # "" + + OUTPUT.write(REFENTRY.substitute({ + 'args_desc': args_desc, + 'args_synop': args_synop, + 'derived': derived, + 'extralinks': extralinks, + 'functions_details': functions_details, + 'functions_synop': functions_synop, + 'header': MakeDocHeader('refentry'), + 'hierarchy': hierarchy, + 'image': image, + 'include_output': include_output, + 'interfaces': interfaces, + 'implementations': implementations, + 'long_desc': long_desc, + 'object_anchors': object_anchors, + 'other_details': other_details, + 'other_synop': other_synop, + 'prerequisites': prerequisites, + 'section_id': section_id, + 'see_also': see_also, + 'signals_desc': signals_desc, + 'signals_synop': signals_synop, + 'short_desc': short_desc, + 'stability': stability, + 'title': title, + 'MODULE': MODULE.upper(), + })) + OUTPUT.close() + + return common.UpdateFileIfChanged(old_db_file, new_db_file, 0) + + +def OutputProgramDBFile(program, section_id): + """Outputs the final DocBook file for one program. + + Args: + file (str): the name of the file. + section_id (str): the id to use for the toplevel tag. + + Returns: + bool: True if the docs where updated + """ + logging.info("Output program docbook for %s", program) + + short_desc = SourceSymbolDocs.get(program + ":Short_Description") + if not short_desc or short_desc.strip() == '': + short_desc = '' + else: + # Don't use ConvertMarkDown here for now since we don't want blocks + short_desc = ExpandAbbreviations(program, short_desc) + logging.info("Found short_desc: %s", short_desc) + + synopsis = SourceSymbolDocs.get(program + ":Synopsis") + if synopsis and synopsis.strip() != '': + items = synopsis.split(' ') + for i in range(0, len(items)): + parameter = items[i] + choice = "plain" + rep = '' + + # first parameter is the command name + if i == 0: + synopsis = "%s\n" % parameter + continue + + # square brackets indicate optional parameters, curly brackets + # indicate required parameters ("plain" parameters are also + # mandatory, but do not get extra decoration) + m1 = re.search(r'^\[(.+?)\]$', parameter) + m2 = re.search(r'^\{(.+?)\}$', parameter) + if m1: + choice = "opt" + parameter = m1.group(1) + elif m2: + choice = "req" + parameter = m2.group(1) + + # parameters ending in "..." are repeatable + if parameter.endswith('...'): + rep = ' rep=\"repeat\"' + parameter = parameter[:-3] + + # italic parameters are replaceable parameters + parameter = re.sub(r'\*(.+?)\*', r'\1', parameter) + + synopsis += "" % (choice, rep) + synopsis += parameter + synopsis += "\n" + + logging.info("Found synopsis: %s", synopsis) + else: + synopsis = "%s" % program + + long_desc = SourceSymbolDocs.get(program + ":Long_Description") + if not long_desc or long_desc.strip() == '': + long_desc = '' + else: + long_desc = ConvertMarkDown("%s:Long_description" % program, long_desc) + logging.info("Found long_desc: %s", long_desc) + + options = '' + o = program + ":Options" + if o in SourceSymbolDocs: + opts = SourceSymbolDocs[o].split('\t') + + logging.info('options: %d, %s', len(opts), str(opts)) + + options = "\nOptions\n\n" + for k in range(0, len(opts), 2): + opt_desc = opts[k + 1] + + opt_desc = re.sub(r'\*(.+?)\*', r'\1', opt_desc) + + options += "\n" + opt_names = opts[k].split(',') + for i in range(len(opt_names)): + prefix = ', ' if i > 0 else '' + # italic parameters are replaceable parameters + opt_name = re.sub(r'\*(.+?)\*', r'\1', opt_names[i]) + + options += "%s\n" % (prefix, opt_name) + + options += "\n" + options += "%s\n" % opt_desc + options += "\n" + + options += "\n" + + exit_status = SourceSymbolDocs.get(program + ":Returns") + if exit_status and exit_status != '': + exit_status = ConvertMarkDown("%s:Returns" % program, exit_status) + exit_status = "\nExit Status\n%s\n\n" % ( + section_id, exit_status) + else: + exit_status = '' + + see_also = SourceSymbolDocs.get(program + ":See_Also") + if not see_also or re.search(r'^\s*()?\s*()?\s*$', see_also): + see_also = '' + else: + see_also = ConvertMarkDown("%s:See_Also" % program, see_also) + logging.info("Found see_also: %s", see_also) + + if see_also: + see_also = "\nSee Also\n%s\n\n" % (section_id, see_also) + + old_db_file = os.path.join(DB_OUTPUT_DIR, program + ".xml") + new_db_file = os.path.join(DB_OUTPUT_DIR, program + ".xml.new") + + OUTPUT = common.open_text(new_db_file, 'w') + + OUTPUT.write('''%s + + +%s +1 +User Commands + + +%s +%s + + +%s + + +Description +%s + +%s%s%s + +''' % (MakeDocHeader("refentry"), section_id, section_id, program, program, short_desc, synopsis, section_id, long_desc, options, exit_status, see_also)) + OUTPUT.close() + + return common.UpdateFileIfChanged(old_db_file, new_db_file, 0) + + +def OutputExtraFile(file): + """Copies an "extra" DocBook file into the output directory, expanding abbreviations. + + Args: + file (str): the source file. + + Returns: + bool: True if the docs where updated + """ + + basename = os.path.basename(file) + + old_db_file = os.path.join(DB_OUTPUT_DIR, basename) + new_db_file = os.path.join(DB_OUTPUT_DIR, basename + ".new") + + contents = common.open_text(file).read() + + OUTPUT = common.open_text(new_db_file, 'w') + OUTPUT.write(ExpandAbbreviations(basename + " file", contents)) + OUTPUT.close() + + return common.UpdateFileIfChanged(old_db_file, new_db_file, 0) + + +def GetDocbookHeader(main_file): + if os.path.exists(main_file): + INPUT = common.open_text(main_file) + header = '' + for line in INPUT: + if re.search(r'^\s*<(book|chapter|article)', line): + # check that the top-level tagSYSTEM or the doctype decl contain the xinclude namespace decl + if not re.search(r'http:\/\/www.w3.org\/200[13]\/XInclude', line) and \ + not re.search(r'http:\/\/www.w3.org\/200[13]\/XInclude', header, flags=re.MULTILINE): + header = '' + break + + # if there are SYSTEM ENTITIES here, we should prepend "../" to the path + # FIXME: not sure if we can do this now, as people already work-around the problem + # r'#', r''; + line = re.sub( + r'', r'', line) + header += line + INPUT.close() + header = header.strip() + else: + header = ''' + + + %gtkdocentities; +]>''' + return header + + +def OutputBook(main_file, book_top, book_bottom): + """Outputs the entities that need to be included into the main docbook file for the module. + + Args: + book_top (str): the declarations of the entities, which are added + at the top of the main docbook file. + book_bottom (str): the entities, which are added in the main docbook + file at the desired position. + """ + + old_file = os.path.join(DB_OUTPUT_DIR, MODULE + "-doc.top") + new_file = os.path.join(DB_OUTPUT_DIR, MODULE + "-doc.top.new") + + OUTPUT = common.open_text(new_file, 'w') + OUTPUT.write(book_top) + OUTPUT.close() + + common.UpdateFileIfChanged(old_file, new_file, 0) + + old_file = os.path.join(DB_OUTPUT_DIR, MODULE + "-doc.bottom") + new_file = os.path.join(DB_OUTPUT_DIR, MODULE + "-doc.bottom.new") + + OUTPUT = common.open_text(new_file, 'w') + OUTPUT.write(book_bottom) + OUTPUT.close() + + common.UpdateFileIfChanged(old_file, new_file, 0) + + # If the main docbook file hasn't been created yet, we create it here. + # The user can tweak it later. + if main_file and not os.path.exists(main_file): + OUTPUT = common.open_text(main_file, 'w') + + logging.info("no master doc, create default one at: " + main_file) + + OUTPUT.write('''%s + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + + + + [Insert title here] + %s + +''' % (MakeDocHeader("book"), book_bottom)) + if os.path.exists('xml/tree_index.sgml'): + OUTPUT.write(''' + Object Hierarchy + + +''') + else: + OUTPUT.write(''' +''') + + OUTPUT.write(''' + API Index + + + + Index of deprecated API + + +''') + for version in set(Since.values()): + dash_version = version.replace('.', '-') + OUTPUT.write(''' + Index of new API in %s + + +''' % (dash_version, version, version, version)) + + if AnnotationsUsed: + OUTPUT.write(''' +''') + else: + OUTPUT.write(''' +''') + + OUTPUT.write(''' +''') + + OUTPUT.close() + + +def CreateValidSGML(text): + """Turn any chars which are used in XML into entities. + + e.g. '<' into '<' + + Args: + text (str): the text to turn into proper XML. + + Returns: + str: escaped input + """ + + text = text.replace('&', '&') # Do this first, or the others get messed up. + text = text.replace('<', '<') + text = text.replace('>', '>') + # browsers render single tabs inconsistently + text = re.sub(r'([^\s])\t([^\s])', r'\1 \2', text) + return text + + +def ConvertSGMLChars(symbol, text): + """Escape XML chars. + + This is used for text in source code comment blocks, to turn + chars which are used in XML into entities, e.g. '<' into + <'. Depending on INLINE_MARKUP_MODE, this is done + unconditionally or only if the character doesn't seem to be + part of an XML construct (tag or entity reference). + Args: + text (str): the text to turn into proper XML. + + Returns: + str: escaped input + """ + + if INLINE_MARKUP_MODE: + # For the XML/SGML mode only convert to entities outside CDATA sections. + return ModifyXMLElements(text, symbol, + "]*>", + ConvertSGMLCharsEndTag, + ConvertSGMLCharsCallback) + # For the simple non-sgml mode, convert to entities everywhere. + + text = re.sub(r'&(?![a-zA-Z#]+;)', r'&', text) # Do this first, or the others get messed up. + text = re.sub(r'<', r'<', text) + # Allow '>' at beginning of string for blockquote markdown + text = re.sub(r'''(?<=[^\w\n"'\/-])>''', r'>', text) + + return text + + +def ConvertSGMLCharsEndTag(start_tag): + if start_tag == '" + return "" + + +def ConvertSGMLCharsCallback(text, symbol, tag): + if re.search(r'^ specially here. + return ModifyXMLElements(text, symbol, + "' at beginning of string for blockquote markdown + text = re.sub(r'''(?<=[^\w\n"'\/-])>''', r'>', text) + + # Handle "#include " + text = re.sub(r'#include(\s+)<([^>]+)>', r'#include\1<\2>', text) + + return text + + +def ConvertSGMLCharsCallback2(text, symbol, tag): + # If we're not in CDATA convert to entities. + # We could handle differently, though I'm not sure it helps. + if tag == '': + # replace only if its not a tag + text = re.sub(r'&(?![a-zA-Z#]+;)', r'&', text) # Do this first, or the others get messed up. + text = re.sub(r'<(?![a-zA-Z\/!])', r'<', text) + text = re.sub(r'''(?''', r'>', text) + # Handle "#include " + text = re.sub(r'/#include(\s+)<([^>]+)>', r'#include\1<\2>', text) + + return text + + +def ExpandAnnotation(symbol, param_desc): + """This turns annotations into acronym tags. + Args: + symbol (str): the symbol being documented, for error messages. + param_desc (str): the text to expand. + + Returns: + str: the remaining param_desc + str: the formatted annotations + """ + param_annotations = '' + + # look for annotations at the start of the comment part + # function level annotations don't end with a colon ':' + m = re.search(r'^\s*\((.*?)\)(:|$)', param_desc) + if m: + param_desc = param_desc[m.end():] + + annotations = re.split(r'\)\s*\(', m.group(1)) + logging.info("annotations for %s: '%s'\n", symbol, m.group(1)) + for annotation in annotations: + # need to search for the longest key-match in %AnnotationDefinition + match_length = 0 + match_annotation = '' + + for annotationdef in AnnotationDefinition: + if annotation.startswith(annotationdef): + if len(annotationdef) > match_length: + match_length = len(annotationdef) + match_annotation = annotationdef + + annotation_extra = '' + if match_annotation != '': + m = re.search(match_annotation + r'\s+(.*)', annotation) + if m: + annotation_extra = " " + m.group(1) + + AnnotationsUsed[match_annotation] = 1 + param_annotations += "[%s%s]" % (match_annotation, annotation_extra) + else: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "unknown annotation \"%s\" in documentation for %s." % (annotation, symbol)) + param_annotations += "[%s]" % annotation + + param_desc = param_desc.strip() + m = re.search(r'^(.*?)\.*\s*$', param_desc, flags=re.S) + param_desc = m.group(1) + '. ' + + if param_annotations != '': + param_annotations = "%s" % param_annotations + + return (param_desc, param_annotations) + + +def ExpandAbbreviations(symbol, text): + """Expand the shortcut notation for symbol references. + + This turns the abbreviations function(), macro(), @param, %constant, and #symbol + into appropriate DocBook markup. CDATA sections and parts + are skipped. + + Args: + symbol (str): the symbol being documented, for error messages. + text (str): the text to expand. + + Returns: + str: the expanded text + """ + # Note: This is a fallback and normally done in the markdown parser + + logging.debug('expand abbreviations for "%s", text: [%s]', symbol, text) + m = re.search(r'\|\[[^\n]*\n(.*)\]\|', text, flags=re.M | re.S) + if m: + logging.debug('replaced entities in code block') + text = text[:m.start(1)] + md_to_db.ReplaceEntities(m.group(1)) + text[m.end(1):] + + # Convert "|[" and "]|" into the start and end of program listing examples. + # Support \[ modifiers + text = re.sub(r'\|\[', + r'', text) + + # keep CDATA unmodified, preserve ulink tags (ideally we preseve all tags + # as such) + return ModifyXMLElements(text, symbol, + "]*>|]*>|" + if start_tag == "' + m = re.search(r'<(\w+)', start_tag) + if m: + return "" % m.group(1) + + logging.warning('no end tag for "%s"', start_tag) + return '' + + +def ExpandAbbreviationsCallback(text, symbol, tag): + # Called inside or outside each CDATA or section. + if tag.startswith(r'^ sections, so we expand + # any gtk-doc abbreviations. + + # Convert '@param()' + # FIXME: we could make those also links ($symbol.$2), but that would be less + # useful as the link target is a few lines up or down + text = re.sub(r'(\A|[^\\])\@(\w+((\.|->)\w+)*)\s*\(\)', r'\1\2()', text) + + # Convert 'function()' or 'macro()'. + # if there is abc_*_def() we don't want to make a link to _def() + # FIXME: also handle abc(def(....)) : but that would need to be done recursively :/ + def f1(m): + return m.group(1) + MakeXRef(m.group(2), tagify(m.group(2) + "()", "function")) + text = re.sub(r'([^\*.\w])(\w+)\s*\(\)', f1, text) + # handle #Object.func() + text = re.sub(r'(\A|[^\\])#([\w\-:\.]+[\w]+)\s*\(\)', f1, text) + + # Convert '@param', but not '\@param'. + text = re.sub(r'(\A|[^\\])\@(\w+((\.|->)\w+)*)', r'\1\2', text) + text = re.sub(r'/\\\@', r'\@', text) + + # Convert '%constant', but not '\%constant'. + # Also allow negative numbers, e.g. %-1. + def f2(m): + return m.group(1) + MakeXRef(m.group(2), tagify(m.group(2), "literal")) + text = re.sub(r'(\A|[^\\])\%(-?\w+)', f2, text) + text = re.sub(r'\\\%', r'\%', text) + + # Convert '#symbol', but not '\#symbol'. + def f3(m): + return m.group(1) + MakeHashXRef(m.group(2), "type") + text = re.sub(r'(\A|[^\\])#([\w\-:\.]+[\w]+)', f3, text) + text = re.sub(r'\\#', '#', text) + + return text + + +def ExpandAbbreviationsCallback2(text, symbol, tag): + # This is called inside a + if tag == '': + # We are inside a but outside any CDATA sections, + # so we expand any gtk-doc abbreviations. + # FIXME: why is this different from &ExpandAbbreviationsCallback(), + # why not just call it + text = re.sub(r'#(\w+)', lambda m: '%s;' % MakeHashXRef(m.group(1), ''), text) + elif tag == ". + + Args: + text (str): the text. + symbol (str): the symbol currently being documented (only used for + error messages). + start_tag_regexp (str): the regular expression to match start tags. + e.g. "]*>" to + match CDATA sections or programlisting elements. + end_tag_func (func): function which is passed the matched start tag + and should return the appropriate end tag string + regexp. + callback - callback called with each part of the text. It is + called with a piece of text, the symbol being + documented, and the matched start tag or '' if the text + is outside the XML elements being matched. + + Returns: + str: modified text + """ + before_tag = start_tag = end_tag_regexp = end_tag = None + result = '' + + logging.debug('modify xml for symbol: %s, regex: %s, text: [%s]', symbol, start_tag_regexp, text) + + m = re.search(start_tag_regexp, text, flags=re.S) + while m: + before_tag = text[:m.start()] # Prematch for last successful match string + start_tag = m.group(0) # Last successful match + text = text[m.end():] # Postmatch for last successful match string + # get the matching end-tag for current tag + end_tag_regexp = end_tag_func(start_tag) + + logging.debug('symbol: %s matched start: %s, end_tag: %s, text: [%s]', symbol, start_tag, end_tag_regexp, text) + + logging.debug('converting before tag: [%s]', before_tag) + result += callback(before_tag, symbol, '') + result += start_tag + + m2 = re.search(end_tag_regexp, text, flags=re.S) + if m2: + before_tag = text[:m2.start()] + end_tag = m2.group(0) + text = text[m2.end():] + + logging.debug('symbol: %s matched end %s: text: [%s]', symbol, end_tag, text) + + result += callback(before_tag, symbol, start_tag) + result += end_tag + else: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Can't find tag end: %s in docs for: %s." % (end_tag_regexp, symbol)) + # Just assume it is all inside the tag. + result += callback(text, symbol, start_tag) + text = '' + m = re.search(start_tag_regexp, text, flags=re.S) + + # Handle any remaining text outside the tags. + logging.debug('converting after tag: [%s]', text) + result += callback(text, symbol, '') + logging.debug('results for symbol: %s, text: [%s]', symbol, result) + + return result + + +def tagify(text, elem): + # Adds a tag around some text. + # e.g tagify("Text", "literal") => "Text". + return '<' + elem + '>' + text + '' + + +def MakeDocHeader(tag): + """Builds a docbook header for the given tag. + + Args: + tag (str): doctype tag + + Returns: + str: the docbook header + """ + header = re.sub(r'', r'', header) + return header + + +def MakeXRef(symbol, text=None): + """This returns a cross-reference link to the given symbol. + + Though it doesn't try to do this for a few standard C types that it knows + won't be in the documentation. + + Args: + symbol (str): the symbol to try to create a XRef to. + text (str): text to put inside the XRef, defaults to symbol + + Returns: + str: a docbook link + """ + symbol = symbol.strip() + if not text: + text = symbol + + # Get rid of special suffixes ('-struct','-enum'). + text = re.sub(r'-struct$', '', text) + text = re.sub(r'-enum$', '', text) + + if ' ' in symbol: + return text + + logging.info("Getting type link for %s -> %s", symbol, text) + + symbol_id = common.CreateValidSGMLID(symbol) + return "%s" % (symbol_id, text) + + +def MakeIndexterms(symbol, sid): + """This returns a indexterm elements for the given symbol + + Args: + symbol (str): the symbol to create indexterms for + + Returns: + str: doxbook index terms + """ + terms = '' + sortas = '' + + # make the index useful, by ommiting the namespace when sorting + if NAME_SPACE != '': + m = re.search(r'^%s\_?(.*)' % NAME_SPACE, symbol, flags=re.I) + if m: + sortas = ' sortas="%s"' % m.group(1) + + if symbol in Deprecated: + terms += "%s" % ( + sid, sortas, symbol) + IndexEntriesDeprecated[symbol] = sid + IndexEntriesFull[symbol] = sid + if symbol in Since: + since = Since[symbol].strip() + if since != '': + terms += "%s" % ( + sid, since, sortas, symbol) + IndexEntriesSince[symbol] = sid + IndexEntriesFull[symbol] = sid + if terms == '': + terms += "%s" % (sid, sortas, symbol) + IndexEntriesFull[symbol] = sid + return terms + + +def MakeDeprecationNote(symbol): + """This returns a deprecation warning for the given symbol. + + Args: + symbol (str): the symbol to try to create a warning for. + + Returns: + str: formatted warning or empty string if symbol is not deprecated + """ + desc = '' + if symbol in Deprecated: + desc += "%s " % symbol + note = Deprecated[symbol] + + m = re.search(r'^\s*([0-9\.]+)\s*:?', note) + if m: + desc += "has been deprecated since version %s and should not be used in newly-written code." % m.group( + 1) + else: + desc += "is deprecated and should not be used in newly-written code." + + note = re.sub(r'^\s*([0-9\.]+)\s*:?\s*', '', note) + note = note.strip() + + if note != '': + note = ConvertMarkDown(symbol, note) + desc += " " + note + + desc += "\n" + + return desc + + +def MakeConditionDescription(symbol): + """This returns a sumary of conditions for the given symbol. + + Args: + symbol (str): the symbol to create the sumary for. + + Returns: + str: formatted text or empty string if no special conditions apply. + """ + desc = '' + if symbol in Deprecated: + if desc != '': + desc += "|" + m = re.search(r'^\s*(.*?)\s*$', Deprecated[symbol]) + if m: + desc += "deprecated:%s" % m.group(1) + else: + desc += "deprecated" + + if symbol in Since: + if desc != '': + desc += "|" + m = re.search(r'^\s*(.*?)\s*$', Since[symbol]) + if m: + desc += "since:%s" % m.group(1) + else: + desc += "since" + + if symbol in StabilityLevel: + if desc != '': + desc += "|" + + desc += "stability:" + StabilityLevel[symbol] + + if desc != '': + cond = re.sub(r'"', r'"', desc) + desc = ' condition=\"%s\"' % cond + logging.info("condition for '%s' = '%s'", symbol, desc) + + return desc + + +def GetHierarchy(gobject, hierarchy): + """Generate the object inheritance graph. + + Returns the DocBook output describing the ancestors and + immediate children of a GObject subclass. It uses the + global Objects and ObjectLevels arrays to walk the tree. + + Args: + object (str): the GtkObject subclass. + hierarchy (list) - previous hierarchy + + Returns: + list: lines of docbook describing the hierarchy + """ + # Find object in the objects array. + found = False + children = [] + level = 0 + j = 0 + for i in range(len(Objects)): + if found: + if ObjectLevels[i] <= level: + break + + elif ObjectLevels[i] == level + 1: + children.append(Objects[i]) + + elif Objects[i] == gobject: + found = True + j = i + level = ObjectLevels[i] + + if not found: + return hierarchy + + logging.info("=== Hierachy for: %s (%d existing entries) ===", gobject, len(hierarchy)) + + # Walk up the hierarchy, pushing ancestors onto the ancestors array. + ancestors = [gobject] + logging.info("Level: %s", level) + while level > 1: + j -= 1 + if ObjectLevels[j] < level: + ancestors.append(Objects[j]) + level = ObjectLevels[j] + logging.info("Level: %s", level) + + # Output the ancestors, indented and with links. + logging.info('%d ancestors', len(ancestors)) + last_index = 0 + level = 1 + for i in range(len(ancestors) - 1, -1, -1): + ancestor = ancestors[i] + ancestor_id = common.CreateValidSGMLID(ancestor) + indent = ' ' * (level * 4) + # Don't add a link to the current object, i.e. when i == 0. + if i > 0: + entry_text = indent + "%s" % (ancestor_id, ancestor) + alt_text = indent + ancestor + else: + entry_text = indent + ancestor + alt_text = indent + "%s" % (ancestor_id, ancestor) + + logging.info("Checking for '%s' or '%s'", entry_text, alt_text) + # Check if we already have this object + index = -1 + for j in range(len(hierarchy)): + if hierarchy[j] == entry_text or (hierarchy[j] == alt_text): + index = j + break + if index == -1: + # We have a new entry, find insert position in alphabetical order + found = False + for j in range(last_index, len(hierarchy)): + if not re.search(r'^' + indent, hierarchy[j]): + last_index = j + found = True + break + elif re.search(r'^%s[^ ]' % indent, hierarchy[j]): + stripped_text = hierarchy[j] + if r'', '', stripped_text) + stripped_text = re.sub(r'', '', stripped_text) + + if entry_text < stripped_text: + last_index = j + found = True + break + + # Append to bottom + if not found: + last_index = len(hierarchy) + + logging.debug('insert at %d: %s', last_index, entry_text) + hierarchy.insert(last_index, entry_text) + last_index += 1 + else: + # Already have this one, make sure we use the not linked version + if r'%s" % (sid, children[i]) + logging.debug('insert at %d: %s', last_index, indented_text) + hierarchy.insert(last_index, indented_text) + last_index += 1 + return hierarchy + + +def GetInterfaces(gobject): + """Generate interface implementation graph. + + Returns the DocBook output describing the interfaces + implemented by a class. It uses the global Interfaces hash. + + Args: + object (str): the GObject subclass. + + Returns: + str: implemented interfaces + """ + text = '' + # Find object in the objects array. + if gobject in Interfaces: + ifaces = Interfaces[gobject].split() + text = ''' +%s implements +''' % gobject + count = len(ifaces) + for i in range(count): + sid = common.CreateValidSGMLID(ifaces[i]) + text += " %s" % (sid, ifaces[i]) + if i < count - 2: + text += ', ' + elif i < count - 1: + text += ' and ' + else: + text += '.' + text += '\n' + return text + + +def GetImplementations(gobject): + """Generate interface usage graph. + + Returns the DocBook output describing the implementations + of an interface. It uses the global Interfaces hash. + + Args: + object (str): the GObject subclass. + + Returns: + str: interface implementations + """ + text = '' + impls = [] + for key in Interfaces: + if re.search(r'\b%s\b' % gobject, Interfaces[key]): + impls.append(key) + + count = len(impls) + if count > 0: + impls.sort() + text = ''' +%s is implemented by +''' % gobject + for i in range(count): + sid = common.CreateValidSGMLID(impls[i]) + text += " %s" % (sid, impls[i]) + if i < count - 2: + text += ', ' + elif i < count - 1: + text += ' and ' + else: + text += '.' + text += '\n' + return text + + +def GetPrerequisites(iface): + """Generates interface requirements. + + Returns the DocBook output describing the prerequisites + of an interface. It uses the global Prerequisites hash. + Args: + iface (str): the interface. + + Returns: + str: required interfaces + """ + + text = '' + if iface in Prerequisites: + text = ''' +%s requires +''' % iface + prereqs = Prerequisites[iface].split() + count = len(prereqs) + for i in range(count): + sid = common.CreateValidSGMLID(prereqs[i]) + text += " %s" % (sid, prereqs[i]) + if i < count - 2: + text += ', ' + elif i < count - 1: + text += ' and ' + else: + text += '.' + text += '\n' + return text + + +def GetDerived(iface): + """ + Returns the DocBook output describing the derived interfaces + of an interface. It uses the global %Prerequisites hash. + + Args: + iface (str): the interface. + + Returns: + str: derived interfaces + """ + text = '' + derived = [] + for key in Prerequisites: + if re.search(r'\b%s\b' % iface, Prerequisites[key]): + derived.append(key) + + count = len(derived) + if count > 0: + derived.sort() + text = ''' +%s is required by +''' % iface + for i in range(count): + sid = common.CreateValidSGMLID(derived[i]) + text += " %s" % (sid, derived[i]) + if i < count - 2: + text += ', ' + elif i < count - 1: + text += ' and ' + else: + text += '.' + text += '\n' + return text + + +def GetSignals(gobject): + """Generate signal docs. + + Returns the synopsis and detailed description DocBook output + for the signal handlers of a given GObject subclass. + + Args: + object (str): the GObject subclass, e.g. 'GtkButton'. + + Returns: + str: signal docs + """ + synop = '' + desc = '' + + for i in range(len(SignalObjects)): + if SignalObjects[i] == gobject: + logging.info("Found signal: %s", SignalNames[i]) + name = SignalNames[i] + symbol = '%s::%s' % (gobject, name) + sid = common.CreateValidSGMLID('%s-%s' % (gobject, name)) + + desc += u"The <literal>“%s”</literal> signal\n" % ( + sid, name) + desc += MakeIndexterms(symbol, sid) + desc += "\n" + desc += OutputSymbolExtraLinks(symbol) + + desc += "" + + m = re.search(r'\s*(const\s+)?(\w+)\s*(\**)', SignalReturns[i]) + type_modifier = m.group(1) or '' + gtype = m.group(2) + pointer = m.group(3) + xref = MakeXRef(gtype, tagify(gtype, "returnvalue")) + + ret_type_output = '%s%s%s' % (type_modifier, xref, pointer) + callback_name = "user_function" + desc += '%s\n%s (' % (ret_type_output, callback_name) + + indentation = ' ' * (len(callback_name) + 2) + + sourceparams = SourceSymbolParams.get(symbol) + sourceparam_names = None + if sourceparams: + sourceparam_names = list(sourceparams) # keys as list + params = SignalPrototypes[i].splitlines() + type_len = len("gpointer") + name_len = len("user_data") + # do two passes, the first one is to calculate padding + for l in range(2): + for j in range(len(params)): + param_name = None + # allow alphanumerics, '_', '[' & ']' in param names + m = re.search(r'^\s*(\w+)\s*(\**)\s*([\w\[\]]+)\s*$', params[j]) + if m: + gtype = m.group(1) + pointer = m.group(2) + if sourceparam_names: + if j < len(sourceparam_names): + param_name = sourceparam_names[j] + logging.info('from sourceparams: "%s" (%d: %s)', param_name, j, params[j]) + # we're mssing the docs for this param, don't warn here though + else: + param_name = m.group(3) + logging.info('from params: "%s" (%d: %s)', param_name, j, params[j]) + + if not param_name: + param_name = "arg%d" % j + + if l == 0: + if len(gtype) + len(pointer) > type_len: + type_len = len(gtype) + len(pointer) + if len(param_name) > name_len: + name_len = len(param_name) + else: + logging.info("signal arg[%d]: '%s'", j, param_name) + xref = MakeXRef(gtype, tagify(gtype, "type")) + pad = ' ' * (type_len - len(gtype) - len(pointer)) + desc += '%s%s %s%s,\n' % (xref, pad, pointer, param_name) + desc += indentation + + else: + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "Can't parse arg: %s\nArgs:%s" % (params[j], SignalPrototypes[i])) + + xref = MakeXRef("gpointer", tagify("gpointer", "type")) + pad = ' ' * (type_len - len("gpointer")) + desc += '%s%s user_data)' % (xref, pad) + desc += "\n" + + flags = SignalFlags[i] + flags_string = '' + if flags: + if 'f' in flags: + flags_string = "Run First" + + elif 'l' in flags: + flags_string = "Run Last" + + elif 'c' in flags: + flags_string = "Cleanup" + flags_string = "Cleanup" + + if 'r' in flags: + if flags_string: + flags_string += " / " + flags_string = "No Recursion" + + if 'd' in flags: + if flags_string: + flags_string += " / " + flags_string = "Has Details" + + if 'a' in flags: + if flags_string: + flags_string += " / " + flags_string = "Action" + + if 'h' in flags: + if flags_string: + flags_string += " / " + flags_string = "No Hooks" + + synop += "%s%s%s\n" % ( + ret_type_output, sid, name, flags_string) + + parameters = OutputParamDescriptions("SIGNAL", symbol, None) + logging.info("formatted signal params: '%s' -> '%s'", symbol, parameters) + + AllSymbols[symbol] = 1 + if symbol in SymbolDocs: + symbol_docs = ConvertMarkDown(symbol, SymbolDocs[symbol]) + + desc += symbol_docs + + if not IsEmptyDoc(SymbolDocs[symbol]): + AllDocumentedSymbols[symbol] = 1 + + if symbol in SymbolAnnotations: + param_desc = SymbolAnnotations[symbol] + (param_desc, param_annotations) = ExpandAnnotation(symbol, param_desc) + if param_annotations != '': + desc += "\n%s" % param_annotations + + desc += MakeDeprecationNote(symbol) + + desc += parameters + if flags_string: + desc += "Flags: %s\n" % flags_string + + desc += OutputSymbolTraits(symbol) + desc += "" + + return (synop, desc) + + +def GetArgs(gobject): + """Generate property docs. + + Returns the synopsis and detailed description DocBook output + for the Args of a given GtkObject subclass. + + Args: + object (str): the GObject subclass, e.g. 'GtkButton'. + + Returns: + str: property docs + """ + synop = '' + desc = '' + child_synop = '' + child_desc = '' + style_synop = '' + style_desc = '' + + for i in range(len(ArgObjects)): + if ArgObjects[i] == gobject: + logging.info("Found arg: %s", ArgNames[i]) + name = ArgNames[i] + flags = ArgFlags[i] + flags_string = '' + kind = '' + id_sep = '' + + if 'c' in flags: + kind = "child property" + id_sep = "c-" + elif 's' in flags: + kind = "style property" + id_sep = "s-" + else: + kind = "property" + + # Remember only one colon so we don't clash with signals. + symbol = '%s:%s' % (gobject, name) + # use two dashes and ev. an extra separator here for the same reason. + sid = common.CreateValidSGMLID('%s--%s%s' % (gobject, id_sep, name)) + + atype = ArgTypes[i] + type_output = None + arange = ArgRanges[i] + range_output = CreateValidSGML(arange) + default = ArgDefaults[i] + default_output = CreateValidSGML(default) + + if atype == "GtkString": + atype = "char *" + + if atype == "GtkSignal": + atype = "GtkSignalFunc, gpointer" + type_output = MakeXRef("GtkSignalFunc") + ", " + MakeXRef("gpointer") + elif re.search(r'^(\w+)\*$', atype): + m = re.search(r'^(\w+)\*$', atype) + type_output = MakeXRef(m.group(1), tagify(m.group(1), "type")) + " *" + else: + type_output = MakeXRef(atype, tagify(atype, "type")) + + if 'r' in flags: + flags_string = "Read" + + if 'w' in flags: + if flags_string: + flags_string += " / " + flags_string += "Write" + + if 'x' in flags: + if flags_string: + flags_string += " / " + flags_string += "Construct" + + if 'X' in flags: + if flags_string: + flags_string += " / " + flags_string += "Construct Only" + + AllSymbols[symbol] = 1 + blurb = '' + if symbol in SymbolDocs and not IsEmptyDoc(SymbolDocs[symbol]): + blurb = ConvertMarkDown(symbol, SymbolDocs[symbol]) + logging.info(".. [%s][%s]", SymbolDocs[symbol], blurb) + AllDocumentedSymbols[symbol] = 1 + + else: + if ArgBlurbs[i] != '': + blurb = "" + CreateValidSGML(ArgBlurbs[i]) + "" + AllDocumentedSymbols[symbol] = 1 + else: + # FIXME: print a warning? + logging.info(".. no description") + + pad1 = '' + if len(name) < 24: + pad1 = " " * (24 - len(name)) + + arg_synop = "%s%s%s\n" % ( + type_output, sid, name, flags_string) + arg_desc = u"The <literal>“%s”</literal> %s\n" % ( + sid, name, kind) + arg_desc += MakeIndexterms(symbol, sid) + arg_desc += "\n" + arg_desc += OutputSymbolExtraLinks(symbol) + + arg_desc += u" “%s”%s %s\n" % (name, pad1, type_output) + arg_desc += blurb + if symbol in SymbolAnnotations: + param_desc = SymbolAnnotations[symbol] + (param_desc, param_annotations) = ExpandAnnotation(symbol, param_desc) + if param_annotations != '': + arg_desc += "\n%s" % param_annotations + + arg_desc += MakeDeprecationNote(symbol) + + if flags_string: + arg_desc += "Flags: %s\n" % flags_string + + if arange != '': + arg_desc += "Allowed values: %s\n" % range_output + + if default != '': + arg_desc += "Default value: %s\n" % default_output + + arg_desc += OutputSymbolTraits(symbol) + arg_desc += "\n" + + if 'c' in flags: + child_synop += arg_synop + child_desc += arg_desc + + elif 's' in flags: + style_synop += arg_synop + style_desc += arg_desc + + else: + synop += arg_synop + desc += arg_desc + + return (synop, child_synop, style_synop, desc, child_desc, style_desc) + + +def IgnorePath(path, source_dirs, ignore_files): + for sdir in source_dirs: + # Cut off base directory + m1 = re.search(r'^%s/(.*)$' % re.escape(sdir), path) + if m1: + # Check if the filename is in the ignore list. + m2 = re.search(r'(\s|^)%s(\s|$)' % re.escape(m1.group(1)), ignore_files) + if m2: + logging.info("Skipping path: %s", path) + return True + else: + logging.info("No match for: %s", m1.group(1)) + else: + logging.info("No match for: %s", path) + return False + + +def ReadSourceDocumentation(source_dir, suffix_list, source_dirs, ignore_files): + """Read the documentation embedded in comment blocks in the source code. + + It recursively descends the source directory looking for source files and + scans them looking for specially-formatted comment blocks. + + Args: + source_dir (str): the directory to scan. + suffix_list (list): extensions to check + """ + if IgnorePath(source_dir, source_dirs, ignore_files): + return + + logging.info("Scanning source directory: %s", source_dir) + + # This array holds any subdirectories found. + subdirs = [] + + for ifile in sorted(os.listdir(source_dir)): + logging.debug("... : %s", ifile) + if ifile.startswith('.'): + continue + fname = os.path.join(source_dir, ifile) + if os.path.isdir(fname): + subdirs.append(fname) + else: + for suffix in suffix_list: + if ifile.endswith(suffix): + if not IgnorePath(fname, source_dirs, ignore_files): + ScanSourceFile(fname, ignore_files) + break + + # Now recursively scan the subdirectories. + for sdir in subdirs: + ReadSourceDocumentation(sdir, suffix_list, source_dirs, ignore_files) + + +def ScanSourceFile(ifile, ignore_files): + """Scans one source file looking for specially-formatted comment blocks. + + Later MergeSourceDocumentation() is copying over the doc blobs that are not + suppressed/ignored. + + Args: + file (str): the file to scan. + """ + m = re.search(r'^.*[\/\\]([^\/\\]*)$', ifile) + if m: + basename = m.group(1) + else: + common.LogWarning(ifile, 1, "Can't find basename for this filename.") + basename = ifile + + # Check if the basename is in the list of files to ignore. + if re.search(r'(\s|^)%s(\s|$)' % re.escape(basename), ignore_files): + logging.info("Skipping source file: %s", ifile) + return + + logging.info("Scanning source file: %s", ifile) + + SRCFILE = common.open_text(ifile) + in_comment_block = False + symbol = None + in_part = '' + description = '' + return_desc = '' + since_desc = stability_desc = deprecated_desc = '' + params = OrderedDict() + param_name = None + line_number = 0 + for line in SRCFILE: + line_number += 1 + # Look for the start of a comment block. + if not in_comment_block: + if re.search(r'^\s*/\*.*\*/', line): + # one-line comment - not gtkdoc + pass + elif re.search(r'^\s*/\*\*\s', line): + logging.info("Found comment block start") + + in_comment_block = True + + # Reset all the symbol data. + symbol = '' + in_part = '' + description = '' + return_desc = '' + since_desc = '' + deprecated_desc = '' + stability_desc = '' + params = OrderedDict() + param_name = None + + continue + + # We're in a comment block. Check if we've found the end of it. + if re.search(r'^\s*\*+/', line): + if not symbol: + # maybe its not even meant to be a gtk-doc comment? + common.LogWarning(ifile, line_number, "Symbol name not found at the start of the comment block.") + else: + # Add the return value description onto the end of the params. + if return_desc: + # TODO(ensonic): check for duplicated Return docs + # common.LogWarning(file, line_number, "Multiple Returns for %s." % symbol) + params['Returns'] = return_desc + + # Convert special characters + description = ConvertSGMLChars(symbol, description) + for (param_name, param_desc) in iteritems(params): + params[param_name] = ConvertSGMLChars(symbol, param_desc) + + # Handle Section docs + m = re.search(r'SECTION:\s*(.*)', symbol) + m2 = re.search(r'PROGRAM:\s*(.*)', symbol) + if m: + real_symbol = m.group(1) + long_descr = real_symbol + ":Long_Description" + + if long_descr not in KnownSymbols or KnownSymbols[long_descr] != 1: + common.LogWarning( + ifile, line_number, "Section %s is not defined in the %s-sections.txt file." % (real_symbol, MODULE)) + + logging.info("SECTION DOCS found in source for : '%s'", real_symbol) + for param_name, param_desc in iteritems(params): + logging.info(" '" + param_name + "'") + param_name = param_name.lower() + key = None + if param_name == "short_description": + key = real_symbol + ":Short_Description" + elif param_name == "see_also": + key = real_symbol + ":See_Also" + elif param_name == "title": + key = real_symbol + ":Title" + elif param_name == "stability": + key = real_symbol + ":Stability_Level" + elif param_name == "section_id": + key = real_symbol + ":Section_Id" + elif param_name == "include": + key = real_symbol + ":Include" + elif param_name == "image": + key = real_symbol + ":Image" + + if key: + SourceSymbolDocs[key] = param_desc + SourceSymbolSourceFile[key] = ifile + SourceSymbolSourceLine[key] = line_number + + SourceSymbolDocs[long_descr] = description + SourceSymbolSourceFile[long_descr] = ifile + SourceSymbolSourceLine[long_descr] = line_number + elif m2: + real_symbol = m2.group(1) + key = None + section_id = None + + logging.info("PROGRAM DOCS found in source for '%s'", real_symbol) + for param_name, param_desc in iteritems(params): + logging.info("PROGRAM key %s: '%s'", real_symbol, param_name) + param_name = param_name.lower() + key = None + if param_name == "short_description": + key = real_symbol + ":Short_Description" + elif param_name == "see_also": + key = real_symbol + ":See_Also" + elif param_name == "section_id": + key = real_symbol + ":Section_Id" + elif param_name == "synopsis": + key = real_symbol + ":Synopsis" + elif param_name == "returns": + key = real_symbol + ":Returns" + elif re.search(r'^(-.*)', param_name): + logging.info("PROGRAM opts: '%s': '%s'", param_name, param_desc) + key = real_symbol + ":Options" + opts = [] + opts_str = SourceSymbolDocs.get(key) + if opts_str: + opts = opts_str.split('\t') + opts.append(param_name) + opts.append(param_desc) + + logging.info("Setting options for symbol: %s: '%s'", real_symbol, '\t'.join(opts)) + SourceSymbolDocs[key] = '\t'.join(opts) + continue + + if key: + logging.info("PROGRAM value %s: '%s'", real_symbol, param_desc.rstrip()) + SourceSymbolDocs[key] = param_desc.rstrip() + SourceSymbolSourceFile[key] = ifile + SourceSymbolSourceLine[key] = line_number + + long_descr = real_symbol + ":Long_Description" + SourceSymbolDocs[long_descr] = description + SourceSymbolSourceFile[long_descr] = ifile + SourceSymbolSourceLine[long_descr] = line_number + + section_id = SourceSymbolDocs.get(real_symbol + ":Section_Id") + if section_id and section_id.strip() != '': + # Remove trailing blanks and use as is + section_id = section_id.rstrip() + else: + section_id = common.CreateValidSGMLID('%s-%s' % (MODULE, real_symbol)) + OutputProgramDBFile(real_symbol, section_id) + + else: + logging.info("SYMBOL DOCS found in source for : '%s'", symbol) + SourceSymbolDocs[symbol] = description + SourceSymbolParams[symbol] = params + SourceSymbolSourceFile[symbol] = ifile + SourceSymbolSourceLine[symbol] = line_number + + if since_desc: + arr = since_desc.splitlines() + since_desc = arr[0].strip() + extra_lines = arr[1:] + logging.info("Since(%s) : [%s]", symbol, since_desc) + Since[symbol] = ConvertSGMLChars(symbol, since_desc) + if len(extra_lines) > 1: + common.LogWarning(ifile, line_number, "multi-line since docs found") + + if stability_desc: + stability_desc = ParseStabilityLevel( + stability_desc, ifile, line_number, "Stability level for %s" % symbol) + StabilityLevel[symbol] = ConvertSGMLChars(symbol, stability_desc) + + if deprecated_desc: + if symbol not in Deprecated: + # don't warn for signals and properties + # if ($symbol !~ m/::?(.*)/) + if symbol in DeclarationTypes: + common.LogWarning(ifile, line_number, + "%s is deprecated in the inline comments, but no deprecation guards were found around the declaration. (See the --deprecated-guards option for gtkdoc-scan.)" % symbol) + + Deprecated[symbol] = ConvertSGMLChars(symbol, deprecated_desc) + + in_comment_block = False + continue + + # Get rid of ' * ' at start of every line in the comment block. + line = re.sub(r'^\s*\*\s?', '', line) + # But make sure we don't get rid of the newline at the end. + if not line.endswith('\n'): + line = line + "\n" + + logging.info("scanning :%s", line.strip()) + + # If we haven't found the symbol name yet, look for it. + if not symbol: + m1 = re.search(r'^\s*(SECTION:\s*\S+)', line) + m2 = re.search(r'^\s*(PROGRAM:\s*\S+)', line) + m3 = re.search(r'^\s*([\w:-]*\w)\s*:?\s*(\(.+?\)\s*)*$', line) + if m1: + symbol = m1.group(1) + logging.info("SECTION DOCS found in source for : '%s'", symbol) + elif m2: + symbol = m2.group(1) + logging.info("PROGRAM DOCS found in source for : '%s'", symbol) + elif m3: + symbol = m3.group(1) + annotation = m3.group(2) + logging.info("SYMBOL DOCS found in source for : '%s'", symbol) + if annotation: + annotation = annotation.strip() + if annotation != '': + SymbolAnnotations[symbol] = annotation + logging.info("remaining text for %s: '%s'", symbol, annotation) + + continue + + if in_part == "description": + # Get rid of 'Description:' + line = re.sub(r'^\s*Description:', '', line) + + m1 = re.search(r'^\s*(returns|return\s+value):', line, flags=re.I) + m2 = re.search(r'^\s*since:', line, flags=re.I) + m3 = re.search(r'^\s*deprecated:', line, flags=re.I) + m4 = re.search(r'^\s*stability:', line, flags=re.I) + + if m1: + # we're in param section and have not seen the blank line + if in_part != '': + return_desc = line[m1.end():] + in_part = "return" + continue + + if m2: + # we're in param section and have not seen the blank line + if in_part != "param": + since_desc = line[m2.end():] + in_part = "since" + continue + + elif m3: + # we're in param section and have not seen the blank line + if in_part != "param": + deprecated_desc = line[m3.end():] + in_part = "deprecated" + continue + + elif m4: + stability_desc = line[m4.end():] + in_part = "stability" + continue + + if in_part == "description": + description += line + continue + elif in_part == "return": + return_desc += line + continue + elif in_part == "since": + since_desc += line + continue + elif in_part == "stability": + stability_desc += line + continue + elif in_part == "deprecated": + deprecated_desc += line + continue + + # We must be in the parameters. Check for the empty line below them. + if re.search(r'^\s*$', line): + in_part = "description" + continue + + # Look for a parameter name. + m = re.search(r'^\s*@(.+?)\s*:\s*', line) + if m: + param_name = m.group(1) + param_desc = line[m.end():] + + logging.info("Found parameter: %s", param_name) + # Allow varargs variations + if re.search(r'^\.\.\.$', param_name): + param_name = "..." + + logging.info("Found param for symbol %s : '%s'= '%s'", symbol, param_name, line) + + params[param_name] = param_desc + in_part = "param" + continue + elif in_part == '': + logging.info("continuation for %s annotation '%s'", symbol, line) + annotation = re.sub(r'^\s+|\s+$', '', line) + if symbol in SymbolAnnotations: + SymbolAnnotations[symbol] += annotation + else: + SymbolAnnotations[symbol] = annotation + continue + + # We must be in the middle of a parameter description, so add it on + # to the last element in @params. + if not param_name: + common.LogWarning(file, line_number, "Parsing comment block file : parameter expected, but got '%s'" % line) + else: + params[param_name] += line + + SRCFILE.close() + + +def OutputMissingDocumentation(): + """Outputs report of documentation coverage to a file. + + Returns: + bool: True if the report was updated + """ + old_undocumented_file = os.path.join(ROOT_DIR, MODULE + "-undocumented.txt") + new_undocumented_file = os.path.join(ROOT_DIR, MODULE + "-undocumented.new") + + n_documented = 0 + n_incomplete = 0 + total = 0 + symbol = None + percent = None + buffer = '' + buffer_deprecated = '' + buffer_descriptions = '' + + UNDOCUMENTED = common.open_text(new_undocumented_file, 'w') + + for symbol in sorted(iterkeys(AllSymbols)): + # FIXME: should we print common.LogWarnings for undocumented stuff? + # DEBUG + # location = "defined at " + GetSymbolSourceFile(symbol) + ":" + GetSymbolSourceLine(symbol) + "\n" + # DEBUG + m = re.search( + r':(Title|Long_Description|Short_Description|See_Also|Stability_Level|Include|Section_Id|Image)', symbol) + m2 = re.search(r':(Long_Description|Short_Description)', symbol) + if not m: + total += 1 + if symbol in AllDocumentedSymbols: + n_documented += 1 + if symbol in AllIncompleteSymbols: + n_incomplete += 1 + buffer += symbol + " (" + AllIncompleteSymbols[symbol] + ")\n" + + elif symbol in Deprecated: + if symbol in AllIncompleteSymbols: + n_incomplete += 1 + buffer_deprecated += symbol + " (" + AllIncompleteSymbols[symbol] + ")\n" + else: + buffer_deprecated += symbol + "\n" + + else: + if symbol in AllIncompleteSymbols: + n_incomplete += 1 + buffer += symbol + " (" + AllIncompleteSymbols[symbol] + ")\n" + else: + buffer += symbol + "\n" + + elif m2: + total += 1 + if (symbol in SymbolDocs and len(SymbolDocs[symbol]) > 0)\ + or (symbol in AllDocumentedSymbols and AllDocumentedSymbols[symbol] > 0): + n_documented += 1 + else: + buffer_descriptions += symbol + "\n" + + if total == 0: + percent = 100 + else: + percent = (n_documented / total) * 100.0 + + UNDOCUMENTED.write("%.0f%% symbol docs coverage.\n" % percent) + UNDOCUMENTED.write("%s symbols documented.\n" % n_documented) + UNDOCUMENTED.write("%s symbols incomplete.\n" % n_incomplete) + UNDOCUMENTED.write("%d not documented.\n" % (total - n_documented)) + + if buffer_deprecated != '': + buffer += "\n" + buffer_deprecated + + if buffer_descriptions != '': + buffer += "\n" + buffer_descriptions + + if buffer != '': + UNDOCUMENTED.write("\n\n" + buffer) + + UNDOCUMENTED.close() + + return common.UpdateFileIfChanged(old_undocumented_file, new_undocumented_file, 0) + + +def OutputUndeclaredSymbols(): + """Reports undeclared symbols. + + Outputs symbols that are listed in the section file, but have no declaration + in the sources. + + Returns: + bool: True if the report was updated + """ + old_undeclared_file = os.path.join(ROOT_DIR, MODULE + "-undeclared.txt") + new_undeclared_file = os.path.join(ROOT_DIR, MODULE + "-undeclared.new") + + UNDECLARED = common.open_text(new_undeclared_file, 'w') + + if UndeclaredSymbols: + UNDECLARED.write("\n".join(sorted(iterkeys(UndeclaredSymbols)))) + UNDECLARED.write("\n") + print("See %s-undeclared.txt for the list of undeclared symbols." % MODULE) + + UNDECLARED.close() + + return common.UpdateFileIfChanged(old_undeclared_file, new_undeclared_file, 0) + + +def OutputUnusedSymbols(): + """Reports unused documentation. + + Outputs symbols that are documented in comments, but not declared in the + sources. + + Returns: + bool: True if the report was updated + """ + num_unused = 0 + old_unused_file = os.path.join(ROOT_DIR, MODULE + "-unused.txt") + new_unused_file = os.path.join(ROOT_DIR, MODULE + "-unused.new") + + UNUSED = common.open_text(new_unused_file, 'w') + + for symbol in sorted(iterkeys(Declarations)): + if symbol not in DeclarationOutput: + UNUSED.write("%s\n" % symbol) + num_unused += 1 + + for symbol in sorted(iterkeys(AllUnusedSymbols)): + UNUSED.write(symbol + "(" + AllUnusedSymbols[symbol] + ")\n") + num_unused += 1 + + UNUSED.close() + if num_unused != 0: + common.LogWarning( + old_unused_file, 1, "%d unused declarations. They should be added to %s-sections.txt in the appropriate place." % (num_unused, MODULE)) + + return common.UpdateFileIfChanged(old_unused_file, new_unused_file, 0) + + +def OutputAllSymbols(): + """Outputs list of all symbols to a file.""" + SYMBOLS = common.open_text(os.path.join(ROOT_DIR, MODULE + "-symbols.txt"), 'w') + + for symbol in sorted(iterkeys(AllSymbols)): + SYMBOLS.write(symbol + "\n") + SYMBOLS.close() + + +def OutputSymbolsWithoutSince(): + """Outputs list of all symbols without a since tag to a file.""" + SYMBOLS = common.open_text(os.path.join(ROOT_DIR, MODULE + "-nosince.txt"), 'w') + + for symbol in sorted(iterkeys(SourceSymbolDocs)): + if symbol in Since: + SYMBOLS.write(symbol + "\n") + SYMBOLS.close() + + +def CheckParamsDocumented(symbol, params): + stype = DeclarationTypes.get(symbol) + + item = "Parameter" + if stype: + if stype == 'STRUCT': + item = "Field" + elif stype == 'ENUM': + item = "Value" + elif stype == 'UNION': + item = "Field" + else: + stype = "SIGNAL" + logging.info("Check param docs for %s, params: %s entries, type=%s", symbol, len(params), stype) + + if len(params) > 0: + logging.info("params: %s", str(params)) + for (param_name, param_desc) in iteritems(params): + # Output a warning if the parameter is empty and remember for stats. + if param_name != "void" and not re.search(r'\S', param_desc): + if symbol in AllIncompleteSymbols: + AllIncompleteSymbols[symbol] += ", " + param_name + else: + AllIncompleteSymbols[symbol] = param_name + + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "%s description for %s::%s is missing in source code comment block." % (item, symbol, param_name)) + + elif len(params) == 0: + AllIncompleteSymbols[symbol] = "" + common.LogWarning(GetSymbolSourceFile(symbol), GetSymbolSourceLine(symbol), + "%s descriptions for %s are missing in source code comment block." % (item, symbol)) + + +def MergeSourceDocumentation(): + """Merges documentation read from a source file. + + Parameter descriptions override any in the template files. + Function descriptions are placed before any description from + the template files. + """ + + # add whats found in the source + symbols = set(iterkeys(SourceSymbolDocs)) + + # and add known symbols from -sections.txt + for symbol in iterkeys(KnownSymbols): + if KnownSymbols[symbol] == 1: + symbols.add(symbol) + + logging.info("num source entries: %d", len(symbols)) + + for symbol in symbols: + AllSymbols[symbol] = 1 + + if symbol in SourceSymbolDocs: + logging.info("merging [%s] from source", symbol) + + # remove leading and training whitespaces + src_docs = SourceSymbolDocs[symbol].strip() + if src_docs != '': + AllDocumentedSymbols[symbol] = 1 + + SymbolDocs[symbol] = src_docs + + # merge parameters + if symbol in SourceSymbolParams: + param_docs = SourceSymbolParams[symbol] + SymbolParams[symbol] = param_docs + # if this symbol is documented, check if docs are complete + # remove all xml-tags and whitespaces + check_docs = re.sub(r'\s', '', re.sub(r'<.*?>', '', src_docs)) + if check_docs != '' and param_docs: + CheckParamsDocumented(symbol, param_docs) + else: + logging.info("[%s] undocumented", symbol) + + logging.info("num doc entries: %d", len(SymbolDocs)) + + +def IsEmptyDoc(doc): + """Check if a doc-string is empty. + + It is also regarded as empty if it only consist of whitespace or e.g. FIXME. + + Args: + doc (str): the doc-string + + Returns: + bool: True if empty + """ + if re.search(r'^\s*$', doc): + return True + if re.search(r'^\s*\s*(FIXME)?\s*<\/para>\s*$', doc): + return True + return False + + +def ConvertMarkDown(symbol, text): + md_to_db.Init() + return md_to_db.MarkDownParse(text, symbol) + + +def ReadDeclarationsFile(ifile, override): + """Reads in a file containing the function/macro/enum etc. declarations. + + Note that in some cases there are several declarations with + the same name, e.g. for conditional macros. In this case we + set a flag in the DeclarationConditional hash so the + declaration is not shown in the docs. + + If a macro and a function have the same name, e.g. for + g_object_ref, the function declaration takes precedence. + + Some opaque structs are just declared with 'typedef struct + _name name;' in which case the declaration may be empty. + The structure may have been found later in the header, so + that overrides the empty declaration. + + Args: + file (str): the declarations file to read + override (bool): if declarations in this file should override + any current declaration. + """ + if override == 0: + Declarations.clear() + DeclarationTypes.clear() + DeclarationConditional.clear() + DeclarationOutput.clear() + + INPUT = common.open_text(ifile) + declaration_type = '' + declaration_name = None + declaration = None + is_deprecated = 0 + line_number = 0 + for line in INPUT: + line_number += 1 + # logging.debug("%s:%d: %s", ifile, line_number, line) + if not declaration_type: + m1 = re.search(r'^<([^>]+)>', line) + if m1: + declaration_type = m1.group(1) + declaration_name = '' + logging.info("Found declaration: %s", declaration_type) + declaration = '' + else: + m2 = re.search(r'^(.*)', line) + m3 = re.search(r'^', line) + m4 = re.search(r'^' % declaration_type, line) + if m2: + declaration_name = m2.group(1) + elif m3: + is_deprecated = True + elif m4: + logging.info("Found end of declaration: %s, %s", declaration_type, declaration_name) + # Check that the declaration has a name + if declaration_name == '': + common.LogWarning(ifile, line_number, declaration_type + " has no name.\n") + + # If the declaration is an empty typedef struct _XXX XXX + # set the flag to indicate the struct has a typedef. + if (declaration_type == 'STRUCT' or declaration_type == 'UNION') \ + and re.search(r'^\s*$', declaration): + logging.info("Struct has typedef: %s", declaration_name) + StructHasTypedef[declaration_name] = 1 + + # Check if the symbol is already defined. + if declaration_name in Declarations and override == 0: + # Function declarations take precedence. + if DeclarationTypes[declaration_name] == 'FUNCTION': + # Ignore it. + pass + elif declaration_type == 'FUNCTION': + if is_deprecated: + Deprecated[declaration_name] = '' + + Declarations[declaration_name] = declaration + DeclarationTypes[declaration_name] = declaration_type + elif DeclarationTypes[declaration_name] == declaration_type: + # If the existing declaration is empty, or is just a + # forward declaration of a struct, override it. + if declaration_type == 'STRUCT' or declaration_type == 'UNION': + if re.search(r'^\s*((struct|union)\s+\w+\s*;)?\s*$', Declarations[declaration_name]): + if is_deprecated: + Deprecated[declaration_name] = '' + Declarations[declaration_name] = declaration + elif re.search(r'^\s*((struct|union)\s+\w+\s*;)?\s*$', declaration): + # Ignore an empty or forward declaration. + pass + else: + common.LogWarning( + ifile, line_number, "Structure %s has multiple definitions." % declaration_name) + + else: + # set flag in %DeclarationConditional hash for + # multiply defined macros/typedefs. + DeclarationConditional[declaration_name] = 1 + + else: + common.LogWarning(ifile, line_number, declaration_name + " has multiple definitions.") + + else: + if is_deprecated: + Deprecated[declaration_name] = '' + + Declarations[declaration_name] = declaration + DeclarationTypes[declaration_name] = declaration_type + logging.debug("added declaration: %s, %s, [%s]", declaration_type, declaration_name, declaration) + + declaration_type = '' + is_deprecated = False + else: + declaration += line + INPUT.close() + + +def ReadSignalsFile(ifile): + """Reads information about object signals. + + It creates the arrays @SignalNames and @SignalPrototypes containing details + about the signals. The first line of the SignalPrototype is the return type + of the signal handler. The remaining lines are the parameters passed to it. + The last parameter, "gpointer user_data" is always the same so is not included. + + Args: + ifile (str): the file containing the signal handler prototype information. + """ + in_signal = 0 + signal_object = None + signal_name = None + signal_returns = None + signal_flags = None + signal_prototype = None + + # Reset the signal info. + SignalObjects[:] = [] + SignalNames[:] = [] + SignalReturns[:] = [] + SignalFlags[:] = [] + SignalPrototypes[:] = [] + + if not os.path.isfile(ifile): + return + + INPUT = common.open_text(ifile) + line_number = 0 + for line in INPUT: + line_number += 1 + if not in_signal: + if re.search(r'^', line): + in_signal = 1 + signal_object = '' + signal_name = '' + signal_returns = '' + signal_prototype = '' + + else: + m = re.search(r'^(.*)<\/NAME>', line) + m2 = re.search(r'^(.*)<\/RETURNS>', line) + m3 = re.search(r'^(.*)<\/FLAGS>', line) + if m: + signal_name = m.group(1) + m1_2 = re.search(r'^(.*)::(.*)$', signal_name) + if m1_2: + signal_object = m1_2.group(1) + signal_name = m1_2.group(2).replace('_', '-') + logging.info("Found signal: %s", signal_name) + else: + common.LogWarning(ifile, line_number, "Invalid signal name: %s." % signal_name) + + elif m2: + signal_returns = m2.group(1) + elif m3: + signal_flags = m3.group(1) + elif re.search(r'^', line): + logging.info("Found end of signal: %s::%s\nReturns: %s\n%s", + signal_object, signal_name, signal_returns, signal_prototype) + SignalObjects.append(signal_object) + SignalNames.append(signal_name) + SignalReturns.append(signal_returns) + SignalFlags.append(signal_flags) + SignalPrototypes.append(signal_prototype) + in_signal = False + else: + signal_prototype += line + INPUT.close() + + +def ReadObjectHierarchy(ifile): + """Reads the $MODULE-hierarchy.txt file. + + This contains all the GObject subclasses described in this module (and their + ancestors). + It places them in the Objects array, and places their level + in the object hierarchy in the ObjectLevels array, at the + same index. GObject, the root object, has a level of 1. + + This also generates tree_index.sgml as it goes along. + + Args: + ifile (str): the input filename. + """ + + Objects[:] = [] + ObjectLevels[:] = [] + + if not os.path.isfile(ifile): + logging.debug('no *-hierarchy.tx') + return + + INPUT = common.open_text(ifile) + + # Only emit objects if they are supposed to be documented, or if + # they have documented children. To implement this, we maintain a + # stack of pending objects which will be emitted if a documented + # child turns up. + pending_objects = [] + pending_levels = [] + root = None + tree = [] + for line in INPUT: + m1 = re.search(r'\S+', line) + if not m1: + continue + + gobject = m1.group(0) + level = len(line[:m1.start()]) // 2 + 1 + + if level == 1: + root = gobject + + while pending_levels and pending_levels[-1] >= level: + pending_objects.pop() + pending_levels.pop() + + pending_objects.append(gobject) + pending_levels.append(level) + + if gobject in KnownSymbols: + while len(pending_levels) > 0: + gobject = pending_objects.pop(0) + level = pending_levels.pop(0) + xref = MakeXRef(gobject) + + tree.append(' ' * (level * 4) + xref) + Objects.append(gobject) + ObjectLevels.append(level) + ObjectRoots[gobject] = root + # else + # common.LogWarning(ifile, line_number, "unknown type %s" % object) + # + + INPUT.close() + + # FIXME: use xml + # my $old_tree_index = "$DB_OUTPUT_DIR/tree_index.$xml" + old_tree_index = os.path.join(DB_OUTPUT_DIR, "tree_index.sgml") + new_tree_index = os.path.join(DB_OUTPUT_DIR, "tree_index.new") + + logging.debug('got %d entries for hierarchy', len(tree)) + + OUTPUT = common.open_text(new_tree_index, 'w') + OUTPUT.write(MakeDocHeader("screen") + "\n\n" + AddTreeLineArt(tree) + "\n\n") + OUTPUT.close() + + common.UpdateFileIfChanged(old_tree_index, new_tree_index, 0) + + OutputObjectList() + + +def ReadInterfaces(ifile): + """Reads the $MODULE.interfaces file. + + Args: + ifile (str): the input filename. + """ + + Interfaces.clear() + + if not os.path.isfile(ifile): + return + + INPUT = common.open_text(ifile) + + for line in INPUT: + line = line.strip() + ifaces = line.split() + gobject = ifaces.pop(0) + if gobject in KnownSymbols and KnownSymbols[gobject] == 1: + knownIfaces = [] + + # filter out private interfaces, but leave foreign interfaces + for iface in ifaces: + if iface not in KnownSymbols or KnownSymbols[iface] == 1: + knownIfaces.append(iface) + + Interfaces[gobject] = ' '.join(knownIfaces) + logging.info("Interfaces for %s: %s", gobject, Interfaces[gobject]) + else: + logging.info("skipping interfaces for unknown symbol: %s", gobject) + + INPUT.close() + + +def ReadPrerequisites(ifile): + """This reads in the $MODULE.prerequisites file. + + Args: + ifile (str): the input filename. + """ + Prerequisites.clear() + + if not os.path.isfile(ifile): + return + + INPUT = common.open_text(ifile) + + for line in INPUT: + line = line.strip() + prereqs = line.split() + iface = prereqs.pop(0) + if iface in KnownSymbols and KnownSymbols[iface] == 1: + knownPrereqs = [] + + # filter out private prerequisites, but leave foreign prerequisites + for prereq in prereqs: + if prereq not in KnownSymbols or KnownSymbols[prereq] == 1: + knownPrereqs.append(prereq) + + Prerequisites[iface] = ' '.join(knownPrereqs) + + INPUT.close() + + +def ReadArgsFile(ifile): + """Reads information about object properties + + It creates the arrays ArgObjects, ArgNames, ArgTypes, ArgFlags, ArgNicks and + ArgBlurbs containing info on the args. + + Args: + ifile (str): the input filename. + """ + in_arg = False + arg_object = None + arg_name = None + arg_type = None + arg_flags = None + arg_nick = None + arg_blurb = None + arg_default = None + arg_range = None + + # Reset the args info. + ArgObjects[:] = [] + ArgNames[:] = [] + ArgTypes[:] = [] + ArgFlags[:] = [] + ArgNicks[:] = [] + ArgBlurbs[:] = [] + ArgDefaults[:] = [] + ArgRanges[:] = [] + + if not os.path.isfile(ifile): + return + + INPUT = common.open_text(ifile) + line_number = 0 + for line in INPUT: + line_number += 1 + if not in_arg: + if line.startswith(''): + in_arg = True + arg_object = '' + arg_name = '' + arg_type = '' + arg_flags = '' + arg_nick = '' + arg_blurb = '' + arg_default = '' + arg_range = '' + + else: + m1 = re.search(r'^(.*)', line) + m2 = re.search(r'^(.*)', line) + m3 = re.search(r'^(.*)', line) + m4 = re.search(r'^(.*)', line) + m5 = re.search(r'^(.*)', line) + m6 = re.search(r'^(.*)', line) + m7 = re.search(r'^(.*)', line) + if m1: + arg_name = m1.group(1) + m1_1 = re.search(r'^(.*)::(.*)$', arg_name) + if m1_1: + arg_object = m1_1.group(1) + arg_name = m1_1.group(2).replace('_', '-') + logging.info("Found arg: %s", arg_name) + else: + common.LogWarning(ifile, line_number, "Invalid argument name: " + arg_name) + + elif m2: + arg_type = m2.group(1) + elif m3: + arg_range = m3.group(1) + elif m4: + arg_flags = m4.group(1) + elif m5: + arg_nick = m5.group(1) + elif m6: + arg_blurb = m6.group(1) + if arg_blurb == "(null)": + arg_blurb = '' + common.LogWarning( + ifile, line_number, "Property %s:%s has no documentation." % (arg_object, arg_name)) + + elif m7: + arg_default = m7.group(1) + elif re.search(r'^', line): + logging.info("Found end of arg: %s::%s\n%s : %s", arg_object, arg_name, arg_type, arg_flags) + ArgObjects.append(arg_object) + ArgNames.append(arg_name) + ArgTypes.append(arg_type) + ArgRanges.append(arg_range) + ArgFlags.append(arg_flags) + ArgNicks.append(arg_nick) + ArgBlurbs.append(arg_blurb) + ArgDefaults.append(arg_default) + in_arg = False + + INPUT.close() + + +def AddTreeLineArt(tree): + """Generate a line art tree. + + Add unicode lineart to a pre-indented string array and returns + it as as multiline string. + + Args: + tree (list): of indented strings. + + Returns: + str: multiline string with tree line art + """ + # iterate bottom up over the tree + for i in range(len(tree) - 1, -1, -1): + # count leading spaces + m = re.search(r'^([^ 4: + if tree[i][indent - 4] == " ": + tree[i] = tree[i][:indent - 4] + "--- " + tree[i][indent:] + else: + tree[i] = tree[i][:indent - 4] + "+-- " + tree[i][indent:] + + # go lines up while space and insert | + j = i - 1 + while j >= 0 and tree[j][indent - 4] == ' ': + tree[j] = tree[j][:indent - 4] + '|' + tree[j][indent - 3:] + j -= 1 + + res = "\n".join(tree) + # unicode chars for: ╰── + res = re.sub(r'---', '╰──', res) + # unicde chars for: ├── + res = re.sub(r'\+--', '├──', res) + # unicode char for: │ + res = re.sub(r'\|', '', res) + + return res + + +def CheckIsObject(name): + """Check if symbols is an object. + + It uses the global Objects array. Note that the Objects array only contains + classes in the current module and their ancestors - not all GObject classes. + + Args: + name (str): the object name to check. + + Returns: + bool: True if the given name is a GObject or a subclass. + """ + root = ObjectRoots.get(name) + # Let GBoxed pass as an object here to get -struct appended to the id + # and prevent conflicts with sections. + return root and root != 'GEnum' and root != 'GFlags' + + +def GetSymbolSourceFile(symbol): + """Get the filename where the symbol docs where taken from.""" + return SourceSymbolSourceFile.get(symbol, '') + + +def GetSymbolSourceLine(symbol): + """Get the file line where the symbol docs where taken from.""" + return SourceSymbolSourceLine.get(symbol, 0) diff --git a/gtkdoc/mkhtml.py b/gtkdoc/mkhtml.py new file mode 100644 index 0000000..73eda12 --- /dev/null +++ b/gtkdoc/mkhtml.py @@ -0,0 +1,105 @@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Owen Taylor +# 2001-2005 Damon Chaplin +# 2009-2017 Stefan Sauer +# 2017 Jussi Pakkanen +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import logging +import os +import sys +import subprocess +import shutil +from glob import glob + +from . import config + + +def run_xsltproc(options, args): + command = [config.xsltproc] + # we could do "$path_option $PWD " to avoid needing rewriting entities that + # are copied from the header into docs under xml + if os.environ.get("GTKDOC_PROFILE", '') == '': + if len(options.path): + command += ['--path', ':'.join(options.path)] + logging.info('running "%s"', ' '.join(command + args)) + return subprocess.call(command + args) + else: + command += ['--profile'] + if len(options.path): + command += ['--path', ':'.join(options.path)] + logging.info('running "%s"', ' '.join(command + args)) + return subprocess.call(command + args, stderr=open('profile.txt', 'w')) + + +def get_dirs(uninstalled): + if uninstalled: + # this does not work from buiddir!=srcdir + gtkdocdir = os.path.split(sys.argv[0])[0] + if not os.path.exists(gtkdocdir + '/gtk-doc.xsl'): + # try 'srcdir' (set from makefiles) too + if os.path.exists(os.environ.get("ABS_TOP_SRCDIR", '') + '/gtk-doc.xsl'): + gtkdocdir = os.environ['ABS_TOP_SRCDIR'] + styledir = gtkdocdir + '/style' + else: + gtkdocdir = os.path.join(config.datadir, 'gtk-doc/data') + styledir = gtkdocdir + return (gtkdocdir, styledir) + + +def run(options): + logging.info('options: %s', str(options.__dict__)) + + module = options.args[0] + document = options.args[1] + if options.verbose: + quiet = '0' + else: + quiet = '1' + remaining_args = options.args[2:] + + (gtkdocdir, styledir) = get_dirs(options.uninstalled) + + res = run_xsltproc(options, [ + '--nonet', + '--xinclude', + '--stringparam', + 'gtkdoc.bookname', + module, + '--stringparam', + 'gtkdoc.version', + config.version, + '--stringparam', + 'chunk.quietly', + quiet, + '--stringparam', + 'chunker.output.quiet', + quiet] + remaining_args + [gtkdocdir + '/gtk-doc.xsl', document]) + + # profiling + if os.environ.get("GTKDOC_PROFILE", '') != '': + subprocess.check_call('cat profile.txt | gprof2dot.py -e 0.01 -n 0.01 | dot -Tpng -o profile.png', shell=True) + + # copy navigation images and stylesheets to html directory ... + for f in glob(styledir + '/*.png') + glob(styledir + '/*.css'): + shutil.copy(f, '.') + + with open('../html.stamp', 'w') as h: + h.write('timestamp') + return res diff --git a/gtkdoc/mkhtml2.py b/gtkdoc/mkhtml2.py new file mode 100644 index 0000000..f867f1a --- /dev/null +++ b/gtkdoc/mkhtml2.py @@ -0,0 +1,1070 @@ +#!/usr/bin/env python3 +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2018 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +"""Prototype for builtin docbook processing + +The tool loads the main xml document (-docs.xml) and chunks it +like the xsl-stylesheets would do. For that it resolves all the xml-includes. +Each chunk is converted to htnml using python functions. + +In contrast to our previous approach of running gtkdoc-mkhtml + gtkdoc-fixxref, +this tools will replace both without relying on external tools such as xsltproc +and source-highlight. + +TODO: +- more chunk converters +- check each docbook tag if it can contain #PCDATA, if not don't check for + xml.text + +OPTIONAL: +- minify html: https://pypi.python.org/pypi/htmlmin/ + +Requirements: +sudo pip3 install anytree lxml pygments + +Example invocation: +cd tests/bugs/docs/ +../../../gtkdoc-mkhtml2 tester tester-docs.xml +xdg-open db2html/index.html +meld html db2html + +Benchmarking: +cd tests/bugs/docs/; +rm html-build.stamp; time make html-build.stamp +""" + +import argparse +import errno +import logging +import os +import shutil +import sys + +from anytree import Node, PreOrderIter +from copy import deepcopy +from glob import glob +from lxml import etree +from pygments import highlight +from pygments.lexers import CLexer +from pygments.formatters import HtmlFormatter + +from . import config, fixxref + +# pygments setup +# TODO: maybe use get_lexer_for_filename() +LEXER = CLexer() +HTML_FORMATTER = HtmlFormatter(nowrap=True) + +# http://www.sagehill.net/docbookxsl/Chunking.html +CHUNK_TAGS = [ + 'appendix', + 'article', + 'bibliography', # in article or book + 'book', + 'chapter', + 'colophon', + 'glossary', # in article or book + 'index', # in article or book + 'part', + 'preface', + 'refentry', + 'reference', + 'sect1', # except first + 'section', # if equivalent to sect1 + 'set', + 'setindex', +] + + +class ChunkParams(object): + def __init__(self, prefix, parent=None): + self.prefix = prefix + self.parent = None + self.count = 0 + + +# TODO: look up the abbrevs and hierarchy for other tags +# http://www.sagehill.net/docbookxsl/Chunking.html#GeneratedFilenames +# https://github.com/oreillymedia/HTMLBook/blob/master/htmlbook-xsl/chunk.xsl#L33 +CHUNK_PARAMS = { + 'appendix': ChunkParams('app', 'book'), + 'book': ChunkParams('bk'), + 'chapter': ChunkParams('ch', 'book'), + 'index': ChunkParams('ix', 'book'), + 'part': ChunkParams('pt', 'book'), + 'sect1': ChunkParams('s', 'chapter'), + 'section': ChunkParams('s', 'chapter'), +} + +TITLE_XPATHS = { + '_': (etree.XPath('./title'), None), + 'book': (etree.XPath('./bookinfo/title'), None), + 'refentry': ( + etree.XPath('./refmeta/refentrytitle'), + etree.XPath('./refnamediv/refpurpose') + ), +} + +ID_XPATH = etree.XPath('//@id') + + +def gen_chunk_name(node): + if 'id' in node.attrib: + return node.attrib['id'] + + tag = node.tag + if tag not in CHUNK_PARAMS: + CHUNK_PARAMS[tag] = ChunkParams(node.tag[:2]) + logging.warning('Add CHUNK_PARAMS for "%s"', tag) + + naming = CHUNK_PARAMS[tag] + naming.count += 1 + name = ('%s%02d' % (naming.prefix, naming.count)) + # handle parents to make names of nested tags unique + # TODO: we only need to prepend the parent if there are > 1 of them in the + # xml + # while naming.parent: + # parent = naming.parent + # if parent not in CHUNK_PARAMS: + # break; + # naming = CHUNK_PARAMS[parent] + # name = ('%s%02d' % (naming.prefix, naming.count)) + name + return name + + +def get_chunk_titles(node): + tag = node.tag + if tag not in TITLE_XPATHS: + # Use defaults + (title, subtitle) = TITLE_XPATHS['_'] + else: + (title, subtitle) = TITLE_XPATHS[tag] + + xml = title(node)[0] + result = { + 'title': xml.text + } + if xml.tag != 'title': + result['title_tag'] = xml.tag + else: + result['title_tag'] = tag + + if subtitle: + xml = subtitle(node)[0] + result['subtitle'] = xml.text + result['subtitle_tag'] = xml.tag + else: + result['subtitle'] = None + result['subtitle_tag'] = None + return result + + +def chunk(xml_node, parent=None): + """Chunk the tree. + + The first time, we're called with parent=None and in that case we return + the new_node as the root of the tree + """ + if xml_node.tag in CHUNK_TAGS: + if parent: + # remove the xml-node from the parent + sub_tree = etree.ElementTree(deepcopy(xml_node)).getroot() + xml_node.getparent().remove(xml_node) + xml_node = sub_tree + + title_args = get_chunk_titles(xml_node) + chunk_name = gen_chunk_name(xml_node) + parent = Node(xml_node.tag, parent=parent, xml=xml_node, + filename=chunk_name + '.html', **title_args) + + for child in xml_node: + chunk(child, parent) + + return parent + + +def add_id_links(files, links): + for node in files: + chunk_name = node.filename[:-5] + chunk_base = node.filename + '#' + for attr in ID_XPATH(node.xml): + if attr == chunk_name: + links[attr] = node.filename + else: + links[attr] = chunk_base + attr + + +# conversion helpers + + +def convert_inner(ctx, xml, result): + for child in xml: + result.extend(convert_tags.get(child.tag, convert__unknown)(ctx, child)) + + +def convert_ignore(ctx, xml): + result = [] + convert_inner(ctx, xml, result) + return result + + +def convert_skip(ctx, xml): + return [''] + + +missing_tags = {} + + +def convert__unknown(ctx, xml): + # don't recurse on subchunks + if xml.tag in CHUNK_TAGS: + return [] + # warn only once + if xml.tag not in missing_tags: + logging.warning('Add tag converter for "%s"', xml.tag) + missing_tags[xml.tag] = True + result = ['\n'] + convert_inner(ctx, xml, result) + result.append('\n') + return result + + +def convert_refsect(ctx, xml, h_tag, inner_func=convert_inner): + result = ['
\n' % xml.tag] + title = xml.find('title') + if title is not None: + if 'id' in xml.attrib: + result.append('' % xml.attrib['id']) + result.append('<%s>%s' % (h_tag, title.text, h_tag)) + xml.remove(title) + if xml.text: + result.append(xml.text) + inner_func(ctx, xml, result) + result.append('
') + if xml.tail: + result.append(xml.tail) + return result + + +def xml_get_title(xml): + title = xml.find('title') + if title is not None: + return title.text + else: + # TODO(ensonic): any way to get the file (inlcudes) too? + logging.warning('%s: Expected title tag under "%s %s"', xml.sourceline, xml.tag, str(xml.attrib)) + return '' + + +# docbook tags + +def convert_bookinfo(ctx, xml): + result = ['
'] + for releaseinfo in xml.findall('releaseinfo'): + result.extend(convert_para(ctx, releaseinfo)) + result.append("""
+
""") + if xml.tail: + result.append(xml.tail) + return result + + +def convert_blockquote(ctx, xml): + result = ['
\n
'] + if xml.text: + result.append(xml.text) + convert_inner(ctx, xml, result) + result.append('
\n
') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_colspec(ctx, xml): + result = ['\n') + # is in tgroup and there can be no 'text' + return result + + +def convert_div(ctx, xml): + result = ['
\n' % xml.tag] + if xml.text: + result.append(xml.text) + convert_inner(ctx, xml, result) + result.append('
') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_em_class(ctx, xml): + result = ['' % xml.tag] + if xml.text: + result.append(xml.text) + convert_inner(ctx, xml, result) + result.append('') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_entry(ctx, xml): + result = ['' % xml.attrib['role']) + else: + result.append('>') + if xml.text: + result.append(xml.text) + convert_inner(ctx, xml, result) + result.append('') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_indexdiv(ctx, xml): + title_tag = xml.find('title') + title = title_tag.text + xml.remove(title_tag) + result = [ + '

%s

' % (title, title) + ] + convert_inner(ctx, xml, result) + return result + + +def convert_informaltable(ctx, xml): + result = ['
\n') + convert_inner(ctx, xml, result) + result.append('
') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_itemizedlist(ctx, xml): + result = ['
    '] + convert_inner(ctx, xml, result) + result.append('
') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_link(ctx, xml): + linkend = xml.attrib['linkend'] + if linkend in fixxref.NoLinks: + linkend = None + result = [] + if linkend: + link_text = [] + convert_inner(ctx, xml, link_text) + if xml.text: + link_text.append(xml.text) + # TODO: fixxref does some weird checks in xml.text + result = [fixxref.MakeXRef(ctx['module'], '', 0, linkend, ''.join(link_text))] + if xml.tail: + result.append(xml.tail) + return result + + +def convert_listitem(ctx, xml): + result = ['
  • '] + convert_inner(ctx, xml, result) + result.append('
  • ') + # is in itemizedlist and there can be no 'text' + return result + + +def convert_literal(ctx, xml): + result = ['' % xml.tag] + if xml.text: + result.append(xml.text) + convert_inner(ctx, xml, result) + result.append('') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_orderedlist(ctx, xml): + result = ['
      '] + convert_inner(ctx, xml, result) + result.append('
    ') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_para(ctx, xml): + result = ['

    '] + if xml.tag != 'para': + result = ['

    ' % xml.tag] + if xml.text: + result.append(xml.text) + convert_inner(ctx, xml, result) + result.append('

    ') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_phrase(ctx, xml): + result = ['' % xml.attrib['role']) + else: + result.append('>') + if xml.text: + result.append(xml.text) + convert_inner(ctx, xml, result) + result.append('') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_primaryie(ctx, xml): + result = ['
    \n'] + convert_inner(ctx, xml, result) + result.append('\n
    \n
    \n') + return result + + +def convert_pre(ctx, xml): + result = ['
    \n' % xml.tag]
    +    if xml.text:
    +        result.append(xml.text)
    +    convert_inner(ctx, xml, result)
    +    result.append('
    ') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_programlisting(ctx, xml): + result = [] + if xml.attrib.get('role', '') == 'example': + if xml.text: + # TODO: check 'language' attr and use respective lexer + highlighted = highlight(xml.text, LEXER, HTML_FORMATTER) + + # we do own line-numbering + line_count = highlighted.count('\n') + source_lines = '\n'.join([str(i) for i in range(1, line_count + 1)]) + result.append(""" + + + + + + +
    %s
    %s
    +""" % (source_lines, highlighted)) + else: + result.append('
    ')
    +        if xml.text:
    +            result.append(xml.text)
    +        convert_inner(ctx, xml, result)
    +        result.append('
    ') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_refsect1(ctx, xml): + # Add a divider between two consequitive refsect2 + def convert_inner(ctx, xml, result): + prev = None + for child in xml: + if child.tag == 'refsect2' and prev is not None and prev.tag == child.tag: + result.append('
    \n') + result.extend(convert_tags.get(child.tag, convert__unknown)(ctx, child)) + prev = child + return convert_refsect(ctx, xml, 'h2', convert_inner) + + +def convert_refsect2(ctx, xml): + return convert_refsect(ctx, xml, 'h3') + + +def convert_refsect3(ctx, xml): + return convert_refsect(ctx, xml, 'h4') + + +def convert_row(ctx, xml): + result = ['\n'] + convert_inner(ctx, xml, result) + result.append('\n') + return result + + +def convert_simpara(ctx, xml): + result = ['

    '] + if xml.text: + result.append(xml.text) + result.append('

    ') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_span(ctx, xml): + result = ['' % xml.tag] + if xml.text: + result.append(xml.text) + convert_inner(ctx, xml, result) + result.append('') + if xml.tail: + result.append(xml.tail) + return result + + +def convert_tbody(ctx, xml): + result = [''] + convert_inner(ctx, xml, result) + result.append('') + # is in tgroup and there can be no 'text' + return result + + +def convert_tgroup(ctx, xml): + # tgroup does not expand to anything, but the nested colspecs need to + # be put into a colgroup + cols = xml.findall('colspec') + result = [] + if cols: + result.append('\n') + for col in cols: + result.extend(convert_colspec(ctx, col)) + xml.remove(col) + result.append('\n') + convert_inner(ctx, xml, result) + # is in informaltable and there can be no 'text' + return result + + +def convert_ulink(ctx, xml): + result = ['%s' % (xml.tag, xml.attrib['url'], xml.text)] + if xml.tail: + result.append(xml.tail) + return result + + +# TODO(ensonic): turn into class with converters as functions and ctx as self +convert_tags = { + 'bookinfo': convert_bookinfo, + 'blockquote': convert_blockquote, + 'colspec': convert_colspec, + 'entry': convert_entry, + 'function': convert_span, + 'indexdiv': convert_indexdiv, + 'indexentry': convert_ignore, + 'indexterm': convert_skip, + 'informalexample': convert_div, + 'informaltable': convert_informaltable, + 'itemizedlist': convert_itemizedlist, + 'link': convert_link, + 'listitem': convert_listitem, + 'literal': convert_literal, + 'note': convert_div, + 'orderedlist': convert_orderedlist, + 'para': convert_para, + 'parameter': convert_em_class, + 'phrase': convert_phrase, + 'primaryie': convert_primaryie, + 'programlisting': convert_programlisting, + 'releaseinfo': convert_para, + 'refsect1': convert_refsect1, + 'refsect2': convert_refsect2, + 'refsect3': convert_refsect3, + 'returnvalue': convert_span, + 'row': convert_row, + 'screen': convert_pre, + 'simpara': convert_simpara, + 'structfield': convert_em_class, + 'tbody': convert_tbody, + 'tgroup': convert_tgroup, + 'type': convert_span, + 'ulink': convert_ulink, + 'warning': convert_div, +} + +# conversion helpers + +HTML_HEADER = """ + + + +%s +%s + + +""" + + +def generate_head_links(ctx): + n = ctx['nav_home'] + result = [ + '\n' % (n.filename, n.title) + ] + if 'nav_up' in ctx: + n = ctx['nav_up'] + result.append('\n' % (n.filename, n.title)) + if 'nav_prev' in ctx: + n = ctx['nav_prev'] + result.append('\n' % (n.filename, n.title)) + if 'nav_next' in ctx: + n = ctx['nav_next'] + result.append('\n' % (n.filename, n.title)) + return ''.join(result) + + +def generate_nav_links(ctx): + n = ctx['nav_home'] + result = [ + 'Home' % n.filename + ] + if 'nav_up' in ctx: + n = ctx['nav_up'] + result.append( + 'Up' % n.filename) + else: + result.append('') + if 'nav_prev' in ctx: + n = ctx['nav_prev'] + result.append( + 'Prev' % n.filename) + else: + result.append('') + if 'nav_next' in ctx: + n = ctx['nav_next'] + result.append( + 'Next' % n.filename) + else: + result.append('') + + return ''.join(result) + + +def generate_toc(ctx, node): + result = [] + for c in node.children: + # TODO: urlencode the filename: urllib.parse.quote_plus() + result.append('
    %s\n' % ( + c.title_tag, c.filename, c.title)) + if c.subtitle: + result.append(' — %s' % (c.subtitle_tag, c.subtitle)) + result.append('
    \n') + if c.children: + result.append('
    ') + result.extend(generate_toc(ctx, c)) + result.append('
    ') + return result + + +def generate_basic_nav(ctx): + return """ + + + %s + + + """ % generate_nav_links(ctx) + + +def generate_index_nav(ctx, indexdivs): + ix_nav = [] + for s in indexdivs: + title = xml_get_title(s) + ix_nav.append('%s' % (title, title)) + + return """ + + + %s + + + """ % ('\n|\n'.join(ix_nav), generate_nav_links(ctx)) + + +def generate_refentry_nav(ctx, refsect1s, result): + result.append(""" + + + %s + + +""" % generate_nav_links(ctx)) + + +def get_id(node): + xml = node.xml + node_id = xml.attrib.get('id', None) + if node_id: + return node_id + + logging.warning('%d: No "id" attribute on "%s"', xml.sourceline, xml.tag) + ix = [] + # Generate the 'id'. We need to walk up the xml-tree and check the positions + # for each sibling. + parent = xml.getparent() + while parent is not None: + children = parent.getchildren() + ix.insert(0, str(children.index(xml) + 1)) + xml = parent + parent = xml.getparent() + # logging.warning('%s: id indexes: %s', node.filename, str(ix)) + return 'id-1.' + '.'.join(ix) + + +# docbook chunks + + +def convert_book(ctx): + node = ctx['node'] + result = [ + HTML_HEADER % (node.title, generate_head_links(ctx)), + """ + + +
    +""" % node.title + ] + bookinfo = node.xml.findall('bookinfo')[0] + result.extend(convert_bookinfo(ctx, bookinfo)) + result.append("""
    +
    +""") + result.extend(generate_toc(ctx, node.root)) + result.append("""
    +
    +
    + +""") + return result + + +def convert_chapter(ctx): + node = ctx['node'] + result = [ + HTML_HEADER % (node.title + ": " + node.root.title, generate_head_links(ctx)), + generate_basic_nav(ctx), + '
    ', + ] + title = node.xml.find('title') + if title is not None: + result.append('

    %s

    ' % ( + get_id(node), title.text)) + node.xml.remove(title) + convert_inner(ctx, node.xml, result) + result.append("""
    +
    +""") + result.extend(generate_toc(ctx, node)) + result.append("""
    +
    +
    + +""") + return result + + +def convert_index(ctx): + node = ctx['node'] + node_id = get_id(node) + # Get all indexdivs under indexdiv + indexdivs = node.xml.find('indexdiv').findall('indexdiv') + + result = [ + HTML_HEADER % (node.title + ": " + node.root.title, generate_head_links(ctx)), + generate_index_nav(ctx, indexdivs), + """
    +

    +%s

    +
    """ % (node_id, node.title) + ] + for i in indexdivs: + result.extend(convert_indexdiv(ctx, i)) + result.append("""
    + +""") + return result + + +def convert_refentry(ctx): + node = ctx['node'] + node_id = get_id(node) + refsect1s = node.xml.findall('refsect1') + + result = [ + HTML_HEADER % (node.title + ": " + node.root.title, generate_head_links(ctx)) + ] + generate_refentry_nav(ctx, refsect1s, result) + result.append(""" +
    + +
    + + + +
    +

    %s

    +

    %s — module for gtk-doc unit test

    +
    +
    +""" % (node_id, node_id, node.title, node.title)) + + for s in refsect1s: + result.extend(convert_refsect1(ctx, s)) + result.append("""
    + +""") + return result + + +# TODO(ensonic): turn into class with converters as functions and ctx as self +convert_chunks = { + 'book': convert_book, + 'chapter': convert_chapter, + 'index': convert_index, + 'refentry': convert_refentry, +} + + +def generate_nav_nodes(files, node): + nav = { + 'nav_home': node.root, + } + # nav params: up, prev, next + if node.parent: + nav['nav_up'] = node.parent + ix = files.index(node) + if ix > 0: + nav['nav_prev'] = files[ix - 1] + if ix < len(files) - 1: + nav['nav_next'] = files[ix + 1] + return nav + + +def convert(out_dir, module, files, node): + """Convert the docbook chunks to a html file. + + Args: + out_dir: already created output dir + files: list of nodes in the tree in pre-order + node: current tree node + """ + + logging.info('Writing: %s', node.filename) + with open(os.path.join(out_dir, node.filename), 'wt') as html: + ctx = { + 'module': module, + 'files': files, + 'node': node, + } + ctx.update(generate_nav_nodes(files, node)) + + if node.name in convert_chunks: + for line in convert_chunks[node.name](ctx): + html.write(line) + else: + logging.warning('Add converter/template for "%s"', node.name) + + +def create_devhelp2_toc(node): + result = [] + for c in node.children: + if c.children: + result.append('\n' % (c.title, c.filename)) + result.extend(create_devhelp2_toc(c)) + result.append('\n') + else: + result.append('\n' % (c.title, c.filename)) + return result + + +def create_devhelp2_condition_attribs(node): + if 'condition' in node.attrib: + # condition -> since, deprecated, ... (separated with '|') + cond = node.attrib['condition'].replace('"', '"').split('|') + return' ' + ' '.join(['%s="%s"' % tuple(c.split(':', 1)) for c in cond]) + else: + return '' + + +def create_devhelp2_refsect2_keyword(node, base_link): + return' \n' % ( + node.attrib['role'], xml_get_title(node), base_link + node.attrib['id'], + create_devhelp2_condition_attribs(node)) + + +def create_devhelp2_refsect3_keyword(node, base_link, title, name): + return' \n' % ( + node.attrib['role'], title, base_link + name, + create_devhelp2_condition_attribs(node)) + + +def create_devhelp2(out_dir, module, xml, files): + with open(os.path.join(out_dir, module + '.devhelp2'), 'wt') as idx: + bookinfo_nodes = xml.xpath('/book/bookinfo') + title = '' + if bookinfo_nodes is not None: + bookinfo = bookinfo_nodes[0] + title = bookinfo.xpath('./title/text()')[0] + online_url = bookinfo.xpath('./releaseinfo/ulink[@role="online-location"]/@url')[0] + # TODO: support author too (see devhelp2.xsl) + # TODO: fixxref uses '--src-lang' to set the language + result = [ + """ + + +""" % (title, module, online_url) + ] + # toc + result.extend(create_devhelp2_toc(files[0].root)) + result.append(""" + +""") + # keywords from all refsect2 and refsect3 + refsect2 = etree.XPath('//refsect2[@role]') + refsect3_enum = etree.XPath('refsect3[@role="enum_members"]/informaltable/tgroup/tbody/row[@role="constant"]') + refsect3_enum_details = etree.XPath('entry[@role="enum_member_name"]/para') + refsect3_struct = etree.XPath('refsect3[@role="struct_members"]/informaltable/tgroup/tbody/row[@role="member"]') + refsect3_struct_details = etree.XPath('entry[@role="struct_member_name"]/para/structfield') + for node in files: + base_link = node.filename + '#' + refsect2_nodes = refsect2(node.xml) + for refsect2_node in refsect2_nodes: + result.append(create_devhelp2_refsect2_keyword(refsect2_node, base_link)) + refsect3_nodes = refsect3_enum(refsect2_node) + for refsect3_node in refsect3_nodes: + details_node = refsect3_enum_details(refsect3_node)[0] + name = details_node.attrib['id'] + result.append(create_devhelp2_refsect3_keyword(refsect3_node, base_link, details_node.text, name)) + refsect3_nodes = refsect3_struct(refsect2_node) + for refsect3_node in refsect3_nodes: + details_node = refsect3_struct_details(refsect3_node)[0] + name = details_node.attrib['id'] + result.append(create_devhelp2_refsect3_keyword(refsect3_node, base_link, name, name)) + + result.append(""" + +""") + for line in result: + idx.write(line) + + +def get_dirs(uninstalled): + if uninstalled: + # this does not work from buiddir!=srcdir + gtkdocdir = os.path.split(sys.argv[0])[0] + if not os.path.exists(gtkdocdir + '/gtk-doc.xsl'): + # try 'srcdir' (set from makefiles) too + if os.path.exists(os.environ.get("ABS_TOP_SRCDIR", '') + '/gtk-doc.xsl'): + gtkdocdir = os.environ['ABS_TOP_SRCDIR'] + styledir = gtkdocdir + '/style' + else: + gtkdocdir = os.path.join(config.datadir, 'gtk-doc/data') + styledir = gtkdocdir + return (gtkdocdir, styledir) + + +def main(module, index_file, out_dir, uninstalled): + tree = etree.parse(index_file) + tree.xinclude() + + (gtkdocdir, styledir) = get_dirs(uninstalled) + # copy navigation images and stylesheets to html directory ... + css_file = os.path.join(styledir, 'style.css') + for f in glob(os.path.join(styledir, '*.png')) + [css_file]: + shutil.copy(f, out_dir) + css_file = os.path.join(out_dir, 'style.css') + with open(css_file, 'at') as css: + css.write(HTML_FORMATTER.get_style_defs()) + + # TODO: migrate options from fixxref + # TODO: do in parallel with loading the xml above. + fixxref.LoadIndicies(out_dir, '/usr/share/gtk-doc/html', []) + + # We do multiple passes: + # 1) recursively walk the tree and chunk it into a python tree so that we + # can generate navigation and link tags. + files = chunk(tree.getroot()) + files = list(PreOrderIter(files)) + # 2) find all 'id' attribs and add them to the link map + add_id_links(files, fixxref.Links) + # 3) create a xxx.devhelp2 file, do this before 3), since we modify the tree + create_devhelp2(out_dir, module, tree.getroot(), files) + # 4) iterate the tree and output files + # TODO: use multiprocessing + for node in files: + convert(out_dir, module, files, node) + + +def run(options): + logging.info('options: %s', str(options.__dict__)) + module = options.args[0] + document = options.args[1] + + # TODO: rename to 'html' later on + # - right now in mkhtml, the dir is created by the Makefile and mkhtml + # outputs into the working directory + out_dir = os.path.join(os.path.dirname(document), 'db2html') + try: + os.mkdir(out_dir) + except OSError as e: + if e.errno != errno.EEXIST: + raise + + sys.exit(main(module, document, out_dir, options.uninstalled)) diff --git a/gtkdoc/mkman.py b/gtkdoc/mkman.py new file mode 100644 index 0000000..cc4deb3 --- /dev/null +++ b/gtkdoc/mkman.py @@ -0,0 +1,64 @@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Owen Taylor +# 2001-2005 Damon Chaplin +# 2009-2017 Stefan Sauer +# 2017 Jussi Pakkanen +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import subprocess + +from . import config + + +def run(options): + logging.info('options: %s', str(options.__dict__)) + + module = options.args[0] + document = options.args[1] + if options.verbose: + quiet = '0' + else: + quiet = '1' + + # we could do "--path $PWD " to avoid needing rewriting entities that + # are copied from the header into docs under xml + path_arg = [] + for path in options.path: + path_arg += ['--path', path] + + # would it make sense to create man pages only for certain refentries + # e.g. for tools + # see http://bugzilla.gnome.org/show_bug.cgi?id=467488 + return subprocess.call([config.xsltproc] + path_arg + [ + '--nonet', + '--xinclude', + '--stringparam', + 'gtkdoc.bookname', + module, + '--stringparam', + 'gtkdoc.version', + config.version, + '--stringparam', + 'chunk.quietly ', + quiet, + '--stringparam', + 'chunker.output.quiet', + quiet, + 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl', + document]) diff --git a/gtkdoc/mkpdf.py b/gtkdoc/mkpdf.py new file mode 100755 index 0000000..6a034da --- /dev/null +++ b/gtkdoc/mkpdf.py @@ -0,0 +1,131 @@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2009-2017 Stefan Sauer +# 2017 Jussi Pakkanen +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +# Support both Python 2 and 3 +from __future__ import print_function + +import logging +import os +import sys +import subprocess + +from . import config + + +def run_xsltproc(options, args): + command = [config.xsltproc] + # we could do "--path $PWD " to avoid needing rewriting entities that are + # copied from the header into docs under xml + if len(options.path): + command += ['--path', ':'.join(options.path)] + logging.info('running "%s"', ' '.join(command + args)) + pc = subprocess.Popen(command + args, stderr=subprocess.PIPE) + (o, stde) = pc.communicate() + with open('profile.txt', 'wb') as h: + h.write(stde) + return pc.returncode + + +def run(options): + logging.info('options: %s', str(options.__dict__)) + + module = options.args[0] + document = options.args[1] + + if options.uninstalled: + # this does not work from buiddir!=srcdir + # we could try this + # MAKE_SCRDIR=$(abs_srcdir) MAKE_BUILDDIR=$(abs_builddir) gtkdoc-mkpdf ... + gtkdocdir = os.path.split(sys.argv[0])[0] + else: + gtkdocdir = os.path.join(config.datadir, 'gtk-doc/data') + + if config.dblatex != '': + # extra options to consider + # -I FIG_PATH + # -V is useful for debugging + # -T db2latex : different style + # -d : keep transient files (for debugging) + # -P abc.def=$quiet : once the stylesheets have a quiet mode + # -x "--path /path/to/more/files" + # xsltproc is already called with --xinclude + # does not work: --xslt-opts "--path $searchpath --nonet $@" + dblatex_options = ['-o', module + '.pdf'] + for i in options.imgdir: + dblatex_options += ['-I', i] + if len(options.path): + dblatex_options += ['-x', '--path ' + ':'.join(options.path)] + dblatex_options.append(document) + if not options.verbose: + pc = subprocess.Popen([config.dblatex, '--help'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + (stdo, stde) = pc.communicate() + if b'--quiet' in stdo or b'--quiet' in stde: + dblatex_options = ['--quiet'] + dblatex_options + dbcmd = [config.dblatex] + dblatex_options + pc = subprocess.Popen(dbcmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + (stde, _) = pc.communicate() + for line in stde.decode('utf-8').split('\n'): + if not line.strip(): + continue + if 'programlisting or screen' in line: + continue + # This happens when dblatex has no support for some special chars + if 'Missing character' in line: + continue + print(line) + res = pc.returncode + elif config.fop != '': + if options.verbose: + quiet = '0' + else: + quiet = '1' + res = run_xsltproc(options, ['--nonet', + '--xinclude', + '--stringparam', + 'gtkdoc.bookname', + module, + '--stringparam', + 'gtkdoc.version', + config.version, + '--stringparam', + 'chunk.quietly', + quiet, + '--stringparam', + 'chunker.output.quiet', + quiet, + module, + document, + '-o', + module + '.fo', + gtkdocdir + '/gtk-doc-fo.xsl', + document]) + # TODO: fop dies too easily :( + # res = subprocess.call([config.fop, module + '.fo', module + '.pdf')) + fname = module + '.fo' + if os.path.exists(fname): + os.unlink(fname) + else: + print("dblatex or fop must be installed to use gtkdoc-mkpdf.") + res = 1 + + with open('pdf.stamp', 'w') as h: + h.write('timestamp') + return res diff --git a/gtkdoc/rebase.py b/gtkdoc/rebase.py new file mode 100755 index 0000000..75713ce --- /dev/null +++ b/gtkdoc/rebase.py @@ -0,0 +1,257 @@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007 David Necas (Yeti) +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +""" +The rebase tool rewrites URI references in installed HTML documentation. +""" + +from __future__ import print_function +from six import iteritems, iterkeys + +import logging +import os +import re +import subprocess + +from . import common + +# Maps. +# These two point to the last seen URI of given type for a package: +# OnlineMap: package => on-line URI +# LocalMap: package => local URI +# This maps all seen URIs of a package to fix broken links in the process: +# RevMap: URI => package +OnlineMap = {} +LocalMap = {} +RevMap = {} +# Remember what mangling we did. +Mapped = {} + + +def log(options, *msg): + if options.verbose: + print(*msg) + + +def run(options): + other_dirs = [] + + # We scan the directory containing GLib and any directories in GNOME2_PATH + # first, but these will be overriden by any later scans. + if "GNOME2_PATH" in os.environ: + for dir in os.environ["GNOME2_PATH"].split(':'): + dir = os.path.join(dir, "share/gtk-doc/html") + if os.path.isdir(dir): + log(options, "Prepending GNOME2_PATH directory:", dir) + other_dirs = [dir] + other_dirs + + glib_dir = common.GetModuleDocDir('glib-2.0') + if glib_dir: + log(options, "Prepending GLib directory", glib_dir) + other_dirs = [glib_dir] + other_dirs + + # Check all other dirs, but skip already scanned dirs ord subdirs of those + + for dir in other_dirs: + ScanDirectory(dir, options) + + if options.relative: + RelativizeLocalMap(options.html_dir, options) + + RebaseReferences(options.html_dir, options) + PrintWhatWeHaveDone() + + +def ScanDirectory(scan_dir, options): + log(options, "Scanning documentation directory %s", scan_dir) + + if scan_dir == options.html_dir: + log(options, "Excluding self") + return + + if not os.path.isdir(scan_dir): + logging.info('Cannot open dir "%s"', scan_dir) + return + + subdirs = [] + onlinedir = None + have_index = False + for entry in sorted(os.listdir(scan_dir)): + full_entry = os.path.join(scan_dir, entry) + if os.path.isdir(full_entry): + subdirs.append(full_entry) + continue + + if entry.endswith('.devhelp2'): + log(options, "Reading index from " + entry) + o = ReadDevhelp(scan_dir, entry) + # Prefer this location over possibly stale index.sgml + if o is not None: + onlinedir = o + have_index = True + + if onlinedir and entry == "index.sgml": + log(options, "Reading index from index.sgml") + onlinedir = ReadIndex(dir, entry) + have_index = True + elif entry == "index.sgml.gz" and not os.path.exists(os.path.join(scan_dir, 'index.sgml')): + # debian/ubuntu started to compress this as index.sgml.gz :/ + print(''' Please fix https://bugs.launchpad.net/ubuntu/+source/gtk-doc/+bug/77138 . For now run: +gunzip %s/%s +''' % (scan_dir, entry)) + elif entry.endswith('.devhelp2.gz') and not os.path.exists(full_entry[:-3]): + # debian/ubuntu started to compress this as *devhelp2.gz :/ + print('''Please fix https://bugs.launchpad.net/ubuntu/+source/gtk-doc/+bug/1466210 . For now run: +gunzip %s/%s +''' % (scan_dir, entry)) + # we could consider supporting: gzip module + + if have_index: + AddMap(scan_dir, onlinedir, options) + + # Now recursively scan the subdirectories. + for subdir in subdirs: + ScanDirectory(subdir, options) + + +def ReadDevhelp(dir, file): + onlinedir = None + + for line in common.open_text(os.path.join(dir, file)): + # online must come before chapter/functions + if '''', line) + if match: + # Remove trailing non-directory component. + onlinedir = re.sub(r'''(.*/).*''', r'\1', match.groups(1)) + return onlinedir + + +def AddMap(dir, onlinedir, options): + package = None + + package = os.path.split(dir)[1] + if options.dest_dir != '' and dir.startswith(options.dest_dir): + dir = dir[len(options.dest_dir) - 1:] + + if onlinedir: + log(options, "On-line location of %s." % onlinedir) + OnlineMap[package] = onlinedir + RevMap[onlinedir] = package + else: + log(options, "No On-line location for %s found" % package) + + log(options, "Local location of $package: " + dir) + LocalMap[package] = dir + RevMap[dir] = package + + +def RelativizeLocalMap(dirname, options): + prefix = None + dir = None + + dirname = os.path.realpath(dirname) + prefix = os.path.split(dirname) + for package, dir in LocalMap.items(): + if dir.startswith(prefix): + dir = os.path.join("..", dir[len(prefix):]) + LocalMap[package] = dir + log(options, "Relativizing local location of $package to " + dir) + + +def RebaseReferences(dirname, options): + for ifile in sorted(os.listdir(dirname)): + if ifile.endswith('.html'): + RebaseFile(os.path.join(dirname, ifile), options) + + +def RebaseFile(filename, options): + log(options, "Fixing file: " + filename) + regex = re.compile(r'''(", info[0], "(%s)" % info[1]) diff --git a/gtkdoc/scan.py b/gtkdoc/scan.py new file mode 100644 index 0000000..cd0725e --- /dev/null +++ b/gtkdoc/scan.py @@ -0,0 +1,893 @@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +""" +Extracts declarations of functions, macros, enums, structs and unions from +header files. + +It is called with a module name, an optional source directory, an optional +output directory, and the header files to scan. + +It outputs all declarations found to a file named '$MODULE-decl.txt', and the +list of decarations to another file '$MODULE-decl-list.txt'. + +This second list file is typically copied to '$MODULE-sections.txt' and +organized into sections ready to output the XML pages. +""" + +from __future__ import print_function +from six import iteritems, iterkeys + +import logging +import os +import re +import shutil + +from . import common + +# do not read files twice; checking it here permits to give both srcdir and +# builddir as --source-dir without fear of duplicities +seen_headers = {} + + +def Run(options): + logging.info('options: %s', str(options.__dict__)) + + if not os.path.isdir(options.output_dir): + os.mkdir(options.output_dir) + + base_filename = os.path.join(options.output_dir, options.module) + old_decl_list = base_filename + '-decl-list.txt' + new_decl_list = base_filename + '-decl-list.new' + old_decl = base_filename + '-decl.txt' + new_decl = base_filename + '-decl.new' + old_types = base_filename + '.types' + new_types = base_filename + '.types.new' + sections_file = base_filename + '-sections.txt' + + # If this is the very first run then we create the .types file automatically. + if not os.path.exists(sections_file) and not os.path.exists(old_types): + options.rebuild_types = True + + section_list = {} + decl_list = [] + get_types = [] + + for file in options.headers: + ScanHeader(file, section_list, decl_list, get_types, options) + + for dir in options.source_dir: + ScanHeaders(dir, section_list, decl_list, get_types, options) + + with common.open_text(new_decl_list, 'w') as f: + for section in sorted(iterkeys(section_list)): + f.write(section_list[section]) + + with common.open_text(new_decl, 'w') as f: + for decl in decl_list: + f.write(decl) + + if options.rebuild_types: + with common.open_text(new_types, 'w') as f: + for func in sorted(get_types): + f.write(func + '\n') + + # remove the file if empty + if len(get_types) == 0: + os.unlink(new_types) + if os.path.exists(old_types): + os.rename(old_types, old_types + '.bak') + else: + common.UpdateFileIfChanged(old_types, new_types, True) + + common.UpdateFileIfChanged(old_decl_list, new_decl_list, True) + common.UpdateFileIfChanged(old_decl, new_decl, True) + + # If there is no MODULE-sections.txt file yet or we are asked to rebuild it, + # we copy the MODULE-decl-list.txt file into its place. The user can tweak it + # later if they want. + if options.rebuild_sections or not os.path.exists(sections_file): + new_sections_file = base_filename + '-sections.new' + shutil.copyfile(old_decl_list, new_sections_file) + common.UpdateFileIfChanged(sections_file, new_sections_file, False) + + # If there is no MODULE-overrides.txt file we create an empty one + # because EXTRA_DIST in gtk-doc.make requires it. + overrides_file = base_filename + '-overrides.txt' + if not os.path.exists(overrides_file): + open(overrides_file, 'w').close() + + +# +# Function : ScanHeaders +# Description : This scans a directory tree looking for header files. +# +# Arguments : $source_dir - the directory to scan. +# $section_list - a reference to the hashmap of sections. +# + +def ScanHeaders(source_dir, section_list, decl_list, get_types, options): + logging.info('Scanning source directory: %s', source_dir) + + # This array holds any subdirectories found. + subdirs = [] + + for file in sorted(os.listdir(source_dir)): + if file.startswith('.'): + continue + fullname = os.path.join(source_dir, file) + if os.path.isdir(fullname): + subdirs.append(file) + elif file.endswith('.h'): + ScanHeader(fullname, section_list, decl_list, get_types, options) + + # Now recursively scan the subdirectories. + for dir in subdirs: + matchstr = r'(\s|^)' + re.escape(dir) + r'(\s|$)' + if re.search(matchstr, options.ignore_headers): + continue + ScanHeaders(os.path.join(source_dir, dir), section_list, decl_list, + get_types, options) + + +# +# Function : ScanHeader +# Description : This scans a header file, looking for declarations of +# functions, macros, typedefs, structs and unions, which it +# outputs to the decl_list. +# Arguments : $input_file - the header file to scan. +# $section_list - a map of sections. +# $decl_list - a list of declarations +# Returns : it adds declarations to the appropriate list. +# + +def ScanHeader(input_file, section_list, decl_list, get_types, options): + global seen_headers + slist = [] # Holds the resulting list of declarations. + title = '' # Holds the title of the section + in_comment = 0 # True if we are in a comment. + in_declaration = '' # The type of declaration we are in, e.g. + # 'function' or 'macro'. + skip_block = 0 # True if we should skip a block. + symbol = None # The current symbol being declared. + decl = '' # Holds the declaration of the current symbol. + ret_type = None # For functions and function typedefs this + # holds the function's return type. + pre_previous_line = '' # The pre-previous line read in - some Gnome + # functions have the return type on one + # line, the function name on the next, + # and the rest of the declaration after. + previous_line = '' # The previous line read in - some Gnome + # functions have the return type on one line + # and the rest of the declaration after. + first_macro = 1 # Used to try to skip the standard #ifdef XXX + # define XXX at the start of headers. + level = None # Used to handle structs/unions which contain + # nested structs or unions. + internal = 0 # Set to 1 for internal symbols, we need to + # fully parse, but don't add them to docs + forward_decls = {} # Dict of forward declarations, we skip + # them if we find the real declaration + # later. + doc_comments = {} # Dict of doc-comments we found. + # The key is lowercase symbol name, val=1. + + file_basename = None + + deprecated_conditional_nest = 0 + ignore_conditional_nest = 0 + + deprecated = '' + doc_comment = '' + + # Don't scan headers twice + canonical_input_file = os.path.realpath(input_file) + if canonical_input_file in seen_headers: + logging.info('File already scanned: %s', input_file) + return + + seen_headers[canonical_input_file] = 1 + + file_basename = os.path.split(input_file)[1][:-2] # filename ends in .h + + # Check if the basename is in the list of headers to ignore. + matchstr = r'(\s|^)' + re.escape(file_basename) + r'\.h(\s|$)' + if re.search(matchstr, options.ignore_headers): + logging.info('File ignored: %s', input_file) + return + + # Check if the full name is in the list of headers to ignore. + matchstr = r'(\s|^)' + re.escape(input_file) + r'(\s|$)' + if re.search(matchstr, options.ignore_headers): + logging.info('File ignored: %s', input_file) + return + + if not os.path.exists(input_file): + logging.warning('File does not exist: %s', input_file) + return + + logging.info('Scanning %s', input_file) + + for line in common.open_text(input_file): + # If this is a private header, skip it. + if re.search(r'^\s*/\*\s*<\s*private_header\s*>\s*\*/', line): + return + + # Skip to the end of the current comment. + if in_comment: + logging.info('Comment: %s', line.strip()) + doc_comment += line + if re.search(r'\*/', line): + m = re.search(r'\* ([a-zA-Z][a-zA-Z0-9_]+):', doc_comment) + if m: + doc_comments[m.group(1).lower()] = 1 + in_comment = 0 + doc_comment = '' + continue + + # Keep a count of #if, #ifdef, #ifndef nesting, + # and if we enter a deprecation-symbol-bracketed + # zone, take note. + m = re.search(r'^\s*#\s*if(?:n?def\b|\s+!?\s*defined\s*\()\s*(\w+)', line) + if m: + define_name = m.group(1) + if deprecated_conditional_nest < 1 and re.search(options.deprecated_guards, define_name): + deprecated_conditional_nest = 1 + elif deprecated_conditional_nest >= 1: + deprecated_conditional_nest += 1 + if ignore_conditional_nest == 0 and '__GTK_DOC_IGNORE__' in define_name: + ignore_conditional_nest = 1 + elif ignore_conditional_nest > 0: + ignore_conditional_nest = 1 + + elif re.search(r'^\s*#\sif', line): + if deprecated_conditional_nest >= 1: + deprecated_conditional_nest += 1 + + if ignore_conditional_nest > 0: + ignore_conditional_nest += 1 + elif re.search(r'^\s*#endif', line): + if deprecated_conditional_nest >= 1: + deprecated_conditional_nest -= 1 + + if ignore_conditional_nest > 0: + ignore_conditional_nest -= 1 + + # If we find a line containing _DEPRECATED, we hope that this is + # attribute based deprecation and also treat this as a deprecation + # guard, unless it's a macro definition. + if deprecated_conditional_nest == 0 and '_DEPRECATED' in line: + m = re.search(r'^\s*#\s*(if*|define)', line) + if not (m or in_declaration == 'enum'): + logging.info('Found deprecation annotation (decl: "%s"): "%s"', + in_declaration, line.strip()) + deprecated_conditional_nest += 0.1 + + # set flag that is used later when we do AddSymbolToList + if deprecated_conditional_nest > 0: + deprecated = '\n' + else: + deprecated = '' + + if ignore_conditional_nest: + continue + + if not in_declaration: + # Skip top-level comments. + m = re.search(r'^\s*/\*', line) + if m: + re.sub(r'^\s*/\*', '', line) + if re.search(r'\*/', line): + logging.info('Found one-line comment: %s', line.strip()) + else: + in_comment = 1 + doc_comment = line + logging.info('Found start of comment: %s', line.strip()) + continue + + logging.info('no decl: %s', line.strip()) + + # avoid generating regex with |'' (matching no string) + ignore_decorators = '' + if options.ignore_decorators: + ignore_decorators = '|' + options.ignore_decorators + + m = re.search(r'^\s*#\s*define\s+(\w+)', line) + # $1 $3 $4 $5 + m2 = re.search( + r'^\s*typedef\s+((const\s+|G_CONST_RETURN\s+)?\w+)(\s+const)?\s*(\**)\s*\(\*\s*(\w+)\)\s*\(', line) + # $1 $3 $4 $5 + m3 = re.search(r'^\s*((const\s+|G_CONST_RETURN\s+)?\w+)(\s+const)?\s*(\**)\s*\(\*\s*(\w+)\)\s*\(', line) + # $1 $2 + m4 = re.search(r'^\s*(\**)\s*\(\*\s*(\w+)\)\s*\(', line) + # $1 $3 + m5 = re.search(r'^\s*typedef\s*((const\s+|G_CONST_RETURN\s+)?\w+)(\s+const)?\s*', previous_line) + # $1 $3 $4 $5 + m6 = re.search( + r'^\s*(?:\b(?:extern|G_INLINE_FUNC%s)\s*)*((const\s+|G_CONST_RETURN\s+)?\w+)(\s+const)?\s*(\**)\s*\(\*\s*(\w+)\)\s*\(' % ignore_decorators, line) + m7 = re.search(r'^\s*enum\s+_?(\w+)\s+\{', line) + m8 = re.search(r'^\s*typedef\s+enum', line) + m9 = re.search(r'^\s*typedef\s+(struct|union)\s+_(\w+)\s+\2\s*;', line) + m10 = re.search(r'^\s*(struct|union)\s+(\w+)\s*;', line) + m11 = re.search(r'^\s*typedef\s+(struct|union)\s*\w*\s*{', line) + m12 = re.search(r'^\s*typedef\s+(?:struct|union)\s+\w+[\s\*]+(\w+)\s*;', line) + m13 = re.search(r'^\s*(G_GNUC_EXTENSION\s+)?typedef\s+(.+[\s\*])(\w+)(\s*\[[^\]]+\])*\s*;', line) + m14 = re.search( + r'^\s*(extern|[A-Za-z_]+VAR%s)\s+((const\s+|signed\s+|unsigned\s+|long\s+|short\s+)*\w+)(\s+\*+|\*+|\s)\s*(const\s+)*([A-Za-z]\w*)\s*;' % ignore_decorators, line) + m15 = re.search( + r'^\s*((const\s+|signed\s+|unsigned\s+|long\s+|short\s+)*\w+)(\s+\*+|\*+|\s)\s*(const\s+)*([A-Za-z]\w*)\s*\=', line) + m16 = re.search(r'.*G_DECLARE_(FINAL_TYPE|DERIVABLE_TYPE|INTERFACE)\s*\(', line) + # $1 $2 $3 + m17 = re.search( + r'^\s*(?:\b(?:extern|G_INLINE_FUNC%s)\s*)*((?:const\s+|G_CONST_RETURN\s+|signed\s+|unsigned\s+|long\s+|short\s+|struct\s+|union\s+|enum\s+)*\w+)([\s*]+(?:\s*(?:\*+|\bconst\b|\bG_CONST_RETURN\b))*)\s*(_[A-Za-z]\w*)\s*\(' % ignore_decorators, line) + # $1 $2 $3 + m18 = re.search( + r'^\s*(?:\b(?:extern|G_INLINE_FUNC%s)\s*)*((?:const\s+|G_CONST_RETURN\s+|signed\s+|unsigned\s+|long\s+|short\s+|struct\s+|union\s+|enum\s+)*\w+)([\s*]+(?:\s*(?:\*+|\bconst\b|\bG_CONST_RETURN\b))*)\s*([A-Za-z]\w*)\s*\(' % ignore_decorators, line) + m19 = re.search(r'^\s*([A-Za-z]\w*)\s*\(', line) + m20 = re.search(r'^\s*\(', line) + m21 = re.search(r'^\s*struct\s+_?(\w+)', line) + m22 = re.search(r'^\s*union\s+_(\w+)', line) + + # MACROS + + if m: + symbol = m.group(1) + decl = line + # We assume all macros which start with '_' are private. + # We also try to skip the first macro if it looks like the + # standard #ifndef HEADER_FILE #define HEADER_FILE etc. + # And we only want TRUE & FALSE defined in GLib. + if not symbol.startswith('_') \ + and (not re.search(r'#ifndef\s+' + symbol, previous_line) + or first_macro == 0) \ + and ((symbol != 'TRUE' and symbol != 'FALSE') + or options.module == 'glib'): + in_declaration = 'macro' + logging.info('Macro: "%s"', symbol) + else: + logging.info('skipping Macro: "%s"', symbol) + in_declaration = 'macro' + internal = 1 + first_macro = 0 + + # TYPEDEF'D FUNCTIONS (i.e. user functions) + elif m2: + p3 = m2.group(3) or '' + ret_type = "%s%s %s" % (m2.group(1), p3, m2.group(4)) + symbol = m2.group(5) + decl = line[m2.end():] + in_declaration = 'user_function' + logging.info('user function (1): "%s", Returns: "%s"', symbol, ret_type) + + elif re.search(r'^\s*typedef\s*', previous_line) and m3: + p3 = m3.group(3) or '' + ret_type = '%s%s %s' % (m3.group(1), p3, m3.group(4)) + symbol = m3.group(5) + decl = line[m3.end():] + in_declaration = 'user_function' + logging.info('user function (2): "%s", Returns: "%s"', symbol, ret_type) + + elif re.search(r'^\s*typedef\s*', previous_line) and m4: + ret_type = m4.group(1) + symbol = m4.group(2) + decl = line[m4.end():] + if m5: + p3 = m5.group(3) or '' + ret_type = "%s%s %s" % (m5.group(1), p3, ret_type) + in_declaration = 'user_function' + logging.info('user function (3): "%s", Returns: "%s"', symbol, ret_type) + + # FUNCTION POINTER VARIABLES + elif m6: + p3 = m6.group(3) or '' + ret_type = '%s%s %s' % (m6.group(1), p3, m6.group(4)) + symbol = m6.group(5) + decl = line[m6.end():] + in_declaration = 'user_function' + logging.info('function pointer variable: "%s", Returns: "%s"', symbol, ret_type) + + # ENUMS + + elif m7: + re.sub(r'^\s*enum\s+_?(\w+)\s+\{', r'enum \1 {', line) + # We assume that 'enum _ {' is really the + # declaration of enum . + symbol = m7.group(1) + decl = line + in_declaration = 'enum' + logging.info('plain enum: "%s"', symbol) + + elif re.search(r'^\s*typedef\s+enum\s+_?(\w+)\s+\1\s*;', line): + # We skip 'typedef enum _;' as the enum will + # be declared elsewhere. + logging.info('skipping enum typedef: "%s"', line) + elif m8: + symbol = '' + decl = line + in_declaration = 'enum' + logging.info('typedef enum: -') + + # STRUCTS AND UNIONS + + elif m9: + # We've found a 'typedef struct _ ;' + # This could be an opaque data structure, so we output an + # empty declaration. If the structure is actually found that + # will override this. + structsym = m9.group(1).upper() + logging.info('%s typedef: "%s"', structsym, m9.group(2)) + forward_decls[m9.group(2)] = '<%s>\n%s\n%s\n' % ( + structsym, m9.group(2), deprecated, structsym) + + elif re.search(r'^\s*(?:struct|union)\s+_(\w+)\s*;', line): + # Skip private structs/unions. + logging.info('private struct/union') + + elif m10: + # Do a similar thing for normal structs as for typedefs above. + # But we output the declaration as well in this case, so we + # can differentiate it from a typedef. + structsym = m10.group(1).upper() + logging.info('%s:%s', structsym, m10.group(2)) + forward_decls[m10.group(2)] = '<%s>\n%s\n%s%s\n' % ( + structsym, m10.group(2), line, deprecated, structsym) + + elif m11: + symbol = '' + decl = line + level = 0 + in_declaration = m11.group(1) + logging.info('typedef struct/union "%s"', in_declaration) + + # OTHER TYPEDEFS + + elif m12: + logging.info('Found struct/union(*) typedef "%s": "%s"', m12.group(1), line) + if AddSymbolToList(slist, m12.group(1)): + decl_list.append('\n%s\n%s%s\n' % (m12.group(1), deprecated, line)) + + elif m13: + if m13.group(2).split()[0] not in ('struct', 'union'): + logging.info('Found typedef: "%s"', line) + if AddSymbolToList(slist, m13.group(3)): + decl_list.append( + '\n%s\n%s%s\n' % (m13.group(3), deprecated, line)) + elif re.search(r'^\s*typedef\s+', line): + logging.info('Skipping typedef: "%s"', line) + + # VARIABLES (extern'ed variables) + + elif m14: + symbol = m14.group(6) + line = re.sub(r'^\s*([A-Za-z_]+VAR)\b', r'extern', line) + decl = line + logging.info('Possible extern var "%s": "%s"', symbol, decl) + if AddSymbolToList(slist, symbol): + decl_list.append('\n%s\n%s%s\n' % (symbol, deprecated, decl)) + + # VARIABLES + + elif m15: + symbol = m15.group(5) + decl = line + logging.info('Possible global var" %s": "%s"', symbol, decl) + if AddSymbolToList(slist, symbol): + decl_list.append('\n%s\n%s%s\n' % (symbol, deprecated, decl)) + + # G_DECLARE_* + + elif m16: + in_declaration = 'g-declare' + symbol = 'G_DECLARE_' + m16.group(1) + decl = line[m16.end():] + + # FUNCTIONS + + # We assume that functions which start with '_' are private, so + # we skip them. + elif m17: + ret_type = m17.group(1) + if m17.group(2): + ret_type += ' ' + m17.group(2) + symbol = m17.group(3) + decl = line[m17.end():] + logging.info('internal Function: "%s", Returns: "%s""%s"', symbol, m17.group(1), m17.group(2)) + in_declaration = 'function' + internal = 1 + if line.strip().startswith('G_INLINE_FUNC'): + logging.info('skip block after inline function') + # now we we need to skip a whole { } block + skip_block = 1 + + elif m18: + ret_type = m18.group(1) + if m18.group(2): + ret_type += ' ' + m18.group(2) + symbol = m18.group(3) + decl = line[m18.end():] + logging.info('Function (1): "%s", Returns: "%s""%s"', symbol, m18.group(1), m18.group(2)) + in_declaration = 'function' + if line.strip().startswith('G_INLINE_FUNC'): + logging.info('skip block after inline function') + # now we we need to skip a whole { } block + skip_block = 1 + + # Try to catch function declarations which have the return type on + # the previous line. But we don't want to catch complete functions + # which have been declared G_INLINE_FUNC, e.g. g_bit_nth_lsf in + # glib, or 'static inline' functions. + elif m19: + symbol = m19.group(1) + decl = line[m19.end():] + + previous_line_strip = previous_line.strip() + previous_line_words = previous_line_strip.split() + + if not previous_line_strip.startswith('G_INLINE_FUNC'): + if not previous_line_words or previous_line_words[0] != 'static': + # $ 1 $2 + pm = re.search(r'^\s*(?:\b(?:extern%s)\s*)*((?:const\s+|G_CONST_RETURN\s+|signed\s+|unsigned\s+|long\s+|short\s+|struct\s+|union\s+|enum\s+)*\w+)((?:\s*(?:\*+|\bconst\b|\bG_CONST_RETURN\b))*)\s*$' % + ignore_decorators, previous_line) + if pm: + ret_type = pm.group(1) + if pm.group(2): + ret_type += ' ' + pm.group(2) + logging.info('Function (2): "%s", Returns: "%s"', symbol, ret_type) + in_declaration = 'function' + else: + logging.info('skip block after inline function') + # now we we need to skip a whole { } block + skip_block = 1 + # $1 $2 + pm = re.search(r'^\s*(?:\b(?:extern|static|inline%s)\s*)*((?:const\s+|G_CONST_RETURN\s+|signed\s+|unsigned\s+|long\s+|short\s+|struct\s+|union\s+|enum\s+)*\w+)((?:\s*(?:\*+|\bconst\b|\bG_CONST_RETURN\b))*)\s*$' % + ignore_decorators, previous_line) + if pm: + ret_type = pm.group(1) + if pm.group(2): + ret_type += ' ' + pm.group(2) + logging.info('Function (3): "%s", Returns: "%s"', symbol, ret_type) + in_declaration = 'function' + else: + if not previous_line_words or previous_line_words[0] != 'static': + logging.info('skip block after inline function') + # now we we need to skip a whole { } block + skip_block = 1 + # $1 $2 + pm = re.search(r'^\s*(?:\b(?:extern|G_INLINE_FUNC%s)\s*)*((?:const\s+|G_CONST_RETURN\s+|signed\s+|unsigned\s+|long\s+|short\s+|struct\s+|union\s+|enum\s+)*\w+)((?:\s*(?:\*+|\bconst\b|\bG_CONST_RETURN\b))*)\s*$' % + ignore_decorators, previous_line) + if pm: + ret_type = pm.group(1) + if pm.group(2): + ret_type += ' ' + pm.group(2) + logging.info('Function (4): "%s", Returns: "%s"', symbol, ret_type) + in_declaration = 'function' + + # Try to catch function declarations with the return type and name + # on the previous line(s), and the start of the parameters on this. + elif m20: + decl = line[m20.end():] + pm = re.search( + r'^\s*(?:\b(?:extern|G_INLINE_FUNC%s)\s*)*((?:const\s+|G_CONST_RETURN\s+|signed\s+|unsigned\s+|enum\s+)*\w+)(\s+\*+|\*+|\s)\s*([A-Za-z]\w*)\s*$' % ignore_decorators, previous_line) + ppm = re.search(r'^\s*(?:\b(?:extern|G_INLINE_FUNC%s)\s*)*((?:const\s+|G_CONST_RETURN\s+|signed\s+|unsigned\s+|struct\s+|union\s+|enum\s+)*\w+(?:\**\s+\**(?:const|G_CONST_RETURN))?(?:\s+|\s*\*+))\s*$' % + ignore_decorators, pre_previous_line) + if pm: + ret_type = pm.group(1) + ' ' + pm.group(2) + symbol = pm.group(3) + in_declaration = 'function' + logging.info('Function (5): "%s", Returns: "%s"', symbol, ret_type) + + elif re.search(r'^\s*\w+\s*$', previous_line) and ppm: + ret_type = ppm.group(1) + ret_type = re.sub(r'\s*\n', '', ret_type, flags=re.MULTILINE) + in_declaration = 'function' + + symbol = previous_line + symbol = re.sub(r'^\s+', '', symbol) + symbol = re.sub(r'\s*\n', '', symbol, flags=re.MULTILINE) + logging.info('Function (6): "%s", Returns: "%s"', symbol, ret_type) + + # } elsif (m/^extern\s+/) { + # print "DEBUG: Skipping extern: $_" + + # STRUCTS + elif re.search(r'^\s*struct\s+_?(\w+)\s*\*', line): + # Skip 'struct _ *', since it could be a + # return type on its own line. + pass + elif m21: + # We assume that 'struct _' is really the + # declaration of struct . + symbol = m21.group(1) + decl = line + # we will find the correct level as below we do $level += tr/{// + level = 0 + in_declaration = 'struct' + logging.info('Struct(_): "%s"', symbol) + + # UNIONS + elif re.search(r'^\s*union\s+_(\w+)\s*\*', line): + # Skip 'union _ *' (see above) + pass + elif m22: + symbol = m22.group(1) + decl = line + level = 0 + in_declaration = 'union' + logging.info('Union(_): "%s"', symbol) + else: + logging.info('in decl: skip=%s %s', skip_block, line.strip()) + # If we were already in the middle of a declaration, we simply add + # the current line onto the end of it. + if skip_block == 0: + decl += line + else: + # Remove all nested pairs of curly braces. + brace_remover = r'{[^{]*}' + bm = re.search(brace_remover, line) + while bm: + line = re.sub(brace_remover, '', line) + bm = re.search(brace_remover, line) + # Then hope at most one remains in the line... + bm = re.search(r'(.*?){', line) + if bm: + if skip_block == 1: + decl += bm.group(1) + skip_block += 1 + elif '}' in line: + skip_block -= 1 + if skip_block == 1: + # this is a hack to detect the end of declaration + decl += ';' + skip_block = 0 + logging.info('2: ---') + + else: + if skip_block == 1: + decl += line + + if in_declaration == "g-declare": + dm = re.search(r'\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*\).*$', decl) + # FIXME the original code does s// stuff here and we don't. Is it necessary? + if dm: + ModuleObjName = dm.group(1) + module_obj_name = dm.group(2) + if options.rebuild_types: + get_types.append(module_obj_name + '_get_type') + forward_decls[ModuleObjName] = '\n%s\n%s\n' % (ModuleObjName, deprecated) + if symbol.startswith('G_DECLARE_DERIVABLE'): + forward_decls[ModuleObjName + 'Class'] = '\n%sClass\n%s\n' % ( + ModuleObjName, deprecated) + if symbol.startswith('G_DECLARE_INTERFACE'): + forward_decls[ModuleObjName + 'Interface'] = '\n%sInterface\n%s\n' % ( + ModuleObjName, deprecated) + in_declaration = '' + + # Note that sometimes functions end in ') G_GNUC_PRINTF (2, 3);' or + # ') __attribute__ (...);'. + if in_declaration == 'function': + regex = r'\)\s*(G_GNUC_.*|.*DEPRECATED.*%s\s*|__attribute__\s*\(.*\)\s*)*;.*$' % ignore_decorators + pm = re.search(regex, decl, flags=re.MULTILINE) + if pm: + logging.info('scrubbing:[%s]', decl.strip()) + decl = re.sub(regex, '', decl, flags=re.MULTILINE) + logging.info('scrubbed:[%s]', decl.strip()) + if internal == 0: + decl = re.sub(r'/\*.*?\*/', '', decl, flags=re.MULTILINE) # remove comments. + decl = re.sub(r'\s*\n\s*(?!$)', ' ', decl, flags=re.MULTILINE) + # consolidate whitespace at start/end of lines. + decl = decl.strip() + ret_type = re.sub(r'/\*.*?\*/', '', ret_type) # remove comments in ret type. + if AddSymbolToList(slist, symbol): + decl_list.append('\n%s\n%s%s\n%s\n\n' % + (symbol, deprecated, ret_type, decl)) + if options.rebuild_types: + # check if this looks like a get_type function and if so remember + if symbol.endswith('_get_type') and 'GType' in ret_type and re.search(r'^(void|)$', decl): + logging.info( + "Adding get-type: [%s] [%s] [%s]\tfrom %s", ret_type, symbol, decl, input_file) + get_types.append(symbol) + else: + internal = 0 + deprecated_conditional_nest = int(deprecated_conditional_nest) + in_declaration = '' + skip_block = 0 + + if in_declaration == 'user_function': + if re.search(r'\).*$', decl): + decl = re.sub(r'\).*$', '', decl) + if AddSymbolToList(slist, symbol): + decl_list.append('\n%s\n%s%s\n%s\n' % + (symbol, deprecated, ret_type, decl)) + deprecated_conditional_nest = int(deprecated_conditional_nest) + in_declaration = '' + + if in_declaration == 'macro': + if not re.search(r'\\\s*$', decl): + if internal == 0: + if AddSymbolToList(slist, symbol): + decl_list.append('\n%s\n%s%s\n' % (symbol, deprecated, decl)) + else: + internal = 0 + deprecated_conditional_nest = int(deprecated_conditional_nest) + in_declaration = '' + + if in_declaration == 'enum': + em = re.search(r'\}\s*(\w+)?;\s*$', decl) + if em: + if symbol == '': + symbol = em.group(1) + if AddSymbolToList(slist, symbol): + decl_list.append('\n%s\n%s%s\n' % (symbol, deprecated, decl)) + deprecated_conditional_nest = int(deprecated_conditional_nest) + in_declaration = '' + + # We try to handle nested stucts/unions, but unmatched brackets in + # comments will cause problems. + if in_declaration == 'struct' or in_declaration == 'union': + sm = re.search(r'\n\}\s*(\w*);\s*$', decl) + if level <= 1 and sm: + if symbol == '': + symbol = sm.group(1) + + bm = re.search(r'^(\S+)(Class|Iface|Interface)\b', symbol) + if bm: + objectname = bm.group(1) + logging.info('Found object: "%s"', objectname) + title = '%s' % objectname + + logging.info('Store struct: "%s"', symbol) + if AddSymbolToList(slist, symbol): + structsym = in_declaration.upper() + decl_list.append('<%s>\n%s\n%s%s\n' % + (structsym, symbol, deprecated, decl, structsym)) + if symbol in forward_decls: + del forward_decls[symbol] + deprecated_conditional_nest = int(deprecated_conditional_nest) + in_declaration = '' + else: + # We use tr to count the brackets in the line, and adjust + # $level accordingly. + level += line.count('{') + level -= line.count('}') + logging.info('struct/union level : %d', level) + + pre_previous_line = previous_line + previous_line = line + + # print remaining forward declarations + for symbol in sorted(iterkeys(forward_decls)): + if forward_decls[symbol]: + AddSymbolToList(slist, symbol) + decl_list.append(forward_decls[symbol]) + + # add title + slist = [title] + slist + + logging.info("Scanning %s done", input_file) + + # Try to separate the standard macros and functions, placing them at the + # end of the current section, in a subsection named 'Standard'. + # do this in a loop to catch object, enums and flags + klass = lclass = prefix = lprefix = None + standard_decl = [] + liststr = '\n'.join(s for s in slist if s) + '\n' + while True: + m = re.search(r'^(\S+)_IS_(\S*)_CLASS\n', liststr, flags=re.MULTILINE) + m2 = re.search(r'^(\S+)_IS_(\S*)\n', liststr, flags=re.MULTILINE) + m3 = re.search(r'^(\S+?)_(\S*)_get_type\n', liststr, flags=re.MULTILINE) + if m: + prefix = m.group(1) + lprefix = prefix.lower() + klass = m.group(2) + lclass = klass.lower() + logging.info("Found gobject type '%s_%s' from is_class macro", prefix, klass) + elif m2: + prefix = m2.group(1) + lprefix = prefix.lower() + klass = m2.group(2) + lclass = klass.lower() + logging.info("Found gobject type '%s_%s' from is_ macro", prefix, klass) + elif m3: + lprefix = m3.group(1) + prefix = lprefix.upper() + lclass = m3.group(2) + klass = lclass.upper() + logging.info("Found gobject type '%s_%s' from get_type function", prefix, klass) + else: + break + + cclass = lclass + cclass = cclass.replace('_', '') + mtype = lprefix + cclass + + liststr, standard_decl = replace_once(liststr, standard_decl, r'^%sPrivate\n' % mtype) + + # We only leave XxYy* in the normal section if they have docs + if mtype not in doc_comments: + logging.info(" Hide instance docs for %s", mtype) + liststr, standard_decl = replace_once(liststr, standard_decl, r'^%s\n' % mtype) + + if mtype + 'class' not in doc_comments: + logging.info(" Hide class docs for %s", mtype) + liststr, standard_decl = replace_once(liststr, standard_decl, r'^%sClass\n' % mtype) + + if mtype + 'interface' not in doc_comments: + logging.info(" Hide iface docs for %s", mtype) + liststr, standard_decl = replace_once(liststr, standard_decl, r'%sInterface\n' % mtype) + + if mtype + 'iface' not in doc_comments: + logging.info(" Hide iface docs for " + mtype) + liststr, standard_decl = replace_once(liststr, standard_decl, r'%sIface\n' % mtype) + + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_IS_%s\n' % klass) + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_TYPE_%s\n' % klass) + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_get_type\n' % lclass) + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_CLASS\n' % klass) + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_IS_%s_CLASS\n' % klass) + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_GET_CLASS\n' % klass) + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_GET_IFACE\n' % klass) + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_GET_INTERFACE\n' % klass) + # We do this one last, otherwise it tends to be caught by the IS_$class macro + liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s\n' % klass) + + logging.info('Decl:%s---', liststr) + logging.info('Std :%s---', ''.join(sorted(standard_decl))) + if len(standard_decl): + # sort the symbols + liststr += '\n' + ''.join(sorted(standard_decl)) + + if liststr != '': + if file_basename not in section_list: + section_list[file_basename] = '' + section_list[file_basename] += "
    \n%s\n%s
    \n\n" % (file_basename, liststr) + + +def replace_once(liststr, standard_decl, regex): + mre = re.search(regex, liststr, flags=re.IGNORECASE | re.MULTILINE) + if mre: + standard_decl.append(mre.group(0)) + liststr = re.sub(regex, '', liststr, flags=re.IGNORECASE | re.MULTILINE) + return liststr, standard_decl + + +def replace_all(liststr, standard_decl, regex): + mre = re.search(regex, liststr, flags=re.MULTILINE) + while mre: + standard_decl.append(mre.group(0)) + liststr = re.sub(regex, '', liststr, flags=re.MULTILINE) + mre = re.search(regex, liststr, flags=re.MULTILINE) + return liststr, standard_decl + + +def AddSymbolToList(slist, symbol): + """ Adds symbol to list of declaration if not already present. + + Args: + slist: The list of symbols. + symbol: The symbol to add to the list. + """ + if symbol in slist: + # logging.info('Symbol %s already in list. skipping', symbol) + # we return False to skip outputting another entry to -decl.txt + # this is to avoid redeclarations (e.g. in conditional sections). + return False + slist.append(symbol) + return True diff --git a/gtkdoc/scangobj.py b/gtkdoc/scangobj.py new file mode 100644 index 0000000..4ad2717 --- /dev/null +++ b/gtkdoc/scangobj.py @@ -0,0 +1,1316 @@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# 2007-2016 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +""" +The scangobj tool gets information about object hierarchies and signals by +compiling and running a small C program. CFLAGS and LDFLAGS must be set +appropriately before running this script. +""" + +import logging +import os +import string +import subprocess +import shlex + +from . import common, config + + +COMMON_INCLUDES = """ +#include +#include +#include +#include +#include +""" + +QUERY_CHILD_PROPS_PROTOTYPE = "extern GParamSpec** %s (gpointer class, guint *n_properties);" + +QUERY_CHILD_PROPS_CODE = """ + if (!child_prop) { + properties = %s (class, &n_properties); + if (properties) { + child_prop = TRUE; + continue; + } + } +""" + +MAIN_CODE = """ + +#ifdef GTK_IS_WIDGET_CLASS +#include +#endif +static GType object_types[$ntypes]; + +static GType * +get_object_types (void) +{ + gpointer g_object_class; + gint i = 0; + +${get_types} + object_types[i] = G_TYPE_INVALID; + + /* reference the GObjectClass to initialize the param spec pool + * potentially needed by interfaces. See http://bugs.gnome.org/571820 */ + g_object_class = g_type_class_ref (G_TYPE_OBJECT); + + /* Need to make sure all the types are loaded in and initialize + * their signals and properties. + */ + for (i=0; object_types[i]; i++) { + if (G_TYPE_IS_CLASSED (object_types[i])) + g_type_class_ref (object_types[i]); + if (G_TYPE_IS_INTERFACE (object_types[i])) + g_type_default_interface_ref (object_types[i]); + } + + g_type_class_unref (g_object_class); + + return object_types; +} + +/* + * This uses GObject type functions to output signal prototypes and the object + * hierarchy. + */ + +/* The output files */ +const gchar *signals_filename = "$new_signals_filename"; +const gchar *hierarchy_filename = "$new_hierarchy_filename"; +const gchar *interfaces_filename = "$new_interfaces_filename"; +const gchar *prerequisites_filename = "$new_prerequisites_filename"; +const gchar *args_filename = "$new_args_filename"; + +static void output_signals (void); +static void output_object_signals (FILE *fp, + GType object_type); +static void output_object_signal (FILE *fp, + const gchar *object_class_name, + guint signal_id); +static const gchar * get_type_name (GType type, + gboolean * is_pointer); +static void output_object_hierarchy (void); +static void output_hierarchy (FILE *fp, + GType type, + guint level); + +static void output_object_interfaces (void); +static void output_interfaces (FILE *fp, + GType type); + +static void output_interface_prerequisites (void); +static void output_prerequisites (FILE *fp, + GType type); + +static void output_args (void); +static void output_object_args (FILE *fp, GType object_type); + +int +main (${main_func_params}) +{ + ${type_init_func}; + + get_object_types (); + + output_signals (); + output_object_hierarchy (); + output_object_interfaces (); + output_interface_prerequisites (); + output_args (); + + return 0; +} + +static void +output_signals (void) +{ + FILE *fp; + gint i; + + fp = fopen (signals_filename, "w"); + if (fp == NULL) { + g_warning ("Couldn't open output file: %s : %s", signals_filename, g_strerror(errno)); + return; + } + + for (i = 0; object_types[i]; i++) + output_object_signals (fp, object_types[i]); + + fclose (fp); +} + +static gint +compare_signals (const void *a, const void *b) +{ + const guint *signal_a = a; + const guint *signal_b = b; + + return strcmp (g_signal_name (*signal_a), g_signal_name (*signal_b)); +} + +/* This outputs all the signals of one object. */ +static void +output_object_signals (FILE *fp, GType object_type) +{ + const gchar *object_class_name; + guint *signals, n_signals; + guint sig; + + if (G_TYPE_IS_INSTANTIATABLE (object_type) || + G_TYPE_IS_INTERFACE (object_type)) { + + object_class_name = g_type_name (object_type); + + signals = g_signal_list_ids (object_type, &n_signals); + qsort (signals, n_signals, sizeof (guint), compare_signals); + + for (sig = 0; sig < n_signals; sig++) { + output_object_signal (fp, object_class_name, signals[sig]); + } + g_free (signals); + } +} + +/* This outputs one signal. */ +static void +output_object_signal (FILE *fp, + const gchar *object_name, + guint signal_id) +{ + GSignalQuery query_info; + const gchar *type_name, *ret_type, *object_arg, *arg_name; + gchar *pos, *object_arg_lower; + gboolean is_pointer; + gchar buffer[1024]; + guint i, param; + gint param_num, widget_num, event_num, callback_num; + gint *arg_num; + gchar signal_name[128]; + gchar flags[16]; + + /* g_print ("Object: %s Signal: %u\\n", object_name, signal_id);*/ + + param_num = 1; + widget_num = event_num = callback_num = 0; + + g_signal_query (signal_id, &query_info); + + /* Output the signal object type and the argument name. We assume the + * type is a pointer - I think that is OK. We remove "Gtk" or "Gnome" and + * convert to lower case for the argument name. */ + pos = buffer; + sprintf (pos, "%s ", object_name); + pos += strlen (pos); + + /* Try to come up with a sensible variable name for the first arg + * It chops off 2 know prefixes :/ and makes the name lowercase + * It should replace lowercase -> uppercase with '_' + * GFileMonitor -> file_monitor + * GIOExtensionPoint -> extension_point + * GtkTreeView -> tree_view + * if 2nd char is upper case too + * search for first lower case and go back one char + * else + * search for next upper case + */ + if (!strncmp (object_name, "Gtk", 3)) + object_arg = object_name + 3; + else if (!strncmp (object_name, "Gnome", 5)) + object_arg = object_name + 5; + else + object_arg = object_name; + + object_arg_lower = g_ascii_strdown (object_arg, -1); + sprintf (pos, "*%s\\n", object_arg_lower); + pos += strlen (pos); + if (!strncmp (object_arg_lower, "widget", 6)) + widget_num = 2; + g_free(object_arg_lower); + + /* Convert signal name to use underscores rather than dashes '-'. */ + strncpy (signal_name, query_info.signal_name, 127); + signal_name[127] = '\\0'; + for (i = 0; signal_name[i]; i++) { + if (signal_name[i] == '-') + signal_name[i] = '_'; + } + + /* Output the signal parameters. */ + for (param = 0; param < query_info.n_params; param++) { + type_name = get_type_name (query_info.param_types[param] & ~G_SIGNAL_TYPE_STATIC_SCOPE, &is_pointer); + + /* Most arguments to the callback are called "arg1", "arg2", etc. + GtkWidgets are called "widget", "widget2", ... + GtkCallbacks are called "callback", "callback2", ... */ + if (!strcmp (type_name, "GtkWidget")) { + arg_name = "widget"; + arg_num = &widget_num; + } + else if (!strcmp (type_name, "GtkCallback") + || !strcmp (type_name, "GtkCCallback")) { + arg_name = "callback"; + arg_num = &callback_num; + } + else { + arg_name = "arg"; + arg_num = ¶m_num; + } + sprintf (pos, "%s ", type_name); + pos += strlen (pos); + + if (!arg_num || *arg_num == 0) + sprintf (pos, "%s%s\\n", is_pointer ? "*" : " ", arg_name); + else + sprintf (pos, "%s%s%i\\n", is_pointer ? "*" : " ", arg_name, + *arg_num); + pos += strlen (pos); + + if (arg_num) { + if (*arg_num == 0) + *arg_num = 2; + else + *arg_num += 1; + } + } + + pos = flags; + /* We use one-character flags for simplicity. */ + if (query_info.signal_flags & G_SIGNAL_RUN_FIRST) + *pos++ = 'f'; + if (query_info.signal_flags & G_SIGNAL_RUN_LAST) + *pos++ = 'l'; + if (query_info.signal_flags & G_SIGNAL_RUN_CLEANUP) + *pos++ = 'c'; + if (query_info.signal_flags & G_SIGNAL_NO_RECURSE) + *pos++ = 'r'; + if (query_info.signal_flags & G_SIGNAL_DETAILED) + *pos++ = 'd'; + if (query_info.signal_flags & G_SIGNAL_ACTION) + *pos++ = 'a'; + if (query_info.signal_flags & G_SIGNAL_NO_HOOKS) + *pos++ = 'h'; + *pos = 0; + + /* Output the return type and function name. */ + ret_type = get_type_name (query_info.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE, &is_pointer); + + fprintf (fp, + "\\n%s::%s\\n%s%s\\n%s\\n%s\\n\\n", + object_name, query_info.signal_name, ret_type, is_pointer ? "*" : "", flags, buffer); +} + + +/* Returns the type name to use for a signal argument or return value, given + the GtkType from the signal info. It also sets is_pointer to TRUE if the + argument needs a '*' since it is a pointer. */ +static const gchar * +get_type_name (GType type, gboolean * is_pointer) +{ + const gchar *type_name; + + *is_pointer = FALSE; + type_name = g_type_name (type); + + switch (type) { + case G_TYPE_NONE: + case G_TYPE_CHAR: + case G_TYPE_UCHAR: + case G_TYPE_BOOLEAN: + case G_TYPE_INT: + case G_TYPE_UINT: + case G_TYPE_LONG: + case G_TYPE_ULONG: + case G_TYPE_FLOAT: + case G_TYPE_DOUBLE: + case G_TYPE_POINTER: + /* These all have normal C type names so they are OK. */ + return type_name; + + case G_TYPE_STRING: + /* A GtkString is really a gchar*. */ + *is_pointer = TRUE; + return "gchar"; + + case G_TYPE_ENUM: + case G_TYPE_FLAGS: + /* We use a gint for both of these. Hopefully a subtype with a decent + name will be registered and used instead, as GTK+ does itself. */ + return "gint"; + + case G_TYPE_BOXED: + /* The boxed type shouldn't be used itself, only subtypes. Though we + return 'gpointer' just in case. */ + return "gpointer"; + + case G_TYPE_PARAM: + /* A GParam is really a GParamSpec*. */ + *is_pointer = TRUE; + return "GParamSpec"; + +#if GLIB_CHECK_VERSION (2, 25, 9) + case G_TYPE_VARIANT: + *is_pointer = TRUE; + return "GVariant"; +#endif + +default: + break; + } + + /* For all GObject subclasses we can use the class name with a "*", + e.g. 'GtkWidget *'. */ + if (g_type_is_a (type, G_TYPE_OBJECT)) + *is_pointer = TRUE; + + /* Also catch non GObject root types */ + if (G_TYPE_IS_CLASSED (type)) + *is_pointer = TRUE; + + /* All boxed subtypes will be pointers as well. */ + /* Exception: GStrv */ + if (g_type_is_a (type, G_TYPE_BOXED) && + !g_type_is_a (type, G_TYPE_STRV)) + *is_pointer = TRUE; + + /* All pointer subtypes will be pointers as well. */ + if (g_type_is_a (type, G_TYPE_POINTER)) + *is_pointer = TRUE; + + /* But enums are not */ + if (g_type_is_a (type, G_TYPE_ENUM) || + g_type_is_a (type, G_TYPE_FLAGS)) + *is_pointer = FALSE; + + return type_name; +} + + +/* This outputs the hierarchy of all objects which have been initialized, + i.e. by calling their XXX_get_type() initialization function. */ +static void +output_object_hierarchy (void) +{ + FILE *fp; + gint i,j; + GType root, type; + GType root_types[$ntypes] = { G_TYPE_INVALID, }; + + fp = fopen (hierarchy_filename, "w"); + if (fp == NULL) { + g_warning ("Couldn't open output file: %s : %s", hierarchy_filename, g_strerror(errno)); + return; + } + output_hierarchy (fp, G_TYPE_OBJECT, 0); + output_hierarchy (fp, G_TYPE_INTERFACE, 0); + + for (i=0; object_types[i]; i++) { + root = object_types[i]; + while ((type = g_type_parent (root))) { + root = type; + } + if ((root != G_TYPE_OBJECT) && (root != G_TYPE_INTERFACE)) { + for (j=0; root_types[j]; j++) { + if (root == root_types[j]) { + root = G_TYPE_INVALID; break; + } + } + if(root) { + root_types[j] = root; + output_hierarchy (fp, root, 0); + } + } + } + + fclose (fp); +} + +/* This is called recursively to output the hierarchy of a object. */ +static void +output_hierarchy (FILE *fp, + GType type, + guint level) +{ + guint i; + GType *children; + guint n_children; + + if (!type) + return; + + for (i = 0; i < level; i++) + fprintf (fp, " "); + fprintf (fp, "%s\\n", g_type_name (type)); + + children = g_type_children (type, &n_children); + + for (i=0; i < n_children; i++) + output_hierarchy (fp, children[i], level + 1); + + g_free (children); +} + +static void output_object_interfaces (void) +{ + guint i; + FILE *fp; + + fp = fopen (interfaces_filename, "w"); + if (fp == NULL) { + g_warning ("Couldn't open output file: %s : %s", interfaces_filename, g_strerror(errno)); + return; + } + output_interfaces (fp, G_TYPE_OBJECT); + + for (i = 0; object_types[i]; i++) { + if (!g_type_parent (object_types[i]) && + (object_types[i] != G_TYPE_OBJECT) && + G_TYPE_IS_INSTANTIATABLE (object_types[i])) { + output_interfaces (fp, object_types[i]); + } + } + fclose (fp); +} + +static void +output_interfaces (FILE *fp, + GType type) +{ + guint i; + GType *children, *interfaces; + guint n_children, n_interfaces; + + if (!type) + return; + + interfaces = g_type_interfaces (type, &n_interfaces); + + if (n_interfaces > 0) { + fprintf (fp, "%s", g_type_name (type)); + for (i=0; i < n_interfaces; i++) + fprintf (fp, " %s", g_type_name (interfaces[i])); + fprintf (fp, "\\n"); + } + g_free (interfaces); + + children = g_type_children (type, &n_children); + + for (i=0; i < n_children; i++) + output_interfaces (fp, children[i]); + + g_free (children); +} + +static void output_interface_prerequisites (void) +{ + FILE *fp; + + fp = fopen (prerequisites_filename, "w"); + if (fp == NULL) { + g_warning ("Couldn't open output file: %s : %s", prerequisites_filename, g_strerror(errno)); + return; + } + output_prerequisites (fp, G_TYPE_INTERFACE); + fclose (fp); +} + +static void +output_prerequisites (FILE *fp, + GType type) +{ +#if GLIB_CHECK_VERSION(2,1,0) + guint i; + GType *children, *prerequisites; + guint n_children, n_prerequisites; + + if (!type) + return; + + prerequisites = g_type_interface_prerequisites (type, &n_prerequisites); + + if (n_prerequisites > 0) { + fprintf (fp, "%s", g_type_name (type)); + for (i=0; i < n_prerequisites; i++) + fprintf (fp, " %s", g_type_name (prerequisites[i])); + fprintf (fp, "\\n"); + } + g_free (prerequisites); + + children = g_type_children (type, &n_children); + + for (i=0; i < n_children; i++) + output_prerequisites (fp, children[i]); + + g_free (children); +#endif +} + +static void +output_args (void) +{ + FILE *fp; + gint i; + + fp = fopen (args_filename, "w"); + if (fp == NULL) { + g_warning ("Couldn't open output file: %s : %s", args_filename, g_strerror(errno)); + return; + } + + for (i = 0; object_types[i]; i++) { + output_object_args (fp, object_types[i]); + } + + fclose (fp); +} + +static gint +compare_param_specs (const void *a, const void *b) +{ + GParamSpec *spec_a = *(GParamSpec **)a; + GParamSpec *spec_b = *(GParamSpec **)b; + + return strcmp (g_param_spec_get_name (spec_a), g_param_spec_get_name (spec_b)); +} + +/* Its common to have unsigned properties restricted + * to the signed range. Therefore we make this look + * a bit nicer by spelling out the max constants. + */ + +/* Don't use "==" with floats, it might trigger a gcc warning. */ +#define GTKDOC_COMPARE_FLOAT(x, y) (x <= y && x >= y) + +static gchar* +describe_double_constant (gdouble value) +{ + gchar *desc; + + if (GTKDOC_COMPARE_FLOAT (value, G_MAXDOUBLE)) + desc = g_strdup ("G_MAXDOUBLE"); + else if (GTKDOC_COMPARE_FLOAT (value, G_MINDOUBLE)) + desc = g_strdup ("G_MINDOUBLE"); + else if (GTKDOC_COMPARE_FLOAT (value, -G_MAXDOUBLE)) + desc = g_strdup ("-G_MAXDOUBLE"); + else if (GTKDOC_COMPARE_FLOAT (value, G_MAXFLOAT)) + desc = g_strdup ("G_MAXFLOAT"); + else if (GTKDOC_COMPARE_FLOAT (value, G_MINFLOAT)) + desc = g_strdup ("G_MINFLOAT"); + else if (GTKDOC_COMPARE_FLOAT (value, -G_MAXFLOAT)) + desc = g_strdup ("-G_MAXFLOAT"); + else{ + /* make sure floats are output with a decimal dot irrespective of + * current locale. Use formatd since we want human-readable numbers + * and do not need the exact same bit representation when deserialising */ + desc = g_malloc0 (G_ASCII_DTOSTR_BUF_SIZE); + g_ascii_formatd (desc, G_ASCII_DTOSTR_BUF_SIZE, "%g", value); + } + + return desc; +} + +static gchar* +describe_signed_constant (gsize size, gint64 value) +{ + gchar *desc = NULL; + + switch (size) { + case 2: + if (sizeof (int) == 2) { + if (value == G_MAXINT) + desc = g_strdup ("G_MAXINT"); + else if (value == G_MININT) + desc = g_strdup ("G_MININT"); + } + break; + case 4: + if (sizeof (int) == 4) { + if (value == G_MAXINT) + desc = g_strdup ("G_MAXINT"); + else if (value == G_MININT) + desc = g_strdup ("G_MININT"); + } + if (value == G_MAXLONG) + desc = g_strdup ("G_MAXLONG"); + else if (value == G_MINLONG) + desc = g_strdup ("G_MINLONG"); + break; + case 8: + if (value == G_MAXINT64) + desc = g_strdup ("G_MAXINT64"); + else if (value == G_MININT64) + desc = g_strdup ("G_MININT64"); + break; + default: + break; + } + if (!desc) + desc = g_strdup_printf ("%" G_GINT64_FORMAT, value); + + return desc; +} + +static gchar* +describe_unsigned_constant (gsize size, guint64 value) +{ + gchar *desc = NULL; + + switch (size) { + case 2: + if (sizeof (int) == 2) { + if (value == (guint64)G_MAXINT) + desc = g_strdup ("G_MAXINT"); + else if (value == G_MAXUINT) + desc = g_strdup ("G_MAXUINT"); + } + break; + case 4: + if (sizeof (int) == 4) { + if (value == (guint64)G_MAXINT) + desc = g_strdup ("G_MAXINT"); + else if (value == G_MAXUINT) + desc = g_strdup ("G_MAXUINT"); + } + if (value == (guint64)G_MAXLONG) + desc = g_strdup ("G_MAXLONG"); + else if (value == G_MAXULONG) + desc = g_strdup ("G_MAXULONG"); + break; + case 8: + if (value == G_MAXINT64) + desc = g_strdup ("G_MAXINT64"); + else if (value == G_MAXUINT64) + desc = g_strdup ("G_MAXUINT64"); + break; + default: + break; + } + if (!desc) + desc = g_strdup_printf ("%" G_GUINT64_FORMAT, value); + + return desc; +} + +static gchar* +describe_type (GParamSpec *spec) +{ + gchar *desc; + gchar *lower; + gchar *upper; + + if (G_IS_PARAM_SPEC_CHAR (spec)) { + GParamSpecChar *pspec = G_PARAM_SPEC_CHAR (spec); + + lower = describe_signed_constant (sizeof(gchar), pspec->minimum); + upper = describe_signed_constant (sizeof(gchar), pspec->maximum); + if (pspec->minimum == G_MININT8 && pspec->maximum == G_MAXINT8) + desc = g_strdup (""); + else if (pspec->minimum == G_MININT8) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXINT8) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_UCHAR (spec)) { + GParamSpecUChar *pspec = G_PARAM_SPEC_UCHAR (spec); + + lower = describe_unsigned_constant (sizeof(guchar), pspec->minimum); + upper = describe_unsigned_constant (sizeof(guchar), pspec->maximum); + if (pspec->minimum == 0 && pspec->maximum == G_MAXUINT8) + desc = g_strdup (""); + else if (pspec->minimum == 0) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXUINT8) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_INT (spec)) { + GParamSpecInt *pspec = G_PARAM_SPEC_INT (spec); + + lower = describe_signed_constant (sizeof(gint), pspec->minimum); + upper = describe_signed_constant (sizeof(gint), pspec->maximum); + if (pspec->minimum == G_MININT && pspec->maximum == G_MAXINT) + desc = g_strdup (""); + else if (pspec->minimum == G_MININT) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXINT) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_UINT (spec)) { + GParamSpecUInt *pspec = G_PARAM_SPEC_UINT (spec); + + lower = describe_unsigned_constant (sizeof(guint), pspec->minimum); + upper = describe_unsigned_constant (sizeof(guint), pspec->maximum); + if (pspec->minimum == 0 && pspec->maximum == G_MAXUINT) + desc = g_strdup (""); + else if (pspec->minimum == 0) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXUINT) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_LONG (spec)) { + GParamSpecLong *pspec = G_PARAM_SPEC_LONG (spec); + + lower = describe_signed_constant (sizeof(glong), pspec->minimum); + upper = describe_signed_constant (sizeof(glong), pspec->maximum); + if (pspec->minimum == G_MINLONG && pspec->maximum == G_MAXLONG) + desc = g_strdup (""); + else if (pspec->minimum == G_MINLONG) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXLONG) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_ULONG (spec)) { + GParamSpecULong *pspec = G_PARAM_SPEC_ULONG (spec); + + lower = describe_unsigned_constant (sizeof(gulong), pspec->minimum); + upper = describe_unsigned_constant (sizeof(gulong), pspec->maximum); + if (pspec->minimum == 0 && pspec->maximum == G_MAXULONG) + desc = g_strdup (""); + else if (pspec->minimum == 0) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXULONG) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_INT64 (spec)) { + GParamSpecInt64 *pspec = G_PARAM_SPEC_INT64 (spec); + + lower = describe_signed_constant (sizeof(gint64), pspec->minimum); + upper = describe_signed_constant (sizeof(gint64), pspec->maximum); + if (pspec->minimum == G_MININT64 && pspec->maximum == G_MAXINT64) + desc = g_strdup (""); + else if (pspec->minimum == G_MININT64) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXINT64) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_UINT64 (spec)) { + GParamSpecUInt64 *pspec = G_PARAM_SPEC_UINT64 (spec); + + lower = describe_unsigned_constant (sizeof(guint64), pspec->minimum); + upper = describe_unsigned_constant (sizeof(guint64), pspec->maximum); + if (pspec->minimum == 0 && pspec->maximum == G_MAXUINT64) + desc = g_strdup (""); + else if (pspec->minimum == 0) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXUINT64) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_FLOAT (spec)) { + GParamSpecFloat *pspec = G_PARAM_SPEC_FLOAT (spec); + + lower = describe_double_constant (pspec->minimum); + upper = describe_double_constant (pspec->maximum); + if (GTKDOC_COMPARE_FLOAT (pspec->minimum, -G_MAXFLOAT)) { + if (GTKDOC_COMPARE_FLOAT (pspec->maximum, G_MAXFLOAT)) + desc = g_strdup (""); + else + desc = g_strdup_printf ("<= %s", upper); + } + else if (GTKDOC_COMPARE_FLOAT (pspec->maximum, G_MAXFLOAT)) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_DOUBLE (spec)) { + GParamSpecDouble *pspec = G_PARAM_SPEC_DOUBLE (spec); + + lower = describe_double_constant (pspec->minimum); + upper = describe_double_constant (pspec->maximum); + if (GTKDOC_COMPARE_FLOAT (pspec->minimum, -G_MAXDOUBLE)) { + if (GTKDOC_COMPARE_FLOAT (pspec->maximum, G_MAXDOUBLE)) + desc = g_strdup (""); + else + desc = g_strdup_printf ("<= %s", upper); + } + else if (GTKDOC_COMPARE_FLOAT (pspec->maximum, G_MAXDOUBLE)) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } +#if GLIB_CHECK_VERSION (2, 12, 0) + else if (G_IS_PARAM_SPEC_GTYPE (spec)) { + GParamSpecGType *pspec = G_PARAM_SPEC_GTYPE (spec); + gboolean is_pointer; + + desc = g_strdup (get_type_name (pspec->is_a_type, &is_pointer)); + } +#endif +#if GLIB_CHECK_VERSION (2, 25, 9) + else if (G_IS_PARAM_SPEC_VARIANT (spec)) { + GParamSpecVariant *pspec = G_PARAM_SPEC_VARIANT (spec); + gchar *variant_type; + + variant_type = g_variant_type_dup_string (pspec->type); + desc = g_strdup_printf ("GVariant<%s>", variant_type); + g_free (variant_type); + } +#endif + else { + desc = g_strdup (""); + } + + return desc; +} + +static gchar* +describe_default (GParamSpec *spec) +{ + gchar *desc; + + if (G_IS_PARAM_SPEC_CHAR (spec)) { + GParamSpecChar *pspec = G_PARAM_SPEC_CHAR (spec); + + desc = g_strdup_printf ("%d", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_UCHAR (spec)) { + GParamSpecUChar *pspec = G_PARAM_SPEC_UCHAR (spec); + + desc = g_strdup_printf ("%u", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_BOOLEAN (spec)) { + GParamSpecBoolean *pspec = G_PARAM_SPEC_BOOLEAN (spec); + + desc = g_strdup_printf ("%s", pspec->default_value ? "TRUE" : "FALSE"); + } + else if (G_IS_PARAM_SPEC_INT (spec)) { + GParamSpecInt *pspec = G_PARAM_SPEC_INT (spec); + + desc = g_strdup_printf ("%d", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_UINT (spec)) { + GParamSpecUInt *pspec = G_PARAM_SPEC_UINT (spec); + + desc = g_strdup_printf ("%u", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_LONG (spec)) { + GParamSpecLong *pspec = G_PARAM_SPEC_LONG (spec); + + desc = g_strdup_printf ("%ld", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_LONG (spec)) { + GParamSpecULong *pspec = G_PARAM_SPEC_ULONG (spec); + + desc = g_strdup_printf ("%lu", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_INT64 (spec)) { + GParamSpecInt64 *pspec = G_PARAM_SPEC_INT64 (spec); + + desc = g_strdup_printf ("%" G_GINT64_FORMAT, pspec->default_value); + } + else if (G_IS_PARAM_SPEC_UINT64 (spec)) + { + GParamSpecUInt64 *pspec = G_PARAM_SPEC_UINT64 (spec); + + desc = g_strdup_printf ("%" G_GUINT64_FORMAT, pspec->default_value); + } + else if (G_IS_PARAM_SPEC_UNICHAR (spec)) { + GParamSpecUnichar *pspec = G_PARAM_SPEC_UNICHAR (spec); + + if (g_unichar_isprint (pspec->default_value)) + desc = g_strdup_printf ("'%c'", pspec->default_value); + else + desc = g_strdup_printf ("%u", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_ENUM (spec)) { + GParamSpecEnum *pspec = G_PARAM_SPEC_ENUM (spec); + + GEnumValue *value = g_enum_get_value (pspec->enum_class, pspec->default_value); + if (value) + desc = g_strdup_printf ("%s", value->value_name); + else + desc = g_strdup_printf ("%d", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_FLAGS (spec)) { + GParamSpecFlags *pspec = G_PARAM_SPEC_FLAGS (spec); + guint default_value; + GString *acc; + + default_value = pspec->default_value; + acc = g_string_new (""); + + while (default_value) { + GFlagsValue *value = g_flags_get_first_value (pspec->flags_class, default_value); + + if (!value) + break; + + if (acc->len > 0) + g_string_append (acc, " | "); + g_string_append (acc, value->value_name); + + default_value &= ~value->value; + } + + if (default_value == 0) + desc = g_string_free (acc, FALSE); + else { + desc = g_strdup_printf ("%d", pspec->default_value); + g_string_free (acc, TRUE); + } + } + else if (G_IS_PARAM_SPEC_FLOAT (spec)) { + GParamSpecFloat *pspec = G_PARAM_SPEC_FLOAT (spec); + + /* make sure floats are output with a decimal dot irrespective of + * current locale. Use formatd since we want human-readable numbers + * and do not need the exact same bit representation when deserialising */ + desc = g_malloc0 (G_ASCII_DTOSTR_BUF_SIZE); + g_ascii_formatd (desc, G_ASCII_DTOSTR_BUF_SIZE, "%g", + pspec->default_value); + } + else if (G_IS_PARAM_SPEC_DOUBLE (spec)) { + GParamSpecDouble *pspec = G_PARAM_SPEC_DOUBLE (spec); + + /* make sure floats are output with a decimal dot irrespective of + * current locale. Use formatd since we want human-readable numbers + * and do not need the exact same bit representation when deserialising */ + desc = g_malloc0 (G_ASCII_DTOSTR_BUF_SIZE); + g_ascii_formatd (desc, G_ASCII_DTOSTR_BUF_SIZE, "%g", + pspec->default_value); + } + else if (G_IS_PARAM_SPEC_STRING (spec)) { + GParamSpecString *pspec = G_PARAM_SPEC_STRING (spec); + + if (pspec->default_value) { + gchar *esc = g_strescape (pspec->default_value, NULL); + desc = g_strdup_printf ("\\"%s\\"", esc); + g_free (esc); + } + else + desc = g_strdup_printf ("NULL"); + } +#if GLIB_CHECK_VERSION (2, 25, 9) + else if (G_IS_PARAM_SPEC_VARIANT (spec)) { + GParamSpecVariant *pspec = G_PARAM_SPEC_VARIANT (spec); + + if (pspec->default_value) + desc = g_variant_print (pspec->default_value, TRUE); + else + desc = g_strdup ("NULL"); + } +#endif + else { + desc = g_strdup (""); + } + + return desc; +} + + +static void +output_object_args (FILE *fp, GType object_type) +{ + gpointer class; + const gchar *object_class_name; + guint arg; + gchar flags[16], *pos; + GParamSpec **properties; + guint n_properties; + gboolean child_prop; + gboolean style_prop; + gboolean is_pointer; + const gchar *type_name; + gchar *type_desc; + gchar *default_value; + + if (G_TYPE_IS_OBJECT (object_type)) { + class = g_type_class_peek (object_type); + if (!class) + return; + + properties = g_object_class_list_properties (class, &n_properties); + } +#if GLIB_MAJOR_VERSION > 2 || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION >= 3) + else if (G_TYPE_IS_INTERFACE (object_type)) { + class = g_type_default_interface_ref (object_type); + + if (!class) + return; + + properties = g_object_interface_list_properties (class, &n_properties); + } +#endif + else + return; + + object_class_name = g_type_name (object_type); + + child_prop = FALSE; + style_prop = FALSE; + + while (TRUE) { + qsort (properties, n_properties, sizeof (GParamSpec *), compare_param_specs); + for (arg = 0; arg < n_properties; arg++) { + GParamSpec *spec = properties[arg]; + const gchar *nick, *blurb, *dot; + + if (spec->owner_type != object_type) + continue; + + pos = flags; + /* We use one-character flags for simplicity. */ + if (child_prop && !style_prop) + *pos++ = 'c'; + if (style_prop) + *pos++ = 's'; + if (spec->flags & G_PARAM_READABLE) + *pos++ = 'r'; + if (spec->flags & G_PARAM_WRITABLE) + *pos++ = 'w'; + if (spec->flags & G_PARAM_CONSTRUCT) + *pos++ = 'x'; + if (spec->flags & G_PARAM_CONSTRUCT_ONLY) + *pos++ = 'X'; + *pos = 0; + + nick = g_param_spec_get_nick (spec); + blurb = g_param_spec_get_blurb (spec); + + dot = ""; + if (blurb) { + int str_len = strlen (blurb); + if (str_len > 0 && blurb[str_len - 1] != '.') + dot = "."; + } + + type_desc = describe_type (spec); + default_value = describe_default (spec); + type_name = get_type_name (spec->value_type, &is_pointer); + fprintf (fp, "\\n" + "%s::%s\\n" + "%s%s\\n" + "%s\\n" + "%s\\n" + "%s\\n" + "%s%s\\n" + "%s\\n" + "\\n\\n", + object_class_name, g_param_spec_get_name (spec), type_name, + is_pointer ? "*" : "", type_desc, flags, nick ? nick : "(null)", + blurb ? blurb : "(null)", dot, default_value); + g_free (type_desc); + g_free (default_value); + } + + g_free (properties); + +#ifdef GTK_IS_CONTAINER_CLASS + if (!child_prop && GTK_IS_CONTAINER_CLASS (class)) { + properties = gtk_container_class_list_child_properties (class, &n_properties); + child_prop = TRUE; + continue; + } +#endif + +#ifdef GTK_IS_CELL_AREA_CLASS + if (!child_prop && GTK_IS_CELL_AREA_CLASS (class)) { + properties = gtk_cell_area_class_list_cell_properties (class, &n_properties); + child_prop = TRUE; + continue; + } +#endif + +#ifdef GTK_IS_WIDGET_CLASS +#if GTK_CHECK_VERSION(2,1,0) && !GTK_CHECK_VERSION(3,89,2) + if (!style_prop && GTK_IS_WIDGET_CLASS (class)) { + properties = gtk_widget_class_list_style_properties (GTK_WIDGET_CLASS (class), &n_properties); + style_prop = TRUE; + continue; + } +#endif +#endif + +""" + +MAIN_CODE_END = """ + break; + } +} +""" + + +def execute_command(options, description, command): + if options.verbose: + call = subprocess.check_call + else: + call = subprocess.check_output + + try: + call(command) + except subprocess.CalledProcessError as e: + logging.warning('%s scanner failed: %d, command: %s', description, + e.returncode, ' '.join(command)) + return e.returncode + except OSError as e: + logging.warning('%s scanner failed: %s, command: %s', description, + str(e), ' '.join(command)) + return 1 + return 0 + + +def run(options): + logging.info('options: %s', str(options.__dict__)) + + c_file = options.module + '-scan.c' + output = common.open_text(c_file, 'w') + + base_filename = os.path.join(options.output_dir, options.module) + old_signals_filename = base_filename + '.signals' + new_signals_filename = base_filename + '.signals.new' + old_hierarchy_filename = base_filename + '.hierarchy' + new_hierarchy_filename = base_filename + '.hierarchy.new' + old_interfaces_filename = base_filename + '.interfaces' + new_interfaces_filename = base_filename + '.interfaces.new' + old_prerequisites_filename = base_filename + '.prerequisites' + new_prerequisites_filename = base_filename + '.prerequisites.new' + old_args_filename = base_filename + '.args' + new_args_filename = base_filename + '.args.new' + + # generate a C program to scan the types + + includes = "" + forward_decls = "" + get_types = "" + ntypes = 1 + + for line in common.open_text(options.types): + if line.startswith('#include'): + includes += line + elif line.startswith('%') or line.strip() == '': + continue + else: + line = line.strip() + get_types += ' object_types[i++] = ' + line + ' ();\n' + forward_decls += 'extern GType ' + line + ' (void);\n' + ntypes += 1 + + output.write(COMMON_INCLUDES) + + if includes: + output.write(includes) + else: + output.write(forward_decls) + + if options.query_child_properties: + output.write(QUERY_CHILD_PROPS_PROTOTYPE % options.query_child_properties) + + # substitute local vars in the template + type_init_func = options.type_init_func + main_func_params = "int argc, char *argv[]" + if "argc" in type_init_func and "argv" not in type_init_func: + main_func_params = "int argc, G_GNUC_UNUSED char *argv[]" + elif "argc" not in type_init_func and "argv" in type_init_func: + main_func_params = "G_GNUC_UNUSED int argc, char *argv[]" + elif "argc" not in type_init_func and "argv" not in type_init_func: + main_func_params = "void" + + output.write(string.Template(MAIN_CODE).substitute(locals())) + + if options.query_child_properties: + output.write(QUERY_CHILD_PROPS_CODE % options.query_child_properties) + + output.write(MAIN_CODE_END) + + output.close() + + # Compile and run our file + if 'libtool' in options.cc: + o_file = options.module + '-scan.lo' + else: + o_file = options.module + '-scan.o' + + x_file = options.module + '-scan' + config.exeext + + logging.debug('Intermediate scanner files: %s, %s, %s', c_file, o_file, x_file) + + res = execute_command(options, 'Compiling', + shlex.split(options.cc) + shlex.split(options.cflags) + + ["-c", "-o", o_file, c_file]) + if res: + return res + + res = execute_command(options, 'Linking', + shlex.split(options.ld) + [o_file] + + shlex.split(options.ldflags) + ['-o', x_file]) + if res: + return res + + res = execute_command(options, 'Running', + shlex.split(options.run) + ['./' + x_file]) + if res: + return res + + logging.debug('Scan complete') + if 'GTK_DOC_KEEP_INTERMEDIATE' not in os.environ: + os.unlink(c_file) + os.unlink(o_file) + os.unlink(x_file) + if 'libtool' in options.cc: + o_file = options.module + '-scan.o' + if os.path.exists(o_file): + os.unlink(o_file) + else: + logging.debug('Keeping generated sources for analysis: %s, %s, %s', + c_file, o_file, x_file) + + common.UpdateFileIfChanged(old_signals_filename, new_signals_filename, False) + common.UpdateFileIfChanged(old_hierarchy_filename, new_hierarchy_filename, False) + common.UpdateFileIfChanged(old_interfaces_filename, new_interfaces_filename, False) + common.UpdateFileIfChanged(old_prerequisites_filename, new_prerequisites_filename, False) + common.UpdateFileIfChanged(old_args_filename, new_args_filename, False) + + return 0 diff --git a/gtkdocize.in b/gtkdocize.in new file mode 100644 index 0000000..a688fc3 --- /dev/null +++ b/gtkdocize.in @@ -0,0 +1,164 @@ +#!/bin/sh + +progname=`echo "$0" | sed 's%^.*/%%'` + +PROGRAM=gtkdocize +PACKAGE=@PACKAGE@ +VERSION=@VERSION@ + +prefix=@prefix@ +datarootdir=@datarootdir@ +datadir=@datadir@ + +# options +copy=no +makefile=gtk-doc.make +flavour=no-tmpl + +# mini help +usage="\ +usage: $progname [ --copy ] [ --docdir DIR ] [ --flavour {legacy|legacy-flat|no-tmpl|no-tmpl-flat} ] [ --srcdir DIR ]" + +# Find the srcdir early (and ignore a srcdir set in configure). +# https://bugzilla.gnome.org/show_bug.cgi?id=707426 +args="$*" +while test $# -gt 0; do + case "$1" in + --srcdir) + shift + srcdir="$1" + shift ;; + --srcdir=*) + srcdir=`expr "X$1" : '[^=]*=\(.*\)'` + shift ;; + *) + shift ;; + esac +done +set - $args + +# assume working directory if srcdir is not set +test "$srcdir" || srcdir=. +test "$docdir" || docdir="$srcdir" + +# detect configure script +no_configure_found=0 +if test -f "$srcdir"/configure.ac; then + configure="$srcdir"/configure.ac +elif test -f "$srcdir"/configure.in; then + configure="$srcdir"/configure.in +else + no_configure_found=1 +fi + +# check configure script for GTK_DOC_CHECK macro +no_gtk_doc_check_found=0 +if test $no_configure_found -eq 0; then + macro=`grep '^GTK_DOC_CHECK' $configure 2>/dev/null` + if test $? -eq 0; then + # GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) + params=`echo $macro | sed -e 's/^GTK_DOC_CHECK(\ *\(.*\)).*$/\1/'` + if echo $params | grep -q '^.*\,\ *\[\{0,1\}'; then + extra_options=`echo $params | sed -e 's/^.*\,\ *\[\{0,1\}\([^]]*\)\]\{0,1\}\ *$/\1/'` + #echo >&2 "DEBUG: adding extra options [$extra_options] to [$*]" + set - $* $GTKDOCIZE_FLAGS $extra_options + else + set - $* $GTKDOCIZE_FLAGS + fi + else + no_gtk_doc_check_found=1; + fi +fi + +while test $# -gt 0; do + #echo >&2 "DEBUG: parsing args [$1]"; + case "$1" in + --help) + echo "$usage" + exit 0 ;; + --version) + echo "$PROGRAM ($PACKAGE) $VERSION" + exit 0 ;; + --copy) + copy=yes + shift ;; + --docdir) + shift + docdir="$1" + shift ;; + --docdir=*) + docdir=`expr "X$1" : '[^=]*=\(.*\)'` + shift ;; + --flavour) + shift + flavour="$1" + shift ;; + --flavour=*) + flavour=`expr "X$1" : '[^=]*=\(.*\)'` + shift ;; + --srcdir) + shift + # srcdir was set earlier. + shift ;; + --srcdir=*) + # srcdir was set earlier. + shift ;; + -*) + echo "$progname: unrecognised option '$1'" 1>&2 + echo "$usage" 1>&2 + exit 1 ;; + *) + echo "$progname: too many arguments" 1>&2 + echo "$usage" 1>&2 + exit 1 ;; + esac +done + +case "$flavour" in + legacy-flat|no-tmpl-flat) + makefile=gtk-doc.flat.make + ;; + legacy|no-tmpl) + ;; + *) + echo "$progname: invalid value for --flavour" 1>&2 + echo "$usage" 1>&2 + exit 1 ;; +esac + +if test $no_configure_found -eq 1; then + echo "$progname: neither configure.ac nor configure.in exist" 1>&2 + exit 1 +fi +if test $no_gtk_doc_check_found -eq 1; then + echo "$progname: GTK_DOC_CHECK not called in $configure" 1>&2 + exit 1 +fi + +# If the AC_CONFIG_MACRO_DIR() macro is used, copy gtk-doc.m4 from our +# prefix to that directory. This makes sure that the M4 macro used +# matches the the automake fragment. +# If AC_CONFIG_MACRO_DIR is not used, the macro won't be copied, and +# the correct flags must be passed to aclocal for it to find the macro. +m4dir="$srcdir"/`autoconf 2>/dev/null --trace 'AC_CONFIG_MACRO_DIR:$1' "$configure"` +if test -n "$m4dir"; then + rm -f $m4dir/gtk-doc.m4 + if test "$copy" = yes; then + cp -f $datadir/aclocal/gtk-doc.m4 $m4dir/ || + exit 1 + else + ln -sf $datadir/aclocal/gtk-doc.m4 $m4dir/ || + cp -f $datadir/aclocal/gtk-doc.m4 $m4dir/ || + exit 1 + fi +fi + +rm -f $docdir/gtk-doc.make +if test "$copy" = yes; then + cp -f $datadir/gtk-doc/data/$makefile $docdir/gtk-doc.make || + exit 1 +else + ln -sf $datadir/gtk-doc/data/$makefile $docdir/gtk-doc.make || + cp -f $datadir/gtk-doc/data/$makefile $docdir/gtk-doc.make || + exit 1 +fi diff --git a/help/Makefile.am b/help/Makefile.am new file mode 100644 index 0000000..6690244 --- /dev/null +++ b/help/Makefile.am @@ -0,0 +1,7 @@ +## Process this file with automake to produce Makefile.in + +if HAVE_YELP_TOOLS +SUBDIRS = manual +endif + +-include $(top_srcdir)/git.mk diff --git a/help/Makefile.in b/help/Makefile.in new file mode 100644 index 0000000..b555769 --- /dev/null +++ b/help/Makefile.in @@ -0,0 +1,651 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = help +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = manual +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@HAVE_YELP_TOOLS_TRUE@SUBDIRS = manual +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu help/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu help/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/help/manual/C/fdl-appendix.xml b/help/manual/C/fdl-appendix.xml new file mode 100644 index 0000000..d36c0bc --- /dev/null +++ b/help/manual/C/fdl-appendix.xml @@ -0,0 +1,671 @@ + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    + + + + + + diff --git a/help/manual/C/index.docbook b/help/manual/C/index.docbook new file mode 100644 index 0000000..0980f3f --- /dev/null +++ b/help/manual/C/index.docbook @@ -0,0 +1,2276 @@ + + + + +included"> +]> + + + GTK-Doc Manual + 1.24.1 + User manual for developers with instructions of GTK-Doc usage. + + + Chris + Lyttle + +
    + chris@wilddev.net +
    +
    +
    + + Dan + Mueth + +
    + d-mueth@uchicago.edu +
    +
    +
    + + Stefan + Sauer (Kost) + +
    + ensonic@users.sf.net +
    +
    +
    +
    + + GTK-Doc project +
    gtk-doc-list@gnome.org
    +
    + + 2000, 2005 + Dan Mueth and Chris Lyttle + + + 2007-2015 + Stefan Sauer (Kost) + + + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published + by the Free Software Foundation with no Invariant Sections, no + Front-Cover Texts, and no Back-Cover Texts. A copy of the license + is &FDLlink;. + + + Many of the names used by companies to distinguish their products and + services are claimed as trademarks. Where those names appear in any + GNOME documentation, and those trademarks are made aware to the members + of the GNOME Documentation Project, the names have been printed in caps + or initial caps. + + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + + 1.27 + 07 Dec 2017 + ss + fine tuning of the python port + + + 1.26 + 11 Aug 2017 + ss + port all tools from perl/bash to python + + + 1.25 + 21 March 2016 + ss + bug fixes, test cleanups + + + 1.24 + 29 May 2015 + ss + bug fix + + + 1.23 + 17 May 2015 + ss + bug fix + + + 1.22 + 07 May 2015 + ss + bug fixes, dropping deprecated features + + + 1.21 + 17 Jul 2014 + ss + bug fixes, dropping deprecated features + + + 1.20 + 16 Feb 2014 + ss + bug fixes, markdown support, style improvements + + + 1.19 + 05 Jun 2013 + ss + bug fixes + + + 1.18 + 14 Sep 2011 + ss + bug fixes, speedups, markdown support + + + 1.17 + 26 Feb 2011 + sk + urgent bug fix update + + + 1.16 + 14 Jan 2011 + sk + bugfixes, layout improvements + + + 1.15 + 21 May 2010 + sk + bug and regression fixes + + + 1.14 + 28 March 2010 + sk + bugfixes and performance improvements + + + 1.13 + 18 December 2009 + sk + broken tarball update + + + 1.12 + 18 December 2009 + sk + new tool features and bugfixes + + + 1.11 + 16 November 2008 + mal + GNOME doc-utils migration + + + +
    + + + + + Introduction + + + This chapter introduces GTK-Doc and gives an overview of what it is and + how it is used. + + + + What is GTK-Doc? + + + GTK-Doc is used to document C code. It is typically used to document the public + API of libraries, such as the GTK+ and GNOME libraries. But it can also be + used to document application code. + + + + + How Does GTK-Doc Work? + + + GTK-Doc works by using documentation of functions placed inside the source files in + specially-formatted comment blocks, or documentation added to the template files + which GTK-Doc uses (though note that GTK-Doc will only document functions that + are declared in header files; it won't produce output for static functions). + + + + GTK-Doc consists of a number of python scripts, each performing a different step + in the process. + + + + There are 5 main steps in the process: + + + + + + + Writing the documentation. + + The author fills in the source files with the documentation for each + function, macro, union etc. (In the past information was entered in + generated template files, which is not recommended anymore). + + + + + + Gathering information about the code. + + gtkdoc-scan scans the header files of the + code looking for declarations of functions, macros, enums, structs, and unions. + It creates the file <module>-decl-list.txt containing a list of the + declarations, placing them into sections according to which header file they + are in. On the first run this file is copied to <module>-sections.txt. + The author can rearrange the sections, and the order of the + declarations within them, to produce the final desired order. + The second file it generates is <module>-decl.txt. + This file contains the full declarations found by the scanner. If for + some reason one would like some symbols to show up in the docs, where + the full declaration cannot be found by the scanner or the declaration + should appear differently, one can place entities similar to the ones in + <module>-decl.txt into <module>-overrides.txt. + + + gtkdoc-scangobj can also be used to dynamically query a library about + any GObject subclasses it exports. It saves information about each + object's position in the class hierarchy and about any GObject properties + and signals it provides. + + + gtkdoc-scanobj should not be used anymore. + It was needed in the past when GObject was still GtkObject inside gtk+. + + + + + + Generating the XML and HTML/PDF. + + gtkdoc-mkdb turns the template files into + XML files in the xml/ subdirectory. + If the source code contains documentation on functions, using the + special comment blocks, it gets merged in here. If there are no tmpl files used + it only reads docs from sources and introspection data. + + + gtkdoc-mkhtml turns the XML files into HTML + files in the html/ subdirectory. + Likewise gtkdoc-mkpdf turns the XML files into a PDF + document called <package>.pdf. + + + Files in xml/ and + html/ directories are always + overwritten. One should never edit them directly. + + + + + + Fixing up cross-references between documents. + + After installing the HTML files, gtkdoc-fixxref can be run to fix up any + cross-references between separate documents. For example, the GTK+ + documentation contains many cross-references to types documented in the GLib manual. + + When creating the source tarball for distribution, gtkdoc-rebase + turns all external links into web-links. When installing distributed (pregenerated) docs + the same application will try to turn links back to local links + (where those docs are installed). + + + + + + + + Getting GTK-Doc + + + Requirements + + python 2/3 - the main scripts are written in python. + + + xsltproc - the xslt processor from libxslt + xmlsoft.org/XSLT/ + + + docbook-xsl - the docbook xsl stylesheets + sourceforge.net/projects/docbook/files/docbook-xsl + + + One of source-highlight, highlight or + vim - optional - used for syntax highlighting of examples + + + + + + About GTK-Doc + + + (FIXME) + + + + (History, authors, web pages, mailing list, license, future plans, + comparison with other similar systems.) + + + + + + About this Manual + + + (FIXME) + + + + (who it is meant for, where you can get it, license) + + + + + + + + Setting up your project + + + The next sections describe what steps to perform to integrate GTK-Doc into + your project. Theses sections assume we work on a project called 'meep'. + This project contains a library called 'libmeep' and + an end-user app called 'meeper'. We also assume you will be using autoconf + and automake. In addition section plain + makefiles or other build systems will describe the basics needed to + work in a different build setup. + + + + Setting up a skeleton documentation + + + Under your top-level project directory create folders called docs/reference + (this way you can also have docs/help for end-user documentation). + It is recommended to create another subdirectory with the name of the doc-package. + For packages with just one library this step is not necessary. + + + + This can then look as shown below: + Example directory structure + + + + + + + Integration with autoconf + + + Very easy! Just add one line to your configure.ac script. + + + + Integration with autoconf + + + + + + This will require all developers to have gtk-doc installed. If it is + okay for your project to have optional api-doc build setup, you can + solve this as below. Keep it as is, as gtkdocize is looking for + GTK_DOC_CHECK at the start of a line. + Keep gtk-doc optional + + + + + + The first argument is used to check for the gtkdocversion at configure time. + The 2nd, optional argument is used by gtkdocize. + The GTK_DOC_CHECK macro also adds several configure switches: + + + --with-html-dir=PATH : path to installed docs + --enable-gtk-doc : use gtk-doc to build documentation [default=no] + --enable-gtk-doc-html : build documentation in html format [default=yes] + --enable-gtk-doc-pdf : build documentation in pdf format [default=no] + + + + + GTK-Doc is disabled by default! Remember to pass the option + to the next + configure run. Otherwise pregenerated documentation is installed + (which makes sense for users but not for developers). + + + + + Furthermore it is recommended that you have the following line inside + your configure.ac script. + This allows gtkdocize to automatically copy the + macro definition for GTK_DOC_CHECK to your project. + + + + Preparation for gtkdocize + + + + + After all changes to configure.ac are made, update + the configure file. This can be done by re-running + autoreconf -i or autogen.sh. + + + + + Integration with automake + + + First copy the Makefile.am from the + examples sub directory of the + gtkdoc-sources + to your project's API documentation directory ( + ./docs/reference/<package>). + A local copy should be available under e.g. + /usr/share/doc/gtk-doc-tools/examples/Makefile.am. + If you have multiple doc-packages repeat this for each one. + + + + The next step is to edit the settings inside the Makefile.am. + All the settings have a comment above that describes their purpose. + Most settings are extra flags passed to the respective tools. Every tool + has a variable of the form . + All the tools support to list the supported + parameters. + + + + + + + + Integration with autogen + + + Most projects will have an autogen.sh script to + setup the build infrastructure after a checkout from version control + system (such as cvs/svn/git). GTK-Doc comes with a tool called + gtkdocize which can be used in such a script. + It should be run before autoheader, automake or autoconf. + + + + Running gtkdocize from autogen.sh + + + + + + When running gtkdocize it copies + gtk-doc.make to your project root (or any directory + specified by the option). + It also checks you configure script for the GTK_DOC_CHECK + invocation. This macro can be used to pass extra parameters to + gtkdocize. + + + + Historically GTK-Doc was generating template files where developers entered the docs. + This turned out to be not so good (e.g. the need for having generated + files under version control). + Since GTK-Doc 1.9 the tools can get all the information from source comments + and thus the templates can be avoided. We encourage people to keep + documentation in the code. gtkdocize supports now + a option that chooses a makefile that skips + tmpl usage totally. Besides adding the option directly to the command + invocation, they can be added also to an environment variable called GTKDOCIZE_FLAGS + or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. + If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, + please remove the directory (e.g. from version control system). + + + + + Running the doc build + + + After the previous steps it's time to run the build. First we need to + rerun autogen.sh. If this script runs configure for + you, then give it the option. + Otherwise manually run configure with this option + afterwards. + + + The first make run generates several additional files in the doc-directories. + The important ones are: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + Running the doc build + + + + + Now you can point your browser to docs/reference/<package>/index.html. + Yes, it's a bit disappointing still. But hang-on, during the next chapter we + tell you how to fill the pages with life. + + + + + Integration with version control systems + + + As a rule of thumb, it's the files you edit which should go under + version control. For typical projects it's these files: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt, + Makefile.am. + + + Files in the xml/ and html/ + directories should not go under version control. Neither should any of + the .stamp files. + + + + + Integration with plain makefiles or other build systems + + + In the case one does not want to use automake and therefore + gtk-doc.mak one will need to call the gtkdoc tools + in the right order in own makefiles (or other build tools). + + + + Documentation build steps + +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir= +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html +]]> + + + + + One will need to look at the Makefile.am and + gtk-doc.mak to pick the extra options needed. + + + + + Integration with CMake build systems + + + GTK-Doc now provides a GtkDocConfig.cmake module + (and the corresponding GtkDocConfigVersion.cmake + module). This provides a gtk_doc_add_module + command that you can set in your CMakeLists.txt + file. + + + + The following example shows how to use this command. + Example of using GTK-Doc from CMake + + + + + + + + Documenting the code + + + GTK-Doc uses source code comment with a special syntax for code documentation. + Further it retrieves information about your project structure from other + sources. During the next section you will find all information about the + syntax of the comments. + + + + Documentation placement + + In the past most documentation had to be filled into files residing + inside the tmpl directory. This has the + disadvantages that the information is often not updated and also that + the file tend to cause conflicts with version control systems. + + + The avoid the aforementioned problems we suggest putting the + documentation inside the sources. This manual will only describe this + way of documenting code. + + + + + The scanner can handle the majority of C headers fine. In the case of + receiving warnings from the scanner that look like a special case, one can + hint GTK-Doc to skip over them. + GTK-Doc comment block + + + + + + Limitations + + Note, that GTK-Doc's supports + #ifndef(__GTK_DOC_IGNORE__) but not + #if !defined(__GTK_DOC_IGNORE__) or other combinations. + + + + + + + Documentation comments + + + A multiline comment that starts with an additional '*' marks a + documentation block that will be processed by the GTK-Doc tools. + GTK-Doc comment block + + + + + + The 'identifier' is one line with the name of the item the comment is + related to. The syntax differs a little depending on the item. + (TODO add table showing identifiers) + + + + The 'documentation' block is also different for each symbol type. Symbol + types that get parameters such as functions or macros have the parameter + description first followed by a blank line (just a '*'). + Afterwards follows the detailed description. All lines (outside program + listings and CDATA sections) just containing a ' *' (blank-asterisk) are + converted to paragraph breaks. + If you don't want a paragraph break, change that into ' * ' + (blank-asterisk-blank-blank). This is useful in preformatted text (code + listings). + + + + + When documenting code, describe two aspects: + + + + What it is: The name for a class or function can sometimes + be misleading for people coming from a different background. + + + + + What it does: Tell about common uses. Put it in relation + with the other API. + + + + + + + + One advantage of hyper-text over plain-text is the ability to have links + in the document. Writing the correct markup for a link can be tedious + though. GTK-Doc comes to help by providing several useful abbreviations. + + + + Use function() to refer to functions or macros which take arguments. + + + + + Use @param to refer to parameters. Also use this when referring to + parameters of other functions, related to the one being described. + + + + + Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS. + + + + + Use #symbol to refer to other types of symbol, e.g. structs and + enums and macros which don't take arguments. + + + + + Use #Object::signal to refer to a GObject signal. + + + + + Use #Object:property to refer to a GObject property. + + + + + Use #Struct.field to refer to a field inside a structure and + #GObjectClass.foo_bar() to refer to a vmethod. + + + + + + + + If you need to use the special characters '<', '>', '()', '@', + '%', or '#' in your documentation without GTK-Doc changing them you + can use the XML entities "&lt;", "&gt;", "&lpar;", + "&rpar;", "&commat;", "&percnt;" and "&num;" + respectively or escape them with a backslash '\'. + + + + + DocBook can do more than just links. One can also have lists, + examples, headings, and images. As of version 1.20, the + preferred way is to use a subset of the basic text formatting + syntax called + Markdown. + On older GTK-Doc versions any documentation that includes + Markdown will be rendered as is. For example, list items will + appear as lines starting with a dash. + + + + While markdown is now preferred one can mix both. One limitation here is + that one can use docbook xml within markdown, but markdown within + docbook xml is not supported. + + + + In older GTK-Doc releases, if you need support for additional + formatting, you would need to enable the usage of docbook + XML tags inside doc-comments by putting + (or ) in the variable + MKDB_OPTIONS inside Makefile.am. + + + + GTK-Doc comment block using Markdown + + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ +]]> + + + + + More examples of what markdown tags are supported can be found in the + GTK+ Documentation Markdown Syntax Reference. + + + + + As already mentioned earlier GTK-Doc is for documenting public API. Thus + one cannot write documentation for static symbols. Nevertheless it is good + to comment those symbols too. This helps other to understand you code. + Therefore we recommend to comment these using normal comments (without the + 2nd '*' in the first line). + If later the function needs to be made public, all one needs to do is to + add another '*' in the comment block and insert the symbol name at the + right place inside the sections file. + + + + + + Documenting sections + + + Each section of the documentation contains information about one class + or module. To introduce the component one can write a section block. + The short description is also used inside the table of contents. + All the @fields are optional. + + + + Section comment block + + + + + + + SECTION:<name> + + + The name links the section documentation to the respective part in + the <package>-sections.txt file. The + name given here should match the <FILE> tag in the + <package>-sections.txt file. + + + + + @short_description + + + A one line description of the section, that later will appear after + the links in the TOC and at the top of the section page. + + + + + @title + + + The section title defaults to <name> from the SECTION + declaration. It can be overridden with the @title field. + + + + + @section_id + + + Overrides the use of title as a section identifier. For GObjects + the <title> is used as a section_id and for other sections + it is <MODULE>-<title>. + + + + + @see_also + + + A list of symbols that are related to this section. + + + + + @stability + + + An informal description of the stability level this API has. + We recommend the use of one of these terms: + + + + Stable + - The intention of a Stable interface is to enable arbitrary + third parties to develop applications to these interfaces, + release them, and have confidence that they will run on all + minor releases of the product (after the one in which the + interface was introduced, and within the same major release). + Even at a major release, incompatible changes are expected + to be rare, and to have strong justifications. + + + + + Unstable + - Unstable interfaces are experimental or transitional. + They are typically used to give outside developers early + access to new or rapidly changing technology, or to provide + an interim solution to a problem where a more general + solution is anticipated. + No claims are made about either source or binary + compatibility from one minor release to the next. + + + + + Private + - An interface that can be used within the GNOME stack + itself, but that is not documented for end-users. Such + functions should only be used in specified and documented + ways. + + + + + Internal + - An interface that is internal to a module and does not + require end-user documentation. Functions that are + undocumented are assumed to be Internal. + + + + + + + + @include + + + The #include files to show in the section + synopsis (a comma separated list), overriding the global + value from the section + file or command line. This item is optional. + + + + + @image + + + The image to display at the top of the reference page for this + section. This will often be some sort of a diagram to illustrate + the visual appearance of a class or a diagram of its relationship + to other classes. This item is optional. + + + + + + + + To avoid unnecessary recompilation after doc-changes put the section + docs into the c-source where possible. + + + + + + + Documenting symbols + + + Each symbol (function, macro, struct, enum, signal and property) is + documented in a separate block. The block is best placed close to the + definition of the symbols so that it is easy to keep them in sync. + Thus functions are usually documented in the c-source and macros, + structs and enums in the header file. + + + General tags + + + You can add versioning information to all documentation elements to tell + when an API was introduced, or when it was deprecated. + + + Versioning Tags + Since: + + + Description since which version of the code the API is available. + + + + Deprecated: + + + Paragraph denoting that this function should no be used anymore. + The description should point the reader to the new API. + + + + + + + You can also add stability information to all documentation elements + to indicate whether API stability is guaranteed for them for all + future minor releases of the project. + + + + The default stability level for all documentation elements can be set + by passing the argument to + gtkdoc-mkdb with one of the values below. + + + Stability Tags + Stability: Stable + + + Mark the element as stable. This is for public APIs which are + guaranteed to remain stable for all future minor releases of the + project. + + + + Stability: Unstable + + + Mark the element as unstable. This is for public APIs which are + released as a preview before being stabilised. + + + + Stability: Private + + + Mark the element as private. This is for interfaces which can be + used by tightly coupled modules, but not by arbitrary third + parties. + + + + + + General tags + + + + + Annotations + + + Documentation blocks can contain annotation-tags. These tags will be + rendered with tooltips describing their meaning. The tags are used by + gobject-introspection to generate language bindings. A detailed list + of the supported tags can be found on + the wiki. + + + Annotations + + + + + Function comment block + + + Please remember to: + + + + Document whether returned objects, lists, strings, etc, should be + freed/unrefed/released. + + + + + Document whether parameters can be NULL, and what happens if they are. + + + + + Mention interesting pre-conditions and post-conditions where appropriate. + + + + + + + Gtk-doc assumes all symbols (macros, functions) starting with '_' are + private. They are treated like static functions. + + + Function comment block + + + + Function tags + Returns: + + + Paragraph describing the returned result. + + + + @...: + + + In case the function has variadic arguments, you should use this + tag (@Varargs: does also work for historic reasons). + + + + + + + + Property comment block + + Property comment block + + + + + + Signal comment block + + + Please remember to: + + + + Document when the signal is emitted and whether it is emitted before + or after other signals. + + + + + Document what an application might do in the signal handler. + + + + + + Signal comment block + + + + + + Struct comment block + Struct comment block + + + + + Use /*< private >*/ before the private struct fields + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + If the first field is "g_iface", "parent_instance" or "parent_class" + it will be considered private automatically and doesn't need to be + mentioned in the comment block. + + + + Struct comment blocks can also be used for GObjects and GObjectClasses. + It is usually a good idea to add a comment block for a class, if it has + vmethods (as this is how they can be documented). For the GObject + itself one can use the related section docs, having a separate block + for the instance struct would be useful if the instance has public + fields. One disadvantage here is that this creates two index entries + of the same name (the structure and the section). + + + + + Enum comment block + Enum comment block + */ + SOMETHING_COUNT +} Something; +]]> + + + + Use /*< private >*/ before the private enum values + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + + + + + Inline program documentation + + You can document programs and their commandline interface using inline + documentation. + + + + Tags + + PROGRAM + + + + Defines the start of a program documentation. + + + + + + @short_description: + + + Defines a short description of the program. (Optional) + + + + + + @synopsis: + + + Defines the arguments, or list of arguments that the program can take. + (Optional) + + + + + + @see_also: + + + See Also manual page section. (Optional) + + + + + + @arg: + + + Argument(s) passed to the program and their description. (Optional) + + + + + + Description: + + + A longer description of the program. + + + + + + Returns: + + + Specificy what value(s) the program returns. (Optional) + + + + + + + + Example of program documentation. + Program documentation block + + + + + + + + Useful DocBook tags + + + Here are some DocBook tags which are most useful when documenting the + code. + + + + To link to another section in the GTK docs: + + + Hash Tables +]]> + + The linkend is the SGML/XML id on the top item of the page you want to link to. + For most pages this is currently the part ("gtk", "gdk", "glib") and then + the page title ("Hash Tables"). For widgets it is just the class name. + Spaces and underscores are converted to '-' to conform to SGML/XML. + + + + To refer to an external function, e.g. a standard C function: + + ... +]]> + + + + + To include example code: + + + Using a GHashTable. + + ... + + +]]> + + or possibly this, for very short code fragments which don't need a title: + + + + ... + + +]]> + + For the latter GTK-Doc also supports an abbreviation: + + + + + To include bulleted lists: + + + + + ... + + + + + ... + + + +]]> + + + + + To include a note which stands out from the text: + + + + Make sure you free the data after use. + + +]]> + + + + + To refer to a type: + + unsigned char +]]> + + + + + To refer to an external structure (not one described in the GTK docs): + + XFontStruct +]]> + + + + + To refer to a field of a structure: + + len +]]> + + + + + To refer to a class name, we could possibly use: + + GtkWidget +]]> + + but you'll probably be using #GtkWidget instead (to automatically create + a link to the GtkWidget page - see the abbreviations). + + + + To emphasize text: + + This is important +]]> + + + + + For filenames use: + + /home/user/documents +]]> + + + + + To refer to keys use: + + ControlL +]]> + + + + + + + + Filling the extra files + + + There are a couple of extra files, that need to be maintained along with + the inline source code comments: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + + Editing the types file + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Example types file snippet + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + + Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. + Just add "--rebuild-types" to SCAN_OPTIONS in Makefile.am. If you + use this approach you should not dist the types file nor have it under version control. + + + + + + Editing the master document + + + GTK-Doc produces documentation in DocBook SGML/XML. When processing the + inline source comments, the GTK-Doc tools generate one documentation + page per class or module as a separate file. The master document + includes them and place them in an order. + + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + + Do not create tutorials as extra documents. Just write extra chapters. + The benefit of directly embedding the tutorial for your library into + the API documentation is that it is easy to link for the tutorial to + symbol documentation. Apart chances are higher that the tutorial gets + updates along with the library. + + + + + So what are the things to change inside the master document? For a start + is only a little. There are some placeholders (text in square brackets) + there which you should take care of. + + + + Master document header + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + Editing the section file + + + The section file is used to organise the documentation output by + GTK-Doc. Here one specifies which symbol belongs to which module or + class and control the visibility (public or private). + + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + + The <TITLE> ... </TITLE> tag is used to specify the title of + the section. It is only useful before the templates (if used) are + initially created, since the title set in the template file overrides + this. Also if one uses SECTION comment in the sources, this is obsolete. + + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + + You can also use <INCLUDE> ... </INCLUDE> to specify the + #include files which are shown in the synopsis sections. + It contains a comma-separate list of #include files, without the angle + brackets. If you set it outside of any sections, it acts for all + sections until the end of the file. If you set it within a section, it + only applies to that section. + + +
    + +
    + + + Controlling the result + + + A GTK-Doc run generates report files inside the documentation directory. + The generated files are named: + <package>-undocumented.txt, + <package>-undeclared.txt and + <package>-unused.txt. + All those are plain text files that can be viewed and postprocessed easily. + + + + The <package>-undocumented.txt file starts with + the documentation coverage summary. Below are two sections divided by + blank lines. The first section lists undocumented or incomplete symbols. + The second section does the same for section docs. Incomplete entries are + those, which have documentation, but where e.g. a new parameter has been + added. + + + + The <package>-undeclared.txt file lists symbols + given in the <package>-sections.txt but not + found in the sources. Check if they have been removed or if they are + misspelled. + + + + The <package>-unused.txt file lists symbol + names, where the GTK-Doc scanner has found documentation, but does not + know where to put it. This means that the symbol has not yet been added to + the <package>-sections.txt file. + + + + + Enable or add the line in Makefile.am. + If at least GTK-Doc 1.9 is installed, this will run sanity checks during + make check run. + + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documenting other interfaces + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + Command line options and man pages + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + Document the tool + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + Adding the extra configure check + + + Extra configure checks + + + + + + + Adding the extra makefile rules + + + Extra configure checks + + + + + + + + DBus interfaces + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + Frequently asked questions + + + + Question + Answer + + No class hierarchy. + + The objects xxx_get_type() function has not been + entered into the <package>.types file. + + + + Still no class hierarchy. + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + Damn, I have still no class hierarchy. + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + No symbol index. + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + Symbols are not linked to their doc-section. + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + A new class does not appear in the docs. + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + A new symbol does not appear in the docs. + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + A type is missing from the class hierarchy. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + I get foldoc links for all gobject annotations. + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + Parameter described in source code comment block but does not exist + Check if the prototype in the header has different parameter names as in the source. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + Element typename in namespace '' encountered in para, but no template matches. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + &FDL; + +
    + diff --git a/help/manual/ChangeLog b/help/manual/ChangeLog new file mode 100644 index 0000000..c0306ce --- /dev/null +++ b/help/manual/ChangeLog @@ -0,0 +1,157 @@ +2010-01-25 Sweta Kothari + + * gu/gu.po: Updated Gujarati translation + +2009-04-09 Jorge Gonzalez + + * es/es.po: Updated Spanish translation + +2009-04-07 Simos Xenitellis + + * el/el.po: Added Greek translation. + * Makefile.am: Added el. + +2009-03-25 Philip Withnall + + * Makefile.am: + * en_GB/en_GB.po: Added British English translation by Jen Ockwell + and myself. + +2009-03-24 Jorge Gonzalez + + * es/es.po: Updated Spanish translation + +2009-03-23 Jorge Gonzalez + + * es/es.po: Updated Spansih translation + +2009-03-22 Jorge Gonzalez + + * es/es.po: Updated Spansih translation + +2009-03-17 Jorge Gonzalez + + * es/es.po: Updated Spansih translation + +2009-03-16 Mario Blättermann + + * de/de.po: Added initial German translation + * Makefile.am: Added de to DOC_LINGUAS + +2009-03-15 Jorge Gonzalez + + * es/es.po: Added initial Spanish translation + * Makefile.am: Added es to DOC_LINGUAS + +2008-09-08 Rob Bradford + + * C/gtk-doc-manual.xml: + Correct the command for non-tmpl Makefile and highlight it within a + block. + +2007-08-14 Marc-Andre Lureau + + * GNOME doc-utils migration, ChangeLog moved to help/manual + +2007-07-23 Stefan Kost + + * gtk-doc-manual.xml: + Tell about $(DOC_MODULE)-undeclared.txt. + +2007-07-15 Stefan Kost + + * gtk-doc-manual.xml: + Bump version. Add more markup. Tell that one can use toolname --help to + get the allowed opetion for Makefile.am. Improve 'how does it work' section. + +2007-06-11 Damon Chaplin + + * gtk-doc-manual.xml: added tip about using entities like # to + use a '#' without gtk-doc changing it. (Part of #445596) + +2007-01-21 Damon Chaplin + + * gtk-doc-manual.xml: document "@include:" tag. #395023 + +2006-12-10 J.H.M. Dassen (Ray) + + * gtk-doc-manual.xml: Spelling fixes. + +2006-10-13 Damon Chaplin + + * gtk-doc-manual.xml: use "GNOME" instead of "Gnome". (#352160) + +2006-03-24 Stefan Kost + + * gtk-doc-manual.xml: + correct format of new shortcuts + +2006-03-21 Stefan Kost + + * gtk-doc-manual.xml: + document signal and property link short cuts + +2005-12-09 Stefan Kost + + * gtk-doc-manual-C.omf.in: + * gtk-doc-manual.xml: + added more details about doc-comments + added section about revision control systems + +2005-09-07 Stefan Kost + + * gtk-doc-manual.xml: + integrated most of the notes from the text files under doc/*.txt + +2005-08-24 Stefan Kost + + * gtk-doc-manual.xml: + more notes in the faq + setup chapter is nearly complete + more notes about doc comment format + +2005-08-15 Stefan Kost + + * .cvsignore: + * ChangeLog: + * Makefile: + * Makefile.am: + * fdl-appendix.xml: + * gtk-doc-manual-C.omf.in: + * gtk-doc-manual.xml: + reanimated gtkdoc manual + added new chapters + +2004-05-07 Geert Stappers + + * README: new file. + * gtk-doc-manual.sgml: Deleted. + * fdl-appendix.sgml: Deleted. + +2004-05-06 Geert Stappers + + * gtk-doc-manual.xml: repaired the crossreference to FDL + + * Makefile: new file, to "document" the build process. + +2004-05-06 Keith Sharp + + * gtk-doc-manual.xml: New file, XML version of + gtk-doc-manual.sgml + * fdl-appendix.xml: New file, XML version of + fdl-appendix.sgml + +2000-11-26 Dan Mueth + + * gtk-doc-manual.sgml: Committing changes made by + Chris Lyttle . (Text for Chapter 1) + +2000-11-25 Dan Mueth + + * gtk-doc-manual.sgml: Put part of the outline into SGML. + Chris plans to put rest of outline in here and start + writing. + * fdl-appendix.sgml: The FDL in SGML. We will probably post + these on the web as a single document (book) so we will + need the FDL to be included as an appendix. + diff --git a/help/manual/Makefile.am b/help/manual/Makefile.am new file mode 100644 index 0000000..b56fa4d --- /dev/null +++ b/help/manual/Makefile.am @@ -0,0 +1,17 @@ +if HAVE_YELP_TOOLS +@YELP_HELP_RULES@ +endif + +HELP_ID = gtk-doc-manual + +HELP_FILES = \ + index.docbook \ + fdl-appendix.xml + +HELP_LINGUAS = bn_IN cs de el en_GB es fr gl gu pt_BR sl sv ta te zh_CN + +CLEANFILES = $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES) + +GITIGNOREFILES = ??_??/$(HELP_ID).xml ??/$(HELP_ID).xml + +-include $(top_srcdir)/git.mk diff --git a/help/manual/Makefile.in b/help/manual/Makefile.in new file mode 100644 index 0000000..92933a2 --- /dev/null +++ b/help/manual/Makefile.in @@ -0,0 +1,480 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = help/manual +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in ChangeLog +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +HELP_ID = gtk-doc-manual +HELP_FILES = \ + index.docbook \ + fdl-appendix.xml + +HELP_LINGUAS = bn_IN cs de el en_GB es fr gl gu pt_BR sl sv ta te zh_CN +CLEANFILES = $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES) +GITIGNOREFILES = ??_??/$(HELP_ID).xml ??/$(HELP_ID).xml +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu help/manual/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu help/manual/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + +@HAVE_YELP_TOOLS_TRUE@@YELP_HELP_RULES@ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/help/manual/bn_IN/bn_IN.po b/help/manual/bn_IN/bn_IN.po new file mode 100644 index 0000000..cf2c73a --- /dev/null +++ b/help/manual/bn_IN/bn_IN.po @@ -0,0 +1,1341 @@ +# translation of bn_IN.po to Bengali INDIA +# Runa Bhattacharjee , 2010. +msgid "" +msgstr "" +"Project-Id-Version: bn_IN\n" +"POT-Creation-Date: 2010-01-27 10:26+0000\n" +"PO-Revision-Date: 2010-02-02 15:40+0530\n" +"Last-Translator: Runa Bhattacharjee \n" +"Language-Team: Bengali INDIA \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: C/gtk-doc-manual.xml:12(title) +msgid "GTK-Doc Manual" +msgstr "GTK-Doc সহায়িকা" + +#: C/gtk-doc-manual.xml:13(edition) C/gtk-doc-manual.xml:92(revnumber) +msgid "1.12" +msgstr "১.১২" + +#: C/gtk-doc-manual.xml:14(para) +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "GTK-Doc ব্যবহারের নির্দেশাবলী সহ, ডিভেলপরদের উদ্দেশ্যে নির্মিত সহায়িকা।" + +#: C/gtk-doc-manual.xml:17(firstname) +msgid "Chris" +msgstr "ক্রিস" + +#: C/gtk-doc-manual.xml:18(surname) +msgid "Lyttle" +msgstr "লিটল" + +#: C/gtk-doc-manual.xml:21(email) +msgid "chris@wilddev.net" +msgstr "chris@wilddev.net" + +#: C/gtk-doc-manual.xml:26(firstname) +msgid "Dan" +msgstr "ড্যান" + +#: C/gtk-doc-manual.xml:27(surname) +msgid "Mueth" +msgstr "মুয়েথ" + +#: C/gtk-doc-manual.xml:30(email) +msgid "d-mueth@uchicago.edu" +msgstr "d-mueth@uchicago.edu" + +#: C/gtk-doc-manual.xml:35(firstname) +msgid "Stefan" +msgstr "স্টেফান" + +#: C/gtk-doc-manual.xml:36(surname) +msgid "Kost" +msgstr "কোস্ট" + +#: C/gtk-doc-manual.xml:39(email) +msgid "ensonic@users.sf.net" +msgstr "ensonic@users.sf.net" + +#: C/gtk-doc-manual.xml:45(publishername) +msgid "GTK-Doc project" +msgstr "GTK-Doc প্রজেক্ট" + +#: C/gtk-doc-manual.xml:46(email) +msgid "gtk-doc-list@gnome.org" +msgstr "gtk-doc-list@gnome.org" + +#: C/gtk-doc-manual.xml:49(year) +msgid "2000, 2005, 2007-2009" +msgstr "২০০০, ২০০৫, ২০০৭-২০০৯" + +#: C/gtk-doc-manual.xml:50(holder) +msgid "Dan Mueth and Chris Lyttle and Stefan Kost" +msgstr "ড্যান মুয়েথ ও ক্রিস লিটল ও স্টেফান কোস্ট" + +#: C/gtk-doc-manual.xml:61(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included." +msgstr "" + +#: C/gtk-doc-manual.xml:69(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps." +msgstr "" + +#: C/gtk-doc-manual.xml:80(revnumber) +msgid "1.14" +msgstr "১.১৪" + +#: C/gtk-doc-manual.xml:81(date) +msgid "19 December 2009" +msgstr "১৯ ডিসেম্বর ২০০৯" + +#: C/gtk-doc-manual.xml:82(authorinitials) C/gtk-doc-manual.xml:88(authorinitials) C/gtk-doc-manual.xml:94(authorinitials) +msgid "sk" +msgstr "sk" + +#: C/gtk-doc-manual.xml:83(revremark) +msgid "development version" +msgstr "ডিভেলপমেন্ট সংস্করণ" + +#: C/gtk-doc-manual.xml:86(revnumber) +msgid "1.13" +msgstr "১.১৩" + +#: C/gtk-doc-manual.xml:87(date) C/gtk-doc-manual.xml:93(date) +msgid "18 December 2009" +msgstr "১৮ ডিসেম্বর ২০০৯" + +#: C/gtk-doc-manual.xml:89(revremark) +msgid "broken tarball update" +msgstr "ক্ষতিগ্রস্ত tarball আপডেট করা হয়েছে" + +#: C/gtk-doc-manual.xml:95(revremark) +msgid "new tool features and bugfixes" +msgstr "নতুন সরঞ্জামের বৈশিষ্ট্য ও সংশোধিত বাগের তথ্য" + +#: C/gtk-doc-manual.xml:98(revnumber) +msgid "1.11" +msgstr "১.১১" + +#: C/gtk-doc-manual.xml:99(date) +msgid "16 Novemebr 2008" +msgstr "১৬ ডিসেম্বর ২০০৯" + +#: C/gtk-doc-manual.xml:100(authorinitials) +msgid "mal" +msgstr "mal" + +#: C/gtk-doc-manual.xml:101(revremark) +msgid "GNOME doc-utils migration" +msgstr "GNOME doc-utils মাইগ্রেশন" + +#: C/gtk-doc-manual.xml:110(title) +msgid "Introduction" +msgstr "ভূমিকা" + +#: C/gtk-doc-manual.xml:112(para) +msgid "This chapter introduces GTK-Doc and gives an overview of what it is and how it is used." +msgstr "এই অধ্যায়ে GTK-Doc সম্বন্ধে প্রারম্ভিক তথ্য ও এটির ব্যবহার ও মূল বিষয়বস্তু সম্পর্কে তথ্য উপস্থিত করা হয়েছে।" + +#: C/gtk-doc-manual.xml:118(title) +msgid "What is GTK-Doc?" +msgstr "GTK-Doc কী?" + +#: C/gtk-doc-manual.xml:120(para) +msgid "GTK-Doc is used to document C code. It is typically used to document the public API of libraries, such as the GTK+ and GNOME libraries. But it can also be used to document application code." +msgstr "GTK-Doc-র সাহায্যে C কোডের জন্য নথি তৈরি করা হয়। বিভিন্ন লাইব্রেরি যেমন GTK+ ও GNOME লাইব্রেরির পাবলিক API সম্বন্ধীয় নথি তৈরি করার জন্য এটি ব্যবহৃত হয়। অ্যাপ্লিকেশনের কোড সম্পর্কিত তথ্য লেখার জন্যও এটি ব্যবহার করা হয়।" + +#: C/gtk-doc-manual.xml:128(title) +msgid "How Does GTK-Doc Work?" +msgstr "GTK-Doc কীভাবে ব্যবহার করা যাবে?" + +#: C/gtk-doc-manual.xml:130(para) +msgid "GTK-Doc works by using documentation of functions placed inside the source files in specially-formatted comment blocks, or documentation added to the template files which GTK-Doc uses (though note that GTK-Doc will only document functions that are declared in header files; it won't produce output for static functions)." +msgstr "" + +#: C/gtk-doc-manual.xml:137(para) +msgid "GTK-Doc consists of a number of perl scripts, each performing a different step in the process." +msgstr "GTK-Doc-র মধ্যে অনেকগুলি perl স্ক্রিপ্ট উপস্থিত রয়েছে ও প্রতিটি স্ক্রিপ্ট দ্বারা সম্পর্ণ প্রক্রিয়ার একটি ভিন্ন ধাপের কর্ম সঞ্চালন করা হয়।" + +#: C/gtk-doc-manual.xml:142(para) +msgid "There are 5 main steps in the process:" +msgstr "এই প্রক্রিয়ার মধ্যে ৫-টি প্রধান ধাপ উপস্থিত রয়েছে:" + +#: C/gtk-doc-manual.xml:149(para) +msgid "Writing the documentation. The author fills in the source files with the documentation for each function, macro, union etc. (In the past information was entered in generated template files, which is not recommended anymore)." +msgstr "" + +#: C/gtk-doc-manual.xml:159(para) +msgid "Gathering information about the code.gtkdoc-scan scans the header files of the code looking for declarations of functions, macros, enums, structs, and unions. It creates the file <module>-decl-list.txt containg a list of the declarations, placing them into sections according to which header file they are in. On the first run this file is copied to <module>-sections.txt The author can rearrange the sections, and the order of the declarations within them, to produce the final desired order. The second file it generates is <module>-decl.txt. This file contains the full declarations found by the scanner. If for some reason one would like some sybols to show up in the docs, where the full declaration cannot be found by th scanner or the declaration should appear differently, one can place enties similar to the ones in <module>-decl.txt into <module>-overrides.txt. gtkdoc-scanobj can also be used to dynamically query a library about any GtkObject subclasses it exports. It saves information about each object's position in the class hierarchy and about any GTK Args and Signals it provides." +msgstr "" + +#: C/gtk-doc-manual.xml:184(para) +msgid "Generating the \"template\" files.gtkdoc-mktmpl creates a number of files in the tmpl/ subdirectory, using the information gathered in the first step. (Note that this can be run repeatedly. It will try to ensure that no documentation is ever lost.)" +msgstr "\"template\" ফাইল নির্মাণ। প্রথম ধাপে সংগ্রহ করা তথ্যের ভিত্তিতে gtkdoc-mktmpl দ্বারা tmpl/ সাব-ডিরেক্টরির মধ্যে বেশ কয়েকটি ফাইল নির্মাণ করা হয়। (উল্লেখ্য, কোনো নথিপত্র হারিয়ে না ফেলার লক্ষ্যে, এই কাজটি পুনরাবৃত্তি করা হতে পারে।)" + +#: C/gtk-doc-manual.xml:193(para) +msgid "Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. If you have never changed file in tmpl by hand, please remove the dir (e.g. from version control system)." +msgstr "" + +#: C/gtk-doc-manual.xml:205(para) +msgid "Generating the SGML/XML and HTML/PDF.gtkdoc-mkdb turns the template files into SGML or XML files in the sgml/ or xml/ subdirectory. If the source code contains documentation on functions, using the special comment blocks, it gets merged in here. If there are no tmpl files used it only reads takes docs from sources and introspection data." +msgstr "SGML/XML ও HTML/PDF নির্মাণের প্রণালী। sgml/ অথবা xml/ সাব-ডিরেক্টরির মধ্যে উপস্থিত SGML অথবা XML ফাইলগুলিকে gtkdoc-mkdb দ্বারা টেমপ্লেট ফাইল রূপে পরিবর্তন করা হয়। সোর্স কোডের মধ্যে ফাংশান সংক্রান্ত নতিপত্র উপস্থিত থাকলে, বিশেষ কমেন্ট ব্লক প্রয়োগ করে সংশ্লিষ্ট অংশগুলি এইখানে অন্তর্ভুক্ত করা হয়। কোনো tmpl ফাইল ব্যবহার না করা হলে, শুধুমাত্র সোর্স থেকে নথি ও বিশ্লেষণের তথ্য সংগ্রহ করা হয়।" + +#: C/gtk-doc-manual.xml:215(para) +msgid "gtkdoc-mkhtml turns the SGML/XML files into HTML files in the html/ subdirectory. Likewise gtkdoc-mkpdf turns the SGML/XML files into a PDF docuemnt called <package>.pdf." +msgstr "gtkdoc-mkhtml দ্বারা SGML/XML ফাইলগুলিকে HTML html/ সাব-ডিরেক্টরির মধ্যে HTML ফাইল রূপে পরিবর্তন করা হয়। একই পদ্ধতিতে gtkdoc-mkpdf দ্বারা SGML/XML ফাইলগুলিকে PDF <package>.pdf নামক একটি PDF নথিতে রূপান্তর করা হয়।" + +#: C/gtk-doc-manual.xml:221(para) +msgid "Files in sgml/ or xml/ and html/ directories are always overwritten. One should never edit them directly." +msgstr "sgml/ অথবা xml/html/ ডিরেক্টরির মধ্যে উপস্থিত ফাইলগুলি সর্বদা নতুন করে লেখা হবে। এই ফাইলগুলি সরাসরি পরিবর্তন করা উচিত নয়।" + +#: C/gtk-doc-manual.xml:229(para) +msgid "Fixing up cross-references between documents. After installing the HTML files, gtkdoc-fixxref can be run to fix up any cross-references between separate documents. For example, the GTK+ documentation contains many cross-references to types documented in the GLib manual. When creating the source tarball for distribution, gtkdoc-rebase turns all external links into web-links. When installing distributed (pregenerated) docs the same application will try to turn links back to local links (where those docs are installed)." +msgstr "" + +#: C/gtk-doc-manual.xml:247(title) +msgid "Getting GTK-Doc" +msgstr "GTK-Doc প্রাপ্ত করার প্রণালী" + +#: C/gtk-doc-manual.xml:250(title) +msgid "Requirements" +msgstr "আবশ্যক মান" + +#: C/gtk-doc-manual.xml:251(para) +msgid "Perl v5 - the main scripts are in Perl." +msgstr "Perl v5 - প্রধান স্ক্রিপ্টগুলি Perl-এ লেখা হয়েছে।" + +#: C/gtk-doc-manual.xml:254(para) +msgid "DocBook DTD v3.0 - This is the DocBook SGML DTD. http://www.ora.com/davenport" +msgstr "DocBook DTD v3.0 - এটি DocBook SGML DTD। http://www.ora.com/davenport" + +#: C/gtk-doc-manual.xml:258(para) +msgid "Jade v1.1 - This is a DSSSL processor for converting SGML to various formats. http://www.jclark.com/jade" +msgstr "Jade v1.1 - SGML-কে বিভিন্ন বিন্যাসে পরিবর্তনের জন্য ব্যবহৃত এটি একটি DSSSL প্রসেসর। http://www.jclark.com/jade" + +#: C/gtk-doc-manual.xml:262(para) +msgid "Modular DocBook Stylesheets This is the DSSSL code to convert DocBook to HTML (and a few other formats). It's used together with jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to colour the program code listings/declarations, and to support global cross-reference indices in the generated HTML. http://nwalsh.com/docbook/dsssl" +msgstr "" + +#: C/gtk-doc-manual.xml:271(para) +msgid "docbook-to-man - if you want to create man pages from the DocBook. I've customized the 'translation spec' slightly, to capitalise section headings and add the 'GTK Library' title at the top of the pages and the revision date at the bottom. There is a link to this on http://www.ora.com/davenport NOTE: This does not work yet." +msgstr "" + +#: C/gtk-doc-manual.xml:282(title) +msgid "Installation" +msgstr "ইনস্টলেশনের প্রণালী" + +#: C/gtk-doc-manual.xml:283(para) +msgid "There is no standard place where the DocBook Modular Stylesheets are installed." +msgstr "DocBook মডিউলার স্টাইল-শিট ইনস্টল করার কোনো প্রমিত স্থান উপস্থিত নেই।" + +#: C/gtk-doc-manual.xml:286(para) +msgid "GTK-Doc's configure script searches these 3 directories automatically:" +msgstr "GTK-Doc-র কনফিগার স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে নিম্নলিখিত তিনটি ডিরেক্টরির মধ্যে অনুসন্ধান করা হয়:" + +#: C/gtk-doc-manual.xml:289(para) +msgid " /usr/lib/sgml/stylesheets/nwalsh-modular (used by RedHat)" +msgstr " /usr/lib/sgml/stylesheets/nwalsh-modular (RedHat দ্বারা ব্যবহৃত)" + +#: C/gtk-doc-manual.xml:292(para) +msgid " /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +msgstr " /usr/lib/dsssl/stylesheets/docbook (Debian দ্বারা ব্যবহৃত)" + +#: C/gtk-doc-manual.xml:295(para) +msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +msgstr " /usr/share/sgml/docbkdsl (SuSE দ্বারা ব্যবহৃত)" + +#: C/gtk-doc-manual.xml:298(para) +msgid "If you have the stylesheets installed somewhere else, you need to configure GTK-Doc using the option: --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +msgstr "স্টাইল-শিটগুলি অন্য কোনো স্থানে ইনস্টল করা হয়ে থাকলে, নিম্নলিখিত বিকল্প সহয়োগে GTK-Doc কনফিগার করতে হবে: --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " + +#: C/gtk-doc-manual.xml:322(title) +msgid "About GTK-Doc" +msgstr "GTK-Doc পরিচিতি" + +#: C/gtk-doc-manual.xml:324(para) C/gtk-doc-manual.xml:338(para) +msgid "(FIXME)" +msgstr "(FIXME)" + +#: C/gtk-doc-manual.xml:328(para) +msgid "(History, authors, web pages, license, future plans, comparison with other similar systems.)" +msgstr "(পূর্ববর্তী তথ্য, লেখক, ওয়েব-পেজ, লাইসেন্স, ভবিষ্যতের প্রকল্প, অন্যান্য সমতূল্য সিস্টেমের সাথে তূলনা।)" + +#: C/gtk-doc-manual.xml:336(title) +msgid "About this Manual" +msgstr "এই সহায়িকার পরিচিতি" + +#: C/gtk-doc-manual.xml:342(para) +msgid "(who it is meant for, where you can get it, license)" +msgstr "(উদ্দিষ্ট পাঠকবৃন্দ, প্রাপ্তির স্থান, লাইসেন্স)" + +#: C/gtk-doc-manual.xml:351(title) +msgid "Setting up your project" +msgstr "প্রজেক্ট প্রস্তুত করার প্রণালী" + +#: C/gtk-doc-manual.xml:353(para) +msgid "The next sections describe what steps to perform to integrate GTK-Doc into your project. Theses section assume we work on a project called 'meep'. This project contains a library called 'libmeep' and an end-user app called 'meeper'." +msgstr "" + +#: C/gtk-doc-manual.xml:361(title) +msgid "Setting up a skeleton documentation" +msgstr "নথির একটি পরিকাঠামো নির্ধারণের প্রণালী" + +#: C/gtk-doc-manual.xml:363(para) +msgid "Under your top-level project directory create folders called docs/reference (this way you can also have docs/help for end-user documentation). It is recommended to create another subdirectory with the name of the doc-package. For packages with just one library this step is not necessary." +msgstr "" + +#: C/gtk-doc-manual.xml:372(title) +msgid "Example directory structure" +msgstr "ডিরেক্টরির বিন্যাসের উদাহরণ" + +#: C/gtk-doc-manual.xml:370(para) +msgid "This can then look as show below: " +msgstr "নিম্নলিখিত উদাহরণের অনুরূপ হবে: " + +#: C/gtk-doc-manual.xml:390(title) C/gtk-doc-manual.xml:397(title) +msgid "Integration with autoconf" +msgstr "autoconf সহযোগে একত্রিত করার প্রণালী" + +#: C/gtk-doc-manual.xml:392(para) +msgid "Very easy! Just add one line to your configure.ac script." +msgstr "এই কাজ অতিমাত্রায় সহজ! configure.ac স্ক্রিপ্টের মধ্যে একটি পংক্তি যোগ করুন।" + +#: C/gtk-doc-manual.xml:407(para) +msgid "The first argument is used to check for the gtkdocversion at configure time. The 2nd, optional argument is used by gtkdocize. The GTK_DOC_CHECK macro also adds several configure switches:" +msgstr "" + +#: C/gtk-doc-manual.xml:413(para) +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=PATH : ইনস্টল করা ডকুমেন্টের পাথ" + +#: C/gtk-doc-manual.xml:414(para) +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" + +#: C/gtk-doc-manual.xml:415(para) +msgid "--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "--enable-gtk-doc-html : build documentation in html format [default=yes]" + +#: C/gtk-doc-manual.xml:416(para) +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" + +#: C/gtk-doc-manual.xml:420(para) +msgid "GTK-Doc is disabled by default! Remember to pass the option to the next configure run. Otherwise pregenerated documentation is installed (which makes sense for users but not for developers)." +msgstr "" + +#: C/gtk-doc-manual.xml:428(para) +msgid "Furthermore it is recommended that you have the following line inside you configure.ac script. This allows gtkdocize to automatically copy the macro definition for GTK_DOC_CHECK to your project." +msgstr "" + +#: C/gtk-doc-manual.xml:436(title) +msgid "Preparation for gtkdocize" +msgstr "gtkdocize-র প্রস্তুতি" + +#: C/gtk-doc-manual.xml:447(title) +msgid "Integration with automake" +msgstr "automake সহযোগে একত্রিত করার প্রণালী" + +#: C/gtk-doc-manual.xml:449(para) +msgid "First copy the Makefile.am from the examples subdirectory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). If you have multiple doc-packages repeat this for each one." +msgstr "" + +#: C/gtk-doc-manual.xml:456(para) +msgid "The next step is to edit the setting inside the Makefile.am. All the settings have a comment above that describes their purpose. Most settings are extra flags passed to the respective tools. Every tool has a variable of the form . All the tools support to list the supported parameters." +msgstr "" + +#. FIXME: explain options ? +#: C/gtk-doc-manual.xml:467(para) +msgid "You may also want to enable GTK-Doc for the distcheckmake target. Just add then one-liner show in the next example to you top-level Makefile.am:" +msgstr "" + +#: C/gtk-doc-manual.xml:474(title) +msgid "Enable GTK-Doc during make distcheck" +msgstr "make distcheck-র সময় GTK-Doc সক্রিয় করুন" + +#: C/gtk-doc-manual.xml:486(title) +msgid "Integration with autogen" +msgstr "autogen সহযোগে একত্রিত করার প্রণালী" + +#: C/gtk-doc-manual.xml:488(para) +msgid "Most projects will have an autogen.sh script to setup the build infrastructure after a checkout from version control system (such as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before autoheader, automake or autoconf." +msgstr "" + +#: C/gtk-doc-manual.xml:497(title) +msgid "Running gtkdocize from autogen.sh" +msgstr "autogen.sh থেকে gtkdocsize সঞ্চালনার প্রণালী" + +#: C/gtk-doc-manual.xml:506(para) +msgid "When running gtkdocize it copies gtk-doc.make to you project root (or any directory specified by the option). If also check you configure script for the GTK_DOC_CHECK invocation." +msgstr "" + +#: C/gtk-doc-manual.xml:514(para) +msgid "Historically GTK-Doc was gerating template files where developers entered the docs. this turned out to be not so good. Since a few version GTK-Doc could also get all the information from source comments. Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. Besides adding the option directly to the command invocation, they can be added also to a environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, please remove the dir (e.g. from version control system)." +msgstr "" + +#: C/gtk-doc-manual.xml:530(title) C/gtk-doc-manual.xml:547(title) +msgid "Running the doc build" +msgstr "doc build সঞ্চালনার প্রণালী" + +#: C/gtk-doc-manual.xml:532(para) +msgid "After the previous steps it's time to run the build. First we need to rerun autogen.sh. If this script runs configure for you, then give it the option. Otherwise manually run configure with this option afterwards." +msgstr "" + +#: C/gtk-doc-manual.xml:539(para) +msgid "The first make run generates several additional files in the doc-dirs. The important ones are: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "" + +#: C/gtk-doc-manual.xml:556(para) +msgid "Now you can point your browser to docs/reference/<package>/index.html. Yes, it's a bit disappointing still. But hang-on, during the next chapter we tell you how to fill the pages with life." +msgstr "" + +#: C/gtk-doc-manual.xml:564(title) +msgid "Integration with version control systems" +msgstr "ভার্সান কনট্রোল সিস্টেমের সাথে একত্রিত করার প্রণালী" + +#: C/gtk-doc-manual.xml:566(para) +msgid "As a rule of the thumb, it's those files you edit, that should go under version control. For typical projects it's these files: <package>.types<package>-docs.sgml<package>-sections.txtMakefile.am" +msgstr "" + +#: C/gtk-doc-manual.xml:579(title) +msgid "Documenting the code" +msgstr "কোডের জন্য সহায়ক নথি লেখার প্রণালী" + +#: C/gtk-doc-manual.xml:581(para) +msgid "GTK-Doc uses source code comment with a special syntax for code documentation. Further it retrieves information about your project structure from other sources. During the next section you find all information about the syntax of the comments." +msgstr "" + +#: C/gtk-doc-manual.xml:589(title) +msgid "Documentation placement" +msgstr "নথিপত্রের স্থাপনা" + +#: C/gtk-doc-manual.xml:590(para) +msgid "In the past most documentation had to be filled into files residing inside the tmpl directory. This has the disadvantages that the information is often not updated and also that the file tend to cause conflicts with version control systems." +msgstr "" + +#: C/gtk-doc-manual.xml:596(para) +msgid "The avoid the aforementioned problems we suggest putting the documentation inside the sources. This manual will only describe this way of documenting code." +msgstr "" + +#: C/gtk-doc-manual.xml:606(title) +msgid "Documentation comments" +msgstr "নথিপত্রের মধ্যে বিবৃতি" + +#: C/gtk-doc-manual.xml:611(title) +msgid "GTK-Doc comment block" +msgstr "GTK-Doc বিবৃতির অংশ" + +#: C/gtk-doc-manual.xml:608(para) +msgid "A multiline comment that starts with an additional '*' marks a documentation block that will be processed by the GTK-Doc tools. " +msgstr "" + +#: C/gtk-doc-manual.xml:623(para) +msgid "The 'identifier' is one line with the name of the item the comment is related to. The syntax differs a little depending on the item. (TODO add table showing identifiers)" +msgstr "" + +#: C/gtk-doc-manual.xml:629(para) +msgid "The 'documentation' block is also different for each symbol type. Symbol types that get parameters such as functions or macros have the parameter description first followed by a blank line (just a '*'). Afterwards follows the detailed description. All lines (outside program- listings and CDATA sections) just containing a ' *' (blank-asterisk) are converted to paragraph breaks. If you don't want a paragraph break, change that into ' * ' (blank-asterisk-blank-blank)." +msgstr "" + +#: C/gtk-doc-manual.xml:646(para) +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "আর্গুমেন্ট গ্রহণকারী ফাংশান অথবা ম্যাক্রোর জন্য function() ব্যবহার করা হবে।" + +#: C/gtk-doc-manual.xml:651(para) +msgid "Use @param to refer to parameters. Also use this when referring to parameters of other functions, related to the one being described." +msgstr "" + +#: C/gtk-doc-manual.xml:657(para) +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "" + +#: C/gtk-doc-manual.xml:662(para) +msgid "Use #symbol to refer to other types of symbol, e.g. structs and enums and macros which don't take arguments." +msgstr "" + +#: C/gtk-doc-manual.xml:668(para) +msgid "Use #Object::signal to refer to a GObject signal" +msgstr "GObject signal-র জন্য #Object::signal ব্যবহার করুন" + +#: C/gtk-doc-manual.xml:673(para) +msgid "Use #Object:property to refer to a GObject property" +msgstr "GObject property-র জন্য #Object:property ব্যবহার করুন" + +#: C/gtk-doc-manual.xml:678(para) +msgid "Use #Struct.field to refer to a field inside a structure." +msgstr "স্ট্রাকচারের মধ্যে কোনো ফিল্ড চিহ্নিত করার জন্য #Struct.field প্রয়োগ করুন।" + +#: C/gtk-doc-manual.xml:640(para) +msgid "One advantage of hyper-text over plain-text is the ability to have links in the document. Writing the correct markup for a link can be tedious though. GTK-Doc comes to help by providing several useful abbreviations. " +msgstr "প্লেইন-টেক্সটের পরিবর্তে হাইপার-লিংক ব্যবহার করা হলে ডকুমেন্টের মধ্যে লিংক অন্তর্ভুক্ত করা সম্ভব হবে। কিন্তু লিংকের ক্ষেত্রে সঠিক markup লেখা পরিশ্রমের কাজ হতে পারে। GTK-Doc দ্বারা উপলব্ধ কয়েকটি সংক্ষিপ্ত শব্দের সাহায্যে এই কাজ হ্রাস করা যাবে। " + +#: C/gtk-doc-manual.xml:686(para) +msgid "If you need to use the special characters '<', '>', '()', '@', '%', or '#' in your documentation without GTK-Doc changing them you can use the XML entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" and \"&num;\" respectively or escape them with a backslash '\\'." +msgstr "নথির মধ্যে কিছু বিশেষ অক্ষর যেমন '<', '>', '()', '@', '%', অথবা '#' প্রভৃতি ব্যবহার করতে ইচ্ছুক হলে GTK-Doc দ্বারা এইগুলিকে পরিবর্তন করতে প্রতিরোধ করার জন্য যথাক্রমে \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" and \"&num;\" XML এনটিটিগুলি ব্যবহার করুন অথবা ব্যাক-স্ল্যাশ চিহ্ন '\\' সহযোগে এস্কেপ করানো আবশ্যক।" + +#: C/gtk-doc-manual.xml:695(para) +msgid "DocBook can do more that just links. One can also have lists, tables and examples. To enable the usage of SGML/XML tags inside doc-comments you need to have in the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" + +#: C/gtk-doc-manual.xml:703(para) +msgid "As already mentioned earlier GTK-Doc is for documenting public API. Thus one cannot write documentation for static symbols. Nevertheless it is good to comment those symbols too. This helps other to understand you code. Therefore we recommend to comment these using normal comments (without the 2nd '*' in the first line). If later the function needs to be made public, all one needs to do is to add another '*' in the comment block and insert the symbol name at the right place inside the sections file." +msgstr "" + +#: C/gtk-doc-manual.xml:717(title) +msgid "Documenting sections" +msgstr "নথিপত্রের বিভাগ" + +#: C/gtk-doc-manual.xml:719(para) +msgid "Each section of the documentation contains information about one class or module. To introduce the component one can write a section block. The short description is also used inside the table of contents. All the @fields are optional." +msgstr "" + +#: C/gtk-doc-manual.xml:727(title) +msgid "Section comment block" +msgstr "বিভাগ কমেন্ট ব্লক" + +#: C/gtk-doc-manual.xml:749(term) +msgid "SECTION:<name>" +msgstr "SECTION:<name>" + +#: C/gtk-doc-manual.xml:751(para) +msgid "The name links the section documentation to the respective part in the <package>-sections.txt file. The name give here should match the <FILE> tag in the <package>-sections.txt file." +msgstr "" + +#: C/gtk-doc-manual.xml:760(term) +msgid "@short_description" +msgstr "@short_description" + +#: C/gtk-doc-manual.xml:762(para) +msgid "A one line description of the section, that later will appear after the links in the TOC and at the top of the section page." +msgstr "এক পংক্তি দ্বারা উল্লিখিত বিভাগের বিবরণ, সূচিপত্রের লিংকের পরে ও বিভাগের পৃষ্ঠার উপরে এই বিবরণ পরে প্রদর্শন করা হবে।" + +#: C/gtk-doc-manual.xml:769(term) +msgid "@title" +msgstr "@title" + +#: C/gtk-doc-manual.xml:771(para) +msgid "The section title defaults to <name> from the SECTION declaration. It can be overridden with the @title field." +msgstr "" + +#: C/gtk-doc-manual.xml:778(term) +msgid "@section_id" +msgstr "@section_id" + +#: C/gtk-doc-manual.xml:780(para) +msgid "Overrides the use of title as a section identifier. For GObjects the <title> is used as a section_id and for other section it is <MODULE>-<title>." +msgstr "" + +#: C/gtk-doc-manual.xml:788(term) +msgid "@see_also" +msgstr "@see_also" + +#: C/gtk-doc-manual.xml:790(para) +msgid "A list of symbols that are related to this section.." +msgstr "এই বিভাগ সম্বন্ধীয় সংকেতের তালিকা.." + +#: C/gtk-doc-manual.xml:796(term) +msgid "@stability" +msgstr "@stability" + +#: C/gtk-doc-manual.xml:803(para) +msgid "Stable - The intention of a Stable interface is to enable arbitrary third parties to develop applications to these interfaces, release them, and have confidence that they will run on all minor releases of the product (after the one in which the interface was introduced, and within the same major release). Even at a major release, incompatible changes are expected to be rare, and to have strong justifications." +msgstr "" + +#: C/gtk-doc-manual.xml:815(para) +msgid "Unstable - Unstable interfaces are experimental or transitional. They are typically used to give outside developers early access to new or rapidly changing technology, or to provide an interim solution to a problem where a more general solution is anticipated. No claims are made about either source or binary compatibility from one minor release to the next." +msgstr "" + +#: C/gtk-doc-manual.xml:827(para) +msgid "Private - An interface that can be used within the GNOME stack itself, but that is not documented for end-users. Such functions should only be used in specified and documented ways." +msgstr "" + +#: C/gtk-doc-manual.xml:836(para) +msgid "Internal - An interface that is internal to a module and does not require end-user documentation. Functions that are undocumented are assumed to be Internal." +msgstr "" + +#: C/gtk-doc-manual.xml:798(para) +msgid "A informal description of the stability level this API has. We recommend the use of one of these terms: " +msgstr "চিহ্নিত API-র স্থায়ীত্বের পরিমানের আনুমানিক বিবরণ। চিহ্নিত কোনো অভিব্যক্তির ব্যবহার বাঞ্ছনীয়: " + +#: C/gtk-doc-manual.xml:848(term) +msgid "@include" +msgstr "@include" + +#: C/gtk-doc-manual.xml:850(para) +msgid "The #include files to show in the section synopsis (a comma separated list), overriding the global value from the section file or command line. This item is optional." +msgstr "" + +#: C/gtk-doc-manual.xml:859(term) +msgid "@image" +msgstr "@image" + +#: C/gtk-doc-manual.xml:861(para) +msgid "The image to display at the top of the reference page for this section. This will often be some sort of a diagram to illustrate the visual appearance of a class or a diagram of its relationship to other classes. This item is optional." +msgstr "" + +#: C/gtk-doc-manual.xml:872(para) +msgid "To avoid unnecessary recompilation after doc-changes put the section docs into the c-source where possible." +msgstr "" + +#: C/gtk-doc-manual.xml:881(title) +msgid "Documenting symbols" +msgstr "নথিপত্রের সংকেত" + +#: C/gtk-doc-manual.xml:883(para) +msgid "Each symbol (function, macro, struct, enum, signal and property) is documented in a separate block. The block is best placed close to the definition of the symbols so that it is easy to keep them in sync. Thus function are usually documented in the c-source and macros, struct and enum in the header file." +msgstr "" + +#: C/gtk-doc-manual.xml:891(title) C/gtk-doc-manual.xml:920(title) +msgid "General tags" +msgstr "সাধারণ ট্যাগ" + +#: C/gtk-doc-manual.xml:893(para) +msgid "You can add versioning information to all documentation elements to tell when an api was introduced, or when it was deprecated." +msgstr "" + +#: C/gtk-doc-manual.xml:898(title) +msgid "Versioning Tags" +msgstr "সংস্করণ সংক্রান্ত ট্যাগ" + +#: C/gtk-doc-manual.xml:899(term) +msgid "Since:" +msgstr "প্রারম্ভ:" + +#: C/gtk-doc-manual.xml:901(para) +msgid "Description since which version of the code the API is available." +msgstr "API-টি কোডের কোন সংস্করণ থেকে উপলব্ধ রয়েছে সেটির বিবরণ।" + +#: C/gtk-doc-manual.xml:906(term) +msgid "Deprecated:" +msgstr "অবচিত:" + +#: C/gtk-doc-manual.xml:908(para) +msgid "Paragraph denoting that this function should no be used anymore. The description should point the reader to the new API." +msgstr "উল্লিখিত ফাংশান ব্যবহার না করার চিহ্নকারী অনুচ্ছেদ। এই বিবরণের সাহায্যে পাঠাকদেরকে নতুন API নির্দেশ করা হবে।" + +#: C/gtk-doc-manual.xml:916(para) +msgid "(FIXME : Stability information)" +msgstr "(FIXME : স্থায়ীত্ব সংক্রান্ত তথ্য)" + +#: C/gtk-doc-manual.xml:943(title) C/gtk-doc-manual.xml:979(title) +msgid "Function comment block" +msgstr "ফাংশান কমেন্টের ব্লক" + +#: C/gtk-doc-manual.xml:949(para) +msgid "Document whether returned objects, lists, strings, etc, should be freed/unrefed/released." +msgstr "" + +#: C/gtk-doc-manual.xml:955(para) +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "" + +#: C/gtk-doc-manual.xml:960(para) +msgid "Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "" + +#: C/gtk-doc-manual.xml:945(para) C/gtk-doc-manual.xml:1042(para) +msgid "Please remember to: " +msgstr "অনুগ্রহ করে খেয়াল রাখবেন: " + +#: C/gtk-doc-manual.xml:967(para) +msgid "Gtk-doc assumes all symbols (macros, functions) starting with '_' are private. They are treated like static functions." +msgstr "" + +#: C/gtk-doc-manual.xml:972(para) +msgid "Also, take a look at gobject introspection annotation tags: http://live.gnome.org/GObjectIntrospection/Annotations" +msgstr "উপরন্তু, gobject introspection annotation ট্যাগ দেখুন: http://live.gnome.org/GObjectIntrospection/Annotations" + +#: C/gtk-doc-manual.xml:1003(title) +msgid "Function tags" +msgstr "ফাংশান সংক্রান্ত ট্যাগ" + +#: C/gtk-doc-manual.xml:1004(term) +msgid "Returns:" +msgstr "প্রাপ্ত মান:" + +#: C/gtk-doc-manual.xml:1006(para) +msgid "Paragraph describing the returned result." +msgstr "প্রাপ্ত ফলাফলের বর্ণনা উপলব্ধকারী অনুচ্ছেদ।" + +#: C/gtk-doc-manual.xml:1011(term) +msgid "@...:" +msgstr "@...:" + +#: C/gtk-doc-manual.xml:1013(para) +msgid "In case the function has variadic arguments, you should use this tag (@Varargs: does also work for historic reasons)." +msgstr "" + +#: C/gtk-doc-manual.xml:1023(title) C/gtk-doc-manual.xml:1025(title) +msgid "Property comment block" +msgstr "Property কমেন্টের ব্লক" + +#: C/gtk-doc-manual.xml:1040(title) C/gtk-doc-manual.xml:1059(title) +msgid "Signal comment block" +msgstr "Signal কমেন্টের ব্লক" + +#: C/gtk-doc-manual.xml:1046(para) +msgid "Document when the signal is emitted and whether it is emitted before or after other signals." +msgstr "" + +#: C/gtk-doc-manual.xml:1052(para) +msgid "Document what an application might do in the signal handler." +msgstr "" + +#: C/gtk-doc-manual.xml:1079(title) C/gtk-doc-manual.xml:1080(title) +msgid "Struct comment block" +msgstr "Struct কমেন্টের ব্লক" + +#: C/gtk-doc-manual.xml:1100(para) +msgid "Use /*< private >*/ before the private struct fields you want to hide. Use /*< public >*/ for the reverse behavirour." +msgstr "" + +#: C/gtk-doc-manual.xml:1108(title) C/gtk-doc-manual.xml:1109(title) +msgid "Enum comment block" +msgstr "Enum কমেন্টের ব্লক" + +#: C/gtk-doc-manual.xml:1130(para) +msgid "Use /*< private >*/ before the private enum values you want to hide. Use /*< public >*/ for the reverse behavirour." +msgstr "" + +#: C/gtk-doc-manual.xml:1140(title) +msgid "Useful DocBook tags" +msgstr "সুবিধাজনক DocBook ট্যাগ" + +#: C/gtk-doc-manual.xml:1142(para) +msgid "Here are some DocBook tags which are most useful when documenting the code." +msgstr "কোড নথিভুক্ত করার সময় সহায়ক কিছু DocBook ট্যাগ এইখানে উল্লেখ করা হল।" + +#: C/gtk-doc-manual.xml:1147(para) +msgid "To link to another section in the GTK docs: The linkend is the SGML/XML id on the top item of the page you want to link to. For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and then the page title (\"Hash Tables\"). For widgets it is just the class name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" + +#: C/gtk-doc-manual.xml:1163(para) +msgid "To refer to an external function, e.g. a standard C function: " +msgstr "" + +#: C/gtk-doc-manual.xml:1174(para) +msgid "To include example code: or possibly this, for very short code fragments which don't need a title: For the latter GTK-Doc also supports an abbreviation: " +msgstr "" + +#: C/gtk-doc-manual.xml:1208(para) +msgid "To include bulleted lists: " +msgstr "বুলেট চিহ্ন সহ তালিকা অন্তর্ভুক্ত করার জন্য ব্যবহার করুন: " + +#: C/gtk-doc-manual.xml:1230(para) +msgid "To include a note which stands out from the text: " +msgstr "" + +#: C/gtk-doc-manual.xml:1245(para) +msgid "To refer to a type: " +msgstr "কোনো টাইপ উল্লেখ করা জন্য: " + +#: C/gtk-doc-manual.xml:1256(para) +msgid "To refer to an external structure (not one described in the GTK docs): " +msgstr "" + +#: C/gtk-doc-manual.xml:1267(para) +msgid "To refer to a field of a structure: " +msgstr "কোনো স্ট্রাকচারের ফিল্ড উল্লেখ করার জন্য: " + +#: C/gtk-doc-manual.xml:1278(para) +msgid "To refer to a class name, we could possibly use: but you'll probably be using #GtkWidget instead (to automatically create a link to the GtkWidget page - see the abbreviations)." +msgstr "" + +#: C/gtk-doc-manual.xml:1291(para) +msgid "To emphasize text: " +msgstr "টেক্সট বিশেষভাবে উল্লেখ করার জন্য: " + +#: C/gtk-doc-manual.xml:1302(para) +msgid "For filenames use: " +msgstr "ফাইলের নামের জন্য ব্যবহার করুন: " + +#: C/gtk-doc-manual.xml:1313(para) +msgid "To refer to keys use: " +msgstr "কি উল্লেখ করার জন্য ব্যবহার করুন: " + +#: C/gtk-doc-manual.xml:1328(title) +msgid "Filling the extra files" +msgstr "" + +#: C/gtk-doc-manual.xml:1330(para) +msgid "There are a couple of extra files, that need to be maintained along with the inline source code comments: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "" + +#: C/gtk-doc-manual.xml:1339(title) +msgid "Editing the types file" +msgstr "" + +#: C/gtk-doc-manual.xml:1341(para) +msgid "If your library or application includes GtkObjects/GObjects, you want their signals, arguments/parameters and position in the hierarchy to be shown in the documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <package>.types file." +msgstr "" + +#: C/gtk-doc-manual.xml:1350(title) +msgid "Example types file snippet" +msgstr "" + +#: C/gtk-doc-manual.xml:1364(para) +msgid "Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in Makefile.am. If you use this approach you should not dist the types file nor have it under version control." +msgstr "" + +#: C/gtk-doc-manual.xml:1373(title) +msgid "Editing the master document" +msgstr "প্রধান নথি সম্পাদনা" + +#: C/gtk-doc-manual.xml:1375(para) +msgid "GTK-Doc produces documentation in DocBook SGML/XML. When processing the inline source comments, the GTK-Doc tools generate one documentation page per class or module as a separate file. The master document includes them and place them in a order." +msgstr "" + +#: C/gtk-doc-manual.xml:1382(para) +msgid "While GTK-Doc creates a template master document for you, later run will not touch it again. This means that one can freely structure the documentation. That includes grouping pages and adding extra pages. GTK-Doc has now a test suite, where also the master-document is recreated from scratch. Its a good idea to look at this from time to time to see if there are some new goodies introduced there." +msgstr "" + +#: C/gtk-doc-manual.xml:1392(para) +msgid "Do not create tutorials as extra documents. Just write extra chapters. The benefit of directly embedding the tutorial for your library into the API documentation is that it is easy to link for the tutorial to symbol documentation. Apart chances are higher that the tutorial gets updates along with the library." +msgstr "" + +#: C/gtk-doc-manual.xml:1401(para) +msgid "So what are the things to change inside the master document? For a start is only a little. There are some placeholders (text in square brackets) there which you should take care of." +msgstr "" + +#: C/gtk-doc-manual.xml:1408(title) +msgid "Master document header" +msgstr "প্রধা নথির হেডার" + +#: C/gtk-doc-manual.xml:1430(title) +msgid "Editing the section file" +msgstr "বিভাগের ফাইল সম্পাদনা" + +#: C/gtk-doc-manual.xml:1432(para) +msgid "The section file is used to organise the documentation output by GTK-Doc. Here one specifies which symbol belongs to which module or class and control the visibility (public or private)." +msgstr "" + +#: C/gtk-doc-manual.xml:1438(para) +msgid "The section file is a plain test file with xml like syntax (using tags). Blank lines are ignored and lines starting with a '#' are treated as comment lines." +msgstr "" + +#: C/gtk-doc-manual.xml:1444(para) +msgid "The <FILE> ... </FILE> tag is used to specify the file name, without any suffix. For example, using '<FILE>gnome-config</FILE>' will result in the section declarations being output in the template file tmpl/gnome-config.sgml, which will be converted into the DocBook SGML/XML file sgml/gnome-config.sgml or .DocBook XML file xml/gnome-config.xml. (The name of the html file is based on the module name and the section title, or for gobjects it is based on the gobjects class name converted to lower case)." +msgstr "" + +#: C/gtk-doc-manual.xml:1456(para) +msgid "The <TITLE> ... </TITLE> tag is used to specify the title of the section. It is only useful before the templates (if used) are initially created, since the title set in the template file overrides this. Also if one uses SECTION comment in the sources, this is obsolete." +msgstr "" + +#: C/gtk-doc-manual.xml:1463(para) +msgid "You can group items in the section by using the <SUBSECTION> tag. Currently it outputs a blank line between subsections in the synopsis section. You can also use <SUBSECTION Standard> for standard GObject declarations (e.g. the functions like g_object_get_type and macros like G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the documentation. You can also use <SUBSECTION Private> for private declarations which will not be output (It is a handy way to avoid warning messages about unused declarations.). If your library contains private types which you don't want to appear in the object hierarchy and the list of implemented or required interfaces, add them to a Private subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1479(para) +msgid "You can also use <INCLUDE> ... </INCLUDE> to specify the #include files which are shown in the synopsis sections. It contains a comma-separate list of #include files, without the angle brackets. If you set it outside of any sections, it acts for all sections until the end of the file. If you set it within a section, it only applies to that section." +msgstr "" + +#: C/gtk-doc-manual.xml:1493(title) +msgid "Controlling the result" +msgstr "ফলাফল নিয়ন্ত্রণের প্রণালী" + +#: C/gtk-doc-manual.xml:1495(para) +msgid "A GTK-Doc run generates report files inside the documentation directory. The generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and <package>-unused.txt. All those are plain text files that can be viewed and postprocessed easily." +msgstr "" + +#: C/gtk-doc-manual.xml:1504(para) +msgid "The <package>-undocumented.txt file starts with the documentation coverage summary. Below are two sections divided by blank lines. The first section lists undocumented or incomplete symbols. The second section does the same for section docs. Incomplete entries are those, which have documentation, but where e.g. a new parameter has been added." +msgstr "" + +#: C/gtk-doc-manual.xml:1513(para) +msgid "The <package>-undeclared.txt file lists symbols given in the <package>-sections.txt but not found in the sources. Check if they have been removed or if they are misspelled." +msgstr "" + +#: C/gtk-doc-manual.xml:1520(para) +msgid "The <package>-unused.txt file lists symbol names, where the GTK-Doc scanner has found documentation, but does not know where to put it. This means that the symbol has not yet been added to the <package>-sections.txt file." +msgstr "" + +#: C/gtk-doc-manual.xml:1528(para) +msgid "Enable or add the line in Makefile.am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during make check run." +msgstr "" + +#: C/gtk-doc-manual.xml:1535(para) +msgid "One can also look at the files produced by the source code scanner: <package>-decl-list.txt and <package>-decl.txt. The first and can be compared with the section file if that is manualy maintained. The second lists all declarations fromt he headers If a symbol is missing one could check if this file contains it." +msgstr "" + +#: C/gtk-doc-manual.xml:1544(para) +msgid "If the project is GObject based, one can also look into the files produced by the object scanner: <package>.args.txt, <package>.hierarchy.txt, <package>.interfaces.txt, <package>.prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask gtkdoc to keep the intermedia scanner file for further analysis, but running it as GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" + +#: C/gtk-doc-manual.xml:1559(title) +msgid "Frequently asked question" +msgstr "সাধারণ প্রশ্নোত্তর" + +#: C/gtk-doc-manual.xml:1563(segtitle) +msgid "Question" +msgstr "প্রশ্ন" + +#: C/gtk-doc-manual.xml:1564(segtitle) +msgid "Answer" +msgstr "উত্তর" + +#: C/gtk-doc-manual.xml:1566(seg) +msgid "No class hierarchy." +msgstr "কোনো ক্লাস অনুক্রম নেই।" + +#: C/gtk-doc-manual.xml:1568(function) +msgid "xxx_get_type()" +msgstr "xxx_get_type()" + +#: C/gtk-doc-manual.xml:1569(filename) +msgid "<package>.types" +msgstr "<package>.types" + +#: C/gtk-doc-manual.xml:1567(seg) +msgid "The objects function has not been entered into the file." +msgstr "" + +#: C/gtk-doc-manual.xml:1573(seg) +msgid "Still no class hierarchy." +msgstr "তথাপি ক্লাসের কোনো অনুক্রম নেই।" + +#: C/gtk-doc-manual.xml:1575(filename) C/gtk-doc-manual.xml:1614(filename) C/gtk-doc-manual.xml:1622(filename) C/gtk-doc-manual.xml:1644(filename) +msgid "<package>-sections.txt" +msgstr "<package>-sections.txt" + +#: C/gtk-doc-manual.xml:1576(ulink) +msgid "explanation" +msgstr "বর্ণনা" + +#: C/gtk-doc-manual.xml:1574(seg) +msgid "Missing or wrong naming in file (see )." +msgstr " ফাইলের মধ্যে নাম অনুপস্থিত অথবা ভুল ( দেখুন)।" + +#: C/gtk-doc-manual.xml:1580(seg) +msgid "Damn, I have still no class hierarchy." +msgstr "এখনো কোনো ক্লাস অনুক্রম নেই।" + +#: C/gtk-doc-manual.xml:1582(type) C/gtk-doc-manual.xml:1623(type) +msgid "GtkWidget" +msgstr "GtkWidget" + +#: C/gtk-doc-manual.xml:1581(seg) +msgid "Is the object name (name of the instance struct, e.g. ) part of the normal section (don't put this into Standard or Private subsections)." +msgstr "" + +#: C/gtk-doc-manual.xml:1588(seg) +msgid "No symbol index." +msgstr "সংকেতের ইন্ডেক্স অনুপস্থিত।" + +#: C/gtk-doc-manual.xml:1590(filename) C/gtk-doc-manual.xml:1605(filename) C/gtk-doc-manual.xml:1631(filename) +msgid "<package>-docs.{xml,sgml}" +msgstr "<package>-docs.{xml,sgml}" + +#: C/gtk-doc-manual.xml:1589(seg) +msgid "Does the contain a index that xi:includes the generated index?" +msgstr "" + +#: C/gtk-doc-manual.xml:1595(seg) +msgid "Symbols are not linked to their doc-section." +msgstr "সিম্বলগুলি doc-section-র সাথে যুক্ত নয়।" + +#: C/gtk-doc-manual.xml:1596(seg) +msgid "Is the doc-comment using the correct markup (added #,% or ())? Check if the gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" + +#: C/gtk-doc-manual.xml:1602(seg) +msgid "A new class does not appear in the docs." +msgstr "নথির মধ্যে নতুন শ্রেণী উপস্থিত নেই।" + +#: C/gtk-doc-manual.xml:1603(seg) +msgid "Is the new page xi:included from ." +msgstr "নতুন পৃষ্ঠাটি থেকে xi:include করে নির্মিত হয়েছে কি।" + +#: C/gtk-doc-manual.xml:1609(seg) +msgid "A new symbol does not appear in the docs." +msgstr "নথির মধ্যে নতুন সিম্বল অন্তর্ভুক্ত নয়।" + +#: C/gtk-doc-manual.xml:1610(seg) +msgid "Is the doc-comment properly formatted. Check for spelling mistakes in the begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable xrefs. Check if the symbol is correctly listed in the in a public subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1618(seg) +msgid "A type is missing from the class hierarchy." +msgstr "ক্লাস অনুক্রম থেকে টাইপ অনুপস্থিত।" + +#: C/gtk-doc-manual.xml:1620(filename) +msgid "<package>.hierarchy" +msgstr "<package>.hierarchy" + +#: C/gtk-doc-manual.xml:1621(filename) +msgid "xml/tree_index.sgml" +msgstr "xml/tree_index.sgml" + +#: C/gtk-doc-manual.xml:1619(seg) +msgid "If the type is listed in but not in then double check that the type is correctly placed in the . If the type instance (e.g. ) is not listed or incidentialy makred private it will not be shown." +msgstr "" + +#: C/gtk-doc-manual.xml:1628(seg) +msgid "I get foldoc links for all gobject annotations." +msgstr "সকল gobject অ্যানোটেশনের জন্য foldoc লিংক পাওয়া গিয়েছে।" + +#: C/gtk-doc-manual.xml:1630(filename) +msgid "xml/annotation-glossary.xml" +msgstr "xml/annotation-glossary.xml" + +#: C/gtk-doc-manual.xml:1629(seg) +msgid "Check that is xi:included from ." +msgstr "-কে থেকে xi:included করা হয়েছে কি না পরীক্ষা করুন।" + +#: C/gtk-doc-manual.xml:1637(seg) +msgid "Parameter described in source code comment block but does not exist" +msgstr "" + +#: C/gtk-doc-manual.xml:1638(seg) +msgid "Check if the prototype in the header has different parameter names as in the source." +msgstr "" + +#: C/gtk-doc-manual.xml:1643(seg) +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "" + +#: C/gtk-doc-manual.xml:1644(seg) +msgid "Symbol XYZ appears twice in file." +msgstr "" + +#: C/gtk-doc-manual.xml:1647(seg) +msgid "Element typename in namespace '' encountered in para, but no template matches." +msgstr "" + +#: C/gtk-doc-manual.xml:12(releaseinfo) +msgid "Version 1.1, March 2000" +msgstr "" + +#: C/gtk-doc-manual.xml:16(year) +msgid "2000" +msgstr "" + +#: C/gtk-doc-manual.xml:16(holder) +msgid "Free Software Foundation, Inc." +msgstr "" + +#: C/gtk-doc-manual.xml:19(para) +msgid "
    Free Software Foundation, Inc. 51 Franklin Street, Suite 330, Boston, MA02110-1301USA
    Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed." +msgstr "" + +#: C/gtk-doc-manual.xml:28(title) +msgid "GNU Free Documentation License" +msgstr "" + +#: C/gtk-doc-manual.xml:31(title) +msgid "0. PREAMBLE" +msgstr "0. PREAMBLE" + +#: C/gtk-doc-manual.xml:32(para) +msgid "The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others." +msgstr "" + +#: C/gtk-doc-manual.xml:43(para) +msgid "This License is a kind of copyleft, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software." +msgstr "" + +#: C/gtk-doc-manual.xml:50(para) +msgid "We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference." +msgstr "" + +#: C/gtk-doc-manual.xml:62(title) +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "" + +#: C/gtk-doc-manual.xml:63(para) +msgid "This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The Document, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as you." +msgstr "" + +#: C/gtk-doc-manual.xml:72(para) +msgid "A Modified Version of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language." +msgstr "" + +#: C/gtk-doc-manual.xml:79(para) +msgid "A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them." +msgstr "" + +#: C/gtk-doc-manual.xml:94(para) +msgid "The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:103(para) +msgid "The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:111(para) +msgid "A Transparent copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not Transparent is called Opaque." +msgstr "" + +#: C/gtk-doc-manual.xml:128(para) +msgid "Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only." +msgstr "" + +#: C/gtk-doc-manual.xml:141(para) +msgid "The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, Title Page means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text." +msgstr "" + +#: C/gtk-doc-manual.xml:153(title) +msgid "2. VERBATIM COPYING" +msgstr "" + +#: C/gtk-doc-manual.xml:154(para) +msgid "You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3." +msgstr "" + +#: C/gtk-doc-manual.xml:169(para) +msgid "You may also lend copies, under the same conditions stated above, and you may publicly display copies." +msgstr "" + +#: C/gtk-doc-manual.xml:176(title) +msgid "3. COPYING IN QUANTITY" +msgstr "" + +#: C/gtk-doc-manual.xml:177(para) +msgid "If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:195(para) +msgid "If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages." +msgstr "" + +#: C/gtk-doc-manual.xml:202(para) +msgid "If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public." +msgstr "" + +#: C/gtk-doc-manual.xml:222(para) +msgid "It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document." +msgstr "" + +#: C/gtk-doc-manual.xml:231(title) +msgid "4. MODIFICATIONS" +msgstr "" + +#: C/gtk-doc-manual.xml:232(para) +msgid "You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:" +msgstr "" + +#: C/gtk-doc-manual.xml:248(title) +msgid "A" +msgstr "A" + +#: C/gtk-doc-manual.xml:249(para) +msgid "Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission." +msgstr "" + +#: C/gtk-doc-manual.xml:264(title) +msgid "B" +msgstr "B" + +#: C/gtk-doc-manual.xml:265(para) +msgid "List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five)." +msgstr "" + +#: C/gtk-doc-manual.xml:279(title) +msgid "C" +msgstr "C" + +#: C/gtk-doc-manual.xml:280(para) +msgid "State on the Title Page the name of the publisher of the Modified Version, as the publisher." +msgstr "" + +#: C/gtk-doc-manual.xml:291(title) +msgid "D" +msgstr "D" + +#: C/gtk-doc-manual.xml:292(para) +msgid "Preserve all the copyright notices of the Document." +msgstr "" + +#: C/gtk-doc-manual.xml:301(title) +msgid "E" +msgstr "E" + +#: C/gtk-doc-manual.xml:302(para) +msgid "Add an appropriate copyright notice for your modifications adjacent to the other copyright notices." +msgstr "" + +#: C/gtk-doc-manual.xml:311(title) +msgid "F" +msgstr "F" + +#: C/gtk-doc-manual.xml:312(para) +msgid "Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below." +msgstr "" + +#: C/gtk-doc-manual.xml:324(title) +msgid "G" +msgstr "G" + +#: C/gtk-doc-manual.xml:325(para) +msgid "Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:337(title) +msgid "H" +msgstr "H" + +#: C/gtk-doc-manual.xml:338(para) +msgid "Include an unaltered copy of this License." +msgstr "" + +#: C/gtk-doc-manual.xml:346(title) +msgid "I" +msgstr "I" + +#: C/gtk-doc-manual.xml:347(para) +msgid "Preserve the section entitled History, and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled History in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence." +msgstr "" + +#: C/gtk-doc-manual.xml:365(title) +msgid "J" +msgstr "J" + +#: C/gtk-doc-manual.xml:366(para) +msgid "Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the History section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission." +msgstr "" + +#: C/gtk-doc-manual.xml:383(title) +msgid "K" +msgstr "K" + +#: C/gtk-doc-manual.xml:384(para) +msgid "In any section entitled Acknowledgements or Dedications, preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein." +msgstr "" + +#: C/gtk-doc-manual.xml:396(title) +msgid "L" +msgstr "L" + +#: C/gtk-doc-manual.xml:397(para) +msgid "Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles." +msgstr "" + +#: C/gtk-doc-manual.xml:409(title) +msgid "M" +msgstr "M" + +#: C/gtk-doc-manual.xml:410(para) +msgid "Delete any section entitled Endorsements. Such a section may not be included in the Modified Version." +msgstr "" + +#: C/gtk-doc-manual.xml:421(title) +msgid "N" +msgstr "N" + +#: C/gtk-doc-manual.xml:422(para) +msgid "Do not retitle any existing section as Endorsements or to conflict in title with any Invariant Section." +msgstr "" + +#: C/gtk-doc-manual.xml:432(para) +msgid "If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles." +msgstr "" + +#: C/gtk-doc-manual.xml:444(para) +msgid "You may add a section entitled Endorsements, provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard." +msgstr "" + +#: C/gtk-doc-manual.xml:453(para) +msgid "You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one." +msgstr "" + +#: C/gtk-doc-manual.xml:470(para) +msgid "The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" + +#: C/gtk-doc-manual.xml:480(title) +msgid "5. COMBINING DOCUMENTS" +msgstr "" + +#: C/gtk-doc-manual.xml:481(para) +msgid "You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:492(para) +msgid "The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work." +msgstr "" + +#: C/gtk-doc-manual.xml:505(para) +msgid "In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled History; likewise combine any sections entitled Acknowledgements, and any sections entitled Dedications. You must delete all sections entitled Endorsements." +msgstr "" + +#: C/gtk-doc-manual.xml:516(title) +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "" + +#: C/gtk-doc-manual.xml:517(para) +msgid "You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:527(para) +msgid "You may extract a single document from such a collection, and dispbibute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document." +msgstr "" + +#: C/gtk-doc-manual.xml:537(title) +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "" + +#: C/gtk-doc-manual.xml:538(para) +msgid "A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an aggregate, and this License does not apply to the other self-contained works thus compiled with the Document , on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate." +msgstr "" + +#: C/gtk-doc-manual.xml:561(title) +msgid "8. TRANSLATION" +msgstr "" + +#: C/gtk-doc-manual.xml:562(para) +msgid "Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail." +msgstr "" + +#: C/gtk-doc-manual.xml:580(title) +msgid "9. TERMINATION" +msgstr "" + +#: C/gtk-doc-manual.xml:581(para) +msgid "You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document 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." +msgstr "" + +#: C/gtk-doc-manual.xml:594(title) +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "" + +#: C/gtk-doc-manual.xml:595(para) +msgid "The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" + +#: C/gtk-doc-manual.xml:606(para) +msgid "Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License or any later version applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" + +#: C/gtk-doc-manual.xml:621(title) +msgid "Addendum" +msgstr "" + +#: C/gtk-doc-manual.xml:622(para) +msgid "To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:" +msgstr "" + +#: C/gtk-doc-manual.xml:629(para) +msgid "Copyright YEAR YOUR NAME." +msgstr "" + +#: C/gtk-doc-manual.xml:632(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License." +msgstr "" + +#: C/gtk-doc-manual.xml:647(para) +msgid "If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" + +#: C/gtk-doc-manual.xml:657(para) +msgid "If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software." +msgstr "" + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 +#: C/gtk-doc-manual.xml:0(None) +msgid "translator-credits" +msgstr "রুণা ভট্টাচার্য্য (runab@redhat.com)" + diff --git a/help/manual/bn_IN/bn_IN.stamp b/help/manual/bn_IN/bn_IN.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/bn_IN/bn_IN.stamp diff --git a/help/manual/bn_IN/fdl-appendix.xml b/help/manual/bn_IN/fdl-appendix.xml new file mode 100644 index 0000000..8589225 --- /dev/null +++ b/help/manual/bn_IN/fdl-appendix.xml @@ -0,0 +1,621 @@ + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    diff --git a/help/manual/bn_IN/index.docbook b/help/manual/bn_IN/index.docbook new file mode 100644 index 0000000..af19a6e --- /dev/null +++ b/help/manual/bn_IN/index.docbook @@ -0,0 +1,2866 @@ + + + + +included"> +]> + + + + GTK-Doc সহায়িকা + 1.24.1 + GTK-Doc ব্যবহারের নির্দেশাবলী সহ, ডিভেলপরদের উদ্দেশ্যে নির্মিত সহায়িকা। + + + Chris + Lyttle + +
    + chris@wilddev.net +
    +
    +
    + + Dan + Mueth + +
    + d-mueth@uchicago.edu +
    +
    +
    + + Stefan + Sauer (Kost) + +
    + ensonic@users.sf.net +
    +
    +
    +
    + + GTK-Doc project +
    gtk-doc-list@gnome.org
    +
    + + 2000, 2005 + Dan Mueth and Chris Lyttle + + + 2007-2015 + Stefan Sauer (Kost) + + + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published + by the Free Software Foundation with no Invariant Sections, no + Front-Cover Texts, and no Back-Cover Texts. A copy of the license + is included. + + + Many of the names used by companies to distinguish their products and + services are claimed as trademarks. Where those names appear in any + GNOME documentation, and those trademarks are made aware to the members + of the GNOME Documentation Project, the names have been printed in caps + or initial caps. + + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + + 1.27 + 07 Dec 2017 + ss + fine tuning of the python port + + + 1.26 + 11 Aug 2017 + ss + port all tools from perl/bash to python + + + 1.25 + 21 March 2016 + ss + bug fixes, test cleanups + + + 1.24 + 29 May 2015 + ss + bug fix + + + 1.23 + 17 May 2015 + ss + bug fix + + + 1.22 + 07 May 2015 + ss + bug fixes, dropping deprecated features + + + 1.21 + 17 Jul 2014 + ss + bug fixes, dropping deprecated features + + + 1.20 + 16 Feb 2014 + ss + bug fixes, markdown support, style improvements + + + 1.19 + 05 Jun 2013 + ss + bug fixes + + + 1.18 + 14 Sep 2011 + ss + bug fixes, speedups, markdown support + + + 1.17 + 26 Feb 2011 + sk + urgent bug fix update + + + 1.16 + 14 Jan 2011 + sk + bugfixes, layout improvements + + + 1.15 + 21 May 2010 + sk + bug and regression fixes + + + 1.14 + 28 March 2010 + sk + bugfixes and performance improvements + + + 1.13 + 18 December 2009 + sk + broken tarball update + + + 1.12 + 18 December 2009 + sk + new tool features and bugfixes + + + 1.11 + 16 November 2008 + mal + GNOME doc-utils migration + + + +
    + + + + + ভূমিকা + + এই অধ্যায়ে GTK-Doc সম্বন্ধে প্রারম্ভিক তথ্য ও এটির ব্যবহার ও মূল বিষয়বস্তু সম্পর্কে তথ্য উপস্থিত করা হয়েছে। + + + GTK-Doc কী? + + GTK-Doc-র সাহায্যে C কোডের জন্য নথি তৈরি করা হয়। বিভিন্ন লাইব্রেরি যেমন GTK+ ও GNOME লাইব্রেরির পাবলিক API সম্বন্ধীয় নথি তৈরি করার জন্য এটি ব্যবহৃত হয়। অ্যাপ্লিকেশনের কোড সম্পর্কিত তথ্য লেখার জন্যও এটি ব্যবহার করা হয়। + + + + GTK-Doc কীভাবে ব্যবহার করা যাবে? + + + GTK-Doc works by using documentation of functions placed inside the source files in + specially-formatted comment blocks, or documentation added to the template files + which GTK-Doc uses (though note that GTK-Doc will only document functions that + are declared in header files; it won't produce output for static functions). + + + + GTK-Doc consists of a number of python scripts, each performing a different step + in the process. + + + এই প্রক্রিয়ার মধ্যে ৫-টি প্রধান ধাপ উপস্থিত রয়েছে: + + + + + + Writing the documentation. + + The author fills in the source files with the documentation for each + function, macro, union etc. (In the past information was entered in + generated template files, which is not recommended anymore). + + + + + + Gathering information about the code. + + gtkdoc-scan scans the header files of the + code looking for declarations of functions, macros, enums, structs, and unions. + It creates the file <module>-decl-list.txt containing a list of the + declarations, placing them into sections according to which header file they + are in. On the first run this file is copied to <module>-sections.txt. + The author can rearrange the sections, and the order of the + declarations within them, to produce the final desired order. + The second file it generates is <module>-decl.txt. + This file contains the full declarations found by the scanner. If for + some reason one would like some symbols to show up in the docs, where + the full declaration cannot be found by the scanner or the declaration + should appear differently, one can place entities similar to the ones in + <module>-decl.txt into <module>-overrides.txt. + + + gtkdoc-scangobj can also be used to dynamically query a library about + any GObject subclasses it exports. It saves information about each + object's position in the class hierarchy and about any GObject properties + and signals it provides. + + + gtkdoc-scanobj should not be used anymore. + It was needed in the past when GObject was still GtkObject inside gtk+. + + + + + + Generating the XML and HTML/PDF. + + gtkdoc-mkdb turns the template files into + XML files in the xml/ subdirectory. + If the source code contains documentation on functions, using the + special comment blocks, it gets merged in here. If there are no tmpl files used + it only reads docs from sources and introspection data. + + + gtkdoc-mkhtml turns the XML files into HTML + files in the html/ subdirectory. + Likewise gtkdoc-mkpdf turns the XML files into a PDF + document called <package>.pdf. + + + Files in xml/ and + html/ directories are always + overwritten. One should never edit them directly. + + + + + + Fixing up cross-references between documents. + + After installing the HTML files, gtkdoc-fixxref can be run to fix up any + cross-references between separate documents. For example, the GTK+ + documentation contains many cross-references to types documented in the GLib manual. + + When creating the source tarball for distribution, gtkdoc-rebase + turns all external links into web-links. When installing distributed (pregenerated) docs + the same application will try to turn links back to local links + (where those docs are installed). + + + + + + + + GTK-Doc প্রাপ্ত করার প্রণালী + + + আবশ্যক মান + + python 2/3 - the main scripts are written in python. + + + xsltproc - the xslt processor from libxslt + xmlsoft.org/XSLT/ + + + docbook-xsl - the docbook xsl stylesheets + sourceforge.net/projects/docbook/files/docbook-xsl + + + One of source-highlight, highlight or + vim - optional - used for syntax highlighting of examples + + + + + + GTK-Doc পরিচিতি + + (FIXME) + + + (History, authors, web pages, mailing list, license, future plans, + comparison with other similar systems.) + + + + + + এই সহায়িকার পরিচিতি + + (FIXME) + + (উদ্দিষ্ট পাঠকবৃন্দ, প্রাপ্তির স্থান, লাইসেন্স) + + + + + + + প্রজেক্ট প্রস্তুত করার প্রণালী + + + The next sections describe what steps to perform to integrate GTK-Doc into + your project. Theses sections assume we work on a project called 'meep'. + This project contains a library called 'libmeep' and + an end-user app called 'meeper'. We also assume you will be using autoconf + and automake. In addition section plain + makefiles or other build systems will describe the basics needed to + work in a different build setup. + + + + নথির একটি পরিকাঠামো নির্ধারণের প্রণালী + + + Under your top-level project directory create folders called docs/reference + (this way you can also have docs/help for end-user documentation). + It is recommended to create another subdirectory with the name of the doc-package. + For packages with just one library this step is not necessary. + + + + This can then look as shown below: + Example directory structure + + + + + + + autoconf সহযোগে একত্রিত করার প্রণালী + + এই কাজ অতিমাত্রায় সহজ! configure.ac স্ক্রিপ্টের মধ্যে একটি পংক্তি যোগ করুন। + + + autoconf সহযোগে একত্রিত করার প্রণালী + + + + + + This will require all developers to have gtk-doc installed. If it is + okay for your project to have optional api-doc build setup, you can + solve this as below. Keep it as is, as gtkdocize is looking for + GTK_DOC_CHECK at the start of a line. + Keep gtk-doc optional + + + + + + The first argument is used to check for the gtkdocversion at configure time. + The 2nd, optional argument is used by gtkdocize. + The GTK_DOC_CHECK macro also adds several configure switches: + + + --with-html-dir=PATH : ইনস্টল করা ডকুমেন্টের পাথ + --enable-gtk-doc : use gtk-doc to build documentation [default=no] + --enable-gtk-doc-html : build documentation in html format [default=yes] + --enable-gtk-doc-pdf : build documentation in pdf format [default=no] + + + + + GTK-Doc is disabled by default! Remember to pass the option + to the next + configure run. Otherwise pregenerated documentation is installed + (which makes sense for users but not for developers). + + + + + Furthermore it is recommended that you have the following line inside + your configure.ac script. + This allows gtkdocize to automatically copy the + macro definition for GTK_DOC_CHECK to your project. + + + + gtkdocize-র প্রস্তুতি + + + + + After all changes to configure.ac are made, update + the configure file. This can be done by re-running + autoreconf -i or autogen.sh. + + + + + automake সহযোগে একত্রিত করার প্রণালী + + + First copy the Makefile.am from the + examples sub directory of the + gtkdoc-sources + to your project's API documentation directory ( + ./docs/reference/<package>). + A local copy should be available under e.g. + /usr/share/doc/gtk-doc-tools/examples/Makefile.am. + If you have multiple doc-packages repeat this for each one. + + + + The next step is to edit the settings inside the Makefile.am. + All the settings have a comment above that describes their purpose. + Most settings are extra flags passed to the respective tools. Every tool + has a variable of the form . + All the tools support to list the supported + parameters. + + + + + + + + autogen সহযোগে একত্রিত করার প্রণালী + + + Most projects will have an autogen.sh script to + setup the build infrastructure after a checkout from version control + system (such as cvs/svn/git). GTK-Doc comes with a tool called + gtkdocize which can be used in such a script. + It should be run before autoheader, automake or autoconf. + + + + autogen.sh থেকে gtkdocsize সঞ্চালনার প্রণালী + + + + + + When running gtkdocize it copies + gtk-doc.make to your project root (or any directory + specified by the option). + It also checks you configure script for the GTK_DOC_CHECK + invocation. This macro can be used to pass extra parameters to + gtkdocize. + + + + Historically GTK-Doc was generating template files where developers entered the docs. + This turned out to be not so good (e.g. the need for having generated + files under version control). + Since GTK-Doc 1.9 the tools can get all the information from source comments + and thus the templates can be avoided. We encourage people to keep + documentation in the code. gtkdocize supports now + a option that chooses a makefile that skips + tmpl usage totally. Besides adding the option directly to the command + invocation, they can be added also to an environment variable called GTKDOCIZE_FLAGS + or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. + If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, + please remove the directory (e.g. from version control system). + + + + + doc build সঞ্চালনার প্রণালী + + + After the previous steps it's time to run the build. First we need to + rerun autogen.sh. If this script runs configure for + you, then give it the option. + Otherwise manually run configure with this option + afterwards. + + + The first make run generates several additional files in the doc-directories. + The important ones are: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + doc build সঞ্চালনার প্রণালী + + + + + Now you can point your browser to docs/reference/<package>/index.html. + Yes, it's a bit disappointing still. But hang-on, during the next chapter we + tell you how to fill the pages with life. + + + + + ভার্সান কনট্রোল সিস্টেমের সাথে একত্রিত করার প্রণালী + + + As a rule of thumb, it's the files you edit which should go under + version control. For typical projects it's these files: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt, + Makefile.am. + + + Files in the xml/ and html/ + directories should not go under version control. Neither should any of + the .stamp files. + + + + + Integration with plain makefiles or other build systems + + + In the case one does not want to use automake and therefore + gtk-doc.mak one will need to call the gtkdoc tools + in the right order in own makefiles (or other build tools). + + + + Documentation build steps + +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir= +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html +]]> + + + + + One will need to look at the Makefile.am and + gtk-doc.mak to pick the extra options needed. + + + + + Integration with CMake build systems + + + GTK-Doc now provides a GtkDocConfig.cmake module + (and the corresponding GtkDocConfigVersion.cmake + module). This provides a gtk_doc_add_module + command that you can set in your CMakeLists.txt + file. + + + + The following example shows how to use this command. + Example of using GTK-Doc from CMake + + + + + + + + কোডের জন্য সহায়ক নথি লেখার প্রণালী + + + GTK-Doc uses source code comment with a special syntax for code documentation. + Further it retrieves information about your project structure from other + sources. During the next section you will find all information about the + syntax of the comments. + + + + নথিপত্রের স্থাপনা + + In the past most documentation had to be filled into files residing + inside the tmpl directory. This has the + disadvantages that the information is often not updated and also that + the file tend to cause conflicts with version control systems. + + + The avoid the aforementioned problems we suggest putting the + documentation inside the sources. This manual will only describe this + way of documenting code. + + + + + The scanner can handle the majority of C headers fine. In the case of + receiving warnings from the scanner that look like a special case, one can + hint GTK-Doc to skip over them. + GTK-Doc comment block + + + + + + Limitations + + Note, that GTK-Doc's supports + #ifndef(__GTK_DOC_IGNORE__) but not + #if !defined(__GTK_DOC_IGNORE__) or other combinations. + + + + + + + নথিপত্রের মধ্যে বিবৃতি + + + A multiline comment that starts with an additional '*' marks a + documentation block that will be processed by the GTK-Doc tools. + GTK-Doc comment block + + + + + + The 'identifier' is one line with the name of the item the comment is + related to. The syntax differs a little depending on the item. + (TODO add table showing identifiers) + + + + The 'documentation' block is also different for each symbol type. Symbol + types that get parameters such as functions or macros have the parameter + description first followed by a blank line (just a '*'). + Afterwards follows the detailed description. All lines (outside program + listings and CDATA sections) just containing a ' *' (blank-asterisk) are + converted to paragraph breaks. + If you don't want a paragraph break, change that into ' * ' + (blank-asterisk-blank-blank). This is useful in preformatted text (code + listings). + + + + + When documenting code, describe two aspects: + + + + What it is: The name for a class or function can sometimes + be misleading for people coming from a different background. + + + + + What it does: Tell about common uses. Put it in relation + with the other API. + + + + + + + + One advantage of hyper-text over plain-text is the ability to have links + in the document. Writing the correct markup for a link can be tedious + though. GTK-Doc comes to help by providing several useful abbreviations. + + + + Use function() to refer to functions or macros which take arguments. + + + + + Use @param to refer to parameters. Also use this when referring to + parameters of other functions, related to the one being described. + + + + + Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS. + + + + + Use #symbol to refer to other types of symbol, e.g. structs and + enums and macros which don't take arguments. + + + + + Use #Object::signal to refer to a GObject signal. + + + + + Use #Object:property to refer to a GObject property. + + + + + Use #Struct.field to refer to a field inside a structure and + #GObjectClass.foo_bar() to refer to a vmethod. + + + + + + + নথির মধ্যে কিছু বিশেষ অক্ষর যেমন '<', '>', '()', '@', '%', অথবা '#' প্রভৃতি ব্যবহার করতে ইচ্ছুক হলে GTK-Doc দ্বারা এইগুলিকে পরিবর্তন করতে প্রতিরোধ করার জন্য যথাক্রমে "&lt;", "&gt;", "&lpar;", "&rpar;", "&commat;", "&percnt;" and "&num;" XML এনটিটিগুলি ব্যবহার করুন অথবা ব্যাক-স্ল্যাশ চিহ্ন '\' সহযোগে এস্কেপ করানো আবশ্যক। + + + + DocBook can do more than just links. One can also have lists, + examples, headings, and images. As of version 1.20, the + preferred way is to use a subset of the basic text formatting + syntax called + Markdown. + On older GTK-Doc versions any documentation that includes + Markdown will be rendered as is. For example, list items will + appear as lines starting with a dash. + + + + While markdown is now preferred one can mix both. One limitation here is + that one can use docbook xml within markdown, but markdown within + docbook xml is not supported. + + + + In older GTK-Doc releases, if you need support for additional + formatting, you would need to enable the usage of docbook + XML tags inside doc-comments by putting + (or ) in the variable + MKDB_OPTIONS inside Makefile.am. + + + + GTK-Doc comment block using Markdown + + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ +]]> + + + + + More examples of what markdown tags are supported can be found in the + GTK+ Documentation Markdown Syntax Reference. + + + + + As already mentioned earlier GTK-Doc is for documenting public API. Thus + one cannot write documentation for static symbols. Nevertheless it is good + to comment those symbols too. This helps other to understand you code. + Therefore we recommend to comment these using normal comments (without the + 2nd '*' in the first line). + If later the function needs to be made public, all one needs to do is to + add another '*' in the comment block and insert the symbol name at the + right place inside the sections file. + + + + + + নথিপত্রের বিভাগ + + + Each section of the documentation contains information about one class + or module. To introduce the component one can write a section block. + The short description is also used inside the table of contents. + All the @fields are optional. + + + + বিভাগ কমেন্ট ব্লক + + + + + + + SECTION:<name> + + + The name links the section documentation to the respective part in + the <package>-sections.txt file. The + name given here should match the <FILE> tag in the + <package>-sections.txt file. + + + + + @short_description + + এক পংক্তি দ্বারা উল্লিখিত বিভাগের বিবরণ, সূচিপত্রের লিংকের পরে ও বিভাগের পৃষ্ঠার উপরে এই বিবরণ পরে প্রদর্শন করা হবে। + + + + @title + + + The section title defaults to <name> from the SECTION + declaration. It can be overridden with the @title field. + + + + + @section_id + + + Overrides the use of title as a section identifier. For GObjects + the <title> is used as a section_id and for other sections + it is <MODULE>-<title>. + + + + + @see_also + + + A list of symbols that are related to this section. + + + + + @stability + + + An informal description of the stability level this API has. + We recommend the use of one of these terms: + + + + Stable + - The intention of a Stable interface is to enable arbitrary + third parties to develop applications to these interfaces, + release them, and have confidence that they will run on all + minor releases of the product (after the one in which the + interface was introduced, and within the same major release). + Even at a major release, incompatible changes are expected + to be rare, and to have strong justifications. + + + + + Unstable + - Unstable interfaces are experimental or transitional. + They are typically used to give outside developers early + access to new or rapidly changing technology, or to provide + an interim solution to a problem where a more general + solution is anticipated. + No claims are made about either source or binary + compatibility from one minor release to the next. + + + + + Private + - An interface that can be used within the GNOME stack + itself, but that is not documented for end-users. Such + functions should only be used in specified and documented + ways. + + + + + Internal + - An interface that is internal to a module and does not + require end-user documentation. Functions that are + undocumented are assumed to be Internal. + + + + + + + + @include + + + The #include files to show in the section + synopsis (a comma separated list), overriding the global + value from the section + file or command line. This item is optional. + + + + + @image + + + The image to display at the top of the reference page for this + section. This will often be some sort of a diagram to illustrate + the visual appearance of a class or a diagram of its relationship + to other classes. This item is optional. + + + + + + + + To avoid unnecessary recompilation after doc-changes put the section + docs into the c-source where possible. + + + + + + + নথিপত্রের সংকেত + + + Each symbol (function, macro, struct, enum, signal and property) is + documented in a separate block. The block is best placed close to the + definition of the symbols so that it is easy to keep them in sync. + Thus functions are usually documented in the c-source and macros, + structs and enums in the header file. + + + সাধারণ ট্যাগ + + + You can add versioning information to all documentation elements to tell + when an API was introduced, or when it was deprecated. + + + সংস্করণ সংক্রান্ত ট্যাগ + প্রারম্ভ: + + API-টি কোডের কোন সংস্করণ থেকে উপলব্ধ রয়েছে সেটির বিবরণ। + + + অবচিত: + + উল্লিখিত ফাংশান ব্যবহার না করার চিহ্নকারী অনুচ্ছেদ। এই বিবরণের সাহায্যে পাঠাকদেরকে নতুন API নির্দেশ করা হবে। + + + + + + You can also add stability information to all documentation elements + to indicate whether API stability is guaranteed for them for all + future minor releases of the project. + + + + The default stability level for all documentation elements can be set + by passing the argument to + gtkdoc-mkdb with one of the values below. + + + Stability Tags + Stability: Stable + + + Mark the element as stable. This is for public APIs which are + guaranteed to remain stable for all future minor releases of the + project. + + + + Stability: Unstable + + + Mark the element as unstable. This is for public APIs which are + released as a preview before being stabilised. + + + + Stability: Private + + + Mark the element as private. This is for interfaces which can be + used by tightly coupled modules, but not by arbitrary third + parties. + + + + + + সাধারণ ট্যাগ + + + + + Annotations + + + Documentation blocks can contain annotation-tags. These tags will be + rendered with tooltips describing their meaning. The tags are used by + gobject-introspection to generate language bindings. A detailed list + of the supported tags can be found on + the wiki. + + + Annotations + + + + + ফাংশান কমেন্টের ব্লক + + + Please remember to: + + + + Document whether returned objects, lists, strings, etc, should be + freed/unrefed/released. + + + + + Document whether parameters can be NULL, and what happens if they are. + + + + + Mention interesting pre-conditions and post-conditions where appropriate. + + + + + + + Gtk-doc assumes all symbols (macros, functions) starting with '_' are + private. They are treated like static functions. + + + ফাংশান কমেন্টের ব্লক + + + + ফাংশান সংক্রান্ত ট্যাগ + প্রাপ্ত মান: + + প্রাপ্ত ফলাফলের বর্ণনা উপলব্ধকারী অনুচ্ছেদ। + + + @...: + + + In case the function has variadic arguments, you should use this + tag (@Varargs: does also work for historic reasons). + + + + + + + + Property কমেন্টের ব্লক + + Property কমেন্টের ব্লক + + + + + + Signal কমেন্টের ব্লক + + + Please remember to: + + + + Document when the signal is emitted and whether it is emitted before + or after other signals. + + + + + Document what an application might do in the signal handler. + + + + + + Signal কমেন্টের ব্লক + + + + + + Struct কমেন্টের ব্লক + Struct কমেন্টের ব্লক + + + + + Use /*< private >*/ before the private struct fields + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + If the first field is "g_iface", "parent_instance" or "parent_class" + it will be considered private automatically and doesn't need to be + mentioned in the comment block. + + + + Struct comment blocks can also be used for GObjects and GObjectClasses. + It is usually a good idea to add a comment block for a class, if it has + vmethods (as this is how they can be documented). For the GObject + itself one can use the related section docs, having a separate block + for the instance struct would be useful if the instance has public + fields. One disadvantage here is that this creates two index entries + of the same name (the structure and the section). + + + + + Enum কমেন্টের ব্লক + Enum কমেন্টের ব্লক + */ + SOMETHING_COUNT +} Something; +]]> + + + + Use /*< private >*/ before the private enum values + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + + + + + Inline program documentation + + You can document programs and their commandline interface using inline + documentation. + + + + Tags + + PROGRAM + + + + Defines the start of a program documentation. + + + + + + @short_description: + + + Defines a short description of the program. (Optional) + + + + + + @synopsis: + + + Defines the arguments, or list of arguments that the program can take. + (Optional) + + + + + + @see_also: + + + See Also manual page section. (Optional) + + + + + + @arg: + + + Argument(s) passed to the program and their description. (Optional) + + + + + + Description: + + + A longer description of the program. + + + + + + প্রাপ্ত মান: + + + Specificy what value(s) the program returns. (Optional) + + + + + + + + Example of program documentation. + Program documentation block + + + + + + + + সুবিধাজনক DocBook ট্যাগ + + কোড নথিভুক্ত করার সময় সহায়ক কিছু DocBook ট্যাগ এইখানে উল্লেখ করা হল। + + + To link to another section in the GTK docs: + + + Hash Tables +]]> + + The linkend is the SGML/XML id on the top item of the page you want to link to. + For most pages this is currently the part ("gtk", "gdk", "glib") and then + the page title ("Hash Tables"). For widgets it is just the class name. + Spaces and underscores are converted to '-' to conform to SGML/XML. + + + + To refer to an external function, e.g. a standard C function: + + ... +]]> + + + + + To include example code: + + + Using a GHashTable. + + ... + + +]]> + + or possibly this, for very short code fragments which don't need a title: + + + + ... + + +]]> + + For the latter GTK-Doc also supports an abbreviation: + + + + + To include bulleted lists: + + + + + ... + + + + + ... + + + +]]> + + + + + To include a note which stands out from the text: + + + + Make sure you free the data after use. + + +]]> + + + + + To refer to a type: + + unsigned char +]]> + + + + + To refer to an external structure (not one described in the GTK docs): + + XFontStruct +]]> + + + + + To refer to a field of a structure: + + len +]]> + + + + + To refer to a class name, we could possibly use: + + GtkWidget +]]> + + but you'll probably be using #GtkWidget instead (to automatically create + a link to the GtkWidget page - see the abbreviations). + + + + To emphasize text: + + This is important +]]> + + + + + For filenames use: + + /home/user/documents +]]> + + + + + To refer to keys use: + + ControlL +]]> + + + + + + + + Filling the extra files + + + There are a couple of extra files, that need to be maintained along with + the inline source code comments: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + + Editing the types file + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Example types file snippet + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + + Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. + Just add "--rebuild-types" to SCAN_OPTIONS in Makefile.am. If you + use this approach you should not dist the types file nor have it under version control. + + + + + + প্রধান নথি সম্পাদনা + + + GTK-Doc produces documentation in DocBook SGML/XML. When processing the + inline source comments, the GTK-Doc tools generate one documentation + page per class or module as a separate file. The master document + includes them and place them in an order. + + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + + Do not create tutorials as extra documents. Just write extra chapters. + The benefit of directly embedding the tutorial for your library into + the API documentation is that it is easy to link for the tutorial to + symbol documentation. Apart chances are higher that the tutorial gets + updates along with the library. + + + + + So what are the things to change inside the master document? For a start + is only a little. There are some placeholders (text in square brackets) + there which you should take care of. + + + + প্রধা নথির হেডার + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + বিভাগের ফাইল সম্পাদনা + + + The section file is used to organise the documentation output by + GTK-Doc. Here one specifies which symbol belongs to which module or + class and control the visibility (public or private). + + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + + The <TITLE> ... </TITLE> tag is used to specify the title of + the section. It is only useful before the templates (if used) are + initially created, since the title set in the template file overrides + this. Also if one uses SECTION comment in the sources, this is obsolete. + + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + + You can also use <INCLUDE> ... </INCLUDE> to specify the + #include files which are shown in the synopsis sections. + It contains a comma-separate list of #include files, without the angle + brackets. If you set it outside of any sections, it acts for all + sections until the end of the file. If you set it within a section, it + only applies to that section. + + +
    + +
    + + + ফলাফল নিয়ন্ত্রণের প্রণালী + + + A GTK-Doc run generates report files inside the documentation directory. + The generated files are named: + <package>-undocumented.txt, + <package>-undeclared.txt and + <package>-unused.txt. + All those are plain text files that can be viewed and postprocessed easily. + + + + The <package>-undocumented.txt file starts with + the documentation coverage summary. Below are two sections divided by + blank lines. The first section lists undocumented or incomplete symbols. + The second section does the same for section docs. Incomplete entries are + those, which have documentation, but where e.g. a new parameter has been + added. + + + + The <package>-undeclared.txt file lists symbols + given in the <package>-sections.txt but not + found in the sources. Check if they have been removed or if they are + misspelled. + + + + The <package>-unused.txt file lists symbol + names, where the GTK-Doc scanner has found documentation, but does not + know where to put it. This means that the symbol has not yet been added to + the <package>-sections.txt file. + + + + + Enable or add the line in Makefile.am. + If at least GTK-Doc 1.9 is installed, this will run sanity checks during + make check run. + + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documenting other interfaces + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + Command line options and man pages + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + Document the tool + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + Adding the extra configure check + + + Extra configure checks + + + + + + + Adding the extra makefile rules + + + Extra configure checks + + + + + + + + DBus interfaces + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + Frequently asked questions + + + + প্রশ্ন + উত্তর + + কোনো ক্লাস অনুক্রম নেই। + + The objects xxx_get_type() function has not been + entered into the <package>.types file. + + + + তথাপি ক্লাসের কোনো অনুক্রম নেই। + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + এখনো কোনো ক্লাস অনুক্রম নেই। + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + সংকেতের ইন্ডেক্স অনুপস্থিত। + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + সিম্বলগুলি doc-section-র সাথে যুক্ত নয়। + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + নথির মধ্যে নতুন শ্রেণী উপস্থিত নেই। + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + নথির মধ্যে নতুন সিম্বল অন্তর্ভুক্ত নয়। + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + ক্লাস অনুক্রম থেকে টাইপ অনুপস্থিত। + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + সকল gobject অ্যানোটেশনের জন্য foldoc লিংক পাওয়া গিয়েছে। + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + Parameter described in source code comment block but does not exist + Check if the prototype in the header has different parameter names as in the source. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + Element typename in namespace '' encountered in para, but no template matches. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    + + + + + + + + +
    diff --git a/help/manual/cs/cs.po b/help/manual/cs/cs.po new file mode 100644 index 0000000..94983c6 --- /dev/null +++ b/help/manual/cs/cs.po @@ -0,0 +1,5230 @@ +# Czech translation of gtk-doc. +# Copyright (C) 2009 gtk-doc's COPYRIGHT HOLDER +# This file is distributed under the same license as the gtk-doc package. +# Marek Černocký , 2009, 2015, 2016, 2017, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc master\n" +"POT-Creation-Date: 2017-12-28 10:31+0000\n" +"PO-Revision-Date: 2018-03-03 07:23+0100\n" +"Last-Translator: Marek Černocký \n" +"Language-Team: čeština \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Gtranslator 2.91.7\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "Marek Černocký " + +#. (itstool) path: bookinfo/title +#: C/index.docbook:12 +msgid "GTK-Doc Manual" +msgstr "Příručka ke GTK-Doc" + +#. (itstool) path: bookinfo/edition +#: C/index.docbook:13 +msgid "1.24.1" +msgstr "1.24.1" + +#. (itstool) path: abstract/para +#: C/index.docbook:14 +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "Uživatelská příručka pro vývojáře s instrukcemi k používání GTK-Doc." + +#. (itstool) path: authorgroup/author +#: C/index.docbook:16 +msgid "" +"Chris Lyttle " +"
    chris@wilddev.net
    " +msgstr "" +"Chris Lyttle " +"
    chris@wilddev.net
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:25 +msgid "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " +msgstr "" +"Dan Mueth " +"
    d-mueth@uchicago.edu
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:34 +msgid "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " +msgstr "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " + +#. (itstool) path: publisher/publishername +#: C/index.docbook:45 +msgid "GTK-Doc project" +msgstr "Projekt GTK-Doc" + +#. (itstool) path: bookinfo/publisher +#: C/index.docbook:44 +msgid "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " +msgstr "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:48 +msgid "2000, 2005 Dan Mueth and Chris Lyttle" +msgstr "2000, 2005 Dan Mueth and Chris Lyttle" + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:52 +msgid "2007-2015 Stefan Sauer (Kost)" +msgstr "2007-2015 Stefan Sauer (Kost)" + +#. (itstool) path: legalnotice/para +#: C/index.docbook:65 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, " +"Version 1.1 or any later version published by the Free Software Foundation " +"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A " +"copy of the license is included." +msgstr "" +"Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek " +"GNU Free Documentation License ve verzi 1.1 nebo v " +"jakékoli další verzi vydané nadací Free Software Foundation, s neměnnými " +"oddíly, bez textů předních desek a bez textů zadních desek. Kopie licence je " +"součástí." + +#. (itstool) path: legalnotice/para +#: C/index.docbook:73 +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and those trademarks are made aware to the members of the " +"GNOME Documentation Project, the names have been printed in caps or initial " +"caps." +msgstr "" +"Mnoho názvů použitých firmami k zviditelnění produktů nebo služeb jsou " +"ochranné známky. Na místech, kde jsou tyto názvy v dokumentaci použity a " +"členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se " +"jedná o ochrannou známku, je takovýto název psán velkými písmeny celý nebo s " +"velkým písmenem na začátku." + +#. (itstool) path: revhistory/revision +#: C/index.docbook:83 +msgid "" +"1.27.1 07 Dec 2017 ss development" +msgstr "" +"1.27.1 7. prosince 2017 " +"ss vývoj" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:89 +msgid "" +"1.27 07 Dec 2017 ss fine tuning of the python port" +msgstr "" +"1.27 7. prosince 2017 " +"ss detailní vyladění portu v " +"jazyce Python" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:95 +msgid "" +"1.26 11 Aug 2017 ss port all tools from perl/bash to python" +msgstr "" +"1.26 11. srpen 2017 ss přenesení všech nástrojů z jazyků Perl/Bash do " +"jazyka Python" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:101 +msgid "" +"1.25 21 March 2016 ss bug fixes, test cleanups" +msgstr "" +"1.25 21. březen 2016 ss opravy chyb, pročištění testů" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:107 +msgid "" +"1.24 29 May 2015 ss bug fix" +msgstr "" +"1.24 29. května 2015 ss oprava chyby" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:113 +msgid "" +"1.23 17 May 2015 ss bug fix" +msgstr "" +"1.23 17. květen 2015 ss oprava chyby" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:119 +msgid "" +"1.22 07 May 2015 ss bug fixes, dropping deprecated features" +msgstr "" +"1.22 07. květen 2015 ss oprava chyb, odstranění zastaralých věcí" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:125 +msgid "" +"1.21 17 Jul 2014 ss bug fixes, dropping deprecated features" +msgstr "" +"1.21 17. červenec 2014 " +"ss oprava chyb, odstranění " +"zastaralých věcí" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:131 +msgid "" +"1.20 16 Feb 2014 ss bug fixes, markdown support, style improvements" +msgstr "" +"1.20 16. únor 2014 ss opravy chyb, podpora značkovacího jazyka, " +"vylepšení stylů" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:137 +msgid "" +"1.19 05 Jun 2013 ss bug fixes" +msgstr "" +"1.19 05. červen 2013 ss opravy chyb" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:143 +msgid "" +"1.18 14 Sep 2011 ss bug fixes, speedups, markdown support" +msgstr "" +"1.18 14. září 2011 ss opravy chyb, zrychlení, podpora značkovacího " +"jazyka" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:149 +msgid "" +"1.17 26 Feb 2011 sk urgent bug fix update" +msgstr "" +"1.17 26. únor 2011 sk aktualizace kvůli neodkladné opravě chyby" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:155 +msgid "" +"1.16 14 Jan 2011 sk bugfixes, layout improvements" +msgstr "" +"1.16 14. leden 2011 sk opravy chyb, vylepšení vzhledu" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:161 +msgid "" +"1.15 21 May 2010 sk bug and regression fixes" +msgstr "" +"1.15 21. květen 2010 sk opravy chyb a regresí" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:167 +msgid "" +"1.14 28 March 2010 sk bugfixes and performance improvements" +msgstr "" +"1.14 28. březen 2010 sk opravy chyb a vylepšení výkonu" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:173 +msgid "" +"1.13 18 December 2009 " +"sk broken tarball update" +msgstr "" +"1.13 18. prosinec 2009 " +"sk aktualizace poškozeného " +"balíčku" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:179 +msgid "" +"1.12 18 December 2009 " +"sk new tool features and " +"bugfixes" +msgstr "" +"1.12 18. prosinec 2009 " +"sk nové funkce nástroje a opravy " +"chyb" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:185 +msgid "" +"1.11 16 November 2008 " +"mal GNOME doc-utils migration" +msgstr "" +"1.11 16. listopad 2008 " +"mal přechod na doc-utils z " +"GNOME" + +#. (itstool) path: chapter/title +#: C/index.docbook:198 +msgid "Introduction" +msgstr "Úvod" + +#. (itstool) path: chapter/para +#: C/index.docbook:200 +msgid "" +"This chapter introduces GTK-Doc and gives an overview of what it is and how " +"it is used." +msgstr "" +"Tato kapitola je úvodem do GTK-Doc a podává přehled o tom, co to je a jak to " +"použít." + +#. (itstool) path: sect1/title +#: C/index.docbook:206 +msgid "What is GTK-Doc?" +msgstr "Co je to GTK-Doc?" + +#. (itstool) path: sect1/para +#: C/index.docbook:208 +msgid "" +"GTK-Doc is used to document C code. It is typically used to document the " +"public API of libraries, such as the GTK+ and GNOME libraries. But it can " +"also be used to document application code." +msgstr "" +"GTK-Doc se používá k dokumentaci kódu jazyka C. Typické použití je pro " +"dokumentaci veřejného API knihoven, jako jsou knihovny GTK+ a GNOME. Lze jej " +"ale použít i k dokumentaci aplikačního kódu." + +#. (itstool) path: sect1/title +#: C/index.docbook:216 +msgid "How Does GTK-Doc Work?" +msgstr "Jak GTK-Doc pracuje?" + +#. (itstool) path: sect1/para +#: C/index.docbook:218 +msgid "" +"GTK-Doc works by using documentation of functions placed inside the source " +"files in specially-formatted comment blocks, or documentation added to the " +"template files which GTK-Doc uses (though note that GTK-Doc will only " +"document functions that are declared in header files; it won't produce " +"output for static functions)." +msgstr "" +"GTK-Doc pracuje na základě dokumentace funkcí umístěné přímo v souborech se " +"zdrojovým kódem ve speciálně formátovaných komentářových blocích, nebo " +"dokumentace přidané do souborů šablon, které GTK-Doc používá (ačkoliv je " +"nutno poznamenat, že GTK-Doc dokumentuje pouze funkce, které jsou " +"deklarované v hlavičkových souborech; pro statické funkce žádný výstup " +"nevytváří)." + +#. (itstool) path: sect1/para +#: C/index.docbook:225 +msgid "" +"GTK-Doc consists of a number of python scripts, each performing a different " +"step in the process." +msgstr "" +"GTK-Doc sestává z řady skriptů v jazyce Python, z nichž každý provádí jinou " +"část procesu." + +#. (itstool) path: sect1/para +#: C/index.docbook:230 +msgid "There are 5 main steps in the process:" +msgstr "Celý proces se skládá z pěti hlavních kroků:" + +#. (itstool) path: listitem/para +#: C/index.docbook:237 +msgid "" +"Writing the documentation. The author fills in the " +"source files with the documentation for each function, macro, union etc. (In " +"the past information was entered in generated template files, which is not " +"recommended anymore)." +msgstr "" +"Psaní dokumentace. Autor doplní soubory se zdrojovým " +"kódem dokumentací pro každou funkci, makro, strukturu atd. (Dříve se " +"informace vkládaly do souborů s vygenerovanými šablonami, což se již " +"nedoporučuje)." + +#. (itstool) path: listitem/para +#: C/index.docbook:247 +msgid "" +"Gathering information about the code. " +"gtkdoc-scan scans the header files of the code " +"looking for declarations of functions, macros, enums, structs, and unions. " +"It creates the file <module>-decl-list.txt " +"containing a list of the declarations, placing them into sections according " +"to which header file they are in. On the first run this file is copied to " +"<module>-sections.txt. The author can rearrange " +"the sections, and the order of the declarations within them, to produce the " +"final desired order. The second file it generates is <" +"module>-decl.txt. This file contains the full declarations " +"found by the scanner. If for some reason one would like some symbols to show " +"up in the docs, where the full declaration cannot be found by the scanner or " +"the declaration should appear differently, one can place entities similar to " +"the ones in <module>-decl.txt into <" +"module>-overrides.txt." +msgstr "" +"Shromáždění informací o kódu. gtkdoc-scan projde hlavičkové soubory kódu a vyhledá při tom deklarace " +"funkcí, maker, výčtů, struktur a sjednocení. Tím se vytvoří soubor " +"<module>-decl-list.txt obsahující seznam " +"deklarací, které jsou rozdělené do oddílů podle hlavičkového souboru, ze " +"kterého pochází. Při prvním spuštění se tento soubor zkopíruje do " +"<module>-sections.txt. Autor může změnit " +"uspořádání oddílů a jejich pořadí v rámci deklarací tak, jak to požaduje ve " +"výsledku. Druhý soubor, který se vytvoří, je <module>-decl." +"txt. Tento soubor obsahuje úplné deklarace nalezené při " +"procházení. Pokud byste z nějakého důvodu chtěli v dokumentaci zahrnout " +"symbol, který při procházení nebyl nalezen, nebo jeho deklarace vypadá " +"jinak, můžete jej umístit podobně jako v <module>-decl.txt do <module>-overrides.txt." + +#. (itstool) path: listitem/para +#: C/index.docbook:264 +msgid "" +"gtkdoc-scangobj can also be used to dynamically " +"query a library about any GObject subclasses it exports. It saves " +"information about each object's position in the class hierarchy and about " +"any GObject properties and signals it provides." +msgstr "" +"Dá se také použít gtkdoc-scanobj k dynamickým " +"dotazům do knihoven na podtřídy objektu GObject, které exportují. Tím se " +"uloží informace o pozici každého objektu v hierarchii tříd a o argumentech a " +"signálech objektu GObject, které poskytují." + +#. (itstool) path: listitem/para +#: C/index.docbook:270 +msgid "" +"gtkdoc-scanobj should not be used anymore. It was " +"needed in the past when GObject was still GtkObject inside gtk+." +msgstr "" +"gtkdoc-scanobj by se ale již používat nemělo. " +"Bylo zapotřebí v minulosti, kdy byl GObject ještě GtkObject v rámci gtk+." + +#. (itstool) path: listitem/para +#: C/index.docbook:277 +msgid "" +"Generating the XML and HTML/PDF. gtkdoc-" +"mkdb turns the template files into XML files in the xml/ subdirectory. If the source code " +"contains documentation on functions, using the special comment blocks, it " +"gets merged in here. If there are no tmpl files used it only reads docs from " +"sources and introspection data." +msgstr "" +"Generování XML a HTML/PDF. gtkdoc-mkdb přemění soubory šablon na soubory XML v podsložce xml/. Pokud zdrojový kód obsahuje dokumentaci " +"funkcí za použití speciálních komentářových bloků, tak zde se sloučí. V " +"případě, že není použitý žádný soubor šablon, načte se dokumentace pouze ze " +"zdrojového kódu a introspektivních dat." + +#. (itstool) path: listitem/para +#: C/index.docbook:286 +msgid "" +"gtkdoc-mkhtml turns the XML files into HTML files " +"in the html/ subdirectory. Likewise " +"gtkdoc-mkpdf turns the XML files into a PDF " +"document called <package>.pdf." +msgstr "" +"gtkdoc-mkhtml převádí soubory XML na soubory HTML " +"v podsložce html/. Obdobně " +"gtkdoc-mkpdf převádí soubory XML na dokument PDF " +"nazvaný <balíček>.pdf." + +#. (itstool) path: listitem/para +#: C/index.docbook:292 +msgid "" +"Files in xml/ and html/ directories are always overwritten. One " +"should never edit them directly." +msgstr "" +"Soubory ve složkách xml/ a " +"html/ jsou vždy přepsány. Nikdy by " +"neměly být upravovány přímo." + +#. (itstool) path: listitem/para +#: C/index.docbook:300 +msgid "" +"Fixing up cross-references between documents. After " +"installing the HTML files, gtkdoc-fixxref can be " +"run to fix up any cross-references between separate documents. For example, " +"the GTK+ documentation contains many cross-references to types documented in " +"the GLib manual. When creating the source tarball for distribution, " +"gtkdoc-rebase turns all external links into web-" +"links. When installing distributed (pregenerated) docs the same application " +"will try to turn links back to local links (where those docs are installed)." +msgstr "" +"Opravy křížových odkazů mezi dokumenty. Po " +"nainstalování souborů HTML můžete spustit gtkdoc-fixxref, aby se opravily křížové odkazy mezi samostanými dokumenty. " +"Například dokumentace GTK+ obsahuje křížové odkazy na typy zdokumentované v " +"příručce GLib. Když vytváříte zdrojový balíček pro distribuci, " +"gtkdoc-rebase předělá všechny externí odkazy na " +"webové odkazy. Když se distribuovaná (předgenerovaná) dokumentace instaluje, " +"pokusí se tatáž aplikace předělat odkazy zpátky na místní odkazy (na " +"dokumenty, které jsou nainstalované)." + +#. (itstool) path: sect1/title +#: C/index.docbook:318 +msgid "Getting GTK-Doc" +msgstr "Jak získat GTK-Doc?" + +#. (itstool) path: sect2/title +#: C/index.docbook:321 +msgid "Requirements" +msgstr "Požadavky" + +#. (itstool) path: sect2/para +#: C/index.docbook:322 +msgid "" +"python 2/3 - the main scripts are written in python." +msgstr "Python 2/3 – hlavní skripty jsou v jazyce Python." + +#. (itstool) path: sect2/para +#: C/index.docbook:325 +msgid "" +"xsltproc - the xslt processor from libxslt xmlsoft.org/XSLT/" +msgstr "" +"xsltproc – procesor xslt z knihovny libxslt xmlsoft.org/XSLT/" + +#. (itstool) path: sect2/para +#: C/index.docbook:329 +msgid "" +"docbook-xsl - the docbook xsl stylesheets sourceforge.net/projects/docbook/files/docbook-xsl" +msgstr "" +"docbook-xsl – stylopisy XSL pro docbook sourceforge.net/projects/docbook/files/docbook-xsl" + +#. (itstool) path: sect2/para +#: C/index.docbook:333 +msgid "" +"One of source-highlight, highlight " +"or vim - optional - used for syntax highlighting of " +"examples" +msgstr "" +"Něco z source-highlight, highlight " +"nebo vim – (volitelné) používá se pro zvýraznění " +"syntaxe u příkladů" + +#. (itstool) path: sect1/title +#: C/index.docbook:341 +msgid "About GTK-Doc" +msgstr "O aplikaci GTK-Doc" + +#. (itstool) path: sect1/para +#: C/index.docbook:343 C/index.docbook:357 +msgid "(FIXME)" +msgstr "(DOPLNIT)" + +#. (itstool) path: sect1/para +#: C/index.docbook:347 +msgid "" +"(History, authors, web pages, mailing list, license, future plans, " +"comparison with other similar systems.)" +msgstr "" +"(Historie, autoři, webové stránky, poštovní konference, licence, plány do " +"budoucna, srovnání s ostatními podobnými systémy.)" + +#. (itstool) path: sect1/title +#: C/index.docbook:355 +msgid "About this Manual" +msgstr "O této příručce" + +#. (itstool) path: sect1/para +#: C/index.docbook:361 +msgid "(who it is meant for, where you can get it, license)" +msgstr "(k čemu je určená, kde ji můžete získat, licence)" + +#. (itstool) path: chapter/title +#: C/index.docbook:370 +msgid "Setting up your project" +msgstr "Nastavení vašeho projektu" + +#. (itstool) path: chapter/para +#: C/index.docbook:372 +msgid "" +"The next sections describe what steps to perform to integrate GTK-Doc into " +"your project. Theses sections assume we work on a project called 'meep'. " +"This project contains a library called 'libmeep' and an end-user app called " +"'meeper'. We also assume you will be using autoconf and automake. In " +"addition section plain makefiles or other " +"build systems will describe the basics needed to work in a different " +"build setup." +msgstr "" +"Následující oddíl popisuje kroky, které musíte provést, abyste integrovali " +"GTK-Doc do svého projektu. Tento oddíl předpokládá, že pracujeme na projektu " +"nazvaném „meep“. Tento projekt obsahuje knihovnu nazvanou „libmeep“ a " +"aplikaci pro koncového uživatele nazvanou „meeper“. Rovněž předpokládá, že " +"používáte autoconf a automake. V oddílu prosté soubory Makefile nebo jiné sestavovací systémy budou " +"popsány základní požadavky pro fungování s jinými postupy sestavování." + +#. (itstool) path: sect1/title +#: C/index.docbook:383 +msgid "Setting up a skeleton documentation" +msgstr "Nastavení kostry dokumentace" + +#. (itstool) path: sect1/para +#: C/index.docbook:385 +msgid "" +"Under your top-level project directory create folders called docs/reference " +"(this way you can also have docs/help for end-user documentation). It is " +"recommended to create another subdirectory with the name of the doc-package. " +"For packages with just one library this step is not necessary." +msgstr "" +"Pod nejvyšší složkou projektu vytvořte složky nazvané docs/reference (takto " +"můžete mít i docs/help s dokumentací pro koncového uživatele). Je doporučeno " +"vytvořit další podsložku s názvem balíčku s dokumentací. Pro balíčky s " +"jedinou knihovnou není tento krok nutný." + +#. (itstool) path: example/title +#: C/index.docbook:394 +msgid "Example directory structure" +msgstr "Příklad struktury složek" + +#. (itstool) path: example/programlisting +#: C/index.docbook:395 +#, no-wrap +msgid "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +msgstr "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:392 +msgid "This can then look as shown below: <_:example-1/>" +msgstr "Ve výsledku to může vypadat nějak takto: <_:example-1/>" + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:410 C/index.docbook:417 +msgid "Integration with autoconf" +msgstr "Integrace s autoconf" + +#. (itstool) path: sect1/para +#: C/index.docbook:412 +msgid "" +"Very easy! Just add one line to your configure.ac " +"script." +msgstr "" +"Velmi snadné! Stačí jen přidat jeden řádek do vašeho skriptu " +"configure.ac." + +#. (itstool) path: example/programlisting +#: C/index.docbook:418 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +msgstr "" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" + +#. (itstool) path: example/title +#: C/index.docbook:430 +msgid "Keep gtk-doc optional" +msgstr "Ponechání gtk-doc jako volitelného" + +#. (itstool) path: example/programlisting +#: C/index.docbook:431 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +msgstr "" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:425 +msgid "" +"This will require all developers to have gtk-doc installed. If it is okay " +"for your project to have optional api-doc build setup, you can solve this as " +"below. Keep it as is, as gtkdocize is looking for GTK_DOC_CHECK at the start of a line. <_:example-1/>" +msgstr "" +"Vyžaduje to, aby všichni vývojáři měli gtk-doc nainstalované. Jestli u " +"vašeho projektu stačí mít sestavení dokumentaci k API jen volitelné, můžete " +"to vyřešit podle vzoru níže. Použijte to přesně tak, jak je uvedeno, protože " +"gtkdocize hledá GTK_DOC_CHECK na začátku řádku. <_:" +"example-1/>" + +#. (itstool) path: sect1/para +#: C/index.docbook:442 +msgid "" +"The first argument is used to check for the gtkdocversion at configure time. " +"The 2nd, optional argument is used by gtkdocize. " +"The GTK_DOC_CHECK macro also adds several configure " +"switches:" +msgstr "" +"První argument se používá ke kontrole gtkdocversion v průběhu konfigurace. " +"Druhý, volitelný argument používá nástroj gtkdocize. Makro GTK_DOC_CHECK také přidává několik " +"přepínačů pro configure:" + +#. (itstool) path: listitem/para +#: C/index.docbook:448 +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=CESTA: cesta, kam se má dokumentace nainstalovat" + +#. (itstool) path: listitem/para +#: C/index.docbook:449 +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "" +"--enable-gtk-doc: použít k sestavení dokumentace gtk-doc [výchozí je ne]" + +#. (itstool) path: listitem/para +#: C/index.docbook:450 +msgid "" +"--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "" +"--enable-gtk-doc-html: sestavit dokumentaci ve formátu HTML [výchozí je ano]" + +#. (itstool) path: listitem/para +#: C/index.docbook:451 +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "" +"--enable-gtk-doc-pdf: sestavit dokumentaci ve formátu PDF [výchozí je ne]" + +#. (itstool) path: important/para +#: C/index.docbook:455 +msgid "" +"GTK-Doc is disabled by default! Remember to pass the option to the next configure run. " +"Otherwise pregenerated documentation is installed (which makes sense for " +"users but not for developers)." +msgstr "" +"GTK-Doc je standardně vypnuté! Nezapomeňte zadat přepínač „“ při dalším spuštění configure. Jinak " +"se nainstaluje předgenerovaná dokumentace (která může mít význam pro " +"uživatele, ale ne pro vývojáře)." + +#. (itstool) path: sect1/para +#: C/index.docbook:463 +msgid "" +"Furthermore it is recommended that you have the following line inside your " +"configure.ac script. This allows " +"gtkdocize to automatically copy the macro " +"definition for GTK_DOC_CHECK to your project." +msgstr "" +"Mimo to je ještě doporučeno, abyste měli ve skriptu configure.ac následující řádek. Umožní to gtkdocize " +"automaticky nakopírovat definice maker pro GTK_DOC_CHECK do vašeho projektu." + +#. (itstool) path: example/title +#: C/index.docbook:471 +msgid "Preparation for gtkdocize" +msgstr "Příprava pro gtkdocize" + +#. (itstool) path: example/programlisting +#: C/index.docbook:472 +#, no-wrap +msgid "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +msgstr "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:477 +msgid "" +"After all changes to configure.ac are made, update the " +"configure file. This can be done by re-running " +"autoreconf -i or autogen.sh." +msgstr "" +"Po provedení změn v configure.ac aktualizujte soubor " +"configure. To se dá udělat opětovným spuštěním " +"autoreconf -i nebo autogen.sh." + +#. (itstool) path: sect1/title +#: C/index.docbook:485 +msgid "Integration with automake" +msgstr "Integrace s automake" + +#. (itstool) path: sect1/para +#: C/index.docbook:487 +msgid "" +"First copy the Makefile.am from the examples sub directory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). A local copy " +"should be available under e.g. /usr/share/doc/gtk-doc-tools/" +"examples/Makefile.am. If you have multiple doc-packages repeat " +"this for each one." +msgstr "" +"Jako první nakopírujte Makefile.am z podsložky " +"examples ve složce gtkdoc-" +"sources do složky s dokumentací API svého projektu (./docs/reference/<package>). Místní kopie by " +"měla být k dispozici např. pod /usr/share/doc/gtk-doc-tools/" +"examples/Makefile.am. Pokud máte více balíčků s dokumentací, " +"opakujte tento krok pro každý z nich." + +#. (itstool) path: sect1/para +#: C/index.docbook:498 +msgid "" +"The next step is to edit the settings inside the Makefile.am. All the settings have a comment above that describes their " +"purpose. Most settings are extra flags passed to the respective tools. Every " +"tool has a variable of the form . " +"All the tools support to list the supported " +"parameters." +msgstr "" +"Dalším krokem je úprava nastavení v Makefile.am. " +"Všechna nastavení mají komentáře s popisem jejich účelu. Většina nastavení " +"má doplňující příznaky předávané do dotyčných nástrojů. Každý nástroj má " +"proměnnou ve formátu . Všechny " +"nástroje podporují pro vypsání podporovaných " +"přepínačů." + +#. (itstool) path: sect1/title +#: C/index.docbook:512 +msgid "Integration with autogen" +msgstr "Integrace s autogen" + +#. (itstool) path: sect1/para +#: C/index.docbook:514 +msgid "" +"Most projects will have an autogen.sh script to setup " +"the build infrastructure after a checkout from version control system (such " +"as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before " +"autoheader, automake or autoconf." +msgstr "" +"Většina projektů má skript autogen.sh, který po stažení " +"ze systému pro správu verzí (jako je CVS, SVN nebo Git), nastaví " +"infrastrukturu pro sestavení. GTK-Doc se dodává s nástrojem nazvaným " +"gtkdocize, který lze v takovémto skriptu využít. " +"Měl by být spuštěný před autoheader, automake nebo autoconf." + +#. (itstool) path: example/title +#: C/index.docbook:523 +msgid "Running gtkdocize from autogen.sh" +msgstr "Spuštění gtkdocize z autogen.sh" + +#. (itstool) path: example/programlisting +#: C/index.docbook:524 +#, no-wrap +msgid "" +"\n" +"gtkdocize || exit 1\n" +msgstr "" +"\n" +"gtkdocize || exit 1\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:530 +msgid "" +"When running gtkdocize it copies gtk-" +"doc.make to your project root (or any directory specified by the " +" option). It also checks you configure script for " +"the GTK_DOC_CHECK invocation. This macro can be used to " +"pass extra parameters to gtkdocize." +msgstr "" +"Když spustíte gtkdocize, tak nakopíruje do kořenové " +"složky vašeho projektu (nebo složky určené přepínačem
    + + + To include example code: + + + Using a GHashTable. + + ... + + +]]> + + or possibly this, for very short code fragments which don't need a title: + + + + ... + + +]]> + + For the latter GTK-Doc also supports an abbreviation: + + + + + To include bulleted lists: + + + + + ... + + + + + ... + + + +]]> + + + + + To include a note which stands out from the text: + + + + Make sure you free the data after use. + + +]]> + + + + + To refer to a type: + + unsigned char +]]> + + + + + To refer to an external structure (not one described in the GTK docs): + + XFontStruct +]]> + + + + + To refer to a field of a structure: + + len +]]> + + + + + To refer to a class name, we could possibly use: + + GtkWidget +]]> + + but you'll probably be using #GtkWidget instead (to automatically create + a link to the GtkWidget page - see the abbreviations). + + + + To emphasize text: + + This is important +]]> + + + + + For filenames use: + + /home/user/documents +]]> + + + + + To refer to keys use: + + ControlL +]]> + + + + + + + + Filling the extra files + + + There are a couple of extra files, that need to be maintained along with + the inline source code comments: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + + Editing the types file + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Example types file snippet + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + + Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. + Just add "--rebuild-types" to SCAN_OPTIONS in Makefile.am. If you + use this approach you should not dist the types file nor have it under version control. + + + + + + Editing the master document + + + GTK-Doc produces documentation in DocBook SGML/XML. When processing the + inline source comments, the GTK-Doc tools generate one documentation + page per class or module as a separate file. The master document + includes them and place them in an order. + + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + Do not create tutorials as extra documents. Just write extra chapters. The benefit of directly embedding the tutorial for your library into the API documentation is that it is easy to link for the tutorial to symbol documentation. Also, chances are higher that the tutorial gets updates along with the library. + + + So what are the things to change inside the master document? There are some placeholders (text in square brackets) there which you should take care of. + + + Master document header + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + Editing the section file + + + The section file is used to organise the documentation output by + GTK-Doc. Here one specifies which symbol belongs to which module or + class and control the visibility (public or private). + + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + + The <TITLE> ... </TITLE> tag is used to specify the title of + the section. It is only useful before the templates (if used) are + initially created, since the title set in the template file overrides + this. Also if one uses SECTION comment in the sources, this is obsolete. + + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + You can also use <INCLUDE> ... </INCLUDE> to specify the #include files which are shown in the synopsis sections. It contains a comma-separated list of #include files, without the angle brackets. If you set it outside of any sections, it acts for all sections until the end of the file. If you set it within a section, it only applies to that section. + +
    + +
    + + + Controlling the result + + + A GTK-Doc run generates report files inside the documentation directory. + The generated files are named: + <package>-undocumented.txt, + <package>-undeclared.txt and + <package>-unused.txt. + All those are plain text files that can be viewed and postprocessed easily. + + + The package-undocumented.txt file starts with the documentation coverage summary. Below are two sections divided by blank lines. The first section lists undocumented or incomplete symbols. The second section does the same for section docs. Incomplete entries are those, which have documentation, but where e.g. a new parameter has been added. + + + The <package>-undeclared.txt file lists symbols + given in the <package>-sections.txt but not + found in the sources. Check if they have been removed or if they are + misspelled. + + + + The <package>-unused.txt file lists symbol + names, where the GTK-Doc scanner has found documentation, but does not + know where to put it. This means that the symbol has not yet been added to + the <package>-sections.txt file. + + + + + Enable or add the line in Makefile.am. + If at least GTK-Doc 1.9 is installed, this will run sanity checks during + make check run. + + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documenting other interfaces + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + Command line options and man pages + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + Document the tool + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + Adding the extra configure check + + + Extra configure checks + + + + + + + Adding the extra makefile rules + + + Extra configure checks + + + + + + + + DBus interfaces + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + Frequently asked questions + + + + Question + Answer + + No class hierarchy. + + The objects xxx_get_type() function has not been + entered into the <package>.types file. + + + + Still no class hierarchy. + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + Damn, I still have no class hierarchy. + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + No symbol index. + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + Symbols are not linked to their doc-section. + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + A new class does not appear in the docs. + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + A new symbol does not appear in the docs. + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + A type is missing from the class hierarchy. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + I get foldoc links for all gobject annotations. + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + Parameter described in source code comment block but does not exist + Check if the prototype in the header has different parameter names to the source. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + Element typename in namespace '' encountered in para, but no template matches. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + Version 1.1, March 2000 + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation Licence + + + 0. PREAMBLE + The purpose of this Licence is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this Licence preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. + + This Licence is a kind of copyleft, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public Licence, which is a copyleft licence designed for free software. + + We have designed this Licence in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this Licence is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this Licence principally for works whose purpose is instruction or reference. + + + 1. APPLICABILITY AND DEFINITIONS + This Licence applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this Licence. The Document, below, refers to any such manual or work. Any member of the public is a licencee, and is addressed as you. + + A Modified Version of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. + + A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. + + The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this Licence. + + The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this Licence. + + A Transparent copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not Transparent is called Opaque. + + Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only. + + The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this Licence requires to appear in the title page. For works in formats which do not have any title page as such, Title Page means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. + + + + 2. VERBATIM COPYING + You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this Licence, the copyright notices, and the licence notice saying this Licence applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this Licence. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. + + You may also lend copies, under the same conditions stated above, and you may publicly display copies. + + + + 3. COPYING IN QUANTITY + If you publish printed copies of the Document numbering more than 100, and the Document's licence notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. + + If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. + + If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. + + + + 4. MODIFICATIONS + You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this Licence, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: + + + + + A + Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. + + + + + + B + List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). + + + + + + C + State on the Title Page the name of the publisher of the Modified Version, as the publisher. + + + + + + D + Preserve all the copyright notices of the Document. + + + + + + E + Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. + + + + + + F + Include, immediately after the copyright notices, a licence notice giving the public permission to use the Modified Version under the terms of this Licence, in the form shown in the Addendum below. + + + + + + G + Preserve in that licence notice the full lists of Invariant Sections and required Cover Texts given in the Document's licence notice. + + + + + + H + Include an unaltered copy of this Licence. + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the History section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. + + + + + + K + In any section entitled Acknowledgements or Dedications, preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. + + + + + + L + Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. + + + + + + M + Delete any section entitled Endorsements. Such a section may not be included in the Modified Version. + + + + + + N + Do not retitle any existing section as Endorsements or to conflict in title with any Invariant Section. + + + + + If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's licence notice. These titles must be distinct from any other section titles. + + You may add a section entitled Endorsements, provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organisation as the authoritative definition of a standard. + + You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this Licence give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version . + + + + 5. COMBINING DOCUMENTS + You may combine the Document with other documents released under this Licence, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its licence notice. + + The combined work need only contain one copy of this Licence, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the licence notice of the combined work. + + In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled History; likewise combine any sections entitled Acknowledgements, and any sections entitled Dedications. You must delete all sections entitled Endorsements. + + + + 6. COLLECTIONS OF DOCUMENTS + You may make a collection consisting of the Document and other documents released under this Licence, and replace the individual copies of this Licence in the various documents with a single copy that is included in the collection, provided that you follow the rules of this Licence for verbatim copying of each of the documents in all other respects. + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an aggregate, and this Licence does not apply to the other self-contained works thus compiled with the Document , on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. + + + + 8. TRANSLATION + Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this Licence provided that you also include the original English version of this Licence. In case of a disagreement between the translation and the original English version of this Licence, the original English version will prevail. + + + + 9. TERMINATION + You may not copy, modify, sublicence, or distribute the Document except as expressly provided for under this Licence. Any other attempt to copy, modify, sublicence or distribute the Document is void, and will automatically terminate your rights under this Licence. However, parties who have received copies, or rights, from you under this Licence will not have their licences terminated so long as such parties remain in full compliance. + + + + 10. FUTURE REVISIONS OF THIS LICENCE + The Free Software Foundation may publish new, revised versions of the GNU Free Documentation Licence 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. See http://www.gnu.org/copyleft/. + + Each version of the Licence is given a distinguishing version number. If the Document specifies that a particular numbered version of this Licence or any later version applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this Licence, you may choose any version ever published (not as a draft) by the Free Software Foundation. + + + + Addendum + To use this Licence in a document you have written, include a copy of the Licence in the document and put the following copyright and licence notices just after the title page: + +
    + Copyright YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation Licence, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the licence is included in the section entitled GNU Free Documentation Licence. +
    + + If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software licence, such as the GNU General Public Licence, to permit their use in free software. +
    +
    + + + + + + + + + diff --git a/help/manual/es/es.po b/help/manual/es/es.po new file mode 100644 index 0000000..d3b136f --- /dev/null +++ b/help/manual/es/es.po @@ -0,0 +1,6237 @@ +# translation of gtk-doc-help.master.po to Español +# Francisco Javier Fernandez Serrador , 2009, 2010 +# Jorge Gonzalez , 2009. +# Jorge González , 2009, 2010, 2011. +# +# Daniel Mustieles , 2011, 2012, 2013, 2014, 2015. , 2016, 2017, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc-help.master\n" +"POT-Creation-Date: 2017-12-28 10:31+0000\n" +"PO-Revision-Date: 2018-02-22 12:50+0100\n" +"Last-Translator: Daniel Mustieles \n" +"Language-Team: es \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gtranslator 2.91.6\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "" +"Daniel Mustieles , 2009 - 2017\n" +"Jorge González , 2009 - 2011\n" +"Francisco Javier F. Serrador , 2009, 2010" + +#. (itstool) path: bookinfo/title +#: C/index.docbook:12 +msgid "GTK-Doc Manual" +msgstr "Manual de GTK-Doc" + +#. (itstool) path: bookinfo/edition +#: C/index.docbook:13 +msgid "1.24.1" +msgstr "1.24.1" + +#. (itstool) path: abstract/para +#: C/index.docbook:14 +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "" +"Manual del usuario para desarrolladores con instrucciones del uso de GTK-Doc." + +#. (itstool) path: authorgroup/author +#: C/index.docbook:16 +msgid "" +"Chris Lyttle " +"
    chris@wilddev.net
    " +msgstr "" +"Chris Lyttle " +"
    chris@wilddev.net
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:25 +msgid "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " +msgstr "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:34 +msgid "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " +msgstr "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " + +#. (itstool) path: publisher/publishername +#: C/index.docbook:45 +msgid "GTK-Doc project" +msgstr "Proyecto GTK-Doc" + +#. (itstool) path: bookinfo/publisher +#: C/index.docbook:44 +msgid "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " +msgstr "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:48 +msgid "2000, 2005 Dan Mueth and Chris Lyttle" +msgstr "2000, 2005 Dan Mueth and Chris Lyttle" + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:52 +msgid "2007-2015 Stefan Sauer (Kost)" +msgstr "2007-2015 Stefan Sauer (Kost)" + +#. (itstool) path: legalnotice/para +#: C/index.docbook:65 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, " +"Version 1.1 or any later version published by the Free Software Foundation " +"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A " +"copy of the license is included." +msgstr "" +"Se concede autorización para copiar, distribuir o modificar este documento " +"según los términos de la GNU Free Documentation License, Versión 1.1, o cualquier otra versión posterior publicada por " +"Free Software Foundation sin secciones invariables, textos de portada ni " +"textos de contraportada. Se incluye una copia " +"de la licencia." + +#. (itstool) path: legalnotice/para +#: C/index.docbook:73 +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and those trademarks are made aware to the members of the " +"GNOME Documentation Project, the names have been printed in caps or initial " +"caps." +msgstr "" +"Muchos de los nombres usados por compañías para distinguir sus productos y " +"servicios se mencionan como marcas comerciales. Donde aparezcan dichos " +"nombres en cualquier documentación GNOME, y para que los miembros del " +"proyecto de documentación las reconozcan dichas marcas comerciales, dichos " +"nombres se imprimen en mayúsculas o iniciales mayúsculas." + +#. (itstool) path: revhistory/revision +#: C/index.docbook:83 +#| msgid "" +#| "1.27.1 07 Dec 2017 " +#| "ss developemnt" +msgid "" +"1.27.1 07 Dec 2017 ss development" +msgstr "" +"1.27.1 07 de diciembre de 2017 " +"ss desarrollo" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:89 +msgid "" +"1.27 07 Dec 2017 ss fine tuning of the python port" +msgstr "" +"1.27 07 de diciembre de 2017 " +"ss ajustes para la migración a " +"python" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:95 +msgid "" +"1.26 11 Aug 2017 ss port all tools from perl/bash to python" +msgstr "" +"1.26 11 de agosto de 2017 " +"ss portar todas las herramientas " +"de perl/bash a python" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:101 +msgid "" +"1.25 21 March 2016 ss bug fixes, test cleanups" +msgstr "" +"1.25 21 de marzo de 2016 " +"ss correcciones de errores, " +"limpieza" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:107 +msgid "" +"1.24 29 May 2015 ss bug fix" +msgstr "" +"1.24 29 de mayo de 2015 " +"ss correcciones de errores" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:113 +msgid "" +"1.23 17 May 2015 ss bug fix" +msgstr "" +"1.23 17 de mayo de 2015 " +"ss correcciones de errores" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:119 +msgid "" +"1.22 07 May 2015 ss bug fixes, dropping deprecated features" +msgstr "" +"1.22 7 de mayo de 2015 " +"ss correcciones de errores, " +"eliminadas funcionalidades obsoletas" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:125 +msgid "" +"1.21 17 Jul 2014 ss bug fixes, dropping deprecated features" +msgstr "" +"1.21 17 de julio de 2014 " +"ss correcciones de errores, " +"eliminadas funcionalidades obsoletas" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:131 +msgid "" +"1.20 16 Feb 2014 ss bug fixes, markdown support, style improvements" +msgstr "" +"1.20 16 de febrero de 2014 " +"ss errores corregidos, soporte " +"de marcado, mejoras en los estilos" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:137 +msgid "" +"1.19 05 Jun 2013 ss bug fixes" +msgstr "" +"1.19 05 de junio de 2013 " +"ss correcciones de errores" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:143 +msgid "" +"1.18 14 Sep 2011 ss bug fixes, speedups, markdown support" +msgstr "" +"1.18 14 de septiembre de 2011 " +"ss correcciones de errores, " +"mejoras en la velocidad y soporte de marcado" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:149 +msgid "" +"1.17 26 Feb 2011 sk urgent bug fix update" +msgstr "" +"1.17 26 de febrero de 2011 " +"sk actualización urgente de " +"corrección de error" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:155 +msgid "" +"1.16 14 Jan 2011 sk bugfixes, layout improvements" +msgstr "" +"1.16 14 de enero de 2011 " +"sk correcciones de errores y " +"mejoras en la distribución" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:161 +msgid "" +"1.15 21 May 2010 sk bug and regression fixes" +msgstr "" +"1.15 21 de mayo de 2010 " +"sk correcciones de errores y " +"regresiones" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:167 +msgid "" +"1.14 28 March 2010 sk bugfixes and performance improvements" +msgstr "" +"1.14 28 de marzo de 2010 " +"sk correcciones de errores y " +"mejoras en el rendimiento" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:173 +msgid "" +"1.13 18 December 2009 " +"sk broken tarball update" +msgstr "" +"1.13 18 de diciembre de 2009 " +"sk actualización del tarball " +"roto" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:179 +msgid "" +"1.12 18 December 2009 " +"sk new tool features and " +"bugfixes" +msgstr "" +"1.12 18 de diciembre de 2009 " +"sk correcciones de errores y " +"nuevas características" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:185 +msgid "" +"1.11 16 November 2008 " +"mal GNOME doc-utils migration" +msgstr "" +"1.11 16 de noviembre de 2008 " +"mal Migración a GNOME doc-utils" + +#. (itstool) path: chapter/title +#: C/index.docbook:198 +msgid "Introduction" +msgstr "Introducción" + +#. (itstool) path: chapter/para +#: C/index.docbook:200 +msgid "" +"This chapter introduces GTK-Doc and gives an overview of what it is and how " +"it is used." +msgstr "" +"Este capítulo introduce GTK-Doc y proporciona una visión general de lo que " +"es y cómo usarlo." + +#. (itstool) path: sect1/title +#: C/index.docbook:206 +msgid "What is GTK-Doc?" +msgstr "¿Qué es GTK-Doc?" + +#. (itstool) path: sect1/para +#: C/index.docbook:208 +msgid "" +"GTK-Doc is used to document C code. It is typically used to document the " +"public API of libraries, such as the GTK+ and GNOME libraries. But it can " +"also be used to document application code." +msgstr "" +"GTK-Doc se usa para documentar código C. Generalmente se usa para documentar " +"la API pública de bibliotecas, tales como las bibliotecas GTK+ y de GNOME. " +"Pero también se puede usar para documentar código de aplicaciones." + +#. (itstool) path: sect1/title +#: C/index.docbook:216 +msgid "How Does GTK-Doc Work?" +msgstr "¿Cómo funciona GTK-Doc?" + +#. (itstool) path: sect1/para +#: C/index.docbook:218 +msgid "" +"GTK-Doc works by using documentation of functions placed inside the source " +"files in specially-formatted comment blocks, or documentation added to the " +"template files which GTK-Doc uses (though note that GTK-Doc will only " +"document functions that are declared in header files; it won't produce " +"output for static functions)." +msgstr "" +"GTK-Doc funciona usando documentación de las funciones ubicadas dentro de " +"los archivos de fuentes en bloques de comentarios especialmente formateados, " +"o documentación añadida a los archivos de plantillas que GTK-Doc usa (aunque " +"debe notar que GTK-Doc sólo documentará las funciones declaradas en los " +"archivos de cabecera; no produce salida para funciones estáticas)." + +#. (itstool) path: sect1/para +#: C/index.docbook:225 +msgid "" +"GTK-Doc consists of a number of python scripts, each performing a different " +"step in the process." +msgstr "" +"GTK-Doc consiste en un número de scripts en python, cada uno realiza un paso " +"diferente en el proceso." + +#. (itstool) path: sect1/para +#: C/index.docbook:230 +msgid "There are 5 main steps in the process:" +msgstr "Existen 5 pasos importantes en el proceso:" + +#. (itstool) path: listitem/para +#: C/index.docbook:237 +msgid "" +"Writing the documentation. The author fills in the " +"source files with the documentation for each function, macro, union etc. (In " +"the past information was entered in generated template files, which is not " +"recommended anymore)." +msgstr "" +"Escribir la documentación. El autor rellena los " +"archivos de fuentes con la documentación para cada función, macro, unión, " +"etc. (En el pasado la información se introducía en archivos de plantillas, " +"lo que ya no se recomienda)." + +#. (itstool) path: listitem/para +#: C/index.docbook:247 +msgid "" +"Gathering information about the code. " +"gtkdoc-scan scans the header files of the code " +"looking for declarations of functions, macros, enums, structs, and unions. " +"It creates the file <module>-decl-list.txt " +"containing a list of the declarations, placing them into sections according " +"to which header file they are in. On the first run this file is copied to " +"<module>-sections.txt. The author can rearrange " +"the sections, and the order of the declarations within them, to produce the " +"final desired order. The second file it generates is <" +"module>-decl.txt. This file contains the full declarations " +"found by the scanner. If for some reason one would like some symbols to show " +"up in the docs, where the full declaration cannot be found by the scanner or " +"the declaration should appear differently, one can place entities similar to " +"the ones in <module>-decl.txt into <" +"module>-overrides.txt." +msgstr "" +"Obtener información acerca del código. " +"gtkdoc-scan analiza los archivos de cabecera del " +"código buscando declaraciones de funciones, macros, enumeraciones, " +"estructuras y uniones. Crea el archivo <module>-decl-list." +"txt que contiene una lista de las declaraciones, ubicándolas en " +"secciones de acuerdo con el archivo de cabecera en el que están. Durante la " +"primera ejecución este archivo se copia en <module>-sections." +"txt. El autor puede reordenar las secciones y el orden de las " +"declaraciones en ellas, para producir la salida que quiere. El segundo " +"archivo que genera es <module>-decl.txt. Este " +"archivo contiene las declaraciones completas que encontró el análisis. Si " +"por alguna razón quisiese que algunos símbolos apareciesen en los " +"documentos, donde el análisis no puede encontrar la declaración completa o " +"la declaración debería aparecer de forma diferente, puede introducir " +"entradas de forma similar a las que hay en <module>-decl." +"txt dentro de <module>-overrides.txt." + +#. (itstool) path: listitem/para +#: C/index.docbook:264 +msgid "" +"gtkdoc-scangobj can also be used to dynamically " +"query a library about any GObject subclasses it exports. It saves " +"information about each object's position in the class hierarchy and about " +"any GObject properties and signals it provides." +msgstr "" +"gtkdoc-scangobj también se puede usar para " +"consultar dinámicamente una biblioteca sobre cualquiera de las subclases " +"GObject que exporta. Guarda información sobre la posición de cada objeto en " +"la jerarquía de clases y sobre cualquier propiedad de GObject y las señales " +"que proporciona." + +#. (itstool) path: listitem/para +#: C/index.docbook:270 +msgid "" +"gtkdoc-scanobj should not be used anymore. It was " +"needed in the past when GObject was still GtkObject inside gtk+." +msgstr "" +"gtkdoc-scanobj no se debería usar más. Se " +"necesitó en el pasado, cuando GObject todavía era GtkObject dentro de GTK+." + +#. (itstool) path: listitem/para +#: C/index.docbook:277 +msgid "" +"Generating the XML and HTML/PDF. gtkdoc-" +"mkdb turns the template files into XML files in the xml/ subdirectory. If the source code " +"contains documentation on functions, using the special comment blocks, it " +"gets merged in here. If there are no tmpl files used it only reads docs from " +"sources and introspection data." +msgstr "" +"Generar el XML y el HTML/PDF.gtkdoc-mkdb convierte los archivos de plantilla en archivos SGML o XML en " +"la subcarpeta xml/. Si el código " +"fuente contiene documentación de funciones, usando los bloques especiales de " +"comentarios, entonces se mezclarán aquí. Si no se usan archivos tmpl sólo " +"obtiene los documentos de los fuentes y los datos obtenidos en introspección." + +#. (itstool) path: listitem/para +#: C/index.docbook:286 +msgid "" +"gtkdoc-mkhtml turns the XML files into HTML files " +"in the html/ subdirectory. Likewise " +"gtkdoc-mkpdf turns the XML files into a PDF " +"document called <package>.pdf." +msgstr "" +"gtkdoc-mkhtml convierte los archivos XML en " +"archivos HTML en la subcarpeta html/. De la misma forma gtkdoc-mkpdf " +"convierte los archivos XML en un documento PDF llamado <" +"paquete>.pdf." + +#. (itstool) path: listitem/para +#: C/index.docbook:292 +msgid "" +"Files in xml/ and html/ directories are always overwritten. One " +"should never edit them directly." +msgstr "" +"Los archivos en las carpetas xml/ y " +"html/ y siempre se sobrescriben. " +"Nunca se deben editar directamente." + +#. (itstool) path: listitem/para +#: C/index.docbook:300 +msgid "" +"Fixing up cross-references between documents. After " +"installing the HTML files, gtkdoc-fixxref can be " +"run to fix up any cross-references between separate documents. For example, " +"the GTK+ documentation contains many cross-references to types documented in " +"the GLib manual. When creating the source tarball for distribution, " +"gtkdoc-rebase turns all external links into web-" +"links. When installing distributed (pregenerated) docs the same application " +"will try to turn links back to local links (where those docs are installed)." +msgstr "" +"Arreglar referencias cruzadas entre documentos. Después " +"de instalar los archivos HTML se puede ejecutar gtkdoc-fixxref para arreglar cualquier referencia cruzada entre documentos " +"separados. Por ejemplo, la documentación GTK+ contiene muchas referencias " +"cruzadas a tipos documentados en el manual de GLib. Al crear los " +"archivadores «tarball» para su distribución, gtkdoc-rebase convierte todos los enlaces externos en enlaces web. Al " +"instalar la documentación distribuida (pregenerada) la misma aplicación " +"intentará convertir de nuevo los enlaces, esta vez a enlaces locales (donde " +"esa documentación está instalada)." + +#. (itstool) path: sect1/title +#: C/index.docbook:318 +msgid "Getting GTK-Doc" +msgstr "Obtener GTK-Doc" + +#. (itstool) path: sect2/title +#: C/index.docbook:321 +msgid "Requirements" +msgstr "Requerimientos" + +#. (itstool) path: sect2/para +#: C/index.docbook:322 +msgid "" +"python 2/3 - the main scripts are written in python." +msgstr "" +"python 2/3 - los scripts principales están escritos en " +"python." + +#. (itstool) path: sect2/para +#: C/index.docbook:325 +msgid "" +"xsltproc - the xslt processor from libxslt xmlsoft.org/XSLT/" +msgstr "" +"xsltproc: el procesador xslt de libxslt xmlsoft.org/XSLT/" + +#. (itstool) path: sect2/para +#: C/index.docbook:329 +msgid "" +"docbook-xsl - the docbook xsl stylesheets sourceforge.net/projects/docbook/files/docbook-xsl" +msgstr "" +"docbook-xsl: las hojas de estilo XLS de docbook sourceforge.net/projects/docbook/files/docbook-xsl" + +#. (itstool) path: sect2/para +#: C/index.docbook:333 +msgid "" +"One of source-highlight, highlight " +"or vim - optional - used for syntax highlighting of " +"examples" +msgstr "" +"Una de source-highlight, highlight " +"o vim: opcional, usada para el resaltado de sintaxis de " +"los ejemplos." + +#. (itstool) path: sect1/title +#: C/index.docbook:341 +msgid "About GTK-Doc" +msgstr "Acerca de GTK-Doc" + +#. (itstool) path: sect1/para +#: C/index.docbook:343 C/index.docbook:357 +msgid "(FIXME)" +msgstr "(ARRÉGLAME)" + +#. (itstool) path: sect1/para +#: C/index.docbook:347 +msgid "" +"(History, authors, web pages, mailing list, license, future plans, " +"comparison with other similar systems.)" +msgstr "" +"(Historia, autores, páginas web, listas de correo, licencias, planes " +"futuros, comparación con otros sistemas similares.)" + +#. (itstool) path: sect1/title +#: C/index.docbook:355 +msgid "About this Manual" +msgstr "Acerca de este manual" + +#. (itstool) path: sect1/para +#: C/index.docbook:361 +msgid "(who it is meant for, where you can get it, license)" +msgstr "(a quién está dirigido, dónde puede obtenerse, licencia)" + +#. (itstool) path: chapter/title +#: C/index.docbook:370 +msgid "Setting up your project" +msgstr "Configurando su proyecto" + +#. (itstool) path: chapter/para +#: C/index.docbook:372 +msgid "" +"The next sections describe what steps to perform to integrate GTK-Doc into " +"your project. Theses sections assume we work on a project called 'meep'. " +"This project contains a library called 'libmeep' and an end-user app called " +"'meeper'. We also assume you will be using autoconf and automake. In " +"addition section plain makefiles or other " +"build systems will describe the basics needed to work in a different " +"build setup." +msgstr "" +"Las siguientes secciones describen los pasos que realizar para integrar GTK-" +"Doc en su proyecto. Estas secciones asumen que se trabaja en un proyecto " +"llamado «meep». Este proyecto contiene una biblioteca llamada «libmeep» y " +"una aplicación final de usuario llamada «meeper». También se asume que usará " +"«autoconf» y «automake». En la sección Integración con makefiles u otros sistemas de construcción se " +"describen las necesidades básicas para trabajar con un sistema de " +"construcción diferente." + +#. (itstool) path: sect1/title +#: C/index.docbook:383 +msgid "Setting up a skeleton documentation" +msgstr "Configurar el esquema de la documentación" + +#. (itstool) path: sect1/para +#: C/index.docbook:385 +msgid "" +"Under your top-level project directory create folders called docs/reference " +"(this way you can also have docs/help for end-user documentation). It is " +"recommended to create another subdirectory with the name of the doc-package. " +"For packages with just one library this step is not necessary." +msgstr "" +"Bajo su carpeta de nivel superior cree carpetas llamadas docs/reference (de " +"esta forma también puede tener docs/help para la documentación final de " +"usuario). Se recomienda crear otra subcarpeta con el nombre doc-package. " +"Para paquetes con una sola biblioteca este paso no es necesario." + +#. (itstool) path: example/title +#: C/index.docbook:394 +msgid "Example directory structure" +msgstr "Ejemplo de estructura de carpetas" + +#. (itstool) path: example/programlisting +#: C/index.docbook:395 +#, no-wrap +msgid "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +msgstr "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:392 +msgid "This can then look as shown below: <_:example-1/>" +msgstr "Esto después aparecerá como se muestra debajo: <_:example-1/>" + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:410 C/index.docbook:417 +msgid "Integration with autoconf" +msgstr "Integración con autoconf" + +#. (itstool) path: sect1/para +#: C/index.docbook:412 +msgid "" +"Very easy! Just add one line to your configure.ac " +"script." +msgstr "" +"Muy fácil, simplemente añada una línea a su script configure.ac." + +#. (itstool) path: example/programlisting +#: C/index.docbook:418 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +msgstr "" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" + +#. (itstool) path: example/title +#: C/index.docbook:430 +msgid "Keep gtk-doc optional" +msgstr "Mantener gtk-doc como opcional" + +#. (itstool) path: example/programlisting +#: C/index.docbook:431 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +msgstr "" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:425 +msgid "" +"This will require all developers to have gtk-doc installed. If it is okay " +"for your project to have optional api-doc build setup, you can solve this as " +"below. Keep it as is, as gtkdocize is looking for GTK_DOC_CHECK at the start of a line. <_:example-1/>" +msgstr "" +"Esto requerirá que todos los desarrolladores tengan gtk-doc instalado. Si " +"para su proyecto es correcto tener una configuración de construcción de api-" +"doc opcional, puede resolver esto como sigue. Manténgalo como está, ya que " +"gtkdocize busca en GTK_DOC_CHECK al inicio de la línea. " +"<_:example-1/>" + +#. (itstool) path: sect1/para +#: C/index.docbook:442 +msgid "" +"The first argument is used to check for the gtkdocversion at configure time. " +"The 2nd, optional argument is used by gtkdocize. " +"The GTK_DOC_CHECK macro also adds several configure " +"switches:" +msgstr "" +"El primer argumento se usa para comprobar gtkdocversion durante la " +"configuración. El segundo, y opcional, argumento lo usa " +"gtkdocize. La macro GTK_DOC_CHECK también añade diversas opciones de configuración:" + +#. (itstool) path: listitem/para +#: C/index.docbook:448 +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=RUTA: ruta a los documentos instalados" + +#. (itstool) path: listitem/para +#: C/index.docbook:449 +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "" +"--enable-gtk-doc: usar gtk-doc para construir la documentación " +"[predeterminado=no]" + +#. (itstool) path: listitem/para +#: C/index.docbook:450 +msgid "" +"--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "" +"--enable-gtk-doc: usar gtk-doc para construir la documentación " +"[predeterminado=sí]" + +#. (itstool) path: listitem/para +#: C/index.docbook:451 +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "" +"--enable-gtk-doc: usar gtk-doc para construir la documentación " +"[predeterminado=no]" + +#. (itstool) path: important/para +#: C/index.docbook:455 +msgid "" +"GTK-Doc is disabled by default! Remember to pass the option to the next configure run. " +"Otherwise pregenerated documentation is installed (which makes sense for " +"users but not for developers)." +msgstr "" +"GTK-Doc está desactivado de forma predeterminada. Recuerde pasar la opción " +" en la siguiente ejecución de " +"configure. De otra forma, la documentación pregenerada " +"se instala (lo que tiene sentido para usuarios, pero no para " +"desarrolladores)." + +#. (itstool) path: sect1/para +#: C/index.docbook:463 +msgid "" +"Furthermore it is recommended that you have the following line inside your " +"configure.ac script. This allows " +"gtkdocize to automatically copy the macro " +"definition for GTK_DOC_CHECK to your project." +msgstr "" +"Aún más, se recomienda que tenga la siguiente línea en su script " +"configure.ac. Esto permite que gtkdocize copie automáticamente la definición de la macro para " +"GTK_DOC_CHECK a su proyecto." + +#. (itstool) path: example/title +#: C/index.docbook:471 +msgid "Preparation for gtkdocize" +msgstr "Preparación para gtkdocize" + +#. (itstool) path: example/programlisting +#: C/index.docbook:472 +#, no-wrap +msgid "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +msgstr "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:477 +msgid "" +"After all changes to configure.ac are made, update the " +"configure file. This can be done by re-running " +"autoreconf -i or autogen.sh." +msgstr "" +"Después de hacer los cambios en el configure.ac " +"actualice el archivo configure. Esto se puede hacer " +"volviendo a ejecutar autoreconf -i o autogen.sh." + +#. (itstool) path: sect1/title +#: C/index.docbook:485 +msgid "Integration with automake" +msgstr "Integración con automake" + +#. (itstool) path: sect1/para +#: C/index.docbook:487 +msgid "" +"First copy the Makefile.am from the examples sub directory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). A local copy " +"should be available under e.g. /usr/share/doc/gtk-doc-tools/" +"examples/Makefile.am. If you have multiple doc-packages repeat " +"this for each one." +msgstr "" +"Primero copie el archivo Makefile.am de la subcarpeta " +"examples de gtkdoc-sources a la carpeta de documentación de la API de su proyecto (./docs/reference/<package>). Debería " +"haber una copia local disponible en /usr/share/doc/gtk-doc-tools/" +"examples/Makefile.am. Si tiene varios paquetes de documentación, " +"repítalo para cada uno de ellos." + +#. (itstool) path: sect1/para +#: C/index.docbook:498 +msgid "" +"The next step is to edit the settings inside the Makefile.am. All the settings have a comment above that describes their " +"purpose. Most settings are extra flags passed to the respective tools. Every " +"tool has a variable of the form . " +"All the tools support to list the supported " +"parameters." +msgstr "" +"El siguiente paso es editar la configuración dentro de Makefile." +"am. Todos los ajustes tienen un comentario encima que describe su " +"propósito. Muchos ajustes son opciones adicionales pasadas a las respectivas " +"herramientas. Cada herramienta tiene una variable de la forma . Todas las herramientas " +"soportan para listar los parámetros que soportan." + +#. (itstool) path: sect1/title +#: C/index.docbook:512 +msgid "Integration with autogen" +msgstr "Integración con autogen" + +#. (itstool) path: sect1/para +#: C/index.docbook:514 +msgid "" +"Most projects will have an autogen.sh script to setup " +"the build infrastructure after a checkout from version control system (such " +"as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before " +"autoheader, automake or autoconf." +msgstr "" +"La mayoría de los proyectos tienen un script autogen.sh " +"para configurar la infraestructura de construcción después de hacer un " +"«checkout» desde los sistemas de control de versiones (tales como cvs/svn/" +"git). GTK-Doc tiene una herramienta llamada gtkdocize " +"que se puede usar en tal script. Se debería ejecutar antes que autoheader, " +"automake o autoconf." + +#. (itstool) path: example/title +#: C/index.docbook:523 +msgid "Running gtkdocize from autogen.sh" +msgstr "Ejecutar gtkdocize desde autogen.sh" + +#. (itstool) path: example/programlisting +#: C/index.docbook:524 +#, no-wrap +msgid "" +"\n" +"gtkdocize || exit 1\n" +msgstr "" +"\n" +"gtkdocize || exit 1\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:530 +msgid "" +"When running gtkdocize it copies gtk-" +"doc.make to your project root (or any directory specified by the " +" option). It also checks you configure script for " +"the GTK_DOC_CHECK invocation. This macro can be used to " +"pass extra parameters to gtkdocize." +msgstr "" +"Al ejecutar gtkdocize copia gtk-doc.make a la raíz de su proyecto (o cualquier carpeta especificada por la " +"opción ). También comprueba su script de " +"configuración para la invocación de GTK_DOC_CHECK. Esta " +"macro se puede usar para pasar parámetros adicionales a " +"gtkdocize." + +#. (itstool) path: sect1/para +#: C/index.docbook:539 +msgid "" +"Historically GTK-Doc was generating template files where developers entered " +"the docs. This turned out to be not so good (e.g. the need for having " +"generated files under version control). Since GTK-Doc 1.9 the tools can get " +"all the information from source comments and thus the templates can be " +"avoided. We encourage people to keep documentation in the code. " +"gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. " +"Besides adding the option directly to the command invocation, they can be " +"added also to an environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in " +"the configure script. If you have never changed file in tmpl by hand and " +"migrating from older gtkdoc versions, please remove the directory (e.g. from " +"version control system)." +msgstr "" +"Históricamente GTK-Doc generaba plantillas de archivos donde los " +"desarrolladores introducían los documentos. Al final esto resulto no ser muy " +"bueno (por ejemplo, por la necesidad de tener archivos generados bajo un " +"control de versiones). Desde la versión de DTK-Doc 1.9 las herramientas " +"pueden obtener toda la información desde los comentarios del código fuente y " +"por ello se pueden evitar las plantillas. Se anima a los desarrolladores a " +"mantener su documentación en el código. gtkdocize " +"ahora soporta una opción que elije un " +"makefile que omite completamente el uso de plantillas. Además de añadir la " +"opción directamente a la línea de comandos al invocarlo, se pueden añadir a " +"una variable de entorno llamada GTKDOCIZE_FLAGS o " +"configurar como un segundo parámetro en la macro GTK_DOC_CHECK en el script de configuración. Si nunca ha cambiado un archivo tmpl " +"(plantilla) a mano, elimine la carpeta una vez (ej. desde el sistema de " +"control de versiones)." + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:556 C/index.docbook:573 +msgid "Running the doc build" +msgstr "Ejecutar la construcción de la documentación" + +#. (itstool) path: sect1/para +#: C/index.docbook:558 +msgid "" +"After the previous steps it's time to run the build. First we need to rerun " +"autogen.sh. If this script runs configure for you, then " +"give it the option. Otherwise manually run " +"configure with this option afterwards." +msgstr "" +"Después de los pasos anteriores es hora de ejecutar el constructor. Primero " +"se debe volver a ejecutar autogen.sh. Si este script " +"ejecuta configure automáticamente, entonces debe pasar la opción . De otra forma, ejecute posteriormente " +"configure con esta opción." + +#. (itstool) path: sect1/para +#: C/index.docbook:565 +msgid "" +"The first make run generates several additional files in the doc-" +"directories. The important ones are: <package>.types, <package>-docs.xml (in the past ." +"sgml), <package>-sections.txt." +msgstr "" +"El primer make genera diversas líneas adicionales en las carpetas de " +"documentación. Las importantes son: <paquete>.types, <paquete>-docs.xml (.sgml en el " +"pasado), <paquete>-sections.txt." + +#. (itstool) path: example/programlisting +#: C/index.docbook:574 +#, no-wrap +msgid "" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" +msgstr "" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:580 +msgid "" +"Now you can point your browser to docs/reference/<package>/" +"index.html. Yes, it's a bit disappointing still. But hang-on, " +"during the next chapter we tell you how to fill the pages with life." +msgstr "" +"Ahora puede apuntar su navegador a docs/reference/<paquete>/" +"index.html. Sí, aún es un poco decepcionante. Pero espere, " +"durante el siguiente capítulo aprenderá a rellenar las páginas con " +"información." + +#. (itstool) path: sect1/title +#: C/index.docbook:588 +msgid "Integration with version control systems" +msgstr "Integración con los sistemas de control de versiones" + +#. (itstool) path: sect1/para +#: C/index.docbook:590 +msgid "" +"As a rule of thumb, it's the files you edit which should go under version " +"control. For typical projects it's these files: <package>." +"types, <package>-docs.xml (in the " +"past .sgml), <package>-sections.txt, " +"Makefile.am." +msgstr "" +"Como regla principal, son los archivos que edita los que deberían estar bajo " +"el control de versiones. Para proyectos típicos son los archivos: " +"<paquete>.types, <paquete>-docs." +"xml (anteriormente .sgml), <paquete>-sections." +"txt, Makefile.am." + +#. (itstool) path: sect1/para +#: C/index.docbook:598 +msgid "" +"Files in the xml/ and html/ " +"directories should not go under version control. Neither should any of the " +".stamp files." +msgstr "" +"Los archivos de las carpetas xml/ y html/ No deberían estar bajo control de versiones. Tampoco ninguno de " +"los archivos .stamp." + +#. (itstool) path: sect1/title +#: C/index.docbook:606 +msgid "Integration with plain makefiles or other build systems" +msgstr "Integración con makefiles u otros sistemas de construcción" + +#. (itstool) path: sect1/para +#: C/index.docbook:608 +msgid "" +"In the case one does not want to use automake and therefore gtk-" +"doc.mak one will need to call the gtkdoc tools in the right order " +"in own makefiles (or other build tools)." +msgstr "" +"En el caso de que no quiera usar automake y por ello gtk-doc.mak deberá llamar a las herramientas gtkdoc en el orden correcto en " +"makefiles propios (o en otras herramientas de construcción)." + +#. (itstool) path: example/title +#: C/index.docbook:615 +msgid "Documentation build steps" +msgstr "Pasos de construcción de la documentación" + +#. (itstool) path: example/programlisting +#: C/index.docbook:616 +#, no-wrap +msgid "" +"\n" +"DOC_MODULE=meep\n" +"// sources have changed\n" +"gtkdoc-scan --module=$(DOC_MODULE) <source-dir>\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<source-dir>\n" +"// xml files have changed\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" +msgstr "" +"\n" +"DOC_MODULE=meep\n" +"// sources have changed\n" +"gtkdoc-scan --module=$(DOC_MODULE) <source-dir>\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<source-dir>\n" +"// xml files have changed\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:630 +msgid "" +"One will need to look at the Makefile.am and " +"gtk-doc.mak to pick the extra options needed." +msgstr "" +"Deberá mirar en el archivo Makefile.am y gtk-" +"doc.mak para elegir las opciones adicionales necesarias." + +#. (itstool) path: sect1/title +#: C/index.docbook:637 +msgid "Integration with CMake build systems" +msgstr "Integración con sistemas de construcción CMake" + +#. (itstool) path: sect1/para +#: C/index.docbook:639 +msgid "" +"GTK-Doc now provides a GtkDocConfig.cmake module (and " +"the corresponding GtkDocConfigVersion.cmake module). " +"This provides a gtk_doc_add_module command that you can " +"set in your CMakeLists.txt file." +msgstr "" +"Ahroa, GTK-Doc proporciona un módulo GtkDocConfig.cmake " +"(y el correspondiente módulo GtkDocConfigVersion.cmake). Esto proporciona un comando gtk_doc_add_module que puede configurar en su archivo CMakeLists.txt." + +#. (itstool) path: example/title +#: C/index.docbook:649 +msgid "Example of using GTK-Doc from CMake" +msgstr "Ejeplo de uso de GTK-Doc desde CMake" + +#. (itstool) path: example/programlisting +#: C/index.docbook:650 +#, no-wrap +msgid "" +"\n" +"find_package(GtkDoc 1.25 REQUIRED)\n" +"\n" +"# Create the doc-libmeep target.\n" +"gtk_doc_add_module(\n" +" libmeep ${CMAKE_SOURCE_DIR}/libmeep\n" +" XML meep-docs.xml\n" +" LIBRARIES libmeep\n" +")\n" +"\n" +"# Build doc-libmeep as part of the default target. Without this, you would\n" +"# have to explicitly run something like `make doc-libmeep` to build the docs.\n" +"add_custom_target(documentation ALL DEPENDS doc-libmeep)\n" +"\n" +"# Install the docs. (This assumes you're using the GNUInstallDirs CMake module\n" +"# to set the CMAKE_INSTALL_DOCDIR variable correctly).\n" +"install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html\n" +" DESTINATION ${CMAKE_INSTALL_DOCDIR})\n" +msgstr "" +"\n" +"find_package(GtkDoc 1.25 REQUIRED)\n" +"\n" +"# Create the doc-libmeep target.\n" +"gtk_doc_add_module(\n" +" libmeep ${CMAKE_SOURCE_DIR}/libmeep\n" +" XML meep-docs.xml\n" +" LIBRARIES libmeep\n" +")\n" +"\n" +"# Build doc-libmeep as part of the default target. Without this, you would\n" +"# have to explicitly run something like `make doc-libmeep` to build the docs.\n" +"add_custom_target(documentation ALL DEPENDS doc-libmeep)\n" +"\n" +"# Install the docs. (This assumes you're using the GNUInstallDirs CMake module\n" +"# to set the CMAKE_INSTALL_DOCDIR variable correctly).\n" +"install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html\n" +" DESTINATION ${CMAKE_INSTALL_DOCDIR})\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:647 +msgid "The following example shows how to use this command. <_:example-1/>" +msgstr "El siguiente ejemplo muestra cómo usar este comando. <_:example-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:675 +msgid "Documenting the code" +msgstr "Documentar el código" + +#. (itstool) path: chapter/para +#: C/index.docbook:677 +msgid "" +"GTK-Doc uses source code comment with a special syntax for code " +"documentation. Further it retrieves information about your project structure " +"from other sources. During the next section you will find all information " +"about the syntax of the comments." +msgstr "" +"GTK-Doc usa código fuente comentado con una sintaxis especial para " +"documentar el código. Además obtiene información acerca de la estructura de " +"su proyecto de otras fuentes. En la siguiente sección encontrará información " +"acerca de la sintaxis de los comentarios." + +#. (itstool) path: note/title +#: C/index.docbook:685 +msgid "Documentation placement" +msgstr "Ubicación de la documentación" + +#. (itstool) path: note/para +#: C/index.docbook:686 +msgid "" +"In the past most documentation had to be filled into files residing inside " +"the tmpl directory. This has the disadvantages that the " +"information is often not updated and also that the file tend to cause " +"conflicts with version control systems." +msgstr "" +"En el pasado la mayoría de la documentación se debía rellenar en campos " +"dentro de la carpeta tmpl. Esto tiene las desventajas " +"de que la información. Esto tiene las desventajas de que la información no " +"se actualiza muy a menudo y que el archivo tiene tendencia a causar " +"conflictos con los sistemas de control de versiones." + +#. (itstool) path: note/para +#: C/index.docbook:692 +msgid "" +"The avoid the aforementioned problems we suggest putting the documentation " +"inside the sources. This manual will only describe this way of documenting " +"code." +msgstr "" +"Para evitar los problemas anteriormente mencionados, se sugiere dejar la " +"documentación dentro de los fuentes. Este manual sólo describe esta forma de " +"documentar el código." + +#. (itstool) path: example/title +#: C/index.docbook:703 C/index.docbook:729 +msgid "GTK-Doc comment block" +msgstr "Bloque de comentario de GTK-Doc" + +#. (itstool) path: example/programlisting +#: C/index.docbook:704 +#, no-wrap +msgid "" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" +msgstr "" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" + +#. (itstool) path: chapter/para +#: C/index.docbook:699 +msgid "" +"The scanner can handle the majority of C headers fine. In the case of " +"receiving warnings from the scanner that look like a special case, one can " +"hint GTK-Doc to skip over them. <_:example-1/>" +msgstr "" +"El analizador puede manejar bien la mayoría de cabeceras de C. En el caso de " +"recibir avisos del analizador que parecen casos especiales, puede sugerir a " +"GTK-Doc que los omita. <_:example-1/>" + +#. (itstool) path: note/title +#: C/index.docbook:713 +msgid "Limitations" +msgstr "Limitaciones" + +#. (itstool) path: note/para +#: C/index.docbook:714 +msgid "" +"Note, that GTK-Doc's supports #ifndef(__GTK_DOC_IGNORE__) but " +"not #if !defined(__GTK_DOC_IGNORE__) or other combinations." +msgstr "" +"Tenga en cuenta que GTK-Doc soporta #ifndef(__GTK_DOC_IGNORE__) " +"pero #if !defined(__GTK_DOC_IGNORE__) u otras combinaciones." + +#. (itstool) path: sect1/title +#: C/index.docbook:724 +msgid "Documentation comments" +msgstr "Comentarios de la documentación" + +#. (itstool) path: example/programlisting +#: C/index.docbook:730 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:726 +msgid "" +"A multiline comment that starts with an additional '*' marks a documentation " +"block that will be processed by the GTK-Doc tools. <_:example-1/>" +msgstr "" +"Un comentario de varias líneas que comienza con un «*» adicional marca un " +"bloque de documentación que GTK-Doc tools procesarán. <_:example-1/>" + +#. (itstool) path: sect1/para +#: C/index.docbook:739 +msgid "" +"The 'identifier' is one line with the name of the item the comment is " +"related to. The syntax differs a little depending on the item. (TODO add " +"table showing identifiers)" +msgstr "" +"El «identificador» es una línea con el nombre del elemento relacionado con " +"el comentario. La sintaxis difiere un poco dependiendo del elemento. (Por " +"hacer: añadir una tabla mostrando los identificadores)" + +#. (itstool) path: sect1/para +#: C/index.docbook:745 +msgid "" +"The 'documentation' block is also different for each symbol type. Symbol " +"types that get parameters such as functions or macros have the parameter " +"description first followed by a blank line (just a '*'). Afterwards follows " +"the detailed description. All lines (outside program listings and CDATA " +"sections) just containing a ' *' (blank-asterisk) are converted to paragraph " +"breaks. If you don't want a paragraph break, change that into ' * ' (blank-" +"asterisk-blank-blank). This is useful in preformatted text (code listings)." +msgstr "" +"El bloque de «Documentación» también es diferente para cada tipo de símbolo. " +"Los tipos de símbolos que obtienen parámetros tales como funciones o macros, " +"tienen primero las descripciones seguidas por una línea blanca (exactamente " +"un «*»). Después siguen las descripciones detalladas. Todas las líneas " +"(fuera de los programas; listados y CDATA de la secciones) que solo " +"contengan un « *» (asterisco con espacio) se convierten en párrafos. Si no " +"quiere un espaciado de párrafo, cámbielo a un « * » (espacio-asterisco-" +"espacio). Esto es útil para texto preformateado (listados de código)." + +#. (itstool) path: listitem/para +#: C/index.docbook:762 +msgid "" +"What it is: The name for a class or function can sometimes be misleading for " +"people coming from a different background." +msgstr "" +"Qué es: el nombre de la clase o la función puede confundir a veces a " +"personas que provengan de otros entornos." + +#. (itstool) path: listitem/para +#: C/index.docbook:768 +msgid "" +"What it does: Tell about common uses. Put it in relation with the other API." +msgstr "Qué hace: indique los usos comunes, en relación con las otras API." + +#. (itstool) path: tip/para +#: C/index.docbook:758 +msgid "When documenting code, describe two aspects: <_:itemizedlist-1/>" +msgstr "Al documentar código, describa dos aspectos: <_:itemizedlist-1/>" + +#. (itstool) path: listitem/para +#: C/index.docbook:783 +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "" +"Use función() para referirse a funciones o macros que toman argumentos." + +#. (itstool) path: listitem/para +#: C/index.docbook:788 +msgid "" +"Use @param to refer to parameters. Also use this when referring to " +"parameters of other functions, related to the one being described." +msgstr "" +"Use @parámetro para referirse a parámetros. Úselo también al referirse a " +"parámetros de otras funciones, relacionados al que se describe." + +#. (itstool) path: listitem/para +#: C/index.docbook:794 +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "Use %constant para referirse a una constante, ej: %G_TRAVERSE_LEAFS." + +#. (itstool) path: listitem/para +#: C/index.docbook:799 +msgid "" +"Use #symbol to refer to other types of symbol, e.g. structs and enums and " +"macros which don't take arguments." +msgstr "" +"Use #símbolo para referirse a otro tipo de símbolos, como por ejemplo " +"estructuras, enumeraciones y macros que no toman argumentos." + +#. (itstool) path: listitem/para +#: C/index.docbook:805 +msgid "Use #Object::signal to refer to a GObject signal." +msgstr "Use #Object::signal para referirse a una señal de GObject." + +#. (itstool) path: listitem/para +#: C/index.docbook:810 +msgid "Use #Object:property to refer to a GObject property." +msgstr "Use #Object:property para referirse a una propiedad de GObject." + +#. (itstool) path: listitem/para +#: C/index.docbook:815 +msgid "" +"Use #Struct.field to refer to a field inside a structure and #GObjectClass." +"foo_bar() to refer to a vmethod." +msgstr "" +"Use #Struct.field para referirse a un campo dentro de una estructura y " +"#GObjectClass.foo_bar() para referirse a un vmethod." + +#. (itstool) path: sect1/para +#: C/index.docbook:777 +msgid "" +"One advantage of hyper-text over plain-text is the ability to have links in " +"the document. Writing the correct markup for a link can be tedious though. " +"GTK-Doc comes to help by providing several useful abbreviations. <_:" +"itemizedlist-1/>" +msgstr "" +"Una ventaja del hipertexto sobre el texto plano es la capacidad de tener " +"enlaces en el documento. Escribir las marcas adecuadas para un enlace puede " +"ser tedioso aunque GTK-Doc le ayuda proporcionando abreviaturas útiles. <_:" +"itemizedlist-1/>" + +#. (itstool) path: tip/para +#: C/index.docbook:824 +msgid "" +"If you need to use the special characters '<', '>', '()', '@', '%', or " +"'#' in your documentation without GTK-Doc changing them you can use the XML " +"entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&" +"commat;\", \"&percnt;\" and \"&num;\" respectively or escape them " +"with a backslash '\\'." +msgstr "" +"Si necesita usar los caracteres especiales «<», «>», «()», «@», «%», o " +"«#» en su documentación sin que GTK-Doc los cambie, puede usar las entidades " +"XML «&lt;», «&gt;», «amp;lpar;», «amp;rpar;», «amp;commat;» «&" +"percnt;» y «&num;» respectivamente o escaparlas con una contrabarra " +"doble «\\»." + +#. (itstool) path: sect1/para +#: C/index.docbook:833 +msgid "" +"DocBook can do more than just links. One can also have lists, examples, " +"headings, and images. As of version 1.20, the preferred way is to use a " +"subset of the basic text formatting syntax called Markdown. On older GTK-Doc " +"versions any documentation that includes Markdown will be rendered as is. " +"For example, list items will appear as lines starting with a dash." +msgstr "" +"DocBook puede crear algo más que enlaces. También se pueden tener listas, " +"ejemplos, cabeceras e imágenes. En la versión 1.20, la manera prefefira de " +"hacer esto es usando un subconjunto de la sintaxis básica de formateado de " +"texto llamada Marcado. En versiones anteriores de GTK-Doc, cualquier " +"documentación que incluya marcado se renderizará como tal. Por ejemplo, los " +"elementos de una lista aparecerán como líneas que empiezan con un guión." + +#. (itstool) path: sect1/para +#: C/index.docbook:844 +msgid "" +"While markdown is now preferred one can mix both. One limitation here is " +"that one can use docbook xml within markdown, but markdown within docbook " +"xml is not supported." +msgstr "" +"Aunque el marcado es el preferido, puede mezclar ambos. Una limitación aquí " +"es que se puede usar docbook xml con marcado, pero el marcado con docbook " +"xml no está soportado." + +#. (itstool) path: sect1/para +#: C/index.docbook:850 +msgid "" +"In older GTK-Doc releases, if you need support for additional formatting, " +"you would need to enable the usage of docbook XML tags inside doc-comments " +"by putting (or ) in " +"the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" +"En versiones anteriores de GTK-Doc, si necesitaba soporte para formato " +"adicional, necesitaba activar el uso de etiquetas XML dentro de comentarios " +"en la documentación poniendo o en la variable MKDB_OPTIONS dentro de " +"Makefile.am." + +#. (itstool) path: example/title +#: C/index.docbook:859 +msgid "GTK-Doc comment block using Markdown" +msgstr "Bloque de comentario de GTK-Doc usando marcado" + +#. (itstool) path: example/programlisting +#: C/index.docbook:860 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * identifier:\n" +" *\n" +" * documentation paragraph ...\n" +" *\n" +" * # Sub Heading #\n" +" *\n" +" * ## Second Sub Heading\n" +" *\n" +" * # Sub Heading With a Link Anchor # {#heading-two}\n" +" *\n" +" * more documentation:\n" +" *\n" +" * - list item 1\n" +" *\n" +" * Paragraph inside a list item.\n" +" *\n" +" * - list item 2\n" +" *\n" +" * 1. numbered list item\n" +" *\n" +" * 2. another numbered list item\n" +" *\n" +" * Another paragraph. [A Link to the GNOME Website](http://www.gnome.org/)\n" +" *\n" +" * ![an inline image](plot-result.png)\n" +" *\n" +" * [A link to the heading anchor above][heading-two]\n" +" *\n" +" * A C-language example:\n" +" * |[<!-- language=\"C\" -->\n" +" * GtkWidget *label = gtk_label_new (\"Gorgeous!\");\n" +" * ]|\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * identifier:\n" +" *\n" +" * documentation paragraph ...\n" +" *\n" +" * # Sub Heading #\n" +" *\n" +" * ## Second Sub Heading\n" +" *\n" +" * # Sub Heading With a Link Anchor # {#heading-two}\n" +" *\n" +" * more documentation:\n" +" *\n" +" * - list item 1\n" +" *\n" +" * Paragraph inside a list item.\n" +" *\n" +" * - list item 2\n" +" *\n" +" * 1. numbered list item\n" +" *\n" +" * 2. another numbered list item\n" +" *\n" +" * Another paragraph. [A Link to the GNOME Website](http://www.gnome.org/)\n" +" *\n" +" * ![an inline image](plot-result.png)\n" +" *\n" +" * [A link to the heading anchor above][heading-two]\n" +" *\n" +" * A C-language example:\n" +" * |[<!-- language=\"C\" -->\n" +" * GtkWidget *label = gtk_label_new (\"Gorgeous!\");\n" +" * ]|\n" +" */\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:899 +msgid "" +"More examples of what markdown tags are supported can be found in the GTK+ Documentation Markdown Syntax Reference." +msgstr "" +"Se pueden encontrar más ejemplos de las etiquetas de marcado soportadas en " +"el Manual de referencia de sintaxis de marcado de documentación de " +"GTK+." + +#. (itstool) path: tip/para +#: C/index.docbook:905 +msgid "" +"As already mentioned earlier GTK-Doc is for documenting public API. Thus one " +"cannot write documentation for static symbols. Nevertheless it is good to " +"comment those symbols too. This helps other to understand you code. " +"Therefore we recommend to comment these using normal comments (without the " +"2nd '*' in the first line). If later the function needs to be made public, " +"all one needs to do is to add another '*' in the comment block and insert " +"the symbol name at the right place inside the sections file." +msgstr "" +"Tal y como se ha mencionado antes, la documentación anterior de GTK-Doc es " +"para documentar la API pública .Por ello, no se puede escribir documentación " +"para los símbolos estáticos. No obstante es una buena práctica comentar los " +"símbolos. Esto ayuda a que otros entiendan su código. Por ello se recomienda " +"comentarlos usando comentarios normales (sin el segundo «*» en la primera " +"línea). Si la función, posteriormente, se debe hacer pública, todo lo que el " +"programador debe hacer es añadir otro «*» en el bloque de comentario e " +"introducir el nombre del símbolo en la parte derecha dentro del archivo de " +"secciones." + +#. (itstool) path: sect1/title +#: C/index.docbook:919 +msgid "Documenting sections" +msgstr "Documentar secciones" + +#. (itstool) path: sect1/para +#: C/index.docbook:921 +msgid "" +"Each section of the documentation contains information about one class or " +"module. To introduce the component one can write a section block. The short " +"description is also used inside the table of contents. All the @fields are " +"optional." +msgstr "" +"Cada sección del documento contiene información acerca de una clase o un " +"módulo. Para introducir el componente puede escribir un bloque de sección. " +"La descripción corta además se usa dentro de la tabla de contenidos. Todos " +"los campos @ son opcionales." + +#. (itstool) path: example/title +#: C/index.docbook:929 +msgid "Section comment block" +msgstr "Bloque de comentarios en una sección" + +#. (itstool) path: example/programlisting +#: C/index.docbook:930 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: the application class\n" +" * @title: Meep application\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * The application class handles ...\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: the application class\n" +" * @title: Meep application\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * The application class handles ...\n" +" */\n" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:949 +msgid "SECTION:<name>" +msgstr "SECCIÓN <nombre>" + +#. (itstool) path: listitem/para +#: C/index.docbook:951 +msgid "" +"The name links the section documentation to the respective part in the " +"<package>-sections.txt file. The name given here " +"should match the <FILE> tag in the <package>-sections." +"txt file." +msgstr "" +"El nombre enlaza la sección de la documentación con la parte respectiva en " +"el archivo <paquete>-sections.txt. El nombre aquí " +"proporcionado debería coincidir con la etiqueta <ARCHIVO> en el " +"archivo <paquete>-sections.txt." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:960 +msgid "@short_description" +msgstr "@short_description" + +#. (itstool) path: listitem/para +#: C/index.docbook:962 +msgid "" +"A one line description of the section, that later will appear after the " +"links in the TOC and at the top of the section page." +msgstr "" +"Una línea descrita en la sección, que después aparece tras los enlaces en el " +"TOC y en la página de la sección." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:969 +msgid "@title" +msgstr "@title" + +#. (itstool) path: listitem/para +#: C/index.docbook:971 +msgid "" +"The section title defaults to <name> from the SECTION declaration. It " +"can be overridden with the @title field." +msgstr "" +"De forma predeterminada el título de la sección es <name> de la " +"declaración SECTION. Se puede sobrescribir con el campo @title." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:978 +msgid "@section_id" +msgstr "@section_id" + +#. (itstool) path: listitem/para +#: C/index.docbook:980 +msgid "" +"Overrides the use of title as a section identifier. For GObjects the <" +"title> is used as a section_id and for other sections it is <" +"MODULE>-<title>." +msgstr "" +"Sobrescribe el uso del título como el identificador de sección. <" +"title> se usa en GObjects como el identificador de sección (section_id) y " +"para otra sección es <MÓDULO>-<title>." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:988 +msgid "@see_also" +msgstr "@see_also" + +#. (itstool) path: listitem/para +#: C/index.docbook:990 +msgid "A list of symbols that are related to this section." +msgstr "Una lista de símbolos relacionados con esta sección." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:996 +msgid "@stability" +msgstr "@stability" + +#. (itstool) path: listitem/para +#: C/index.docbook:1003 +msgid "" +"Stable - The intention of a Stable interface is to enable arbitrary third " +"parties to develop applications to these interfaces, release them, and have " +"confidence that they will run on all minor releases of the product (after " +"the one in which the interface was introduced, and within the same major " +"release). Even at a major release, incompatible changes are expected to be " +"rare, and to have strong justifications." +msgstr "" +"Estable: La intención de una interfaz estable es la de permitir que terceras " +"partes arbitrarias desarrollen aplicaciones para esas interfaces, las " +"liberen, y confíen que que se podrán ejecutar en todas las publicaciones " +"menores del producto (después de que se introdujese la interfaz en una de " +"ellas, y dentro de la misma versión principal de la publicación). Incluso en " +"publicaciones importantes no se espera que existan cambios incompatibles, y " +"de haberlos habrá buenas razones para ello." + +#. (itstool) path: listitem/para +#: C/index.docbook:1015 +msgid "" +"Unstable - Unstable interfaces are experimental or transitional. They are " +"typically used to give outside developers early access to new or rapidly " +"changing technology, or to provide an interim solution to a problem where a " +"more general solution is anticipated. No claims are made about either source " +"or binary compatibility from one minor release to the next." +msgstr "" +"Inestable: Las interfaces inestables son experimentales o de transición. " +"Generalmente se usan para dar a los desarrolladores externos acceso a " +"tecnología nueva o cambiante, o para proporcionar una solución a un " +"problema, anticipándose a una solución más general. No se realizan " +"reclamaciones acerca de la compatibilidad del código o del binario desde una " +"publicación menor a la siguiente." + +#. (itstool) path: listitem/para +#: C/index.docbook:1027 +msgid "" +"Private - An interface that can be used within the GNOME stack itself, but " +"that is not documented for end-users. Such functions should only be used in " +"specified and documented ways." +msgstr "" +"Privada: Una interfaz que se puede usar en la pila de GNOME en si misma, " +"pero que no está documentada para usuarios finales. Tales funciones sólo se " +"deberían usar de formas especificadas y documentadas." + +#. (itstool) path: listitem/para +#: C/index.docbook:1036 +msgid "" +"Internal - An interface that is internal to a module and does not require " +"end-user documentation. Functions that are undocumented are assumed to be " +"Internal." +msgstr "" +"Interna: Una interfaz que es interna a un módulo y no requiere documentación " +"para el usuario final. Se asume que las funciones que están sin documentar " +"son internas." + +#. (itstool) path: listitem/para +#: C/index.docbook:998 +msgid "" +"An informal description of the stability level this API has. We recommend " +"the use of one of these terms: <_:itemizedlist-1/>" +msgstr "" +"Esta API tiene una descripción informal del nivel de estabilidad. Se " +"recomienda el uso de uno de estos términos: <_:itemizedlist-1/>" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1048 +msgid "@include" +msgstr "@include" + +#. (itstool) path: listitem/para +#: C/index.docbook:1050 +msgid "" +"The #include files to show in the section synopsis (a " +"comma separated list), overriding the global value from the section file or command line. This item is " +"optional." +msgstr "" +"Los archivos #include para mostrar en la sección del " +"resumen (una lista separada por comas), sobrescribiendo el valor global del " +"archivo de secciones o de la " +"línea de comandos. Este elemento es opcional." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1059 +msgid "@image" +msgstr "@image" + +#. (itstool) path: listitem/para +#: C/index.docbook:1061 +msgid "" +"The image to display at the top of the reference page for this section. This " +"will often be some sort of a diagram to illustrate the visual appearance of " +"a class or a diagram of its relationship to other classes. This item is " +"optional." +msgstr "" +"La imagen para mostrar en la parte superior de la página de referencia, para " +"esta sección. Generalmente será un tipo de diagrama para ilustrar la " +"apariencia visual de una clase o diagrama de su relación con otras clases. " +"Este elemento es opcional." + +#. (itstool) path: tip/para +#: C/index.docbook:1072 +msgid "" +"To avoid unnecessary recompilation after doc-changes put the section docs " +"into the c-source where possible." +msgstr "" +"Para evitar recompilaciones innecesarias después de cambios en la " +"documentación ponga los documentos de sección en el código fuente C cuando " +"sea posible." + +#. (itstool) path: sect1/title +#: C/index.docbook:1081 +msgid "Documenting symbols" +msgstr "Documentar símbolos" + +#. (itstool) path: sect1/para +#: C/index.docbook:1083 +msgid "" +"Each symbol (function, macro, struct, enum, signal and property) is " +"documented in a separate block. The block is best placed close to the " +"definition of the symbols so that it is easy to keep them in sync. Thus " +"functions are usually documented in the c-source and macros, structs and " +"enums in the header file." +msgstr "" +"Cada símbolo (función, macro, estructura, enum, señal y propiedad) está " +"documentado en un bloque separado. La mejor posición para el bloque es junto " +"a la definición del símbolo de tal forma que sea fácil mantenerlos " +"sincronizados. Por ello las funciones generalmente se documentan en el " +"código C y las macros, estructuras y enum en el archivo de cabecera." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1091 C/index.docbook:1157 +msgid "General tags" +msgstr "Etiquetas generales" + +#. (itstool) path: sect2/para +#: C/index.docbook:1093 +msgid "" +"You can add versioning information to all documentation elements to tell " +"when an API was introduced, or when it was deprecated." +msgstr "" +"Puede añadir información de versiones a todos los elementos de la " +"documentación para mostrar cuándo se introdujo una API o cuándo se declaró " +"obsoleta." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1098 +msgid "Versioning Tags" +msgstr "Versionado de etiquetas" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1099 +msgid "Since:" +msgstr "Desde:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1101 +msgid "Description since which version of the code the API is available." +msgstr "Descripción desde qué versión del código está disponible la API." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1106 +msgid "Deprecated:" +msgstr "Obsoleto:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1108 +msgid "" +"Paragraph denoting that this function should no be used anymore. The " +"description should point the reader to the new API." +msgstr "" +"Párrafo que denota que esta función no se debería usar más. La descripción " +"debería informar al lector de la nueva API." + +#. (itstool) path: sect2/para +#: C/index.docbook:1116 +msgid "" +"You can also add stability information to all documentation elements to " +"indicate whether API stability is guaranteed for them for all future minor " +"releases of the project." +msgstr "" +"También puede añadir información de estabilidad a todos los elementos de la " +"documentación para indicar si la se garantiza la estabilidad de la API en " +"todas las versiones menores futuras del proyecto." + +#. (itstool) path: sect2/para +#: C/index.docbook:1122 +msgid "" +"The default stability level for all documentation elements can be set by " +"passing the argument to " +"gtkdoc-mkdb with one of the values below." +msgstr "" +"El nivel de estabilidad predeterminado para todos los elementos de la " +"documentación se puede establecer pasando el argumento a gtkdoc-mkdb con uno de los " +"siguientes valores." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1128 +msgid "Stability Tags" +msgstr "Etiquetas de estabilidad" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1129 +msgid "Stability: Stable" +msgstr "Estabilidad: estable" + +#. (itstool) path: listitem/para +#: C/index.docbook:1131 +msgid "" +"Mark the element as stable. This is for public APIs which are guaranteed to " +"remain stable for all future minor releases of the project." +msgstr "" +"Marcar el elemento como estable. Esto es para API públicas que está " +"garantizado que serán estables para todas las versiones menores futuras del " +"proyecto." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1138 +msgid "Stability: Unstable" +msgstr "Estabilidad: inestable" + +#. (itstool) path: listitem/para +#: C/index.docbook:1140 +msgid "" +"Mark the element as unstable. This is for public APIs which are released as " +"a preview before being stabilised." +msgstr "" +"Marcar el elemento como inestable. Esto es para las API públicas que se " +"publican como versión previa antes de estabilizarse." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1146 +msgid "Stability: Private" +msgstr "Estabilidad: privado" + +#. (itstool) path: listitem/para +#: C/index.docbook:1148 +msgid "" +"Mark the element as private. This is for interfaces which can be used by " +"tightly coupled modules, but not by arbitrary third parties." +msgstr "" +"Marcar el elemento como privado. Esto es para interfaces que se pueden usar " +"en módulos fuertemente acoplados, pero no en terceras partes aleatorias." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1158 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: @foo's bar\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Use foo_baz_get_bar() instead.\n" +" */\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" +msgstr "" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: @foo's bar\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Use foo_baz_get_bar() instead.\n" +" */\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1178 C/index.docbook:1188 +msgid "Annotations" +msgstr "Anotaciones" + +#. (itstool) path: sect2/para +#: C/index.docbook:1180 +msgid "" +"Documentation blocks can contain annotation-tags. These tags will be " +"rendered with tooltips describing their meaning. The tags are used by " +"gobject-introspection to generate language bindings. A detailed list of the " +"supported tags can be found on the wiki." +msgstr "" +"Los bloques de documentación pueden contener etiquetas de anotaciones. Estas " +"etiquetas se renderizarán con consejos que describan su significado. Las " +"etiquetas se usan en la introspección de GObject para generar vinculaciones " +"del lenguaje. Puede obtener una lista detallada de las etiquetas soportadas " +"en el wiki." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1189 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * foo_get_bar: (annotation)\n" +" * @foo: (annotation): some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: (annotation): @foo's bar\n" +" */\n" +"...\n" +"/**\n" +" * foo_set_bar_using_the_frobnicator: (annotation) (another annotation)\n" +" * (and another annotation)\n" +" * @foo: (annotation) (another annotation): some foo\n" +" *\n" +" * Sets bar on @foo.\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * foo_get_bar: (annotation)\n" +" * @foo: (annotation): some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: (annotation): @foo's bar\n" +" */\n" +"...\n" +"/**\n" +" * foo_set_bar_using_the_frobnicator: (annotation) (another annotation)\n" +" * (and another annotation)\n" +" * @foo: (annotation) (another annotation): some foo\n" +" *\n" +" * Sets bar on @foo.\n" +" */\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1210 C/index.docbook:1239 +msgid "Function comment block" +msgstr "Bloque de comentario de función" + +#. (itstool) path: listitem/para +#: C/index.docbook:1216 +msgid "" +"Document whether returned objects, lists, strings, etc, should be freed/" +"unrefed/released." +msgstr "" +"El documento, dependiendo de si devuelve objetos, listas, cadenas, etc. " +"debería liberarse/desreferenciarse/etc." + +#. (itstool) path: listitem/para +#: C/index.docbook:1222 +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "" +"El documento, dependiendo de si sus parámetros pueden ser nulos, y qué " +"sucede si lo son." + +#. (itstool) path: listitem/para +#: C/index.docbook:1227 +msgid "" +"Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "" +"Mencionar precondiciones y postcondiciones interesantes donde sea apropiado." + +#. (itstool) path: sect2/para +#: C/index.docbook:1212 C/index.docbook:1298 +msgid "Please remember to: <_:itemizedlist-1/>" +msgstr "Recuerde: <_:itemizedlist-1/>" + +#. (itstool) path: sect2/para +#: C/index.docbook:1234 +msgid "" +"Gtk-doc assumes all symbols (macros, functions) starting with '_' are " +"private. They are treated like static functions." +msgstr "" +"GTK-Doc asume que todos los símbolos (macros, funciones) que empiezan por " +"«_» son privados. Se tratan como funciones estáticas." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1240 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * function_name:\n" +" * @par1: description of parameter 1. These can extend over more than\n" +" * one line.\n" +" * @par2: description of parameter 2\n" +" * @...: a %NULL-terminated list of bars\n" +" *\n" +" * The function description goes here. You can use @par1 to refer to parameters\n" +" * so that they are highlighted in the output. You can also use %constant\n" +" * for constants, function_name2() for functions and #GtkWidget for links to\n" +" * other declarations (which may be documented elsewhere).\n" +" *\n" +" * Returns: an integer.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Use other_function() instead.\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * function_name:\n" +" * @par1: description of parameter 1. These can extend over more than\n" +" * one line.\n" +" * @par2: description of parameter 2\n" +" * @...: a %NULL-terminated list of bars\n" +" *\n" +" * The function description goes here. You can use @par1 to refer to parameters\n" +" * so that they are highlighted in the output. You can also use %constant\n" +" * for constants, function_name2() for functions and #GtkWidget for links to\n" +" * other declarations (which may be documented elsewhere).\n" +" *\n" +" * Returns: an integer.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Use other_function() instead.\n" +" */\n" + +#. (itstool) path: variablelist/title +#: C/index.docbook:1261 +msgid "Function tags" +msgstr "Etiquetas de funciones" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1262 C/index.docbook:1469 +msgid "Returns:" +msgstr "Devuelve:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1264 +msgid "Paragraph describing the returned result." +msgstr "Párrafo que describe el resultado devuelto." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1269 +msgid "@...:" +msgstr "@...:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1271 +msgid "" +"In case the function has variadic arguments, you should use this tag " +"(@Varargs: does also work for historic reasons)." +msgstr "" +"En el caso de que la función tenga argumentos variados debe usar esta " +"etiqueta (@Vargargs: también funciona por razones históricas)." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1281 C/index.docbook:1283 +msgid "Property comment block" +msgstr "Bloque de comentario de propiedad" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1284 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * SomeWidget:some-property:\n" +" *\n" +" * Here you can document a property.\n" +" */\n" +"g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);\n" +msgstr "" +"\n" +"/**\n" +" * SomeWidget:some-property:\n" +" *\n" +" * Here you can document a property.\n" +" */\n" +"g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1296 C/index.docbook:1315 +msgid "Signal comment block" +msgstr "Bloque de comentario de señal" + +#. (itstool) path: listitem/para +#: C/index.docbook:1302 +msgid "" +"Document when the signal is emitted and whether it is emitted before or " +"after other signals." +msgstr "" +"Documentar cuando la señal se emite e indica si se emite antes o después de " +"otras señales." + +#. (itstool) path: listitem/para +#: C/index.docbook:1308 +msgid "Document what an application might do in the signal handler." +msgstr "Documentar qué aplicación debe gestionar las señales." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1316 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * FooWidget::foobarized:\n" +" * @widget: the widget that received the signal\n" +" * @foo: some foo\n" +" * @bar: some bar\n" +" *\n" +" * The ::foobarized signal is emitted each time someone tries to foobarize @widget.\n" +" */\n" +"foo_signals[FOOBARIZED] =\n" +" g_signal_new (\"foobarized\",\n" +" ...\n" +msgstr "" +"\n" +"/**\n" +" * FooWidget::foobarized:\n" +" * @widget: the widget that received the signal\n" +" * @foo: some foo\n" +" * @bar: some bar\n" +" *\n" +" * The ::foobarized signal is emitted each time someone tries to foobarize @widget.\n" +" */\n" +"foo_signals[FOOBARIZED] =\n" +" g_signal_new (\"foobarized\",\n" +" ...\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1333 C/index.docbook:1334 +msgid "Struct comment block" +msgstr "Bloque de comentario de estructura" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1335 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: some #gboolean\n" +" *\n" +" * This is the best widget, ever.\n" +" */\n" +"typedef struct _FooWidget {\n" +" GtkWidget parent_instance;\n" +"\n" +" gboolean bar;\n" +"} FooWidget;\n" +msgstr "" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: some #gboolean\n" +" *\n" +" * This is the best widget, ever.\n" +" */\n" +"typedef struct _FooWidget {\n" +" GtkWidget parent_instance;\n" +"\n" +" gboolean bar;\n" +"} FooWidget;\n" + +#. (itstool) path: sect2/para +#: C/index.docbook:1350 +msgid "" +"Use /*< private >*/ before the private struct fields you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"Use /*< private >*/ antes de campos de estructuras " +"privadas que quiera ocultar. Use /*< public >*/ para " +"revertir el comportamiento anterior." + +#. (itstool) path: sect2/para +#: C/index.docbook:1356 +msgid "" +"If the first field is \"g_iface\", \"parent_instance\" or \"parent_class\" " +"it will be considered private automatically and doesn't need to be mentioned " +"in the comment block." +msgstr "" +"Si el primer campo es «g_iface», «parent_instance» o «parent_class» se " +"considerará como privado automáticamente y no necesita mencionarse en el " +"bloque de comentario." + +#. (itstool) path: sect2/para +#: C/index.docbook:1362 +msgid "" +"Struct comment blocks can also be used for GObjects and GObjectClasses. It " +"is usually a good idea to add a comment block for a class, if it has " +"vmethods (as this is how they can be documented). For the GObject itself one " +"can use the related section docs, having a separate block for the instance " +"struct would be useful if the instance has public fields. One disadvantage " +"here is that this creates two index entries of the same name (the structure " +"and the section)." +msgstr "" +"También se pueden usar bloques de comentario para GObjects y GObjectClasses. " +"Generalmente es buena idea añadir un bloque de comentario para una clase, si " +"tiene «vmethods» (ya que así se pueden documentar). Para el GObject en si, " +"se puede usar la sección relativa a la documentación, tener un bloque " +"separado para la estructura de la instancia sería útil si la instancia tiene " +"campos públicos. Una desventaja aquí es que esto crea dos entradas de índice " +"con el mismo nombre (la estructura y la sección)." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1374 C/index.docbook:1375 +msgid "Enum comment block" +msgstr "Enumerar bloques de comentarios" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1376 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: something foo\n" +" * @SOMETHING_BAR: something bar\n" +" *\n" +" * Enum values used for the thing, to specify the thing.\n" +" */\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" +msgstr "" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: something foo\n" +" * @SOMETHING_BAR: something bar\n" +" *\n" +" * Enum values used for the thing, to specify the thing.\n" +" */\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" + +#. (itstool) path: sect2/para +#: C/index.docbook:1393 +msgid "" +"Use /*< private >*/ before the private enum values you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"Use /*< private >*/ antes de enumerar valores privados " +"que quiera ocultar. Use /*< public >*/ para revertir el " +"comportamiento anterior." + +#. (itstool) path: sect1/title +#: C/index.docbook:1404 +msgid "Inline program documentation" +msgstr "Documentación en línea del programa" + +#. (itstool) path: sect1/para +#: C/index.docbook:1405 +msgid "" +"You can document programs and their commandline interface using inline " +"documentation." +msgstr "" +"Puede documentar programas y su interfaz de línea de comandos usando la " +"documentación en línea." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1411 +msgid "Tags" +msgstr "Etiquetas" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1413 +msgid "PROGRAM" +msgstr "PROGRAM" + +#. (itstool) path: listitem/para +#: C/index.docbook:1416 +msgid "Defines the start of a program documentation." +msgstr "Define el inicio de la documentación de un programa." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1423 +msgid "@short_description:" +msgstr "@short_description:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1425 +msgid "Defines a short description of the program. (Optional)" +msgstr "Define una descripción corta del programa. (Opcional)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1432 +msgid "@synopsis:" +msgstr "@synopsis:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1434 +msgid "" +"Defines the arguments, or list of arguments that the program can take. " +"(Optional)" +msgstr "" +"Define el argumento o la lista de argumentos que el programa puede usar. " +"(Opcional)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1442 +msgid "@see_also:" +msgstr "@see_also:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1444 +msgid "See Also manual page section. (Optional)" +msgstr "Página del manual Ver también. (Opcional)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1451 +msgid "@arg:" +msgstr "@arg:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1453 +msgid "Argument(s) passed to the program and their description. (Optional)" +msgstr "Argumentos pasados al programa y su descripción. (Opcional)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1460 +msgid "Description:" +msgstr "Description:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1462 +msgid "A longer description of the program." +msgstr "Una descripción más larga del programa." + +#. (itstool) path: listitem/para +#: C/index.docbook:1471 +msgid "Specificy what value(s) the program returns. (Optional)" +msgstr "Especifique qué valores devuelve el programa. (Opcional)" + +#. (itstool) path: sect2/title +#: C/index.docbook:1480 +msgid "Example of program documentation." +msgstr "Ejemplo de documentación de un programa." + +#. (itstool) path: example/title +#: C/index.docbook:1481 +msgid "Program documentation block" +msgstr "Bloque de documentación del programa" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1482 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * PROGRAM:test-program\n" +" * @short_description: A test program\n" +" * @synopsis: test-program [*OPTIONS*...] --arg1 *arg* *FILE*\n" +" * @see_also: test(1)\n" +" * @--arg1 *arg*: set arg1 to *arg*\n" +" * @--arg2 *arg*: set arg2 to *arg*\n" +" * @-v, --version: Print the version number\n" +" * @-h, --help: Print the help message\n" +" *\n" +" * Long description of program.\n" +" *\n" +" * Returns: Zero on success, non-zero on failure\n" +" */\n" +"int main(int argc, char *argv[])\n" +"{\n" +"\treturn 0;\n" +"}\n" +msgstr "" +"\n" +"/**\n" +" * PROGRAM:test-program\n" +" * @short_description: A test program\n" +" * @synopsis: test-program [*OPTIONS*...] --arg1 *arg* *FILE*\n" +" * @see_also: test(1)\n" +" * @--arg1 *arg*: set arg1 to *arg*\n" +" * @--arg2 *arg*: set arg2 to *arg*\n" +" * @-v, --version: Print the version number\n" +" * @-h, --help: Print the help message\n" +" *\n" +" * Long description of program.\n" +" *\n" +" * Returns: Zero on success, non-zero on failure\n" +" */\n" +"int main(int argc, char *argv[])\n" +"{\n" +"\treturn 0;\n" +"}\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:1508 +msgid "Useful DocBook tags" +msgstr "Etiquetas DocBook útiles" + +#. (itstool) path: sect1/para +#: C/index.docbook:1510 +msgid "" +"Here are some DocBook tags which are most useful when documenting the code." +msgstr "" +"Aquí están varias etiquetas de DocBook muy útiles al documentar código." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1519 +#, no-wrap +msgid "" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hash Tables</link>\n" +msgstr "" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hash Tables</link>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1515 +msgid "" +"To link to another section in the GTK docs: <_:informalexample-1/> The " +"linkend is the SGML/XML id on the top item of the page you want to link to. " +"For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and " +"then the page title (\"Hash Tables\"). For widgets it is just the class " +"name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" +"Para enlazar otra sección en GTK docs: <_:informalexample-1/>. El enlace es " +"el id SGML en el elemento superior de la página a la que quiere enlazar. " +"Para la mayoría de las páginas esta es la parte («gtk», «gdk», «glib») y " +"después el título de página («Tablas hash»). Para los widgets es simplemente " +"el nombre de la clase. Los espacios y guiones bajos se convierten a «-» para " +"ajustarse a SGML/XML." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1532 +#, no-wrap +msgid "" +"\n" +"<function>...</function>\n" +msgstr "" +"\n" +"<function>...</function>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1529 +msgid "" +"To refer to an external function, e.g. a standard C function: <_:" +"informalexample-1/>" +msgstr "" +"Para referirse a una función externa, ej. una función de C estándar: <_:" +"informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1541 +#, no-wrap +msgid "" +"\n" +"<example>\n" +" <title>Using a GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" +msgstr "" +"\n" +"<example>\n" +" <title>Using a GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1552 +#, no-wrap +msgid "" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" +msgstr "" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1538 +msgid "" +"To include example code: <_:informalexample-1/> or possibly this, for very " +"short code fragments which don't need a title: <_:informalexample-2/> For " +"the latter GTK-Doc also supports an abbreviation: |[ ... ]|" +msgstr "" +"Para incluir un código de ejemplo: <_:informalexample-1/> o posiblemente " +"este, para fragmentos de código muy cortos que no necesitan título: <_:" +"informalexample-2/>. El último GTK-Doc también soporta abreviación: |[ ... ]|" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1571 +#, no-wrap +msgid "" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" +msgstr "" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1568 +msgid "To include bulleted lists: <_:informalexample-1/>" +msgstr "Para incluir listas de topos: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1591 +#, no-wrap +msgid "" +"\n" +"<note>\n" +" <para>\n" +" Make sure you free the data after use.\n" +" </para>\n" +"</note>\n" +msgstr "" +"\n" +"<note>\n" +" <para>\n" +" Make sure you free the data after use.\n" +" </para>\n" +"</note>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1588 +msgid "" +"To include a note which stands out from the text: <_:informalexample-1/>" +msgstr "Para incluir una nota que sobresale del texto: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1604 +#, no-wrap +msgid "" +"\n" +"<type>unsigned char</type>\n" +msgstr "" +"\n" +"<type>unsigned char</type>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1601 +msgid "To refer to a type: <_:informalexample-1/>" +msgstr "Para referirse a un tipo: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1613 +#, no-wrap +msgid "" +"\n" +"<structname>XFontStruct</structname>\n" +msgstr "" +"\n" +"<structname>XFontStruct</structname>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1610 +msgid "" +"To refer to an external structure (not one described in the GTK docs): <_:" +"informalexample-1/>" +msgstr "" +"Para referirse a una estructura externa (no una descrita en la documentación " +"de GTK): <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1622 +#, no-wrap +msgid "" +"\n" +"<structfield>len</structfield>\n" +msgstr "" +"\n" +"<structfield>len</structfield>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1619 +msgid "To refer to a field of a structure: <_:informalexample-1/>" +msgstr "Para referirse a un campo o a una estructura: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1631 +#, no-wrap +msgid "" +"\n" +"<classname>GtkWidget</classname>\n" +msgstr "" +"\n" +"<classname>GtkWidget</classname>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1628 +msgid "" +"To refer to a class name, we could possibly use: <_:informalexample-1/> but " +"you'll probably be using #GtkWidget instead (to automatically create a link " +"to the GtkWidget page - see the " +"abbreviations)." +msgstr "" +"Para referirse a un nombre de clase, se podría usar: <_:informalexample-1/> " +"pero probablemente estará usando #GtkWidget en su lugar (para crear " +"automáticamente un enlace a la página GtkWidget; consulte abreviaciones)." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1642 +#, no-wrap +msgid "" +"\n" +"<emphasis>This is important</emphasis>\n" +msgstr "" +"\n" +"<emphasis>This is important</emphasis>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1639 +msgid "To emphasize text: <_:informalexample-1/>" +msgstr "Para enfatizar un texto: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1651 +#, no-wrap +msgid "" +"\n" +"<filename>/home/user/documents</filename>\n" +msgstr "" +"\n" +"<filename>/home/user/documents</filename>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1648 +msgid "For filenames use: <_:informalexample-1/>" +msgstr "Para uso de nombres de archivo: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1660 +#, no-wrap +msgid "" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" +msgstr "" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1657 +msgid "To refer to keys use: <_:informalexample-1/>" +msgstr "Para referirse a claves: <_:informalexample-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:1670 +msgid "Filling the extra files" +msgstr "Rellenar campos adicionales" + +#. (itstool) path: chapter/para +#: C/index.docbook:1672 +msgid "" +"There are a couple of extra files, that need to be maintained along with the " +"inline source code comments: <package>.types, " +"<package>-docs.xml (in the past .sgml), " +"<package>-sections.txt." +msgstr "" +"Existen tres archivos adicionales que deben mantenerse junto con los " +"comentarios en línea del código fuente: <paquete>.types, <paquete>-docs.xml (.sgml en el " +"pasado) y <paquete>-sections.txt." + +#. (itstool) path: sect1/title +#: C/index.docbook:1681 +msgid "Editing the types file" +msgstr "Editar los tipos de archivo" + +#. (itstool) path: sect1/para +#: C/index.docbook:1683 +msgid "" +"If your library or application includes GObjects, you want their signals, " +"arguments/parameters and position in the hierarchy to be shown in the " +"documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <" +"package>.types file." +msgstr "" +"Si su biblioteca o aplicación incluye GObjects puede querer que sus señales, " +"argumentos y/o parámetros y posición en la jerarquía se muestre en la " +"documentación. Todo lo que debe hacer es listar las funciones " +"xxx_get_type junto con sus «include» en el archivo " +"<paquete>.types." + +#. (itstool) path: example/title +#: C/index.docbook:1692 +msgid "Example types file snippet" +msgstr "Fragmento de ejemplo de tipos de archivo" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1693 +#, no-wrap +msgid "" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" +msgstr "" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1704 +msgid "" +"Since GTK-Doc 1.8 gtkdoc-scan can generate this " +"list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in " +"Makefile.am. If you use this approach you should not " +"dist the types file nor have it under version control." +msgstr "" +"Desde GTK-Doc 1.8 gtkdoc-scan puede genera esta " +"lista. Simplemente añada «--rebuild-types» a SCAN_OPTIONS en el " +"Makefile.am. Si usa esto no debería ejecutar dist sobre " +"los tipos de archivo ni tenerlos bajo el control de versiones." + +#. (itstool) path: sect1/title +#: C/index.docbook:1713 +msgid "Editing the master document" +msgstr "Editar la sección maestra del documento" + +#. (itstool) path: sect1/para +#: C/index.docbook:1715 +msgid "" +"GTK-Doc produces documentation in DocBook SGML/XML. When processing the " +"inline source comments, the GTK-Doc tools generate one documentation page " +"per class or module as a separate file. The master document includes them " +"and place them in an order." +msgstr "" +"GTK-Doc produce documentación en DocBook SGML/XML. Cuando se procesan los " +"comentarios en las líneas del código, las herramientas de GTK-Doc generan " +"una página de documentación por clase o módulo en un archivo aparte. El " +"documento maestro las incluye y ordena." + +#. (itstool) path: sect1/para +#: C/index.docbook:1722 +msgid "" +"While GTK-Doc creates a template master document for you, later runs will " +"not touch it again. This means that one can freely structure the " +"documentation. That includes grouping pages and adding extra pages. GTK-Doc " +"has now a test suite, where also the master-document is recreated from " +"scratch. Its a good idea to look at this from time to time to see if there " +"are some new goodies introduced there." +msgstr "" +"Puesto que GTK-Doc crea una documento maestro de plantilla, una posterior " +"ejecución no lo modificará de nuevo. Esto significa que se puede estructurar " +"libremente la documentación. Esto incluye agrupar páginas y añadir páginas " +"adicionales. Ahora GTK-Doc tiene un entorno de pruebas, donde también el " +"documento maestro se vuelve a crear desde cero. Es una buena idea mirarlo de " +"vez en cuando para ver si se han introducido algunas mejoras." + +#. (itstool) path: tip/para +#: C/index.docbook:1732 +msgid "" +"Do not create tutorials as extra documents. Just write extra chapters. The " +"benefit of directly embedding the tutorial for your library into the API " +"documentation is that it is easy to link for the tutorial to symbol " +"documentation. Apart chances are higher that the tutorial gets updates along " +"with the library." +msgstr "" +"No crear tutoriales como documentos adicionales. Solamente escriba capítulos " +"adicionales. La ventaja de integrar directamente el tutorial para su " +"biblioteca en la documentación de la API es que es fácil para el tutorial " +"enlazar la documentación de símbolos. Además las posibilidades de actualizar " +"el tutorial junto con la biblioteca son mayores." + +#. (itstool) path: sect1/para +#: C/index.docbook:1741 +msgid "" +"So what are the things to change inside the master document? For a start is " +"only a little. There are some placeholders (text in square brackets) there " +"which you should take care of." +msgstr "" +"¿Así que qué es lo que hay que cambiar en el documento maestro? Para empezar " +"es muy poco. Existen algunos «placeholders» (texto entre corchetes) de los " +"que habría que encargarse." + +#. (itstool) path: example/title +#: C/index.docbook:1748 +msgid "Master document header" +msgstr "Cabecera del documento maestro" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1749 +#, no-wrap +msgid "" +"\n" +"<bookinfo>\n" +" <title>MODULENAME Reference Manual</title>\n" +" <releaseinfo>\n" +" for MODULENAME [VERSION]\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULENAME/index.html\">http://[SERVER]/MODULENAME/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insert title here]</title>\n" +msgstr "" +"\n" +"<bookinfo>\n" +" <title>MODULENAME Reference Manual</title>\n" +" <releaseinfo>\n" +" for MODULENAME [VERSION]\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULENAME/index.html\">http://[SERVER]/MODULENAME/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insert title here]</title>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1765 +msgid "" +"In addition a few option elements are created in commented form. You can " +"review these and enable them as you like." +msgstr "" +"Se crean además unos pocos elementos de opciones de la manera comentada. " +"Puede revisarlos y activarlos como quiera." + +#. (itstool) path: example/title +#: C/index.docbook:1771 +msgid "Optional part in the master document" +msgstr "Parte opcional en el documento maestro" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1772 +#, no-wrap +msgid "" +"\n" +" <!-- enable this when you use gobject introspection annotations\n" +" <xi:include href=\"xml/annotation-glossary.xml\"><xi:fallback /></xi:include>\n" +" -->\n" +msgstr "" +"\n" +" <!-- active esto cuando use anotaciones de introspección de gobject\n" +" <xi:include href=\"xml/annotation-glossary.xml\"><xi:fallback /></xi:include>\n" +" --> \n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1780 +msgid "" +"Finally you need to add new section whenever you introduce one. The gtkdoc-check tool will remind " +"you of newly generated xml files that are not yet included into the doc." +msgstr "" +"Por último, necesita añadir una sección nueva siempre que quiera introducir " +"una. La herramienta gtkdoc-check le recordará los nuevos archivos xml generados que no estén inclídos " +"todavía en la documentación." + +#. (itstool) path: example/title +#: C/index.docbook:1788 C/index.docbook:1823 +msgid "Including generated sections" +msgstr "Incluir secciones generadas" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1789 +#, no-wrap +msgid "" +"\n" +" <chapter>\n" +" <title>my library</title>\n" +" <xi:include href=\"xml/object.xml\"/>\n" +" ...\n" +msgstr "" +"\n" +" <chapter>\n" +" <title>mi biblioteca</title>\n" +" <xi:include href=\"xml/object.xml\"/>\n" +" ...\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:1801 +msgid "Editing the section file" +msgstr "Editar el archivo de sección" + +#. (itstool) path: sect1/para +#: C/index.docbook:1803 +msgid "" +"The section file is used to organise the documentation output by GTK-Doc. " +"Here one specifies which symbol belongs to which module or class and control " +"the visibility (public or private)." +msgstr "" +"El archivo de sección se usa para organizar la salida de la documentación " +"por GTK-Doc. Aquí se especifica qué símbolos pertenecen a qué módulo o clase " +"y el control de la visibilidad (pública o privada)." + +#. (itstool) path: sect1/para +#: C/index.docbook:1809 +msgid "" +"The section file is a plain text file with tags delimiting sections. Blank " +"lines are ignored and lines starting with a '#' are treated as comment lines." +msgstr "" +"El archivo de sección es un archivo de texto plano con etiquetas que " +"delimitan las secciones. Se ignoran las líneas vacías y las líneas que " +"comiencen con «#» se tratan como comentarios." + +#. (itstool) path: note/para +#: C/index.docbook:1816 +msgid "" +"While the tags make the file look like xml, it is not. Please do not close " +"tags like <SUBSECTION>." +msgstr "" +"Aunque las etiquetas hacen que el archivo parezca XML, no lo es. No incluya " +"etiquetas del tipo <SUBSECTION>." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1824 +#, no-wrap +msgid "" +"\n" +"<INCLUDE>libmeep/meep.h</INCLUDE>\n" +"\n" +"<SECTION>\n" +"<FILE>meepapp</FILE>\n" +"<TITLE>MeepApp</TITLE>\n" +"MeepApp\n" +"<SUBSECTION Standard>\n" +"MEEP_APP\n" +"...\n" +"MeepAppClass\n" +"meep_app_get_type\n" +"</SECTION>\n" +msgstr "" +"\n" +"<INCLUDE>libmeep/meep.h</INCLUDE>\n" +"\n" +"<SECTION>\n" +"<FILE>meepapp</FILE>\n" +"<TITLE>MeepApp</TITLE>\n" +"MeepApp\n" +"<SUBSECTION Standard>\n" +"MEEP_APP\n" +"...\n" +"MeepAppClass\n" +"meep_app_get_type\n" +"</SECTION>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1841 +msgid "" +"The <FILE> ... </FILE> tag is used to specify the file name, " +"without any suffix. For example, using '<FILE>gnome-config</" +"FILE>' will result in the section declarations being output in the " +"template file tmpl/gnome-config.sgml, which will be " +"converted into the DocBook XML file xml/gnome-config.sgml or the DocBook XML file xml/gnome-config.xml. " +"(The name of the HTML file is based on the module name and the section " +"title, or for GObjects it is based on the GObjects class name converted to " +"lower case)." +msgstr "" +"La etiqueta <FILE> ... </FILE> se usa para especificar el nombre " +"del archivo, sin sufijo. Por ejemplo, usar «<FILE>gnome-config</" +"FILE>» dará como resultado en la sección de declaraciones la salida " +"tmpl/gnome-config.sgml en el archivo de plantilla, que " +"se convertirá al archivo DocBook XML sgml/gnome-config.sgml o al archivo DocBook XML xml/gnome-config.xml. (El nombre del archivo HTML está basado en el nombre del módulo y " +"en el título de la sección, o para GObjects está basado en el nombre de " +"clase de GObject convertido a minúscula.)" + +#. (itstool) path: sect1/para +#: C/index.docbook:1853 +msgid "" +"The <TITLE> ... </TITLE> tag is used to specify the title of the " +"section. It is only useful before the templates (if used) are initially " +"created, since the title set in the template file overrides this. Also if " +"one uses SECTION comment in the sources, this is obsolete." +msgstr "" +"La etiqueta <TITLE> ... </TITLE> se usa para especificar el " +"título de una sección. Sólo es útil antes de que las plantillas (si se usan) " +"se creen inicialmente, ya que el título configurado en la plantilla lo " +"sobrescribe. Además, si una usa comentarios SECTION en los fuentes, se queda " +"obsoleto." + +#. (itstool) path: sect1/para +#: C/index.docbook:1860 +msgid "" +"You can group items in the section by using the <SUBSECTION> tag. " +"Currently it outputs a blank line between subsections in the synopsis " +"section. You can also use <SUBSECTION Standard> for standard GObject " +"declarations (e.g. the functions like g_object_get_type and macros like " +"G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the " +"documentation. You can also use <SUBSECTION Private> for private " +"declarations which will not be output (it is a handy way to avoid warning " +"messages about unused declarations). If your library contains private types " +"which you don't want to appear in the object hierarchy and the list of " +"implemented or required interfaces, add them to a Private subsection. " +"Whether you would place GObject and GObjectClass like structs in public or " +"Standard section depends if they have public entries (variables, vmethods)." +msgstr "" +"Puede agrupar elementos en la sección usando la etiqueta <SUBSECTION>. " +"Actualmente esto genera una línea en blanco entre subsecciones en la sección " +"de resumen. También puede usar <SUBSECTION Standard> para " +"declaraciones estándar de GObject (ej. funciones como g_object_get_type and " +"macros como G_OBJECT(), G_IS_OBJECT() etc.). Actualmente éstas se han dejado " +"fuera de la documentación. También puede usar <SUBSECTION Private> " +"para declaraciones privadas que no producirán ninguna salida (s una manera " +"práctica de evitar mensajes de advertencia sobre declaraciones sin usar). Si " +"sus bibliotecas contienen tipos privados que no quiere que aparezcan en la " +"jerarquía de objetos o en la lista de interfaces implementados o necesarios, " +"añádalos a una subsección Privada. Si ubica GObject y GObjectClass como " +"estructuras en la sección pública o estándar, depende de si tienen entradas " +"públicas (variables, vmethods)." + +#. (itstool) path: sect1/para +#: C/index.docbook:1879 +msgid "" +"You can also use <INCLUDE> ... </INCLUDE> to specify the " +"#include files which are shown in the synopsis sections. It contains a comma-" +"separate list of #include files, without the angle brackets. If you set it " +"outside of any sections, it acts for all sections until the end of the file. " +"If you set it within a section, it only applies to that section." +msgstr "" +"También puede usar <INCLUDE> ... </INCLUDE> para especificar qué " +"archivos #include se muestran en la sección de resumen. Contiene una lista " +"de archivos #include separados por comas, sin las almohadillas. Si lo " +"configura fuera de cualquier sección, actúa para todas las secciones hasta " +"el final del archivo. Si lo configura dentro de una sección, sólo se aplica " +"a esa sección." + +#. (itstool) path: chapter/title +#: C/index.docbook:1893 +msgid "Controlling the result" +msgstr "Controlar el resultado" + +#. (itstool) path: chapter/para +#: C/index.docbook:1895 +msgid "" +"A GTK-Doc run generates report files inside the documentation directory. The " +"generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and " +"<package>-unused.txt. All those are plain text " +"files that can be viewed and postprocessed easily." +msgstr "" +"Una ejecución de GTK-Doc genera archivos de informe dentro de la carpeta de " +"la documentación. Los archivos generados se llaman <paquete>-" +"undocumented.txt, <paquete>-undeclared.txt y <paquete>-unused.txt.Todos son " +"archivos de texto plano y se pueden ver y posprocesar fácilmente." + +#. (itstool) path: chapter/para +#: C/index.docbook:1904 +msgid "" +"The <package>-undocumented.txt file starts with " +"the documentation coverage summary. Below are two sections divided by blank " +"lines. The first section lists undocumented or incomplete symbols. The " +"second section does the same for section docs. Incomplete entries are those, " +"which have documentation, but where e.g. a new parameter has been added." +msgstr "" +"El archivo <paquete>-undocumented.txt comienza " +"con el resumen de cobertura de la documentación. Debajo hay dos secciones " +"divididas por líneas vacías. La primera sección lista los símbolos " +"incompletos o indocumentados. La segunda sección hace lo mismo para los " +"documentos de sección. Las entradas incompletas son aquellas que tienen " +"documentación pero dónde; p.e. se ha añadido un parámetro nuevo." + +#. (itstool) path: chapter/para +#: C/index.docbook:1913 +msgid "" +"The <package>-undeclared.txt file lists symbols " +"given in the <package>-sections.txt but not found " +"in the sources. Check if they have been removed or if they are misspelled." +msgstr "" +"El archivo <paquete>-undeclared.txt lista " +"símbolos proporcionados en el archivo <paquete>-sections." +"txt, pero no encontrados en los fuentes. Compruebe si se han " +"eliminado o no se han escrito correctamente." + +#. (itstool) path: chapter/para +#: C/index.docbook:1920 +msgid "" +"The <package>-unused.txt file lists symbol names, " +"where the GTK-Doc scanner has found documentation, but does not know where " +"to put it. This means that the symbol has not yet been added to the " +"<package>-sections.txt file." +msgstr "" +"El archivo <paquete>-unused.txt lista nombres de " +"símbolos, donde el analizador de GTK-Doc ha encontrado documentación, pero " +"no sabe dónde ponerla. Esto significa que el símbolo no se ha añadido " +"todavía al archivo <paquete>-sections.txt." + +#. (itstool) path: tip/para +#: C/index.docbook:1928 +msgid "" +"Enable or add the line in Makefile." +"am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during " +"make check run." +msgstr "" +"Activar o añadir la línea en Makefile." +"am. Si como mínimo está instalado GTK-Doc 1.9, esto ejecutará comprobaciones " +"de integridad durante la ejecución de make check." + +#. (itstool) path: chapter/para +#: C/index.docbook:1935 +msgid "" +"One can also look at the files produced by the source code scanner: " +"<package>-decl-list.txt and <" +"package>-decl.txt. The first one can be compared with the " +"section file if that is manually maintained. The second lists all " +"declarations from the headers. If a symbol is missing one could check if " +"this file contains it." +msgstr "" +"También puede mirar los archivos producidos por el analizador del código " +"fuente: <paquete>-decl-list.txt y <" +"paquete>-decl.txt. El primero se puede comparar con el archivo " +"de sección si se mantiene manualmente. El segundo lista todas las " +"declaraciones desde las cabeceras. Si falta un símbolo, se puede comprobar " +"si este archivo lo contiene." + +#. (itstool) path: chapter/para +#: C/index.docbook:1944 +msgid "" +"If the project is GObject based, one can also look into the files produced " +"by the object scanner: <package>.args.txt, " +"<package>.hierarchy.txt, <" +"package>.interfaces.txt, <package>." +"prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask GTK-Doc " +"to keep the intermediate scanner file for further analysis, by running it as " +"GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" +"Si el proyecto está basado en GObject, también se puede mirar en los " +"archivos producidos por el analizador de objetos: <paquete>." +"args.txt, <paquete>.hierarchy.txt, " +"<paquete>.interfaces.txt, <" +"paquete>.prerequisites.txt y <paquete>.signals." +"txt. Si faltan símbolos en cualquiera de ellos, puede hacer que " +"GTK-Doc guarde el análisis de archivos para futuros análisis, pero " +"ejecutándolo como GTK_DOC_KEEP_INTERMEDIATE=1 make." + +#. (itstool) path: chapter/title +#: C/index.docbook:1959 +msgid "Modernizing the documentation" +msgstr "Modernizar la documentación" + +#. (itstool) path: chapter/para +#: C/index.docbook:1961 +msgid "" +"GTK-Doc has been around for quite some time. In this section we list new " +"features together with the version since when it is available." +msgstr "" +"GTK-Doc ha existido durante mucho tiempo. En esta sección se listan las " +"características nuevas junto con la versión desde la que están disponibles." + +#. (itstool) path: sect1/title +#: C/index.docbook:1967 +msgid "GTK-Doc 1.9" +msgstr "GTK-Doc 1.9" + +#. (itstool) path: sect1/para +#: C/index.docbook:1969 +msgid "" +"When using xml instead of sgml, one can actually name the master document " +"<package>-docs.xml." +msgstr "" +"Al usar XML en lugar de SGML, actualmente se puede nombrar el documento " +"maestro <paquete>-docs.xml." + +#. (itstool) path: sect1/para +#: C/index.docbook:1974 +msgid "" +"This version supports in " +"Makefile.am. When this is enabled, the <" +"package>-sections.txt is autogenerated and can be removed from " +"the vcs. This only works nicely for projects that have a very regular " +"structure (e.g. each .{c,h} pair will create new section). If one organize a " +"project close to that updating a manually maintained section file can be as " +"simple as running meld <package>-decl-list.txt <package>-" +"sections.txt." +msgstr "" +"Esta versión soporta en " +"Makefile.am. Cuando está activada, el archivo " +"<paquete>-sections.txt se genera automáticamente " +"y se puede quitar del control de versiones. Esto sólo funciona en proyectos " +"que tienen una estructura regular (ej. cada pareja .{c,h} creará una sección " +"nueva). Si se organiza un proyecto parecido a esto, actualizar una sección " +"mantenida manualmente puede ser tan sencillo como ejecutar meld <" +"paquete>-decl-list.txt <paquete>-sections.txt." + +#. (itstool) path: sect1/para +#: C/index.docbook:1985 +msgid "" +"Version 1.8 already introduced the syntax for documenting sections in the " +"sources instead of the separate files under tmpl. This version adds options to switch the whole doc module " +"to not use the extra tmpl build step at all, by using in configure.ac. If you don't have a " +"tmpl checked into your source " +"control system and haven't yet switched, just add the flag to " +"configure.ac and you are done." +msgstr "" +"La versión 1.18 ya introdujo la sintaxis para documentar secciones en las " +"fuentes en lugar de tener que hacerlo en archivos separados bajo tmpl. Esta versión añade opciones para " +"cambiar todo el módulo «doc» del documento para que no realice el paso de " +"construcción de tmpl adicional, usando en " +"configure.ac. Si no tiene una tmpl marcada en su sistema de control de versiones " +"y todavía no ha cambiado, simplemente añada la opción al archivo " +"configure.ac y lo tendrá hecho." + +#. (itstool) path: sect1/title +#: C/index.docbook:1997 +msgid "GTK-Doc 1.10" +msgstr "GTK-Doc 1.10" + +#. (itstool) path: sect1/para +#: C/index.docbook:1999 +msgid "" +"This version supports in " +"Makefile.am. When this is enabled, the <" +"package>.types is autogenerated and can be removed from the " +"vcs. When using this feature it is important to also setup the " +"IGNORE_HFILES in Makefile.am for " +"code that is build conditionally." +msgstr "" +"Esta versión soporta en " +"Makefile.am. Cuando está activado, el archivo " +"<package>.types se genera automáticamente y se " +"puede eliminar del control de versiones. Al usar esta característica es " +"importante configurar la variable IGNORE_HFILES en el " +"Makefile.am para el código que se construye de manera " +"condicional." + +#. (itstool) path: sect1/title +#: C/index.docbook:2010 +msgid "GTK-Doc 1.16" +msgstr "GTK-Doc 1.16" + +#. (itstool) path: example/title +#: C/index.docbook:2016 +msgid "Enable gtkdoc-check" +msgstr "Activar gtkdoc-check" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2017 +#, no-wrap +msgid "" +"\n" +"if ENABLE_GTK_DOC\n" +"TESTS_ENVIRONMENT = \\\n" +" DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \\\n" +" SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)\n" +"TESTS = $(GTKDOC_CHECK)\n" +"endif\n" +msgstr "" +"\n" +"if ENABLE_GTK_DOC\n" +"TESTS_ENVIRONMENT = \\\n" +" DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \\\n" +" SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)\n" +"TESTS = $(GTKDOC_CHECK)\n" +"endif\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:2012 +msgid "" +"This version includes a new tool called gtkdoc-check. This tool can run a " +"set of sanity checks on your documentation. It is enabled by adding these " +"lines to the end of Makefile.am. <_:example-1/>" +msgstr "" +"Esta versión incluye una herramienta nueva llamada gtkdoc-check. Esta " +"herramienta puede ejecutar una serie de comprobaciones de integridad de la " +"documentación. Se activa añadiendo las siguientes líneas al final del " +"archivo Makefile.am. <_:example-1/>" + +#. (itstool) path: sect1/title +#: C/index.docbook:2030 +msgid "GTK-Doc 1.20" +msgstr "GTK-Doc 1.20" + +#. (itstool) path: sect1/para +#: C/index.docbook:2032 +msgid "" +"Version 1.18 brought some initial markdown support. Using markdown in doc " +"comments is less intrusive than writing docbook xml. This version improves a " +"lot on this and add a lot more styles. The section that explains the comment syntax has all the details." +msgstr "" +"La versión 1.18 incluía soporte para cierto marcado inicial. Usar el marcado " +"en los comentarios del documento es menos intrusivo que escribir el XML del " +"«docbook». Esta versión mejora mucho esto y añade muchos más estilos. La " +"sección que explica la sintaxis de los " +"comentarios contiene todos los detalles." + +#. (itstool) path: sect1/title +#: C/index.docbook:2042 +msgid "GTK-Doc 1.25" +msgstr "GTK-Doc 1.25" + +#. (itstool) path: example/title +#: C/index.docbook:2052 +msgid "Use pre-generated entities" +msgstr "Usar entidades generadas previamenet" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2053 +#, no-wrap +msgid "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.3//EN\"\n" +" \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"\n" +"[\n" +" <!ENTITY % local.common.attrib \"xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'\">\n" +" <!ENTITY % gtkdocentities SYSTEM \"xml/gtkdocentities.ent\">\n" +" %gtkdocentities;\n" +"]>\n" +"<book id=\"index\" xmlns:xi=\"http://www.w3.org/2003/XInclude\">\n" +" <bookinfo>\n" +" <title>&package_name; Reference Manual</title>\n" +" <releaseinfo>\n" +" for &package_string;.\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/&package_name;/index.html\">http://[SERVER]/&package_name;/</ulink>.\n" +" </releaseinfo>\n" +" </bookinfo>\n" +msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.3//EN\"\n" +" \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"\n" +"[\n" +" <!ENTITY % local.common.attrib \"xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'\">\n" +" <!ENTITY % gtkdocentities SYSTEM \"xml/gtkdocentities.ent\">\n" +" %gtkdocentities;\n" +"]>\n" +"<book id=\"index\" xmlns:xi=\"http://www.w3.org/2003/XInclude\">\n" +" <bookinfo>\n" +" <title>&package_name; Reference Manual</title>\n" +" <releaseinfo>\n" +" for &package_string;.\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/&package_name;/index.html\">http://[SERVER]/&package_name;/</ulink>.\n" +" </releaseinfo>\n" +" </bookinfo>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:2044 +msgid "" +"The makefiles shipped with this version generate an entity file at " +"xml/gtkdocentities.ent, containing entities for e.g. " +"package_name and package_version. You can use this e.g. in the main xml file " +"to avoid hardcoding the version number. Below is an example that shows how " +"the entity file is included and how the entities are used. The entities can " +"also be used in all generated files, GTK-Doc will use the same xml header in " +"generated xml files. <_:example-1/>" +msgstr "" +"El makefile distribuído con esta versión genera un archivo de entidad en " +"xml/gtkdocentities.ent, que contiene las entidades " +"para, por ejemplo nombre_paquete y versión_paquete. Puede usar este ejemplo " +"en el archivo main.xml para evitar escribir a mano el número de versión. A " +"continuación se muestra un ejemplo que muestra cómo se incluye el archivo de " +"entidad y cómo se usan las entidades. Las entidades también se pueden usar " +"en todos los archivos generados, GTK-Doc usará la misma cabecera XML en los " +"archivos XML generados. <_:example-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:2078 +msgid "Documenting other interfaces" +msgstr "Documentar otras interfaces" + +#. (itstool) path: chapter/para +#: C/index.docbook:2080 +msgid "" +"So far we have been using GTK-Doc to document the API of code. The next " +"sections contain suggestions how the tools can be used to document other " +"interfaces too." +msgstr "" +"Hasta ahora se ha usado GTK-Doc para documentar la API del código. Las " +"siguientes secciones contienen sugerencias acerca de cómo se pueden usar las " +"herramientas para documentar otras interfaces." + +#. (itstool) path: sect1/title +#: C/index.docbook:2087 +msgid "Command line options and man pages" +msgstr "Opciones de la línea de comandos y páginas man" + +#. (itstool) path: sect1/para +#: C/index.docbook:2089 +msgid "" +"As one can generate man pages for a docbook refentry as well, it sounds like " +"a good idea to use it for that purpose. This way the interface is part of " +"the reference and one gets the man-page for free." +msgstr "" +"Ya que también se pueden generar páginas man para referencias de entrada " +"docbook, parece buena idea usarlas para ese propósito. De esta forma la " +"interfaz es parte de la referencia y se obtienen las páginas man sin trabajo." + +#. (itstool) path: sect2/title +#: C/index.docbook:2096 +msgid "Document the tool" +msgstr "Documentar la herramienta" + +#. (itstool) path: sect2/para +#: C/index.docbook:2098 +msgid "" +"Create one refentry file per tool. Following our example we would call it meep/" +"docs/reference/meeper/meep.xml. For the xml tags that should be " +"used and can look at generated file in the xml subdirectory as well as " +"examples e.g. in glib." +msgstr "" +"Cree un archivo de entrada de referencia para cada herramienta. Siguiendo " +"el ejemplo se llamará " +"meep/docs/reference/meeper/meep.xml. Para las etiquetas " +"xml que se deben usar puede mirar al archivo generado en la subcarpeta xml " +"así como los ejemplos en, por ejemplo, glib." + +#. (itstool) path: sect2/title +#: C/index.docbook:2108 +msgid "Adding the extra configure check" +msgstr "Añadir la comprobación de configuración adicional" + +#. (itstool) path: example/title +#: C/index.docbook:2111 C/index.docbook:2129 +msgid "Extra configure checks" +msgstr "Comprobaciones de configuración adicionales" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2112 +#, no-wrap +msgid "" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [regenerate man pages from Docbook [default=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" +msgstr "" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [regenerate man pages from Docbook [default=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" + +#. (itstool) path: sect2/title +#: C/index.docbook:2126 +msgid "Adding the extra makefile rules" +msgstr "Añadir reglas de makefile adicionales" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2130 +#, no-wrap +msgid "" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" +msgstr "" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:2152 +msgid "DBus interfaces" +msgstr "Interfaces de DBus" + +#. (itstool) path: sect1/para +#: C/index.docbook:2154 +msgid "" +"(FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://" +"cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" +msgstr "" +"(ARREGLAR: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://" +"cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" + +#. (itstool) path: chapter/title +#: C/index.docbook:2163 +msgid "Frequently asked questions" +msgstr "Preguntas más frecuentes" + +#. (itstool) path: segmentedlist/segtitle +#: C/index.docbook:2167 +msgid "Question" +msgstr "Pregunta" + +#. (itstool) path: segmentedlist/segtitle +#: C/index.docbook:2168 +msgid "Answer" +msgstr "Respuesta" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2170 +msgid "No class hierarchy." +msgstr "Sin jerarquía de clases." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2171 +msgid "" +"The objects xxx_get_type() function has not been " +"entered into the <package>.types file." +msgstr "" +"Los objetos de la función xxx_get_type() no se han " +"introducido en el archivo <package>.types." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2177 +msgid "Still no class hierarchy." +msgstr "Aún sin jerarquía de clases." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2178 +msgid "" +"Missing or wrong naming in <package>-sections.txt " +"file (see explanation)." +msgstr "" +"Nombre incorrecto o ausente en el archivo <package>-sections." +"txt (consulte la explicación)." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2184 +msgid "Damn, I have still no class hierarchy." +msgstr "Maldición, aún no hay una jerarquía de clases." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2185 +msgid "" +"Is the object name (name of the instance struct, e.g. GtkWidget) part of the normal section (don't put this into Standard or Private " +"subsections)." +msgstr "" +"Es el nombre del objeto (nombre de la estructura de la instancia, ej. " +"GtkWidget) parte de la sección normal (no ponga esto en " +"Estándar o Privado)." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2192 +msgid "No symbol index." +msgstr "Sin índice de símbolos." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2193 +msgid "" +"Does the <package>-docs.{xml,sgml} contain a " +"index that xi:includes the generated index?" +msgstr "" +"¿<package>-docs.{xml,sgml} contiene un índice que " +"«xi:includes» el índice generado?" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2199 +msgid "Symbols are not linked to their doc-section." +msgstr "Los símbolos no se enlazan con su sección en el documento." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2200 +msgid "" +"Is the doc-comment using the correct markup (added #,% or ())? Check if the " +"gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" +"¿Está doc-comment usando el marcado correcto (añadido #,% o ())? Compruebe " +"si gtk-doc-fixxref avisa de alguna referencia xref sin resolver." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2206 +msgid "A new class does not appear in the docs." +msgstr "Una clase nueva no aparece en la documentación." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2207 +msgid "" +"Is the new page xi:included from <package>-docs.{xml,sgml}." +msgstr "" +"Es la página nueva «xi:included» desde <package>-docs.{xml," +"sgml}." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2213 +msgid "A new symbol does not appear in the docs." +msgstr "Un símbolo nuevo no aparece en la documentación." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2214 +msgid "" +"Is the doc-comment properly formatted. Check for spelling mistakes in the " +"begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable " +"xrefs. Check if the symbol is correctly listed in the <" +"package>-sections.txt in a public subsection." +msgstr "" +"Comprobar que el doc-comment está formateado correctamente. Compruebe " +"errores de escritura al principio del comentario. Compruebe si gtkdoc-" +"fixxref avisa acerca de referencias xref no solventables. Compruebe si el " +"símbolo está listado correctamente en <package>-sections." +"txt en una subsección pública." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2222 +msgid "A type is missing from the class hierarchy." +msgstr "Falta un tipo en la clase de jerarquías" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2223 +msgid "" +"If the type is listed in <package>.hierarchy but " +"not in xml/tree_index.sgml then double check that the " +"type is correctly placed in the <package>-sections.txt. If the type instance (e.g. GtkWidget) is not listed " +"or incidentally marked private it will not be shown." +msgstr "" +"Si el tipo está listado en <package>.hierarchy " +"pero no en xml/tree_index.sgml, entonces compruebe dos " +"veces que el tipo está correctamente ubicado en la <package>-" +"sections.txt. No se mostrará el tipo de instancia (ej. " +"GtkWidget) si no está listada o accidentalmente marcada como " +"privada." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2232 +msgid "I get foldoc links for all gobject annotations." +msgstr "" +"Obtengo enlaces de seguimiento de documentos para todas las anotaciones " +"gobject." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2233 +msgid "" +"Check that xml/annotation-glossary.xml is xi:included " +"from <package>-docs.{xml,sgml}." +msgstr "" +"Compruebe que xml/annotation-glossary.xml está «xi:" +"included» desde <package>-docs.{xml,sgml}." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2241 +msgid "Parameter described in source code comment block but does not exist" +msgstr "" +"Parámetro descrito en el bloque de comentarios del código fuente pero no " +"existe" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2242 +msgid "" +"Check if the prototype in the header has different parameter names as in the " +"source." +msgstr "" +"Compruebe si el prototipo en la cabecera tiene nombres de parámetro " +"diferentes de la fuente." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2247 +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "múltiples «ID» para la restricción enlazada: XYZ" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2248 +msgid "" +"Symbol XYZ appears twice in <package>-sections.txt file." +msgstr "" +"El símbolo XYZ aparece dos veces en el archivo <package>-" +"sections.txt." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2251 +msgid "" +"Element typename in namespace '' encountered in para, but no template " +"matches." +msgstr "" +"Elemento typename en namespace «» encontrado en para, pero ninguna plantilla " +"coincide." + +#. (itstool) path: chapter/title +#: C/index.docbook:2258 +msgid "Tools related to gtk-doc" +msgstr "Herramientas relacionadas con GTK-Doc" + +#. (itstool) path: chapter/para +#: C/index.docbook:2260 +msgid "" +"GtkDocPlugin - a Trac " +"GTK-Doc integration plugin, that adds API docs to a trac site and " +"integrates with the trac search." +msgstr "" +"GtkDocPlugin: un complemento de integración Trac GTK-Doc que añade documentos de la API " +"a un sitio «trac» y se integra con la búsqueda de «trac»." + +#. (itstool) path: chapter/para +#: C/index.docbook:2265 +msgid "" +"Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since " +"tags in the API to determine the minimum required version." +msgstr "" +"Gtkdoc-depscan: una herramienta (parte de gtk-doc) para comprobar la API " +"usada contra etiquetas en la API para determinar la versión mínima necesaria." + +#. (itstool) path: appendixinfo/releaseinfo +#: C/index.docbook:12 C/fdl-appendix.xml:12 +msgid "Version 1.1, March 2000" +msgstr "Versión 1.1, marzo de 2000" + +#. (itstool) path: appendixinfo/copyright +#: C/index.docbook:15 +msgid "2000Free Software Foundation, Inc." +msgstr "2000Free Software Foundation, Inc." + +#. (itstool) path: para/address +#: C/index.docbook:20 +#, no-wrap +msgid "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" +msgstr "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" + +#. (itstool) path: legalnotice/para +#: C/index.docbook:19 C/fdl-appendix.xml:19 +msgid "" +"<_:address-1/> Everyone is permitted to copy and distribute verbatim copies " +"of this license document, but changing it is not allowed." +msgstr "" +"<_:address-1/>. Se permite la copia y distribución de copias literales de " +"este documento, pero no se permite su modificación." + +#. (itstool) path: appendix/title +#. (itstool) path: para/quote +#: C/index.docbook:28 C/fdl-appendix.xml:28 C/fdl-appendix.xml:642 +msgid "GNU Free Documentation License" +msgstr "Licencia de documentación libre de GNU" + +#. (itstool) path: sect1/title +#: C/index.docbook:31 C/fdl-appendix.xml:31 +msgid "0. PREAMBLE" +msgstr "0. PREÁMBULO" + +#. (itstool) path: sect1/para +#: C/index.docbook:32 +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document free in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" +"El propósito de esta Licencia es permitir que un manual, libro de texto, u " +"otro documento escrito sea libre en el sentido de libertad: " +"asegurar a todo el mundo la libertad efectiva de copiarlo y redistribuirlo, " +"con o sin modificaciones, de manera comercial o no. En segundo término, esta " +"Licencia proporciona al autor y al editor una manera de obtener " +"reconocimiento por su trabajo, sin que se le considere responsable de las " +"modificaciones realizadas por otros." + +#. (itstool) path: sect1/para +#: C/index.docbook:43 +msgid "" +"This License is a kind of copyleft, which means that " +"derivative works of the document must themselves be free in the same sense. " +"It complements the GNU General Public License, which is a copyleft license " +"designed for free software." +msgstr "" +"Esta Licencia es de tipo copyleft, lo que significa que los " +"trabajos derivados del documento deben a su vez ser libres en el mismo " +"sentido. Complementa la Licencia Pública General de GNU, que es una licencia " +"tipo copyleft diseñada para el software libre." + +#. (itstool) path: sect1/para +#: C/index.docbook:50 C/fdl-appendix.xml:50 +msgid "" +"We have designed this License in order to use it for manuals for free " +"software, because free software needs free documentation: a free program " +"should come with manuals providing the same freedoms that the software does. " +"But this License is not limited to software manuals; it can be used for any " +"textual work, regardless of subject matter or whether it is published as a " +"printed book. We recommend this License principally for works whose purpose " +"is instruction or reference." +msgstr "" +"Hemos diseñado esta Licencia para usarla en manuales de software libre, ya " +"que el software libre necesita documentación libre: Un programa libre debe " +"venir con los manuales que ofrezcan la mismas libertades que da el software. " +"Pero esta licencia no se limita a manuales de software; puede ser usada para " +"cualquier trabajo textual, sin tener en cuenta su temática o si se publica " +"como libro impreso. Recomendamos esta licencia principalmente para trabajos " +"cuyo fin sea instructivo o de referencia." + +#. (itstool) path: sect1/title +#: C/index.docbook:62 C/fdl-appendix.xml:62 +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "1. APLICABILIDAD Y DEFINICIONES" + +#. (itstool) path: sect1/para +#: C/index.docbook:63 +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The Document, below, refers to any such " +"manual or work. Any member of the public is a licensee, and is addressed as " +"you." +msgstr "" +"Esta Licencia se aplica a cualquier manual u otro trabajo que contenga un " +"aviso colocado por el poseedor del copyright diciendo que puede distribuirse " +"bajo los términos de esta Licencia. El Documento, abajo, se " +"refiere a cualquier manual o trabajo. Cualquier miembro del público es un " +"licenciatario, y será referido como Usted." + +#. (itstool) path: sect1/para +#: C/index.docbook:72 +msgid "" +"A Modified Version of the Document means any work containing " +"the Document or a portion of it, either copied verbatim, or with " +"modifications and/or translated into another language." +msgstr "" +"Una Versión Modificada del Documento significa cualquier " +"trabajo que contenga el Documento o una porción del mismo, ya sea una copia " +"literal o con modificaciones y/o traducciones a otro idioma." + +#. (itstool) path: sect1/para +#: C/index.docbook:79 +msgid "" +"A Secondary Section is a named appendix or a front-matter " +"section of the Document that deals " +"exclusively with the relationship of the publishers or authors of the " +"Document to the Document's overall subject (or to related matters) and " +"contains nothing that could fall directly within that overall subject. (For " +"example, if the Document is in part a textbook of mathematics, a Secondary " +"Section may not explain any mathematics.) The relationship could be a matter " +"of historical connection with the subject or with related matters, or of " +"legal, commercial, philosophical, ethical or political position regarding " +"them." +msgstr "" +"Una Sección Secundaria es un apéndice con título o una " +"sección preliminar del Documento que trata exclusivamente de la relación " +"entre los autores o editores y el tema general delDocumento que trata exclusivamente con la relación entre " +"los editores o autores del Documento con el asunto general del Documento (o " +"asuntos relacionados) y no contiene nada que pueda considerarse dentro del " +"tema principal. (Por ejemplo, si el Documento es en parte un libro de texto " +"de matemáticas, una Sección Secundaria no explicará nada de matemáticas.) La " +"relación puede ser una conexión histórica con el asunto o temas " +"relacionados, o una opinión legal, comercial, filosófica, ética o política " +"acerca de ellos." + +#. (itstool) path: sect1/para +#: C/index.docbook:94 +msgid "" +"The Invariant Sections are certain Secondary Sections whose titles are designated, as being " +"those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" +"Las Secciones Invariantes son ciertas Secciones Secundarias cuyos títulos son designados como " +"Secciones Invariantes en la nota que indica que el Documento se publica bajo esta Licencia." + +#. (itstool) path: sect1/para +#: C/index.docbook:103 +msgid "" +"The Cover Texts are certain short passages of text that are " +"listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says " +"that the Document is released under " +"this License." +msgstr "" +" Los Textos de Cubierta son ciertos pasajes cortos de texto " +"que se listan como Textos de Cubierta Delantera o Textos de Cubierta Trasera " +"en la nota que indica que el Documento " +"se publica bajo esta Licencia." + +#. (itstool) path: sect1/para +#: C/index.docbook:111 +msgid "" +"A Transparent copy of the " +"Document means a machine-readable copy, represented in a format whose " +"specification is available to the general public, whose contents can be " +"viewed and edited directly and straightforwardly with generic text editors " +"or (for images composed of pixels) generic paint programs or (for drawings) " +"some widely available drawing editor, and that is suitable for input to text " +"formatters or for automatic translation to a variety of formats suitable for " +"input to text formatters. A copy made in an otherwise Transparent file " +"format whose markup has been designed to thwart or discourage subsequent " +"modification by readers is not Transparent. A copy that is not " +"Transparent is called Opaque." +msgstr "" +"Una copia Transparente del Documento, significa una copia para lectura en máquina, " +"representada en un formato cuya especificación está disponible al público en " +"general, cuyo contenido puede ser visto y editados directamente con editores " +"de texto genéricos o (para imágenes compuestas por píxeles) con programas " +"genéricos de manipulación de imágenes o (para dibujos) con algún editor de " +"dibujos ampliamente disponible, y que sea adecuado como entrada para " +"formateadores de texto o para su traducción automática a formatos adecuados " +"para formateadores de texto. Una copia hecha en un formato definido como " +"Transparente, pero cuyo marcaje o ausencia de él haya sido diseñado para " +"impedir o dificultar modificaciones posteriores por parte de los lectores no " +"es Transparente. Una copia que no es Transparente se denomina " +"Opaca." + +#. (itstool) path: sect1/para +#: C/index.docbook:128 C/fdl-appendix.xml:128 +msgid "" +"Examples of suitable formats for Transparent copies include plain ASCII " +"without markup, Texinfo input format, LaTeX input format, SGML or XML using " +"a publicly available DTD, and standard-conforming simple HTML designed for " +"human modification. Opaque formats include PostScript, PDF, proprietary " +"formats that can be read and edited only by proprietary word processors, " +"SGML or XML for which the DTD and/or processing tools are not generally " +"available, and the machine-generated HTML produced by some word processors " +"for output purposes only." +msgstr "" +"Como ejemplos de formatos adecuados para copias Transparentes están ASCII " +"puro sin marcaje, formato de entrada de Texinfo, formato de entrada de " +"LaTeX, SGML o XML usando una DTD disponible públicamente, y HTML, PostScript " +"o PDF simples, que sigan los estándares y diseños para que los modifiquen " +"personas.Los formatos Opacos incluyen formatos propietarios que pueden ser " +"leídos y editados únicamente en procesadores de textos propietarios, SGML o " +"XML para los cuáles las DTD y/o herramientas de procesamiento no estén " +"ampliamente disponibles, y HTML, PostScript o PDF generados por algunos " +"procesadores de textos sólo como salida." + +#. (itstool) path: sect1/para +#: C/index.docbook:141 +msgid "" +"The Title Page means, for a printed book, the title page " +"itself, plus such following pages as are needed to hold, legibly, the " +"material this License requires to appear in the title page. For works in " +"formats which do not have any title page as such, Title Page " +"means the text near the most prominent appearance of the work's title, " +"preceding the beginning of the body of the text." +msgstr "" +" La Portada significa, en un libro impreso, la página de " +"título, más las páginas siguientes que sean necesarias para mantener " +"legiblemente el material que esta Licencia requiere en la portada. Para " +"trabajos en formatos que no tienen página de portada como tal, " +"Portadasignifica el texto cercano a la aparición más " +"prominente del título del trabajo,precediendo el comienzo del cuerpo del " +"texto." + +#. (itstool) path: sect1/title +#: C/index.docbook:153 C/fdl-appendix.xml:153 +msgid "2. VERBATIM COPYING" +msgstr "2. COPIA LITERAL" + +#. (itstool) path: sect1/para +#: C/index.docbook:154 +msgid "" +"You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that " +"this License, the copyright notices, and the license notice saying this " +"License applies to the Document are reproduced in all copies, and that you " +"add no other conditions whatsoever to those of this License. You may not use " +"technical measures to obstruct or control the reading or further copying of " +"the copies you make or distribute. However, you may accept compensation in " +"exchange for copies. If you distribute a large enough number of copies you " +"must also follow the conditions in section 3." +msgstr "" +"Usted puede copiar y distribuir el Documento en cualquier soporte, sea en forma comercial o no, siempre y cuando " +"proporcione esta Licencia, las notas de copyright y la nota que indica que " +"esta Licencia se aplica al Documento reproduciéndola en todas las copias y " +"que usted no añada ninguna otra condición a las expuestas en esta Licencia. " +"Usted no puede usar medidas técnicas para obstruir o controlar la lectura o " +"copia posterior de las copias que usted haga o distribuya. Sin embargo, " +"usted puede aceptar compensación a cambio de las copias. Si distribuye un " +"número suficientemente grande de copias también deberá seguir las " +"condiciones de la sección 3." + +#. (itstool) path: sect1/para +#: C/index.docbook:169 C/fdl-appendix.xml:169 +msgid "" +"You may also lend copies, under the same conditions stated above, and you " +"may publicly display copies." +msgstr "" +"Usted también puede prestar copias, bajo las mismas condiciones establecidas " +"anteriormente, y puede exhibir copias públicamente." + +#. (itstool) path: sect1/title +#: C/index.docbook:176 C/fdl-appendix.xml:176 +msgid "3. COPYING IN QUANTITY" +msgstr "3. COPIAR EN CANTIDAD" + +#. (itstool) path: sect1/para +#: C/index.docbook:177 +msgid "" +"If you publish printed copies of the Document numbering more than 100, and the Document's license " +"notice requires Cover Texts, you " +"must enclose the copies in covers that carry, clearly and legibly, all these " +"Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on " +"the back cover. Both covers must also clearly and legibly identify you as " +"the publisher of these copies. The front cover must present the full title " +"with all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as " +"verbatim copying in other respects." +msgstr "" +" Si publica copias impresas del Documento que sobrepasen las 100, y la nota de licencia del Documento exige " +"Textos de Cubierta, debe incluirlas " +"copias con cubiertas que lleven en forma clara y legible todos esos Textos " +"de Cubierta: Textos de Cubierta Delantera en la cubierta delantera y Textos " +"de Cubierta Trasera en la cubierta trasera. Ambas cubiertas deben " +"identificarlo a Usted clara y legiblemente como editor de tales copias. La " +"cubierta debe mostrar el título completo con todas las palabras igualmente " +"prominentes y visibles. Además puede añadir otro material en las cubiertas. " +"Las copias con cambios limitados a las cubiertas, siempre que conserven el " +"título del Documento y satisfagan " +"estas condiciones, pueden considerarse como copias literales en todos los " +"aspectos." + +#. (itstool) path: sect1/para +#: C/index.docbook:195 C/fdl-appendix.xml:195 +msgid "" +"If the required texts for either cover are too voluminous to fit legibly, " +"you should put the first ones listed (as many as fit reasonably) on the " +"actual cover, and continue the rest onto adjacent pages." +msgstr "" +" Si los textos requeridos para la cubierta son muy voluminosos para que " +"ajusten legiblemente, debe colocar los primeros (tantos como sea razonable " +"colocar) en la verdadera cubierta y situar el resto en páginas adyacentes." + +#. (itstool) path: sect1/para +#: C/index.docbook:202 +msgid "" +"If you publish or distribute Opaque " +"copies of the Document numbering more " +"than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state " +"in or with each Opaque copy a publicly-accessible computer-network location " +"containing a complete Transparent copy of the Document, free of added " +"material, which the general network-using public has access to download " +"anonymously at no charge using public-standard network protocols. If you use " +"the latter option, you must take reasonably prudent steps, when you begin " +"distribution of Opaque copies in quantity, to ensure that this Transparent " +"copy will remain thus accessible at the stated location until at least one " +"year after the last time you distribute an Opaque copy (directly or through " +"your agents or retailers) of that edition to the public." +msgstr "" +"Si Usted publica o distribuye copias Opacas del Documento cuya " +"cantidad exceda las 100, debe incluir una copia Transparente, que pueda ser leída por una máquina, con " +"cada copia Opaca, o bien mostrar, en cada copia Opaca, una dirección de red " +"donde cualquier usuario de la misma tenga acceso por medio de protocolos " +"públicos y estandarizados a una copia Transparente del Documento completa, " +"sin material adicional. Si usted hace uso de la última opción, deberá tomar " +"las medidas necesarias, cuando comience la distribución de las copias Opacas " +"en cantidad, para asegurar que esta copia Transparente permanecerá accesible " +"en el sitio establecido por lo menos un año después de la última vez que " +"distribuya una copia Opaca de esa edición al público (directamente o a " +"través de sus agentes o distribuidores)." + +#. (itstool) path: sect1/para +#: C/index.docbook:222 +msgid "" +"It is requested, but not required, that you contact the authors of the Document well before redistributing any " +"large number of copies, to give them a chance to provide you with an updated " +"version of the Document." +msgstr "" +"Se solicita, aunque no es requisito, que se ponga en contacto con los " +"autores del Documento antes de " +"redistribuir gran número de copias, para darles la oportunidad de que le " +"proporcionen una versión actualizada del Documento." + +#. (itstool) path: sect1/title +#: C/index.docbook:231 C/fdl-appendix.xml:231 +msgid "4. MODIFICATIONS" +msgstr "4. MODIFICACIONES" + +#. (itstool) path: sect1/para +#: C/index.docbook:232 +msgid "" +"You may copy and distribute a Modified " +"Version of the Document under " +"the conditions of sections 2 and 3 above, provided that you release the " +"Modified Version under precisely this License, with the Modified Version " +"filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" +"Puede copiar y distribuir una Versión " +"Modificada del Documento bajo " +"las condiciones de las secciones 2 y " +"3 anteriores, siempre que Usted libere " +"la Versión Modificada bajo esta misma Licencia, con la Versión Modificada " +"haciendo el rol del Documento, por lo tanto dando Licencia de distribución y " +"modificación de la Versión Modificada a quienquiera posea una copia de la " +"misma. Además, debe hacer lo siguiente en la Versión Modificada:" + +#. (itstool) path: formalpara/title +#: C/index.docbook:248 C/fdl-appendix.xml:248 +msgid "A" +msgstr "A" + +#. (itstool) path: formalpara/para +#: C/index.docbook:249 +msgid "" +"Use in the Title Page (and on the " +"covers, if any) a title distinct from that of the Document, and from those of previous versions (which " +"should, if there were any, be listed in the History section of the " +"Document). You may use the same title as a previous version if the original " +"publisher of that version gives permission." +msgstr "" +"Usar en la Portada (y en las " +"cubiertas, si hay alguna) un título distinto al del Documento y de sus versiones anteriores (que deberían, si " +"hay alguna, estar listadas en la sección de Historia del Documento). Puede " +"usar el mismo título de versiones anteriores al original siempre y cuando " +"quien las publicó originalmente otorgue permiso." + +#. (itstool) path: formalpara/title +#: C/index.docbook:264 C/fdl-appendix.xml:264 +msgid "B" +msgstr "B" + +#. (itstool) path: formalpara/para +#: C/index.docbook:265 +msgid "" +"List on the Title Page, as authors, " +"one or more persons or entities responsible for authorship of the " +"modifications in the Modified Version, " +"together with at least five of the principal authors of the Document (all of its principal authors, if it has " +"less than five)." +msgstr "" +"Listar en la Portada, como autores, " +"una o más personas o entidades responsables de la autoría de las " +"modificaciones de la Versión Modificada, junto con por lo menos cinco de los autores principales del Documento (todos sus autores principales, si " +"hay menos de cinco), a menos que le eximan de tal requisito." + +#. (itstool) path: formalpara/title +#: C/index.docbook:279 C/fdl-appendix.xml:279 +msgid "C" +msgstr "C" + +#. (itstool) path: formalpara/para +#: C/index.docbook:280 +msgid "" +"State on the Title Page the name of " +"the publisher of the Modified Version, " +"as the publisher." +msgstr "" +"Mostrar en la Portada como editor " +"el nombre del editor de la Versión " +"Modificada" + +#. (itstool) path: formalpara/title +#: C/index.docbook:291 C/fdl-appendix.xml:291 +msgid "D" +msgstr "D" + +#. (itstool) path: formalpara/para +#: C/index.docbook:292 +msgid "" +"Preserve all the copyright notices of the Document." +msgstr "" +"Conservar todas las notas de copyright del Documento." + +#. (itstool) path: formalpara/title +#: C/index.docbook:301 C/fdl-appendix.xml:301 +msgid "E" +msgstr "E" + +#. (itstool) path: formalpara/para +#: C/index.docbook:302 C/fdl-appendix.xml:302 +msgid "" +"Add an appropriate copyright notice for your modifications adjacent to the " +"other copyright notices." +msgstr "" +"Añadir una nota de copyright apropiada a sus modificaciones, adyacente a las " +"otras notas de copyright." + +#. (itstool) path: formalpara/title +#: C/index.docbook:311 C/fdl-appendix.xml:311 +msgid "F" +msgstr "F" + +#. (itstool) path: formalpara/para +#: C/index.docbook:312 +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the Modified " +"Version under the terms of this License, in the form shown in the " +"Addendum below." +msgstr "" +"Incluir, inmediatamente después de los avisos de copyright, una nota de " +"licencia dando el permiso público para usar la Versión Modificada bajo los términos de esta Licencia, de la forma " +"mostrada en el Adenda de más abajo." + +#. (itstool) path: formalpara/title +#: C/index.docbook:324 C/fdl-appendix.xml:324 +msgid "G" +msgstr "G" + +#. (itstool) path: formalpara/para +#: C/index.docbook:325 +msgid "" +"Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" +"Incluir, inmediatamente después de ese aviso de licencia, la lista completa " +"de Secciones invariantes y de los " +"Textos de Cubierta que sean " +"requeridos en el aviso de Licencia del Documento original." + +#. (itstool) path: formalpara/title +#: C/index.docbook:337 C/fdl-appendix.xml:337 +msgid "H" +msgstr "H" + +#. (itstool) path: formalpara/para +#: C/index.docbook:338 C/fdl-appendix.xml:338 +msgid "Include an unaltered copy of this License." +msgstr "Incluir una copia sin modificación de esta Licencia." + +#. (itstool) path: formalpara/title +#: C/index.docbook:346 C/fdl-appendix.xml:346 +msgid "I" +msgstr "I" + +#. (itstool) path: formalpara/para +#: C/index.docbook:347 +msgid "" +"Preserve the section entitled History, and its title, and add " +"to it an item stating at least the title, year, new authors, and publisher " +"of the Modified Version as given on " +"the Title Page. If there is no " +"section entitled History in the Document, create one stating the title, year, authors, and " +"publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" +"Conservar la sección titulada Historia, conservar su Título y " +"añadirle un elemento que declare al menos el título, el año, los nuevos " +"autores y el editor de la Versión Modificada, tal como figuran en la Portada. Si no hay una sección titulada Historia en el Documento, crear una estableciendo el " +"título, el año, los autores y el editor del Documento, tal como figuran en " +"su Portada, añadiendo además un elemento describiendo la Versión Modificada, " +"como se estableció en la sentencia anterior." + +#. (itstool) path: formalpara/title +#: C/index.docbook:365 C/fdl-appendix.xml:365 +msgid "J" +msgstr "J" + +#. (itstool) path: formalpara/para +#: C/index.docbook:366 +msgid "" +"Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the " +"network locations given in the Document for previous versions it was based " +"on. These may be placed in the History section. You may omit " +"a network location for a work that was published at least four years before " +"the Document itself, or if the original publisher of the version it refers " +"to gives permission." +msgstr "" +"Conservar la dirección en red, si la hay, dada en el Documento para el acceso público a una copia Transparente del mismo, así como las otras " +"direcciones de red dadas en el Documento para versiones anteriores en las " +"que estuviese basado. Pueden ubicarse en la sección Historia. " +"Se puede omitir la ubicación en red de un trabajo que haya sido publicado " +"por lo menos cuatro años antes que el Documento mismo, o si el editor " +"original de dicha versión da permiso." + +#. (itstool) path: formalpara/title +#: C/index.docbook:383 C/fdl-appendix.xml:383 +msgid "K" +msgstr "K" + +#. (itstool) path: formalpara/para +#: C/index.docbook:384 +msgid "" +"In any section entitled Acknowledgements or " +"Dedications, preserve the section's title, and preserve in " +"the section all the substance and tone of each of the contributor " +"acknowledgements and/or dedications given therein." +msgstr "" +"En cualquier sección titulada Agradecimientos o " +"Dedicatorias, conservar el título de la sección y conservar " +"en ella toda la sustancia y el tono de los agradecimientos y/o dedicatorias " +"incluidas por cada contribuyente." + +#. (itstool) path: formalpara/title +#: C/index.docbook:396 C/fdl-appendix.xml:396 +msgid "L" +msgstr "L" + +#. (itstool) path: formalpara/para +#: C/index.docbook:397 +msgid "" +"Preserve all the Invariant Sections " +"of the Document, unaltered in their " +"text and in their titles. Section numbers or the equivalent are not " +"considered part of the section titles." +msgstr "" +"Conservar todas las Secciones Invariantes del Documento, sin alterar su " +"texto ni sus títulos. Los números de sección o equivalentes no se consideran " +"parte de los títulos de la sección." + +#. (itstool) path: formalpara/title +#: C/index.docbook:409 C/fdl-appendix.xml:409 +msgid "M" +msgstr "M" + +#. (itstool) path: formalpara/para +#: C/index.docbook:410 +msgid "" +"Delete any section entitled Endorsements. Such a section may " +"not be included in the Modified Version." +msgstr "" +"Eliminar cualquier sección titulada Aprobaciones. Tales " +"secciones no pueden estar incluidas en las Versiones Modificadas." + +#. (itstool) path: formalpara/title +#: C/index.docbook:421 C/fdl-appendix.xml:421 +msgid "N" +msgstr "N" + +#. (itstool) path: formalpara/para +#: C/index.docbook:422 +msgid "" +"Do not retitle any existing section as Endorsements or to " +"conflict in title with any Invariant " +"Section." +msgstr "" +"No cambiar el título de ninguna sección existente a Aprobaciones ni a uno que entre en conflicto con el de alguna Sección Invariante." + +#. (itstool) path: sect1/para +#: C/index.docbook:432 +msgid "" +"If the Modified Version includes new " +"front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from " +"the Document, you may at your option designate some or all of these sections " +"as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's " +"license notice. These titles must be distinct from any other section titles." +msgstr "" +" Si la Versión Modificada incluye " +"secciones o apéndices nuevos que cualifiquen como Secciones Secundarias y no contienen ningún material " +"copiado del Documento, puede opcionalmente designar algunas o todas esas " +"secciones como invariantes. Para hacerlo, añada sus títulos a la lista de " +"Secciones Invariantes en el aviso de " +"licencia de la Versión Modificada. Tales títulos deben ser distintos de " +"cualquier otro título de sección." + +#. (itstool) path: sect1/para +#: C/index.docbook:444 +msgid "" +"You may add a section entitled Endorsements, provided it " +"contains nothing but endorsements of your Modified Version by various parties--for example, statements of " +"peer review or that the text has been approved by an organization as the " +"authoritative definition of a standard." +msgstr "" +"Puede añadir una sección titulada Aprobaciones, siempre que " +"contenga únicamente aprobaciones de su Versión Modificada por otras fuentes --por ejemplo, observaciones " +"de compañeros o que el texto ha sido aprobado por una organización como " +"definición oficial de un estándar." + +#. (itstool) path: sect1/para +#: C/index.docbook:453 +msgid "" +"You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list " +"of Cover Texts in the Modified Version. Only one passage of Front-Cover " +"Text and one of Back-Cover Text may be added by (or through arrangements " +"made by) any one entity. If the Document already includes a cover text for the same cover, previously added by " +"you or by arrangement made by the same entity you are acting on behalf of, " +"you may not add another; but you may replace the old one, on explicit " +"permission from the previous publisher that added the old one." +msgstr "" +"Puede añadir un pasaje de hasta cinco palabras como Texto de Cubierta Delantera y un pasaje de hasta 25 " +"palabras como Texto de Cubierta Trasera al final de la lista de Texto de " +"Cubierta en la Versión Modificada. Una entidad sólo puede añadir (o hacer que se añada) un pasaje al " +"Texto de Cubierta Delantera y uno al de Cubierta Trasera. Si el Documento ya incluye un textos de cubiertas " +"añadidos previamente por usted o por acuerdo previo con la entidad que usted " +"representa, usted no puede añadir otro; pero puede reemplazar el anterior, " +"con permiso explícito del editor anterior que agregó el texto anterior." + +#. (itstool) path: sect1/para +#: C/index.docbook:470 +msgid "" +"The author(s) and publisher(s) of the Document do not by this License give permission to use their names " +"for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" +"Con esta Licencia ni los autores ni los editores del Documento dan permiso para usar sus nombres para " +"publicidad ni para asegurar o implicar aprobación de cualquier Versión Modificada." + +#. (itstool) path: sect1/title +#: C/index.docbook:480 C/fdl-appendix.xml:480 +msgid "5. COMBINING DOCUMENTS" +msgstr "5. COMBINAR DOCUMENTOS" + +#. (itstool) path: sect1/para +#: C/index.docbook:481 +msgid "" +"You may combine the Document with " +"other documents released under this License, under the terms defined in " +"section 4 above for modified versions, " +"provided that you include in the combination all of the Invariant Sections of all of the original documents, " +"unmodified, and list them all as Invariant Sections of your combined work in " +"its license notice." +msgstr "" +"Usted puede combinar el Documento con " +"otros documentos liberados bajo esta Licencia, bajo los términos definidos " +"en la sección section 4 más arriba " +"para versiones modificadas, siempre que incluya en la combinación todas las " +"Secciones Invariantes de todos los " +"documentos originales, sin modificaciones, y las liste todas como Secciones " +"Invariantes de su trabajo combinado en su aviso de licencia." + +#. (itstool) path: sect1/para +#: C/index.docbook:492 +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical Invariant Sections may be " +"replaced with a single copy. If there are multiple Invariant Sections with " +"the same name but different contents, make the title of each such section " +"unique by adding at the end of it, in parentheses, the name of the original " +"author or publisher of that section if known, or else a unique number. Make " +"the same adjustment to the section titles in the list of Invariant Sections " +"in the license notice of the combined work." +msgstr "" +"El trabajo combinado necesita contener solamente una copia de esta Licencia, " +"y múltiples Secciones Invariantes " +"idénticas pueden reemplazarse por una sola copia. Si hay múltiples Secciones " +"Invariantes con el mismo nombre pero con contenidos diferentes, haga el " +"título de cada una de estas secciones único añadiéndolo al final de este, " +"entre paréntesis, el nombre del autor o de quien editó originalmente esa " +"sección, si es conocido, o si no, un número único. Haga el mismo ajuste a " +"los títulos de sección en la lista de Secciones Invariantes en la nota de " +"licencia del trabajo combinado." + +#. (itstool) path: sect1/para +#: C/index.docbook:505 +msgid "" +"In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled " +"History; likewise combine any sections entitled " +"Acknowledgements, and any sections entitled " +"Dedications. You must delete all sections entitled " +"Endorsements." +msgstr "" +"En la combinación, debe combinar cualquier sección titulada Historia de los distintos documentos originales, formando una sección titulada " +"Historia; de la misma forma, combine cualquier sección " +"titulada Reconocimientos y cualquier sección titulada " +"Dedicatorias. Debe eliminar todas las secciones tituladas " +"Aprobaciones." + +#. (itstool) path: sect1/title +#: C/index.docbook:516 C/fdl-appendix.xml:516 +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "6. COLECCIONES DE DOCUMENTOS" + +#. (itstool) path: sect1/para +#: C/index.docbook:517 +msgid "" +"You may make a collection consisting of the Document and other documents released under this License, and " +"replace the individual copies of this License in the various documents with " +"a single copy that is included in the collection, provided that you follow " +"the rules of this License for verbatim copying of each of the documents in " +"all other respects." +msgstr "" +"Puede hacer una colección que conste del Documento y de otros documentos publicados bajo esta Licencia, y " +"reemplazar las copias individuales de esta Licencia en todos los documentos " +"por una sola copia que esté incluida en la colección, siempre que siga las " +"reglas de esta Licencia para cada copia literal de cada uno de los " +"documentos en cualquiera de los demás aspectos." + +#. (itstool) path: sect1/para +#: C/index.docbook:527 C/fdl-appendix.xml:527 +msgid "" +"You may extract a single document from such a collection, and distribute it " +"individually under this License, provided you insert a copy of this License " +"into the extracted document, and follow this License in all other respects " +"regarding verbatim copying of that document." +msgstr "" +"Puede extraer un solo documento de una de tales colecciones y distribuirlo " +"individualmente bajo esta Licencia, siempre que inserte una copia de esta " +"Licencia en el documento extraído, y siga esta Licencia en todos los demás " +"aspectos relativos a la copia literal de dicho documento." + +#. (itstool) path: sect1/title +#: C/index.docbook:537 C/fdl-appendix.xml:537 +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "7. AGREGACIÓN CON TRABAJOS INDEPENDIENTES" + +#. (itstool) path: sect1/para +#: C/index.docbook:538 +msgid "" +"A compilation of the Document or its " +"derivatives with other separate and independent documents or works, in or on " +"a volume of a storage or distribution medium, does not as a whole count as a " +"Modified Version of the Document, " +"provided no compilation copyright is claimed for the compilation. Such a " +"compilation is called an aggregate, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the Cover Text requirement of section 3 is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" +"Una recopilación que conste del Documento o sus derivados y de otros documentos o trabajos separados e " +"independientes, en cualquier soporte de almacenamiento o distribución, no " +"cuenta como un todo como una Versión " +"Modificada del Documento, siempre que no se reclame ningún derecho de " +"copyright por la compilación. Dicha compilación se denomina un " +"agregado, y esta Licencia no se aplica a otros trabajos " +"autocontenidos incluidos con el Documento. teniendo en cuenta que son " +"compilados, si no son los mismos trabajos derivados del Documento. Si el " +"requisito de Texto de Cubierta de " +"la sección 3 es aplicable a estas " +"copias del Documento, entonces si el Documento es menor que un cuarto del " +"agregado completo, los Textos de Cubierta del Documento pueden colocarse en " +"cubiertas que enmarquen solamente el Documento dentro del agregado. En caso " +"contrario deben aparecer en cubiertas impresas enmarcando todo el agregado." + +#. (itstool) path: sect1/title +#: C/index.docbook:561 C/fdl-appendix.xml:561 +msgid "8. TRANSLATION" +msgstr "8. TRADUCCIÓN" + +#. (itstool) path: sect1/para +#: C/index.docbook:562 +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the Document under the " +"terms of section 4. Replacing Invariant Sections with translations " +"requires special permission from their copyright holders, but you may " +"include translations of some or all Invariant Sections in addition to the " +"original versions of these Invariant Sections. You may include a translation " +"of this License provided that you also include the original English version " +"of this License. In case of a disagreement between the translation and the " +"original English version of this License, the original English version will " +"prevail." +msgstr "" +"La traducción se considera un tipo de modificación, así que puede distribuir " +"traducciones del Documento bajo los " +"términos de la sección 4. Reemplazar " +"las Secciones invariantes con " +"traducciones requiere permiso especial de los mantenedores de la " +"propietarios del copyright, pero puede incluir traducciones de algunos o " +"todas las Secciones invariantes. Puede incluir una traducción de esta " +"licencia proporcionada que además incluya la versión original de esta " +"Sección invariante en adición de esta licencia. En caso de desacuerdo " +"prevalecerá la versión original en inglés." + +#. (itstool) path: sect1/title +#: C/index.docbook:580 C/fdl-appendix.xml:580 +msgid "9. TERMINATION" +msgstr "9. TERMINACIÓN" + +#. (itstool) path: sect1/para +#: C/index.docbook:581 +msgid "" +"You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this " +"License. Any other attempt to copy, modify, sublicense or distribute the " +"Document 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." +msgstr "" +" Usted no puede copiar, modificar, sublicenciar o distribuir el Documento salvo por lo permitido " +"expresamente por esta Licencia. Cualquier otro intento de copia, " +"modificación, sublicenciamiento o distribución del Documento es nulo, y dará " +"por terminados automáticamente sus derechos bajo esa Licencia. Sin embargo, " +"los terceros que hayan recibido copias, o derechos, de usted bajo esta " +"Licencia no verán terminadas sus licencias, siempre que permanezcan en total " +"conformidad con ella." + +#. (itstool) path: sect1/title +#: C/index.docbook:594 C/fdl-appendix.xml:594 +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "10. FUTURAS REVISIONES DE ESTA LICENCIA" + +#. (itstool) path: sect1/para +#: C/index.docbook:595 +msgid "" +"The Free " +"Software Foundation may publish new, revised versions of the GNU " +"Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" +"La Free " +"Software Foundation puede publicar versiones nuevas y revisadas de " +"la Licencia de Documentación Libre GNU de vez en cuando. Dichas versiones " +"nuevas serán similares en espíritu a la presente versión, pero pueden " +"diferir en detalles para solucionar nuevos problemas o preocupaciones. Vea " +"http://www.gnu.org/" +"copyleft/." + +#. (itstool) path: sect1/para +#: C/index.docbook:606 +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"Document specifies that a particular " +"numbered version of this License or any later version applies " +"to it, you have the option of following the terms and conditions either of " +"that specified version or of any later version that has been published (not " +"as a draft) by the Free Software Foundation. If the Document does not " +"specify a version number of this License, you may choose any version ever " +"published (not as a draft) by the Free Software Foundation." +msgstr "" +"Cada versión de la licencia tiene un número de versión. Si la Documentación especifica que el número particular de " +"versión de esta Licencia o cualquier posterior versión " +"aplicado sobre él, tiene la opción de seguir los términos y condiciones de " +"cualquiera de esas versiones especificadas o de cualquiera de las versiones " +"publicadas (no como borrador) por la Free Software Foundation. Si el " +"Documento no especifica un número de versión de la licencia, puede elegir " +"cualquier versión publicada (no como borrador) por la Free Software " +"Foundation." + +#. (itstool) path: sect1/title +#: C/index.docbook:621 C/fdl-appendix.xml:621 +msgid "Addendum" +msgstr "Addendum" + +#. (itstool) path: sect1/para +#: C/index.docbook:622 C/fdl-appendix.xml:622 +msgid "" +"To use this License in a document you have written, include a copy of the " +"License in the document and put the following copyright and license notices " +"just after the title page:" +msgstr "" +"Para usar esta licencia en un documento que ha escrito, incluya una copia de " +"la Licencia en el documento y ponga el siguiente copyright y las notas justo " +"después del título de la página." + +#. (itstool) path: blockquote/para +#: C/index.docbook:629 C/fdl-appendix.xml:629 +msgid "Copyright YEAR YOUR NAME." +msgstr "" +"Copyright 2009-2016 Daniel Mustieles\n" +"Copyright 2009-2010 Jorge González González\n" +"Copyright 2009-2010 Francisco Javier Fernández Serrador" + +#. (itstool) path: blockquote/para +#: C/index.docbook:632 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with " +"the Front-Cover Texts being LIST, " +"and with the Back-Cover Texts being " +"LIST. A copy of the license is included in the section entitled GNU " +"Free Documentation License." +msgstr "" +"Se otorga permiso para copiar, distribuir y/o modificar este documento bajo " +"los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o " +"cualquier otra versión posterior publicada por la Free Software Foundation; " +"con las Secciones Invariantes siendo " +"su LISTE SUS TÍTULOS, con Textos de " +"Cubierta Delantera siendo LISTA, y con los Textos de Cubierta Trasera siendo LISTA. Una copia de la " +"licencia está incluida en la sección titulada GNU Free Documentation " +"License." + +#. (itstool) path: sect1/para +#: C/index.docbook:647 +msgid "" +"If you have no Invariant Sections, " +"write with no Invariant Sections instead of saying which ones " +"are invariant. If you have no Front-Cover " +"Texts, write no Front-Cover Texts instead of " +"Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" +"Si no tiene Secciones Invariantes, " +"escriba sin Secciones Invariantes en vez de decir cuáles son " +"invariantes. Si no tiene Textos de " +"Cubierta Frontal, escriba sin Textos de Cubierta Frontal; de la misma manera para Textos de " +"Cubierta Trasera." + +#. (itstool) path: sect1/para +#: C/index.docbook:657 +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the GNU General Public License, to permit their use in free " +"software." +msgstr "" +"Si su documento contiene ejemplos de código de programa no triviales, " +"recomendamos liberar estos ejemplos en paralelo bajo la licencia de software " +"libre que usted elija, como la Licencia Pública General de GNU (GNU General Public " +"License), para permitir su uso en software libre." + +#. (itstool) path: copyright/year +#: C/fdl-appendix.xml:16 +msgid "2000" +msgstr "2000" + +#. (itstool) path: copyright/holder +#: C/fdl-appendix.xml:16 +msgid "Free Software Foundation, Inc." +msgstr "Free Software Foundation, Inc." + +#. (itstool) path: address/street +#: C/fdl-appendix.xml:20 +msgid "51 Franklin Street, Suite 330" +msgstr "51 Franklin Street, Suite 330" + +#. (itstool) path: address/city +#: C/fdl-appendix.xml:21 +msgid "Boston" +msgstr "Boston" + +#. (itstool) path: address/state +#: C/fdl-appendix.xml:21 +msgid "MA" +msgstr "MA" + +#. (itstool) path: address/postcode +#: C/fdl-appendix.xml:22 +msgid "02110-1301" +msgstr "02110-1301" + +#. (itstool) path: address/country +#: C/fdl-appendix.xml:22 +msgid "USA" +msgstr "EE.UU." + +#. (itstool) path: para/address +#: C/fdl-appendix.xml:20 +msgid "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" +msgstr "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:34 +msgid "free" +msgstr "libre" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:32 +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document <_:quote-1/> in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" +"El propósito de esta Licencia es permitir que un manual, libro de texto, u " +"otro documento escrito sea <_:quote-1/> en el sentido de libertad: asegurar " +"a todo el mundo la libertad efectiva de copiarlo y redistribuirlo, con o sin " +"modificaciones, de manera comercial o no. En segundo término, esta Licencia " +"proporciona al autor y al editor una manera de obtener reconocimiento por su " +"trabajo, sin que se le considere responsable de las modificaciones " +"realizadas por otros." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:44 +msgid "copyleft" +msgstr "copyleft" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:43 +msgid "" +"This License is a kind of <_:quote-1/>, which means that derivative works of " +"the document must themselves be free in the same sense. It complements the " +"GNU General Public License, which is a copyleft license designed for free " +"software." +msgstr "" +"Esta Licencia es de tipo <_:quote-1/>, lo que significa que los trabajos " +"derivados del documento deben a su vez ser libres en el mismo sentido. " +"Complementa la Licencia Pública General de GNU, que es una licencia tipo " +"copyleft diseñada para el software libre." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:67 C/fdl-appendix.xml:82 C/fdl-appendix.xml:99 +#: C/fdl-appendix.xml:107 C/fdl-appendix.xml:113 C/fdl-appendix.xml:156 +#: C/fdl-appendix.xml:179 C/fdl-appendix.xml:190 C/fdl-appendix.xml:205 +#: C/fdl-appendix.xml:224 C/fdl-appendix.xml:235 C/fdl-appendix.xml:253 +#: C/fdl-appendix.xml:271 C/fdl-appendix.xml:294 C/fdl-appendix.xml:354 +#: C/fdl-appendix.xml:368 C/fdl-appendix.xml:400 C/fdl-appendix.xml:462 +#: C/fdl-appendix.xml:472 C/fdl-appendix.xml:482 C/fdl-appendix.xml:519 +#: C/fdl-appendix.xml:540 C/fdl-appendix.xml:565 C/fdl-appendix.xml:583 +#: C/fdl-appendix.xml:608 +msgid "Document" +msgstr "Documento" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:69 +msgid "you" +msgstr "usted" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:63 +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The <_:quote-1/>, below, refers to any such manual or work. " +"Any member of the public is a licensee, and is addressed as <_:quote-2/>." +msgstr "" +"Esta Licencia se aplica a cualquier manual u otro trabajo que contenga un " +"aviso colocado por el poseedor del copyright diciendo que puede distribuirse " +"bajo los términos de esta Licencia. El <_:quote-1/>, abajo, se refiere a " +"cualquier manual o trabajo. Cualquier miembro del público es un " +"licenciatario, y será referido como <_:quote-2/>." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:73 C/fdl-appendix.xml:234 C/fdl-appendix.xml:269 +#: C/fdl-appendix.xml:283 C/fdl-appendix.xml:315 C/fdl-appendix.xml:351 +#: C/fdl-appendix.xml:413 C/fdl-appendix.xml:433 C/fdl-appendix.xml:447 +#: C/fdl-appendix.xml:459 C/fdl-appendix.xml:475 C/fdl-appendix.xml:543 +msgid "Modified Version" +msgstr "Versión modificada" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:72 +msgid "" +"A <_:quote-1/> of the Document means any work containing the Document or a " +"portion of it, either copied verbatim, or with modifications and/or " +"translated into another language." +msgstr "" +"Una <_:quote-1/> del Documento significa cualquier trabajo que contenga el " +"Documento o una porción del mismo, ya sea una copia literal o con " +"modificaciones y/o traducciones a otro idioma." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:80 +msgid "Secondary Section" +msgstr "Sección secundaria" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:79 +msgid "" +"A <_:quote-1/> is a named appendix or a front-matter section of the <_:" +"link-2/> that deals exclusively with the relationship of the publishers or " +"authors of the Document to the Document's overall subject (or to related " +"matters) and contains nothing that could fall directly within that overall " +"subject. (For example, if the Document is in part a textbook of mathematics, " +"a Secondary Section may not explain any mathematics.) The relationship could " +"be a matter of historical connection with the subject or with related " +"matters, or of legal, commercial, philosophical, ethical or political " +"position regarding them." +msgstr "" +"Una <_:quote-1/> es un apéndice con título o una sección preliminar del " +"Documento que trata exclusivamente de la relación entre los autores o " +"editores y el tema general del <_:link-2/> que trata exclusivamente con la " +"relación entre los editores o autores del Documento con el asunto general " +"del Documento (o asuntos relacionados) y no contiene nada que pueda " +"considerarse dentro del tema principal. (Por ejemplo, si el Documento es en " +"parte un libro de texto de matemáticas, una Sección Secundaria no explicará " +"nada de matemáticas.) La relación puede ser una conexión histórica con el " +"asunto o temas relacionados, o una opinión legal, comercial, filosófica, " +"ética o política acerca de ellos." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:95 C/fdl-appendix.xml:327 C/fdl-appendix.xml:398 +#: C/fdl-appendix.xml:439 C/fdl-appendix.xml:486 C/fdl-appendix.xml:494 +#: C/fdl-appendix.xml:567 C/fdl-appendix.xml:637 C/fdl-appendix.xml:648 +msgid "Invariant Sections" +msgstr "Secciones invariantes" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:96 C/fdl-appendix.xml:435 +msgid "Secondary Sections" +msgstr "Secciones secundarias" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:94 +msgid "" +"The <_:quote-1/> are certain <_:link-2/> whose titles are designated, as " +"being those of Invariant Sections, in the notice that says that the <_:" +"link-3/> is released under this License." +msgstr "" +"Las <_:quote-1/> son ciertas <_:link-2/> cuyos títulos son designados como " +"Secciones Invariantes en la nota que indica que el <_:link-3/> se publica " +"bajo esta Licencia." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:104 C/fdl-appendix.xml:181 C/fdl-appendix.xml:328 +#: C/fdl-appendix.xml:458 +msgid "Cover Texts" +msgstr "Textos de cubierta" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:103 +msgid "" +"The <_:quote-1/> are certain short passages of text that are listed, as " +"Front-Cover Texts or Back-Cover Texts, in the notice that says that the <_:" +"link-2/> is released under this License." +msgstr "" +" Los <_:quote-1/> son ciertos pasajes cortos de texto que se listan como " +"Textos de Cubierta Delantera o Textos de Cubierta Trasera en la nota que " +"indica que el <_:link-2/> se publica bajo esta Licencia." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:112 C/fdl-appendix.xml:124 C/fdl-appendix.xml:207 +#: C/fdl-appendix.xml:369 +msgid "Transparent" +msgstr "Transparente" + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:125 C/fdl-appendix.xml:204 +msgid "Opaque" +msgstr "Opacas" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:111 +msgid "" +"A <_:quote-1/> copy of the <_:link-2/> means a machine-readable copy, " +"represented in a format whose specification is available to the general " +"public, whose contents can be viewed and edited directly and " +"straightforwardly with generic text editors or (for images composed of " +"pixels) generic paint programs or (for drawings) some widely available " +"drawing editor, and that is suitable for input to text formatters or for " +"automatic translation to a variety of formats suitable for input to text " +"formatters. A copy made in an otherwise Transparent file format whose markup " +"has been designed to thwart or discourage subsequent modification by readers " +"is not Transparent. A copy that is not <_:quote-3/> is called <_:quote-4/>." +msgstr "" +"Una copia <_:quote-1/> del <_:link-2/>, significa una copia para lectura en " +"máquina, representada en un formato cuya especificación está disponible al " +"público en general, cuyo contenido puede ser visto y editados directamente " +"con editores de texto genéricos o (para imágenes compuestas por píxeles) con " +"programas genéricos de manipulación de imágenes o (para dibujos) con algún " +"editor de dibujos ampliamente disponible, y que sea adecuado como entrada " +"para formateadores de texto o para su traducción automática a formatos " +"adecuados para formateadores de texto. Una copia hecha en un formato " +"definido como Transparente, pero cuyo marcaje o ausencia de él haya sido " +"diseñado para impedir o dificultar modificaciones posteriores por parte de " +"los lectores no es Transparente. Una copia que no es <_:quote-3/> se " +"denomina <_:quote-4/>" + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:142 C/fdl-appendix.xml:146 C/fdl-appendix.xml:250 +#: C/fdl-appendix.xml:266 C/fdl-appendix.xml:281 C/fdl-appendix.xml:352 +msgid "Title Page" +msgstr "Portada" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:141 +msgid "" +"The <_:quote-1/> means, for a printed book, the title page itself, plus such " +"following pages as are needed to hold, legibly, the material this License " +"requires to appear in the title page. For works in formats which do not have " +"any title page as such, <_:quote-2/> means the text near the most prominent " +"appearance of the work's title, preceding the beginning of the body of the " +"text." +msgstr "" +"La <_:quote-1/> significa, en un libro impreso, la página de título, más las " +"páginas siguientes que sean necesarias para mantener legiblemente el " +"material que esta Licencia requiere en la portada. Para trabajos en formatos " +"que no tienen página de portada como tal, <_:quote-2/> significa el texto " +"cercano a la aparición más prominente del título del trabajo,precediendo el " +"comienzo del cuerpo del texto." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:166 C/fdl-appendix.xml:551 +msgid "section 3" +msgstr "sección 3" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:154 +msgid "" +"You may copy and distribute the <_:link-1/> in any medium, either " +"commercially or noncommercially, provided that this License, the copyright " +"notices, and the license notice saying this License applies to the Document " +"are reproduced in all copies, and that you add no other conditions " +"whatsoever to those of this License. You may not use technical measures to " +"obstruct or control the reading or further copying of the copies you make or " +"distribute. However, you may accept compensation in exchange for copies. If " +"you distribute a large enough number of copies you must also follow the " +"conditions in <_:link-2/>." +msgstr "" +"Usted puede copiar y distribuir el <_:link-1/> en cualquier soporte, sea en " +"forma comercial o no, siempre y cuando proporcione esta Licencia, las notas " +"de copyright y la nota que indica que esta Licencia se aplica al Documento " +"reproduciéndola en todas las copias y que usted no añada ninguna otra " +"condición a las expuestas en esta Licencia. Usted no puede usar medidas " +"técnicas para obstruir o controlar la lectura o copia posterior de las " +"copias que usted haga o distribuya. Sin embargo, usted puede aceptar " +"compensación a cambio de las copias. Si distribuye un número suficientemente " +"grande de copias también deberá seguir las condiciones de la <_:link-2/>." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:177 +msgid "" +"If you publish printed copies of the <_:link-1/> numbering more than 100, " +"and the Document's license notice requires <_:link-2/>, you must enclose the " +"copies in covers that carry, clearly and legibly, all these Cover Texts: " +"Front-Cover Texts on the front cover, and Back-Cover Texts on the back " +"cover. Both covers must also clearly and legibly identify you as the " +"publisher of these copies. The front cover must present the full title with " +"all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the <_:link-3/> and satisfy " +"these conditions, can be treated as verbatim copying in other respects." +msgstr "" +" Si publica copias impresas del <_:link-1/> que sobrepasen las 100, y la " +"nota de licencia del Documento exige <_:link-2/>, debe incluirlas copias con " +"cubiertas que lleven en forma clara y legible todos esos Textos de Cubierta: " +"Textos de Cubierta Delantera en la cubierta delantera y Textos de Cubierta " +"Trasera en la cubierta trasera. Ambas cubiertas deben identificarlo a Usted " +"clara y legiblemente como editor de tales copias. La cubierta debe mostrar " +"el título completo con todas las palabras igualmente prominentes y visibles. " +"Además puede añadir otro material en las cubiertas. Las copias con cambios " +"limitados a las cubiertas, siempre que conserven el título del <_:link-3/> y " +"satisfagan estas condiciones, pueden considerarse como copias literales en " +"todos los aspectos." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:202 +msgid "" +"If you publish or distribute <_:link-1/> copies of the <_:link-2/> numbering " +"more than 100, you must either include a machine-readable <_:link-3/> copy " +"along with each Opaque copy, or state in or with each Opaque copy a publicly-" +"accessible computer-network location containing a complete Transparent copy " +"of the Document, free of added material, which the general network-using " +"public has access to download anonymously at no charge using public-standard " +"network protocols. If you use the latter option, you must take reasonably " +"prudent steps, when you begin distribution of Opaque copies in quantity, to " +"ensure that this Transparent copy will remain thus accessible at the stated " +"location until at least one year after the last time you distribute an " +"Opaque copy (directly or through your agents or retailers) of that edition " +"to the public." +msgstr "" +"Si Usted publica o distribuye copias <_:link-1/> del <_:link-2/> cuya " +"cantidad exceda las 100, debe incluir una copia <_:link-3/>, que pueda ser " +"leída por una máquina, con cada copia Opaca, o bien mostrar, en cada copia " +"Opaca, una dirección de red donde cualquier usuario de la misma tenga acceso " +"por medio de protocolos públicos y estandarizados a una copia Transparente " +"del Documento completa, sin material adicional. Si usted hace uso de la " +"última opción, deberá tomar las medidas necesarias, cuando comience la " +"distribución de las copias Opacas en cantidad, para asegurar que esta copia " +"Transparente permanecerá accesible en el sitio establecido por lo menos un " +"año después de la última vez que distribuya una copia Opaca de esa edición " +"al público (directamente o a través de sus agentes o distribuidores)." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:222 +msgid "" +"It is requested, but not required, that you contact the authors of the <_:" +"link-1/> well before redistributing any large number of copies, to give them " +"a chance to provide you with an updated version of the Document." +msgstr "" +"Se solicita, aunque no es requisito, que se ponga en contacto con los " +"autores del <_:link-1/> antes de redistribuir gran número de copias, para " +"darles la oportunidad de que le proporcionen una versión actualizada del " +"Documento." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:236 +msgid "2" +msgstr "2" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:237 +msgid "3" +msgstr "3" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:232 +msgid "" +"You may copy and distribute a <_:link-1/> of the <_:link-2/> under the " +"conditions of sections <_:link-3/> and <_:link-4/> above, provided that you " +"release the Modified Version under precisely this License, with the Modified " +"Version filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" +"Puede copiar y distribuir una <_:link-1/> del <_:link-2/> bajo las " +"condiciones de las secciones <_:link-3/> y <_:link-4/> anteriores, siempre " +"que Usted libere la Versión Modificada bajo esta misma Licencia, con la " +"Versión Modificada haciendo el rol del Documento, por lo tanto dando " +"Licencia de distribución y modificación de la Versión Modificada a " +"quienquiera posea una copia de la misma. Además, debe hacer lo siguiente en " +"la Versión Modificada:" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:249 +msgid "" +"Use in the <_:link-1/> (and on the covers, if any) a title distinct from " +"that of the <_:link-2/>, and from those of previous versions (which should, " +"if there were any, be listed in the History section of the Document). You " +"may use the same title as a previous version if the original publisher of " +"that version gives permission." +msgstr "" +"Usar en la <_:link-1/> (y en las cubiertas, si hay alguna) un título " +"distinto al del <_:link-2/> y de sus versiones anteriores (que deberían, si " +"hay alguna, estar listadas en la sección de Historia del Documento). Puede " +"usar el mismo título de versiones anteriores al original siempre y cuando " +"quien las publicó originalmente otorgue permiso." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:265 +msgid "" +"List on the <_:link-1/>, as authors, one or more persons or entities " +"responsible for authorship of the modifications in the <_:link-2/>, together " +"with at least five of the principal authors of the <_:link-3/> (all of its " +"principal authors, if it has less than five)." +msgstr "" +"Listar en la <_:link-1/>, como autores, una o más personas o entidades " +"responsables de la autoría de las modificaciones de la <_:link-2/>, junto " +"con por lo menos cinco de los autores principales del <_:link-3/> (todos sus " +"autores principales, si hay menos de cinco), a menos que le eximan de tal " +"requisito." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:280 +msgid "" +"State on the <_:link-1/> the name of the publisher of the <_:link-2/>, as " +"the publisher." +msgstr "" +"Mostrar en la <_:link-1/> como editor el nombre del editor de la <_:link-2/>." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:292 +msgid "Preserve all the copyright notices of the <_:link-1/>." +msgstr "Conservar todas las notas de copyright del <_:link-1/>." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:312 +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the <_:link-1/> under the terms of this " +"License, in the form shown in the Addendum below." +msgstr "" +"Incluir, inmediatamente después de los avisos de copyright, una nota de " +"licencia dando el permiso público para usar la <_:link-1/>. bajo los " +"términos de esta Licencia, de la forma mostrada en el Adenda de más abajo." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:330 +msgid "Document's" +msgstr "Documento" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:325 +msgid "" +"Preserve in that license notice the full lists of <_:link-1/> and required " +"<_:link-2/> given in the <_:link-3/> license notice." +msgstr "" +"Incluir, inmediatamente después de ese aviso de licencia, la lista completa " +"de <_:link-1/> y de los <_:link-2/> que sean requeridos en el aviso de " +"Licencia del <_:link-3/> original." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:348 C/fdl-appendix.xml:353 C/fdl-appendix.xml:372 +#: C/fdl-appendix.xml:507 C/fdl-appendix.xml:508 +msgid "History" +msgstr "Historia" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:347 +msgid "" +"Preserve the section entitled <_:quote-1/>, and its title, and add to it an " +"item stating at least the title, year, new authors, and publisher of the <_:" +"link-2/> as given on the <_:link-3/>. If there is no section entitled <_:" +"quote-4/> in the <_:link-5/>, create one stating the title, year, authors, " +"and publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" +"Conservar la sección titulada <_:quote-1/>, conservar su Título y añadirle " +"un elemento que declare al menos el título, el año, los nuevos autores y el " +"editor de la <_:link-2/>, tal como figuran en la <_:link-3/>. Si no hay una " +"sección titulada <_:quote-4/> en el <_:link-5/>, crear una estableciendo el " +"título, el año, los autores y el editor del Documento, tal como figuran en " +"su Portada, añadiendo además un elemento describiendo la Versión Modificada, " +"como se estableció en la sentencia anterior." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:366 +msgid "" +"Preserve the network location, if any, given in the <_:link-1/> for public " +"access to a <_:link-2/> copy of the Document, and likewise the network " +"locations given in the Document for previous versions it was based on. These " +"may be placed in the <_:quote-3/> section. You may omit a network location " +"for a work that was published at least four years before the Document " +"itself, or if the original publisher of the version it refers to gives " +"permission." +msgstr "" +"Conservar la dirección en red, si la hay, dada en el <_:link-1/> para el " +"acceso público a una copia <_:link-2/> del mismo, así como las otras " +"direcciones de red dadas en el Documento para versiones anteriores en las " +"que estuviese basado. Pueden ubicarse en la sección <_:quote-3/>. Se puede " +"omitir la ubicación en red de un trabajo que haya sido publicado por lo " +"menos cuatro años antes que el Documento mismo, o si el editor original de " +"dicha versión da permiso." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:385 C/fdl-appendix.xml:509 +msgid "Acknowledgements" +msgstr "Agradecimientos" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:386 C/fdl-appendix.xml:510 +msgid "Dedications" +msgstr "Dedicatorias" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:384 +msgid "" +"In any section entitled <_:quote-1/> or <_:quote-2/>, preserve the section's " +"title, and preserve in the section all the substance and tone of each of the " +"contributor acknowledgements and/or dedications given therein." +msgstr "" +"En cualquier sección titulada <_:quote-1/> o <_:quote-2/>, conservar el " +"título de la sección y conservar en ella toda la sustancia y el tono de los " +"agradecimientos y/o dedicatorias incluidas por cada contribuyente." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:397 +msgid "" +"Preserve all the <_:link-1/> of the <_:link-2/>, unaltered in their text and " +"in their titles. Section numbers or the equivalent are not considered part " +"of the section titles." +msgstr "" +"Conservar todas las <_:link-1/> del <_:link-2/>, sin alterar su texto ni sus " +"títulos. Los números de sección o equivalentes no se consideran parte de los " +"títulos de la sección." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:412 C/fdl-appendix.xml:424 C/fdl-appendix.xml:445 +msgid "Endorsements" +msgstr "Aprobaciones" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:410 +msgid "" +"Delete any section entitled <_:quote-1/>. Such a section may not be included " +"in the <_:link-2/>." +msgstr "" +"Elimine cualquier sección titulada <_:quote-1/>. Tales secciones no pueden " +"estar incluidas en las <_:link-2/>." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:425 +msgid "Invariant Section" +msgstr "Sección invariante" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:422 +msgid "" +"Do not retitle any existing section as <_:quote-1/> or to conflict in title " +"with any <_:link-2/>." +msgstr "" +"No cambiar el título de ninguna sección existente a <_:quote-1/> ni a uno " +"que entre en conflicto con el de alguna <_:link-2/>." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:432 +msgid "" +"If the <_:link-1/> includes new front-matter sections or appendices that " +"qualify as <_:link-2/> and contain no material copied from the Document, you " +"may at your option designate some or all of these sections as invariant. To " +"do this, add their titles to the list of <_:link-3/> in the Modified " +"Version's license notice. These titles must be distinct from any other " +"section titles." +msgstr "" +"Si la <_:link-1/> incluye secciones o apéndices nuevos que cualifiquen como " +"<_:link-2/> y no contienen ningún material copiado del Documento, puede " +"opcionalmente designar algunas o todas esas secciones como invariantes. Para " +"hacerlo, añada sus títulos a la lista de <_:link-3/> en el aviso de licencia " +"de la Versión Modificada. Tales títulos deben ser distintos de cualquier " +"otro título de sección." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:444 +msgid "" +"You may add a section entitled <_:quote-1/>, provided it contains nothing " +"but endorsements of your <_:link-2/> by various parties--for example, " +"statements of peer review or that the text has been approved by an " +"organization as the authoritative definition of a standard." +msgstr "" +"Puede añadir una sección titulada <_:quote-1/>, siempre que contenga " +"únicamente aprobaciones de su <_:link-2/> por otras fuentes --por ejemplo, " +"observaciones de compañeros o que el texto ha sido aprobado por una " +"organización como definición oficial de un estándar." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:455 +msgid "Front-Cover Text" +msgstr "Texto de cubierta delantera" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:457 +msgid "Back-Cover Text" +msgstr "Texto de cubierta trasera" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:453 +msgid "" +"You may add a passage of up to five words as a <_:link-1/>, and a passage of " +"up to 25 words as a <_:link-2/>, to the end of the list of <_:link-3/> in " +"the <_:link-4/>. Only one passage of Front-Cover Text and one of Back-Cover " +"Text may be added by (or through arrangements made by) any one entity. If " +"the <_:link-5/> already includes a cover text for the same cover, previously " +"added by you or by arrangement made by the same entity you are acting on " +"behalf of, you may not add another; but you may replace the old one, on " +"explicit permission from the previous publisher that added the old one." +msgstr "" +"Puede añadir un pasaje de hasta cinco palabras como <_:link-1/> y un pasaje " +"de hasta 25 palabras como <_:link-2/> al final de la lista de <_:link-3/> en " +"la <_:link-4/>. Una entidad sólo puede añadir (o hacer que se añada) un " +"pasaje al Texto de Cubierta Delantera y uno al de Cubierta Trasera. Si el <_:" +"link-5/> ya incluye un textos de cubiertas añadidos previamente por usted o " +"por acuerdo previo con la entidad que usted representa, usted no puede " +"añadir otro; pero puede reemplazar el anterior, con permiso explícito del " +"editor anterior que agregó el texto anterior." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:470 +msgid "" +"The author(s) and publisher(s) of the <_:link-1/> do not by this License " +"give permission to use their names for publicity for or to assert or imply " +"endorsement of any <_:link-2/>." +msgstr "" +"Con esta Licencia ni los autores ni los editores del <_:link-1/> dan permiso " +"para usar sus nombres para publicidad ni para asegurar o implicar aprobación " +"de cualquier <_:link-2/>." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:484 C/fdl-appendix.xml:566 +msgid "section 4" +msgstr "sección 4" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:481 +msgid "" +"You may combine the <_:link-1/> with other documents released under this " +"License, under the terms defined in <_:link-2/> above for modified versions, " +"provided that you include in the combination all of the <_:link-3/> of all " +"of the original documents, unmodified, and list them all as Invariant " +"Sections of your combined work in its license notice." +msgstr "" +"Usted puede combinar el <_:link-1/> con otros documentos liberados bajo esta " +"Licencia, bajo los términos definidos en la sección <_:link-2/> más arriba " +"para versiones modificadas, siempre que incluya en la combinación todas las " +"<_:link-3/> de todos los documentos originales, sin modificaciones, y las " +"liste todas como Secciones Invariantes de su trabajo combinado en su aviso " +"de licencia." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:492 +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical <_:link-1/> may be replaced with a single copy. If there are " +"multiple Invariant Sections with the same name but different contents, make " +"the title of each such section unique by adding at the end of it, in " +"parentheses, the name of the original author or publisher of that section if " +"known, or else a unique number. Make the same adjustment to the section " +"titles in the list of Invariant Sections in the license notice of the " +"combined work." +msgstr "" +"El trabajo combinado necesita contener solamente una copia de esta Licencia, " +"y múltiples <_:link-1/> idénticas pueden reemplazarse por una sola copia. Si " +"hay múltiples Secciones Invariantes con el mismo nombre pero con contenidos " +"diferentes, haga el título de cada una de estas secciones único añadiéndolo " +"al final de este, entre paréntesis, el nombre del autor o de quien editó " +"originalmente esa sección, si es conocido, o si no, un número único. Haga el " +"mismo ajuste a los títulos de sección en la lista de Secciones Invariantes " +"en la nota de licencia del trabajo combinado." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:511 +msgid "Endorsements." +msgstr "Aprobaciones." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:505 +msgid "" +"In the combination, you must combine any sections entitled <_:quote-1/> in " +"the various original documents, forming one section entitled <_:quote-2/>; " +"likewise combine any sections entitled <_:quote-3/>, and any sections " +"entitled <_:quote-4/>. You must delete all sections entitled <_:quote-5/>" +msgstr "" +"En la combinación, debe combinar cualquier sección titulada <_:quote-1/> de " +"los distintos documentos originales, formando una sección titulada <_:" +"quote-2/>; de la misma forma, combine cualquier sección titulada <_:quote-3/" +"> y cualquier sección titulada <_:quote-4/>. Debe eliminar todas las " +"secciones tituladas <_:quote-5/>." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:517 +msgid "" +"You may make a collection consisting of the <_:link-1/> and other documents " +"released under this License, and replace the individual copies of this " +"License in the various documents with a single copy that is included in the " +"collection, provided that you follow the rules of this License for verbatim " +"copying of each of the documents in all other respects." +msgstr "" +"Puede hacer una colección que conste del <_:link-1/> y de otros documentos " +"publicados bajo esta Licencia, y reemplazar las copias individuales de esta " +"Licencia en todos los documentos por una sola copia que esté incluida en la " +"colección, siempre que siga las reglas de esta Licencia para cada copia " +"literal de cada uno de los documentos en cualquiera de los demás aspectos." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:546 +msgid "aggregate" +msgstr "agregado" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:550 +msgid "Cover Text" +msgstr "Texto de cubierta" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:538 +msgid "" +"A compilation of the <_:link-1/> or its derivatives with other separate and " +"independent documents or works, in or on a volume of a storage or " +"distribution medium, does not as a whole count as a <_:link-2/> of the " +"Document, provided no compilation copyright is claimed for the compilation. " +"Such a compilation is called an <_:quote-3/>, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the <_:link-4/> requirement of <_:link-5/> is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" +"Una recopilación que conste del <_:link-1/> o sus derivados y de otros " +"documentos o trabajos separados e independientes, en cualquier soporte de " +"almacenamiento o distribución, no cuenta como un todo como un <_:link-2/> " +"del Documento, siempre que no se reclame ningún derecho de copyright por la " +"compilación. Dicha compilación se denomina un <_:quote-3/>, y esta Licencia " +"no se aplica a otros trabajos autocontenidos incluidos con el Documento. " +"teniendo en cuenta que son compilados, si no son los mismos trabajos " +"derivados del Documento. Si el requisito de <_:link-4/> de la <_:link-5/> es " +"aplicable a estas copias del Documento, entonces si el Documento es menor " +"que un cuarto del agregado completo, los Textos de Cubierta del Documento " +"pueden colocarse en cubiertas que enmarquen solamente el Documento dentro " +"del agregado. En caso contrario deben aparecer en cubiertas impresas " +"enmarcando todo el agregado." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:562 +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the <_:link-1/> under the terms of <_:link-2/>. Replacing <_:" +"link-3/> with translations requires special permission from their copyright " +"holders, but you may include translations of some or all Invariant Sections " +"in addition to the original versions of these Invariant Sections. You may " +"include a translation of this License provided that you also include the " +"original English version of this License. In case of a disagreement between " +"the translation and the original English version of this License, the " +"original English version will prevail." +msgstr "" +"La traducción se considera un tipo de modificación, así que puede distribuir " +"traducciones del <_:link-1/> bajo los términos de la <_:link-2/>. Reemplazar " +"las <_:link-3/> con traducciones requiere permiso especial de los " +"mantenedores de la propietarios del copyright, pero puede incluir " +"traducciones de algunos o todas las Secciones invariantes. Puede incluir una " +"traducción de esta licencia proporcionada que además incluya la versión " +"original de esta Sección invariante en adición de esta licencia. En caso de " +"desacuerdo prevalecerá la versión original en inglés." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:581 +msgid "" +"You may not copy, modify, sublicense, or distribute the <_:link-1/> except " +"as expressly provided for under this License. Any other attempt to copy, " +"modify, sublicense or distribute the Document 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." +msgstr "" +" Usted no puede copiar, modificar, sublicenciar o distribuir el <_:link-1/> " +"salvo por lo permitido expresamente por esta Licencia. Cualquier otro " +"intento de copia, modificación, sublicenciamiento o distribución del " +"Documento es nulo, y dará por terminados automáticamente sus derechos bajo " +"esa Licencia. Sin embargo, los terceros que hayan recibido copias, o " +"derechos, de usted bajo esta Licencia no verán terminadas sus licencias, " +"siempre que permanezcan en total conformidad con ella." + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:597 +msgid "Free Software Foundation" +msgstr "Free Software Foundation" + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:603 +msgid "http://www.gnu.org/copyleft/" +msgstr "http://www.gnu.org/copyleft/" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:595 +msgid "" +"The <_:ulink-1/> may publish new, revised versions of the GNU Free " +"Documentation 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. See <_:ulink-2/>." +msgstr "" +"La <_:ulink-1/> puede publicar versiones nuevas y revisadas de la Licencia " +"de Documentación Libre GNU de vez en cuando. Dichas versiones nuevas serán " +"similares en espíritu a la presente versión, pero pueden diferir en detalles " +"para solucionar nuevos problemas o preocupaciones. Consulte <_:ulink-2/>." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:610 +msgid "or any later version" +msgstr "o cualquier versión posterior" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:606 +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"<_:link-1/> specifies that a particular numbered version of this License <_:" +"quote-2/> applies to it, you have the option of following the terms and " +"conditions either of that specified version or of any later version that has " +"been published (not as a draft) by the Free Software Foundation. If the " +"Document does not specify a version number of this License, you may choose " +"any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" +"Cada versión de la licencia tiene un número de versión. Si la <_:link-1/> " +"especifica que el número particular de versión de esta Licencia <_:quote-2/> " +"aplicado sobre él, tiene la opción de seguir los términos y condiciones de " +"cualquiera de esas versiones especificadas o de cualquiera de las versiones " +"publicadas (no como borrador) por la Free Software Foundation. Si el " +"Documento no especifica un número de versión de la licencia, puede elegir " +"cualquier versión publicada (no como borrador) por la Free Software " +"Foundation." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:639 C/fdl-appendix.xml:651 +msgid "Front-Cover Texts" +msgstr "Textos de cubierta delantera" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:640 C/fdl-appendix.xml:654 +msgid "Back-Cover Texts" +msgstr "Textos de cubierta trasera" + +#. (itstool) path: blockquote/para +#: C/fdl-appendix.xml:632 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the <_:link-1/> " +"being LIST THEIR TITLES, with the <_:link-2/> being LIST, and with the <_:" +"link-3/> being LIST. A copy of the license is included in the section " +"entitled <_:quote-4/>." +msgstr "" +"Se otorga permiso para copiar, distribuir y/o modificar este documento bajo " +"los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o " +"cualquier otra versión posterior publicada por la Free Software Foundation; " +"con las <_:link-1/> siendo su LISTE SUS TÍTULOS, con <_:link-2/> siendo " +"LISTA, y con los <_:link-3/> siendo LISTA. Una copia de la licencia está " +"incluida en la sección titulada <_:quote-4/>." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:649 +msgid "with no Invariant Sections" +msgstr "sin secciones invariantes" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:652 +msgid "no Front-Cover Texts" +msgstr "sin textos de cubierta delantera" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:653 +msgid "Front-Cover Texts being LIST" +msgstr "Textos de cubierta LISTADOS" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:647 +msgid "" +"If you have no <_:link-1/>, write <_:quote-2/> instead of saying which ones " +"are invariant. If you have no <_:link-3/>, write <_:quote-4/> instead of <_:" +"quote-5/>; likewise for <_:link-6/>." +msgstr "" +"Si no tiene <_:link-1/>, escriba <_:quote-2/> en lugar de indicar los que " +"son invariantes. Si no tiene <_:link-3/>, escriba <_:quote-4/> en lugar de " +"<_:quote-5/>; lo mismo para <_:link-6/>." + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:661 +msgid "GNU General Public License" +msgstr "Licencia Pública General GNU" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:657 +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the <_:ulink-1/>, to permit their use in free software." +msgstr "" +"Si su documento contiene ejemplos de código de programa no triviales, " +"recomendamos liberar estos ejemplos en paralelo bajo la licencia de software " +"libre que usted elija, como la <_:ulink-1/>, para permitir su uso en " +"software libre." + +#~ msgid "Python - optional - for gtkdoc-depscan" +#~ msgstr "Python: opcional, para gtkdoc-depscan" + +#~ msgid "" +#~ "Generating the \"template\" files. " +#~ "gtkdoc-mktmpl creates a number of files in the " +#~ "tmpl/ subdirectory, using the " +#~ "information gathered in the first step. (Note that this can be run " +#~ "repeatedly. It will try to ensure that no documentation is ever lost.)" +#~ msgstr "" +#~ "Generar los archivos «plantilla». " +#~ "gtkdoc-mktmpl crea un número de archivos en la " +#~ "subcarpeta tmpl/, usando la " +#~ "información obtenida en el primer paso. (Tenga en cuenta que esto se " +#~ "puede ejecutar de forma separada. Intentará asegurarse de que la " +#~ "documentación nunca se pierde.)" + +#~ msgid "" +#~ "Since GTK-Doc 1.9 the templates can be avoided. We encourage people to " +#~ "keep documentation in the code. gtkdocize " +#~ "supports now a option that chooses a " +#~ "makefile that skips tmpl usage totally. If you have never changed file in " +#~ "tmpl by hand, please remove the directory (e.g. from version control " +#~ "system)." +#~ msgstr "" +#~ "Desde de GTK-Doc 1.9 se pueden evitar las plantillas. Animamos a la gente " +#~ "a que mantenga la documentación en el código. gtkdocize ahora soporta una opción --flavour no-tmpl que elige un archivo makefile que omite completamente el uso de " +#~ "tmpl. Si nunca ha cambiado a mano el archivo tmpl, elimine la carpeta una " +#~ "vez (por ejemplo, desde el sistema de control de versiones)." + +#~ msgid "(FIXME : Stability information)" +#~ msgstr "(ARREGLAR: estabilidad de la información)" + +#~ msgid "1.23" +#~ msgstr "1.23" + +#~ msgid "1.20" +#~ msgstr "1.20" + +#~ msgid "" +#~ "Also, take a look at GObject Introspection annotation tags: http://live." +#~ "gnome.org/GObjectIntrospection/Annotations" +#~ msgstr "" +#~ "Consulte también las anotaciones de las etiquetas de introspección de " +#~ "GObject: http://live.gnome.org/GObjectIntrospection/Annotations" + +#~ msgid "" +#~ "DocBook DTD v3.0 - This is the DocBook SGML DTD. " +#~ "http://www.ora." +#~ "com/davenport" +#~ msgstr "" +#~ "DocBook DTD v3.0: Este es el DocBook SGML DTD. " +#~ "http://www.ora." +#~ "com/davenport" + +#~ msgid "" +#~ "Jade v1.1 - This is a DSSSL processor for converting " +#~ "SGML to various formats. http://www.jclark.com/jade" +#~ msgstr "" +#~ "Jade v1.1: Este es el procesador DSSSL para " +#~ "convertir SGML a varios formatos. http://www.jclark.com/jade" + +#~ msgid "" +#~ "Modular DocBook Stylesheets This is the DSSSL code " +#~ "to convert DocBook to HTML (and a few other formats). It's used together " +#~ "with jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to " +#~ "colour the program code listings/declarations, and to support global " +#~ "cross-reference indices in the generated HTML. http://nwalsh.com/docbook/dsssl" +#~ msgstr "" +#~ "Hojas de estilo DocBook modulares: Éste es el código " +#~ "DSSSL para convertir DocBook a HTML (y otros cuantos formatos). Se usa " +#~ "junto con jade. El código DSSSL está algo personalizado, en GTK-Doc dsl, " +#~ "para colorear el código de listas/declaraciones del programa y soportar " +#~ "índices de referencias cruzadas globales en el HTML generado. http://nwalsh.com/" +#~ "docbook/dsssl." + +#~ msgid "" +#~ "docbook-to-man - if you want to create man pages " +#~ "from the DocBook. I've customized the 'translation spec' slightly, to " +#~ "capitalise section headings and add the 'GTK Library' title at the top of " +#~ "the pages and the revision date at the bottom. There is a link to this on " +#~ "http://www.ora." +#~ "com/davenport NOTE: This does not work yet." +#~ msgstr "" +#~ "docbook-to-man: Si quiere crear páginas man desde el " +#~ "DocBook. «translation spec» se ha personalizado un poco para capitalizar " +#~ "la sección de cabeceras y añadir un título de «Biblioteca GTK» en la " +#~ "parte superior de las páginas y la fecha de revisión al final. Existe un " +#~ "enlace acerca de esto en http://www.ora.com/davenport. NOTA: Esto aún no funciona." + +#~ msgid "" +#~ "There is no standard place where the DocBook Modular Stylesheets are " +#~ "installed." +#~ msgstr "" +#~ "No existe ningún sitio estándar donde se instalan las hojas de estilo " +#~ "modulares de DocBook." + +#~ msgid "" +#~ "GTK-Doc's configure script searches these 3 directories automatically:" +#~ msgstr "" +#~ "El script de configuración de GTK-Doc busca estas tres carpetas " +#~ "automáticamente:" + +#~ msgid "" +#~ " /usr/lib/sgml/stylesheets/nwalsh-modular (used by " +#~ "RedHat)" +#~ msgstr "" +#~ " /usr/lib/sgml/stylesheets/nwalsh-modular (usado " +#~ "por RedHat)" + +#~ msgid "" +#~ " /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +#~ msgstr "" +#~ " /usr/lib/dsssl/stylesheets/docbook (usado por " +#~ "Debian)" + +#~ msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +#~ msgstr " /usr/share/sgml/docbkdsl (usado por SuSE)" + +#~ msgid "" +#~ "If you have the stylesheets installed somewhere else, you need to " +#~ "configure GTK-Doc using the option: --with-dsssl-dir=<" +#~ "PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +#~ msgstr "" +#~ "Si tiene las hojas de estilo instaladas en algún otro sitio, deberá " +#~ "configurar GTK-Doc usando la opción: --with-dsssl-dir=<" +#~ "RUTA_A_LA_CARPETA_DE_NIVEL_SUPERIOR_DE_LAS_HOJAS_DE_ESTILO> " + +#~ msgid "1.18.1" +#~ msgstr "1.18.1" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "/**\n" +#~ " * identifier:\n" +#~ " *\n" +#~ " * documentation ...\n" +#~ " *\n" +#~ " * # Sub heading #\n" +#~ " *\n" +#~ " * more documentation:\n" +#~ " * - list item 1\n" +#~ " * - list item 2\n" +#~ " *\n" +#~ " * Even more docs.\n" +#~ " */\n" +#~ "\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "/**\n" +#~ " * identifier:\n" +#~ " *\n" +#~ " * documentation ...\n" +#~ " *\n" +#~ " * # Sub heading #\n" +#~ " *\n" +#~ " * more documentation:\n" +#~ " * - list item 1\n" +#~ " * - list item 2\n" +#~ " *\n" +#~ " * Even more docs.\n" +#~ " */\n" +#~ "\n" +#~ " " + +#~| msgid "" +#~| "Since GTK-Doc-1.18 the tool supports a subset of the markdown language. One " +#~| "can use it for sub-headings and simple itemized lists. On older GTK-Doc " +#~| "versions the content will be rendered as it (the list items will appear " +#~| "in one line separated by dashes). <_:example-1/>" +#~ msgid "" +#~ "Since GTK-Doc-1.18 the tool supports a subset of the markdown language. The " +#~ "support has improved a lot with version 1.20. On older GTK-Doc versions " +#~ "the content will be rendered as it (the list items will appear in one " +#~ "line separated by dashes). <_:example-1/>" +#~ msgstr "" +#~ "Desde GTK-Doc-1.18 la herramienta soporta un subconjunto de lenguajes de marcado. En la versión 1.20 se ha mejorado ucho este soporte. En versiones " +#~ "más antiguas de GTK-Doc el contenido se puede renderizar como tal (la " +#~ "lista de elementos aparecerá en una línea separada por guiones). <_:" +#~ "example-1/>" + +#~ msgid "" +#~ "You may also want to enable GTK-Doc for the distcheck make target. Just " +#~ "add the one line shown in the next example to your top-level " +#~ "Makefile.am:" +#~ msgstr "" +#~ "Puede que también quiera activar GTK-Doc para el objetivo distcheckmate. " +#~ "Simplemente añada la línea mostrada en el siguiente ejemplo a su nivel " +#~ "superior de Makefile.am:" + +#~ msgid "Enable GTK-Doc during make distcheck" +#~ msgstr "Activar GTK-Doc durante make distcheck" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc\n" +#~ "\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc\n" +#~ "\n" +#~ " " + +#~ msgid "Chris" +#~ msgstr "Chris" + +#~ msgid "Lyttle" +#~ msgstr "Lyttle" + +#~ msgid "chris@wilddev.net" +#~ msgstr "chris@wilddev.net" + +#~ msgid "Dan" +#~ msgstr "Dan" + +#~ msgid "Mueth" +#~ msgstr "Mueth" + +#~ msgid "d-mueth@uchicago.edu" +#~ msgstr "d-mueth@uchicago.edu" + +#~ msgid "Stefan" +#~ msgstr "Stefan" + +#~ msgid "Kost" +#~ msgstr "Kost" + +#~ msgid "ensonic@users.sf.net" +#~ msgstr "ensonic@users.sf.net" + +#~ msgid "gtk-doc-list@gnome.org" +#~ msgstr "gtk-doc-list@gnome.org" + +#~ msgid "2000, 2005" +#~ msgstr "2000, 2005" + +#~ msgid "Dan Mueth and Chris Lyttle" +#~ msgstr "Dan Mueth y Chris Lyttle" + +#~ msgid "2007-2011" +#~ msgstr "2007-2011" + +#~ msgid "Stefan Sauer (Kost)" +#~ msgstr "Stefan Sauer (Kost)" + +#~ msgid "20 Sep 2011" +#~ msgstr "20 de septiembre de 2011" + +#~ msgid "ss" +#~ msgstr "ss" + +#~ msgid "development version" +#~ msgstr "versión de desarrollo" + +#~ msgid "1.18" +#~ msgstr "1.18" + +#~ msgid "14 sep 2011" +#~ msgstr "14 de septiembre 2011" + +#~ msgid "bug fixes, speedups, markdown support" +#~ msgstr "correcciones de errores, mejoras de velocidad, soporte de marcado" + +#~ msgid "1.17" +#~ msgstr "1.17" + +#~ msgid "26 Feb 2011" +#~ msgstr "26 de febrero de 2011" + +#~ msgid "sk" +#~ msgstr "sk" + +#~ msgid "urgent bug fix update" +#~ msgstr "actualización de corrección de error urgente" + +#~ msgid "1.16" +#~ msgstr "1.16" + +#~ msgid "14 Jan 2011" +#~ msgstr "4 de enero de 2011" + +#~ msgid "bugfixes, layout improvements" +#~ msgstr "correcciones de errores, mejoras de diseño" + +#~ msgid "1.15" +#~ msgstr "1.15" + +#~ msgid "21 May 2010" +#~ msgstr "21 de mayo de 2010" + +#~ msgid "bug and regression fixes" +#~ msgstr "arreglos de errores y regresiones" + +#~ msgid "1.14" +#~ msgstr "1.14" + +#~ msgid "28 March 2010" +#~ msgstr "28 de marzo de 2010" + +#~ msgid "bugfixes and performance improvements" +#~ msgstr "solución de errores y mejoras de rendimiento" + +#~ msgid "1.13" +#~ msgstr "1.13" + +#~ msgid "18 December 2009" +#~ msgstr "18 de diciembre de 2009" + +#~ msgid "broken tarball update" +#~ msgstr "actualización de archivador «tarball» roto" + +#~ msgid "1.12" +#~ msgstr "1.12" + +#~ msgid "new tool features and bugfixes" +#~ msgstr "nuevas característicacs de la herramienta y errores solucionados" + +#~ msgid "1.11" +#~ msgstr "1.11" + +#~ msgid "16 Novemebr 2008" +#~ msgstr "16 de noviembre de 2008" + +#~ msgid "mal" +#~ msgstr "mal" + +#~ msgid "GNOME doc-utils migration" +#~ msgstr "Migración de GNOME doc-utils" + +#~ msgid "xxx_get_type()" +#~ msgstr "xxx_get_type()" + +#~ msgid "<package>.types" +#~ msgstr "<paquete>.tipos" + +#~ msgid "<package>-sections.txt" +#~ msgstr "<paquete>-sections.txt" + +#~ msgid "explanation" +#~ msgstr "explicación" + +#~ msgid "" +#~ "Missing or wrong naming in file (see )." +#~ msgstr "" +#~ "Faltan nombres o son erróneos en el archivo (consultar " +#~ ")." + +#~ msgid "GtkWidget" +#~ msgstr "GtkWidget" + +#~ msgid "<package>-docs.{xml,sgml}" +#~ msgstr "<paquete>-docs.{xml,sgml}" + +#~ msgid "<package>.hierarchy" +#~ msgstr "<paquete>.jerarquía" + +#~ msgid "xml/tree_index.sgml" +#~ msgstr "xml/tree_index.sgml" + +#~ msgid "xml/annotation-glossary.xml" +#~ msgstr "xml/annotation-glossary.xml" + +#~ msgid "Check that is xi:included from ." +#~ msgstr "" +#~ "Compruebe que está «xi:included» desde ." + +#~| msgid "21 May 2010" +#~ msgid "17 Jan 2011" +#~ msgstr "17 de enero 2011" + +#~ msgid "6 April 2010" +#~ msgstr "6 de abril de 2010" + +#~ msgid "19 December 2009" +#~ msgstr "19 de diciembre de 2009" + +#~ msgid "(FIXME) (stability) (glib-enums, ...)" +#~ msgstr "(ARRÉGLAME) (estabilidad) (glib-enums, ...)" diff --git a/help/manual/es/es.stamp b/help/manual/es/es.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/es/es.stamp diff --git a/help/manual/es/fdl-appendix.xml b/help/manual/es/fdl-appendix.xml new file mode 100644 index 0000000..aab509f --- /dev/null +++ b/help/manual/es/fdl-appendix.xml @@ -0,0 +1,235 @@ + + + + + Versión 1.1, marzo de 2000 + + 2000Free Software Foundation, Inc. + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    . Se permite la copia y distribución de copias literales de este documento, pero no se permite su modificación.
    +
    +
    + Licencia de documentación libre de GNU + + + 0. PREÁMBULO + El propósito de esta Licencia es permitir que un manual, libro de texto, u otro documento escrito sea libre en el sentido de libertad: asegurar a todo el mundo la libertad efectiva de copiarlo y redistribuirlo, con o sin modificaciones, de manera comercial o no. En segundo término, esta Licencia proporciona al autor y al editor una manera de obtener reconocimiento por su trabajo, sin que se le considere responsable de las modificaciones realizadas por otros. + + Esta Licencia es de tipo copyleft, lo que significa que los trabajos derivados del documento deben a su vez ser libres en el mismo sentido. Complementa la Licencia Pública General de GNU, que es una licencia tipo copyleft diseñada para el software libre. + + Hemos diseñado esta Licencia para usarla en manuales de software libre, ya que el software libre necesita documentación libre: Un programa libre debe venir con los manuales que ofrezcan la mismas libertades que da el software. Pero esta licencia no se limita a manuales de software; puede ser usada para cualquier trabajo textual, sin tener en cuenta su temática o si se publica como libro impreso. Recomendamos esta licencia principalmente para trabajos cuyo fin sea instructivo o de referencia. + + + 1. APLICABILIDAD Y DEFINICIONES + Esta Licencia se aplica a cualquier manual u otro trabajo que contenga un aviso colocado por el poseedor del copyright diciendo que puede distribuirse bajo los términos de esta Licencia. El Documento, abajo, se refiere a cualquier manual o trabajo. Cualquier miembro del público es un licenciatario, y será referido como usted. + + Una Versión modificada del Documento significa cualquier trabajo que contenga el Documento o una porción del mismo, ya sea una copia literal o con modificaciones y/o traducciones a otro idioma. + + Una Sección secundaria es un apéndice con título o una sección preliminar del Documento que trata exclusivamente de la relación entre los autores o editores y el tema general del Documento que trata exclusivamente con la relación entre los editores o autores del Documento con el asunto general del Documento (o asuntos relacionados) y no contiene nada que pueda considerarse dentro del tema principal. (Por ejemplo, si el Documento es en parte un libro de texto de matemáticas, una Sección Secundaria no explicará nada de matemáticas.) La relación puede ser una conexión histórica con el asunto o temas relacionados, o una opinión legal, comercial, filosófica, ética o política acerca de ellos. + + Las Secciones invariantes son ciertas Secciones secundarias cuyos títulos son designados como Secciones Invariantes en la nota que indica que el Documento se publica bajo esta Licencia. + + Los Textos de cubierta son ciertos pasajes cortos de texto que se listan como Textos de Cubierta Delantera o Textos de Cubierta Trasera en la nota que indica que el Documento se publica bajo esta Licencia. + + Una copia Transparente del Documento, significa una copia para lectura en máquina, representada en un formato cuya especificación está disponible al público en general, cuyo contenido puede ser visto y editados directamente con editores de texto genéricos o (para imágenes compuestas por píxeles) con programas genéricos de manipulación de imágenes o (para dibujos) con algún editor de dibujos ampliamente disponible, y que sea adecuado como entrada para formateadores de texto o para su traducción automática a formatos adecuados para formateadores de texto. Una copia hecha en un formato definido como Transparente, pero cuyo marcaje o ausencia de él haya sido diseñado para impedir o dificultar modificaciones posteriores por parte de los lectores no es Transparente. Una copia que no es Transparente se denomina Opacas + + Como ejemplos de formatos adecuados para copias Transparentes están ASCII puro sin marcaje, formato de entrada de Texinfo, formato de entrada de LaTeX, SGML o XML usando una DTD disponible públicamente, y HTML, PostScript o PDF simples, que sigan los estándares y diseños para que los modifiquen personas.Los formatos Opacos incluyen formatos propietarios que pueden ser leídos y editados únicamente en procesadores de textos propietarios, SGML o XML para los cuáles las DTD y/o herramientas de procesamiento no estén ampliamente disponibles, y HTML, PostScript o PDF generados por algunos procesadores de textos sólo como salida. + + La Portada significa, en un libro impreso, la página de título, más las páginas siguientes que sean necesarias para mantener legiblemente el material que esta Licencia requiere en la portada. Para trabajos en formatos que no tienen página de portada como tal, Portada significa el texto cercano a la aparición más prominente del título del trabajo,precediendo el comienzo del cuerpo del texto. + + + + 2. COPIA LITERAL + Usted puede copiar y distribuir el Documento en cualquier soporte, sea en forma comercial o no, siempre y cuando proporcione esta Licencia, las notas de copyright y la nota que indica que esta Licencia se aplica al Documento reproduciéndola en todas las copias y que usted no añada ninguna otra condición a las expuestas en esta Licencia. Usted no puede usar medidas técnicas para obstruir o controlar la lectura o copia posterior de las copias que usted haga o distribuya. Sin embargo, usted puede aceptar compensación a cambio de las copias. Si distribuye un número suficientemente grande de copias también deberá seguir las condiciones de la sección 3. + + Usted también puede prestar copias, bajo las mismas condiciones establecidas anteriormente, y puede exhibir copias públicamente. + + + + 3. COPIAR EN CANTIDAD + Si publica copias impresas del Documento que sobrepasen las 100, y la nota de licencia del Documento exige Textos de cubierta, debe incluirlas copias con cubiertas que lleven en forma clara y legible todos esos Textos de Cubierta: Textos de Cubierta Delantera en la cubierta delantera y Textos de Cubierta Trasera en la cubierta trasera. Ambas cubiertas deben identificarlo a Usted clara y legiblemente como editor de tales copias. La cubierta debe mostrar el título completo con todas las palabras igualmente prominentes y visibles. Además puede añadir otro material en las cubiertas. Las copias con cambios limitados a las cubiertas, siempre que conserven el título del Documento y satisfagan estas condiciones, pueden considerarse como copias literales en todos los aspectos. + + Si los textos requeridos para la cubierta son muy voluminosos para que ajusten legiblemente, debe colocar los primeros (tantos como sea razonable colocar) en la verdadera cubierta y situar el resto en páginas adyacentes. + + Si Usted publica o distribuye copias Opacas del Documento cuya cantidad exceda las 100, debe incluir una copia Transparente, que pueda ser leída por una máquina, con cada copia Opaca, o bien mostrar, en cada copia Opaca, una dirección de red donde cualquier usuario de la misma tenga acceso por medio de protocolos públicos y estandarizados a una copia Transparente del Documento completa, sin material adicional. Si usted hace uso de la última opción, deberá tomar las medidas necesarias, cuando comience la distribución de las copias Opacas en cantidad, para asegurar que esta copia Transparente permanecerá accesible en el sitio establecido por lo menos un año después de la última vez que distribuya una copia Opaca de esa edición al público (directamente o a través de sus agentes o distribuidores). + + Se solicita, aunque no es requisito, que se ponga en contacto con los autores del Documento antes de redistribuir gran número de copias, para darles la oportunidad de que le proporcionen una versión actualizada del Documento. + + + + 4. MODIFICACIONES + Puede copiar y distribuir una Versión modificada del Documento bajo las condiciones de las secciones 2 y 3 anteriores, siempre que Usted libere la Versión Modificada bajo esta misma Licencia, con la Versión Modificada haciendo el rol del Documento, por lo tanto dando Licencia de distribución y modificación de la Versión Modificada a quienquiera posea una copia de la misma. Además, debe hacer lo siguiente en la Versión Modificada: + + + + + A + Usar en la Portada (y en las cubiertas, si hay alguna) un título distinto al del Documento y de sus versiones anteriores (que deberían, si hay alguna, estar listadas en la sección de Historia del Documento). Puede usar el mismo título de versiones anteriores al original siempre y cuando quien las publicó originalmente otorgue permiso. + + + + + + B + Listar en la Portada, como autores, una o más personas o entidades responsables de la autoría de las modificaciones de la Versión modificada, junto con por lo menos cinco de los autores principales del Documento (todos sus autores principales, si hay menos de cinco), a menos que le eximan de tal requisito. + + + + + + C + Mostrar en la Portada como editor el nombre del editor de la Versión modificada. + + + + + + D + Conservar todas las notas de copyright del Documento. + + + + + + E + Añadir una nota de copyright apropiada a sus modificaciones, adyacente a las otras notas de copyright. + + + + + + F + Incluir, inmediatamente después de los avisos de copyright, una nota de licencia dando el permiso público para usar la Versión modificada. bajo los términos de esta Licencia, de la forma mostrada en el Adenda de más abajo. + + + + + + G + Incluir, inmediatamente después de ese aviso de licencia, la lista completa de Secciones invariantes y de los Textos de cubierta que sean requeridos en el aviso de Licencia del Documento original. + + + + + + H + Incluir una copia sin modificación de esta Licencia. + + + + + + I + Conservar la sección titulada Historia, conservar su Título y añadirle un elemento que declare al menos el título, el año, los nuevos autores y el editor de la Versión modificada, tal como figuran en la Portada. Si no hay una sección titulada Historia en el Documento, crear una estableciendo el título, el año, los autores y el editor del Documento, tal como figuran en su Portada, añadiendo además un elemento describiendo la Versión Modificada, como se estableció en la sentencia anterior. + + + + + + J + Conservar la dirección en red, si la hay, dada en el Documento para el acceso público a una copia Transparente del mismo, así como las otras direcciones de red dadas en el Documento para versiones anteriores en las que estuviese basado. Pueden ubicarse en la sección Historia. Se puede omitir la ubicación en red de un trabajo que haya sido publicado por lo menos cuatro años antes que el Documento mismo, o si el editor original de dicha versión da permiso. + + + + + + K + En cualquier sección titulada Agradecimientos o Dedicatorias, conservar el título de la sección y conservar en ella toda la sustancia y el tono de los agradecimientos y/o dedicatorias incluidas por cada contribuyente. + + + + + + L + Conservar todas las Secciones invariantes del Documento, sin alterar su texto ni sus títulos. Los números de sección o equivalentes no se consideran parte de los títulos de la sección. + + + + + + M + Elimine cualquier sección titulada Aprobaciones. Tales secciones no pueden estar incluidas en las Versión modificada. + + + + + + N + No cambiar el título de ninguna sección existente a Aprobaciones ni a uno que entre en conflicto con el de alguna Sección invariante. + + + + + Si la Versión modificada incluye secciones o apéndices nuevos que cualifiquen como Secciones secundarias y no contienen ningún material copiado del Documento, puede opcionalmente designar algunas o todas esas secciones como invariantes. Para hacerlo, añada sus títulos a la lista de Secciones invariantes en el aviso de licencia de la Versión Modificada. Tales títulos deben ser distintos de cualquier otro título de sección. + + Puede añadir una sección titulada Aprobaciones, siempre que contenga únicamente aprobaciones de su Versión modificada por otras fuentes --por ejemplo, observaciones de compañeros o que el texto ha sido aprobado por una organización como definición oficial de un estándar. + + Puede añadir un pasaje de hasta cinco palabras como Texto de cubierta delantera y un pasaje de hasta 25 palabras como Texto de cubierta trasera al final de la lista de Textos de cubierta en la Versión modificada. Una entidad sólo puede añadir (o hacer que se añada) un pasaje al Texto de Cubierta Delantera y uno al de Cubierta Trasera. Si el Documento ya incluye un textos de cubiertas añadidos previamente por usted o por acuerdo previo con la entidad que usted representa, usted no puede añadir otro; pero puede reemplazar el anterior, con permiso explícito del editor anterior que agregó el texto anterior. + + Con esta Licencia ni los autores ni los editores del Documento dan permiso para usar sus nombres para publicidad ni para asegurar o implicar aprobación de cualquier Versión modificada. + + + + 5. COMBINAR DOCUMENTOS + Usted puede combinar el Documento con otros documentos liberados bajo esta Licencia, bajo los términos definidos en la sección sección 4 más arriba para versiones modificadas, siempre que incluya en la combinación todas las Secciones invariantes de todos los documentos originales, sin modificaciones, y las liste todas como Secciones Invariantes de su trabajo combinado en su aviso de licencia. + + El trabajo combinado necesita contener solamente una copia de esta Licencia, y múltiples Secciones invariantes idénticas pueden reemplazarse por una sola copia. Si hay múltiples Secciones Invariantes con el mismo nombre pero con contenidos diferentes, haga el título de cada una de estas secciones único añadiéndolo al final de este, entre paréntesis, el nombre del autor o de quien editó originalmente esa sección, si es conocido, o si no, un número único. Haga el mismo ajuste a los títulos de sección en la lista de Secciones Invariantes en la nota de licencia del trabajo combinado. + + En la combinación, debe combinar cualquier sección titulada Historia de los distintos documentos originales, formando una sección titulada Historia; de la misma forma, combine cualquier sección titulada Agradecimientos y cualquier sección titulada Dedicatorias. Debe eliminar todas las secciones tituladas Aprobaciones.. + + + + 6. COLECCIONES DE DOCUMENTOS + Puede hacer una colección que conste del Documento y de otros documentos publicados bajo esta Licencia, y reemplazar las copias individuales de esta Licencia en todos los documentos por una sola copia que esté incluida en la colección, siempre que siga las reglas de esta Licencia para cada copia literal de cada uno de los documentos en cualquiera de los demás aspectos. + + Puede extraer un solo documento de una de tales colecciones y distribuirlo individualmente bajo esta Licencia, siempre que inserte una copia de esta Licencia en el documento extraído, y siga esta Licencia en todos los demás aspectos relativos a la copia literal de dicho documento. + + + + 7. AGREGACIÓN CON TRABAJOS INDEPENDIENTES + Una recopilación que conste del Documento o sus derivados y de otros documentos o trabajos separados e independientes, en cualquier soporte de almacenamiento o distribución, no cuenta como un todo como un Versión modificada del Documento, siempre que no se reclame ningún derecho de copyright por la compilación. Dicha compilación se denomina un agregado, y esta Licencia no se aplica a otros trabajos autocontenidos incluidos con el Documento. teniendo en cuenta que son compilados, si no son los mismos trabajos derivados del Documento. Si el requisito de Texto de cubierta de la sección 3 es aplicable a estas copias del Documento, entonces si el Documento es menor que un cuarto del agregado completo, los Textos de Cubierta del Documento pueden colocarse en cubiertas que enmarquen solamente el Documento dentro del agregado. En caso contrario deben aparecer en cubiertas impresas enmarcando todo el agregado. + + + + 8. TRADUCCIÓN + La traducción se considera un tipo de modificación, así que puede distribuir traducciones del Documento bajo los términos de la sección 4. Reemplazar las Secciones invariantes con traducciones requiere permiso especial de los mantenedores de la propietarios del copyright, pero puede incluir traducciones de algunos o todas las Secciones invariantes. Puede incluir una traducción de esta licencia proporcionada que además incluya la versión original de esta Sección invariante en adición de esta licencia. En caso de desacuerdo prevalecerá la versión original en inglés. + + + + 9. TERMINACIÓN + Usted no puede copiar, modificar, sublicenciar o distribuir el Documento salvo por lo permitido expresamente por esta Licencia. Cualquier otro intento de copia, modificación, sublicenciamiento o distribución del Documento es nulo, y dará por terminados automáticamente sus derechos bajo esa Licencia. Sin embargo, los terceros que hayan recibido copias, o derechos, de usted bajo esta Licencia no verán terminadas sus licencias, siempre que permanezcan en total conformidad con ella. + + + + 10. FUTURAS REVISIONES DE ESTA LICENCIA + La Free Software Foundation puede publicar versiones nuevas y revisadas de la Licencia de Documentación Libre GNU de vez en cuando. Dichas versiones nuevas serán similares en espíritu a la presente versión, pero pueden diferir en detalles para solucionar nuevos problemas o preocupaciones. Consulte http://www.gnu.org/copyleft/. + + Cada versión de la licencia tiene un número de versión. Si la Documento especifica que el número particular de versión de esta Licencia o cualquier versión posterior aplicado sobre él, tiene la opción de seguir los términos y condiciones de cualquiera de esas versiones especificadas o de cualquiera de las versiones publicadas (no como borrador) por la Free Software Foundation. Si el Documento no especifica un número de versión de la licencia, puede elegir cualquier versión publicada (no como borrador) por la Free Software Foundation. + + + + Addendum + Para usar esta licencia en un documento que ha escrito, incluya una copia de la Licencia en el documento y ponga el siguiente copyright y las notas justo después del título de la página. + +
    + Copyright 2009-2016 Daniel Mustieles +Copyright 2009-2010 Jorge González González +Copyright 2009-2010 Francisco Javier Fernández Serrador + Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation; con las Secciones invariantes siendo su LISTE SUS TÍTULOS, con Textos de cubierta delantera siendo LISTA, y con los Textos de cubierta trasera siendo LISTA. Una copia de la licencia está incluida en la sección titulada Licencia de documentación libre de GNU. +
    + + Si no tiene Secciones invariantes, escriba sin secciones invariantes en lugar de indicar los que son invariantes. Si no tiene Textos de cubierta delantera, escriba sin textos de cubierta delantera en lugar de Textos de cubierta LISTADOS; lo mismo para Textos de cubierta trasera. + + Si su documento contiene ejemplos de código de programa no triviales, recomendamos liberar estos ejemplos en paralelo bajo la licencia de software libre que usted elija, como la Licencia Pública General GNU, para permitir su uso en software libre. +
    +
    diff --git a/help/manual/es/index.docbook b/help/manual/es/index.docbook new file mode 100644 index 0000000..6ebf18d --- /dev/null +++ b/help/manual/es/index.docbook @@ -0,0 +1,1619 @@ + + + + +included"> +]> + + + + Manual de GTK-Doc + 1.24.1 + Manual del usuario para desarrolladores con instrucciones del uso de GTK-Doc. + + Chris Lyttle
    chris@wilddev.net
    + Dan Mueth
    d-mueth@uchicago.edu
    + Stefan Sauer (Kost)
    ensonic@users.sf.net
    +
    + Proyecto GTK-Doc
    gtk-doc-list@gnome.org
    + 2000, 2005 Dan Mueth and Chris Lyttle + 2007-2015 Stefan Sauer (Kost) + + + + + Se concede autorización para copiar, distribuir o modificar este documento según los términos de la GNU Free Documentation License, Versión 1.1, o cualquier otra versión posterior publicada por Free Software Foundation sin secciones invariables, textos de portada ni textos de contraportada. Se incluye una copia de la licencia. + Muchos de los nombres usados por compañías para distinguir sus productos y servicios se mencionan como marcas comerciales. Donde aparezcan dichos nombres en cualquier documentación GNOME, y para que los miembros del proyecto de documentación las reconozcan dichas marcas comerciales, dichos nombres se imprimen en mayúsculas o iniciales mayúsculas. + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + 1.27 07 de diciembre de 2017 ss ajustes para la migración a python + 1.26 11 de agosto de 2017 ss portar todas las herramientas de perl/bash a python + 1.25 21 de marzo de 2016 ss correcciones de errores, limpieza + 1.24 29 de mayo de 2015 ss correcciones de errores + 1.23 17 de mayo de 2015 ss correcciones de errores + 1.22 7 de mayo de 2015 ss correcciones de errores, eliminadas funcionalidades obsoletas + 1.21 17 de julio de 2014 ss correcciones de errores, eliminadas funcionalidades obsoletas + 1.20 16 de febrero de 2014 ss errores corregidos, soporte de marcado, mejoras en los estilos + 1.19 05 de junio de 2013 ss correcciones de errores + 1.18 14 de septiembre de 2011 ss correcciones de errores, mejoras en la velocidad y soporte de marcado + 1.17 26 de febrero de 2011 sk actualización urgente de corrección de error + 1.16 14 de enero de 2011 sk correcciones de errores y mejoras en la distribución + 1.15 21 de mayo de 2010 sk correcciones de errores y regresiones + 1.14 28 de marzo de 2010 sk correcciones de errores y mejoras en el rendimiento + 1.13 18 de diciembre de 2009 sk actualización del tarball roto + 1.12 18 de diciembre de 2009 sk correcciones de errores y nuevas características + 1.11 16 de noviembre de 2008 mal Migración a GNOME doc-utils + + + + + + Daniel Mustieles + + daniel.mustieles@gmail.com + + + + 2009 - 2017 + + Daniel Mustieles + + + + + Jorge González + + jorgegonz@svn.gnome.org + + + + 2009 - 2011 + + Jorge González + + + + + Francisco Javier F. Serrador + + serrrador@svn.gnome.org + + + + 2009 + + 2010 + + Francisco Javier F. Serrador + +
    + + + + + Introducción + + Este capítulo introduce GTK-Doc y proporciona una visión general de lo que es y cómo usarlo. + + + ¿Qué es GTK-Doc? + + GTK-Doc se usa para documentar código C. Generalmente se usa para documentar la API pública de bibliotecas, tales como las bibliotecas GTK+ y de GNOME. Pero también se puede usar para documentar código de aplicaciones. + + + + ¿Cómo funciona GTK-Doc? + + GTK-Doc funciona usando documentación de las funciones ubicadas dentro de los archivos de fuentes en bloques de comentarios especialmente formateados, o documentación añadida a los archivos de plantillas que GTK-Doc usa (aunque debe notar que GTK-Doc sólo documentará las funciones declaradas en los archivos de cabecera; no produce salida para funciones estáticas). + + GTK-Doc consiste en un número de scripts en python, cada uno realiza un paso diferente en el proceso. + + Existen 5 pasos importantes en el proceso: + + + + + Escribir la documentación. El autor rellena los archivos de fuentes con la documentación para cada función, macro, unión, etc. (En el pasado la información se introducía en archivos de plantillas, lo que ya no se recomienda). + + + + Obtener información acerca del código. gtkdoc-scan analiza los archivos de cabecera del código buscando declaraciones de funciones, macros, enumeraciones, estructuras y uniones. Crea el archivo <module>-decl-list.txt que contiene una lista de las declaraciones, ubicándolas en secciones de acuerdo con el archivo de cabecera en el que están. Durante la primera ejecución este archivo se copia en <module>-sections.txt. El autor puede reordenar las secciones y el orden de las declaraciones en ellas, para producir la salida que quiere. El segundo archivo que genera es <module>-decl.txt. Este archivo contiene las declaraciones completas que encontró el análisis. Si por alguna razón quisiese que algunos símbolos apareciesen en los documentos, donde el análisis no puede encontrar la declaración completa o la declaración debería aparecer de forma diferente, puede introducir entradas de forma similar a las que hay en <module>-decl.txt dentro de <module>-overrides.txt. + gtkdoc-scangobj también se puede usar para consultar dinámicamente una biblioteca sobre cualquiera de las subclases GObject que exporta. Guarda información sobre la posición de cada objeto en la jerarquía de clases y sobre cualquier propiedad de GObject y las señales que proporciona. + gtkdoc-scanobj no se debería usar más. Se necesitó en el pasado, cuando GObject todavía era GtkObject dentro de GTK+. + + + + Generar el XML y el HTML/PDF.gtkdoc-mkdb convierte los archivos de plantilla en archivos SGML o XML en la subcarpeta xml/. Si el código fuente contiene documentación de funciones, usando los bloques especiales de comentarios, entonces se mezclarán aquí. Si no se usan archivos tmpl sólo obtiene los documentos de los fuentes y los datos obtenidos en introspección. + gtkdoc-mkhtml convierte los archivos XML en archivos HTML en la subcarpeta html/. De la misma forma gtkdoc-mkpdf convierte los archivos XML en un documento PDF llamado <paquete>.pdf. + Los archivos en las carpetas xml/ y html/ y siempre se sobrescriben. Nunca se deben editar directamente. + + + + Arreglar referencias cruzadas entre documentos. Después de instalar los archivos HTML se puede ejecutar gtkdoc-fixxref para arreglar cualquier referencia cruzada entre documentos separados. Por ejemplo, la documentación GTK+ contiene muchas referencias cruzadas a tipos documentados en el manual de GLib. Al crear los archivadores «tarball» para su distribución, gtkdoc-rebase convierte todos los enlaces externos en enlaces web. Al instalar la documentación distribuida (pregenerada) la misma aplicación intentará convertir de nuevo los enlaces, esta vez a enlaces locales (donde esa documentación está instalada). + + + + + + + Obtener GTK-Doc + + + Requerimientos + python 2/3 - los scripts principales están escritos en python. + xsltproc: el procesador xslt de libxslt xmlsoft.org/XSLT/ + docbook-xsl: las hojas de estilo XLS de docbook sourceforge.net/projects/docbook/files/docbook-xsl + Una de source-highlight, highlight o vim: opcional, usada para el resaltado de sintaxis de los ejemplos. + + + + + Acerca de GTK-Doc + + (ARRÉGLAME) + + (Historia, autores, páginas web, listas de correo, licencias, planes futuros, comparación con otros sistemas similares.) + + + + + Acerca de este manual + + (ARRÉGLAME) + + (a quién está dirigido, dónde puede obtenerse, licencia) + + + + + + + Configurando su proyecto + + Las siguientes secciones describen los pasos que realizar para integrar GTK-Doc en su proyecto. Estas secciones asumen que se trabaja en un proyecto llamado «meep». Este proyecto contiene una biblioteca llamada «libmeep» y una aplicación final de usuario llamada «meeper». También se asume que usará «autoconf» y «automake». En la sección Integración con makefiles u otros sistemas de construcción se describen las necesidades básicas para trabajar con un sistema de construcción diferente. + + + Configurar el esquema de la documentación + + Bajo su carpeta de nivel superior cree carpetas llamadas docs/reference (de esta forma también puede tener docs/help para la documentación final de usuario). Se recomienda crear otra subcarpeta con el nombre doc-package. Para paquetes con una sola biblioteca este paso no es necesario. + + Esto después aparecerá como se muestra debajo: Ejemplo de estructura de carpetas + +meep/ + docs/ + reference/ + libmeep/ + meeper/ + src/ + libmeep/ + meeper/ + + + + + + Integración con autoconf + + Muy fácil, simplemente añada una línea a su script configure.ac. + + + Integración con autoconf + +# check for gtk-doc +GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) + + + + + Esto requerirá que todos los desarrolladores tengan gtk-doc instalado. Si para su proyecto es correcto tener una configuración de construcción de api-doc opcional, puede resolver esto como sigue. Manténgalo como está, ya que gtkdocize busca en GTK_DOC_CHECK al inicio de la línea. Mantener gtk-doc como opcional + +# check for gtk-doc +m4_ifdef([GTK_DOC_CHECK], [ +GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) +],[ +AM_CONDITIONAL([ENABLE_GTK_DOC], false) +]) + + + + El primer argumento se usa para comprobar gtkdocversion durante la configuración. El segundo, y opcional, argumento lo usa gtkdocize. La macro GTK_DOC_CHECK también añade diversas opciones de configuración: + + --with-html-dir=RUTA: ruta a los documentos instalados + --enable-gtk-doc: usar gtk-doc para construir la documentación [predeterminado=no] + --enable-gtk-doc: usar gtk-doc para construir la documentación [predeterminado=sí] + --enable-gtk-doc: usar gtk-doc para construir la documentación [predeterminado=no] + + + + GTK-Doc está desactivado de forma predeterminada. Recuerde pasar la opción en la siguiente ejecución de configure. De otra forma, la documentación pregenerada se instala (lo que tiene sentido para usuarios, pero no para desarrolladores). + + + Aún más, se recomienda que tenga la siguiente línea en su script configure.ac. Esto permite que gtkdocize copie automáticamente la definición de la macro para GTK_DOC_CHECK a su proyecto. + + + Preparación para gtkdocize + +AC_CONFIG_MACRO_DIR(m4) + + + + Después de hacer los cambios en el configure.ac actualice el archivo configure. Esto se puede hacer volviendo a ejecutar autoreconf -i o autogen.sh. + + + + Integración con automake + + Primero copie el archivo Makefile.am de la subcarpeta examples de gtkdoc-sources a la carpeta de documentación de la API de su proyecto (./docs/reference/<package>). Debería haber una copia local disponible en /usr/share/doc/gtk-doc-tools/examples/Makefile.am. Si tiene varios paquetes de documentación, repítalo para cada uno de ellos. + + El siguiente paso es editar la configuración dentro de Makefile.am. Todos los ajustes tienen un comentario encima que describe su propósito. Muchos ajustes son opciones adicionales pasadas a las respectivas herramientas. Cada herramienta tiene una variable de la forma . Todas las herramientas soportan para listar los parámetros que soportan. + + + + + + + Integración con autogen + + La mayoría de los proyectos tienen un script autogen.sh para configurar la infraestructura de construcción después de hacer un «checkout» desde los sistemas de control de versiones (tales como cvs/svn/git). GTK-Doc tiene una herramienta llamada gtkdocize que se puede usar en tal script. Se debería ejecutar antes que autoheader, automake o autoconf. + + + Ejecutar gtkdocize desde autogen.sh + +gtkdocize || exit 1 + + + + + Al ejecutar gtkdocize copia gtk-doc.make a la raíz de su proyecto (o cualquier carpeta especificada por la opción ). También comprueba su script de configuración para la invocación de GTK_DOC_CHECK. Esta macro se puede usar para pasar parámetros adicionales a gtkdocize. + + Históricamente GTK-Doc generaba plantillas de archivos donde los desarrolladores introducían los documentos. Al final esto resulto no ser muy bueno (por ejemplo, por la necesidad de tener archivos generados bajo un control de versiones). Desde la versión de DTK-Doc 1.9 las herramientas pueden obtener toda la información desde los comentarios del código fuente y por ello se pueden evitar las plantillas. Se anima a los desarrolladores a mantener su documentación en el código. gtkdocize ahora soporta una opción que elije un makefile que omite completamente el uso de plantillas. Además de añadir la opción directamente a la línea de comandos al invocarlo, se pueden añadir a una variable de entorno llamada GTKDOCIZE_FLAGS o configurar como un segundo parámetro en la macro GTK_DOC_CHECK en el script de configuración. Si nunca ha cambiado un archivo tmpl (plantilla) a mano, elimine la carpeta una vez (ej. desde el sistema de control de versiones). + + + + Ejecutar la construcción de la documentación + + Después de los pasos anteriores es hora de ejecutar el constructor. Primero se debe volver a ejecutar autogen.sh. Si este script ejecuta configure automáticamente, entonces debe pasar la opción . De otra forma, ejecute posteriormente configure con esta opción. + El primer make genera diversas líneas adicionales en las carpetas de documentación. Las importantes son: <paquete>.types, <paquete>-docs.xml (.sgml en el pasado), <paquete>-sections.txt. + + Ejecutar la construcción de la documentación + +./autogen.sh --enable-gtk-doc +make + + + + Ahora puede apuntar su navegador a docs/reference/<paquete>/index.html. Sí, aún es un poco decepcionante. Pero espere, durante el siguiente capítulo aprenderá a rellenar las páginas con información. + + + + Integración con los sistemas de control de versiones + + Como regla principal, son los archivos que edita los que deberían estar bajo el control de versiones. Para proyectos típicos son los archivos: <paquete>.types, <paquete>-docs.xml (anteriormente .sgml), <paquete>-sections.txt, Makefile.am. + Los archivos de las carpetas xml/ y html/ No deberían estar bajo control de versiones. Tampoco ninguno de los archivos .stamp. + + + + Integración con makefiles u otros sistemas de construcción + + En el caso de que no quiera usar automake y por ello gtk-doc.mak deberá llamar a las herramientas gtkdoc en el orden correcto en makefiles propios (o en otras herramientas de construcción). + + + Pasos de construcción de la documentación + +DOC_MODULE=meep +// sources have changed +gtkdoc-scan --module=$(DOC_MODULE) <source-dir> +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<source-dir> +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html + + + + + Deberá mirar en el archivo Makefile.am y gtk-doc.mak para elegir las opciones adicionales necesarias. + + + + Integración con sistemas de construcción CMake + + Ahroa, GTK-Doc proporciona un módulo GtkDocConfig.cmake (y el correspondiente módulo GtkDocConfigVersion.cmake). Esto proporciona un comando gtk_doc_add_module que puede configurar en su archivo CMakeLists.txt. + + El siguiente ejemplo muestra cómo usar este comando. Ejeplo de uso de GTK-Doc desde CMake + +find_package(GtkDoc 1.25 REQUIRED) + +# Create the doc-libmeep target. +gtk_doc_add_module( + libmeep ${CMAKE_SOURCE_DIR}/libmeep + XML meep-docs.xml + LIBRARIES libmeep +) + +# Build doc-libmeep as part of the default target. Without this, you would +# have to explicitly run something like `make doc-libmeep` to build the docs. +add_custom_target(documentation ALL DEPENDS doc-libmeep) + +# Install the docs. (This assumes you're using the GNUInstallDirs CMake module +# to set the CMAKE_INSTALL_DOCDIR variable correctly). +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html + DESTINATION ${CMAKE_INSTALL_DOCDIR}) + + + + + + + Documentar el código + + GTK-Doc usa código fuente comentado con una sintaxis especial para documentar el código. Además obtiene información acerca de la estructura de su proyecto de otras fuentes. En la siguiente sección encontrará información acerca de la sintaxis de los comentarios. + + + Ubicación de la documentación + En el pasado la mayoría de la documentación se debía rellenar en campos dentro de la carpeta tmpl. Esto tiene las desventajas de que la información. Esto tiene las desventajas de que la información no se actualiza muy a menudo y que el archivo tiene tendencia a causar conflictos con los sistemas de control de versiones. + Para evitar los problemas anteriormente mencionados, se sugiere dejar la documentación dentro de los fuentes. Este manual sólo describe esta forma de documentar el código. + + + El analizador puede manejar bien la mayoría de cabeceras de C. En el caso de recibir avisos del analizador que parecen casos especiales, puede sugerir a GTK-Doc que los omita. Bloque de comentario de GTK-Doc + +#ifndef __GTK_DOC_IGNORE__ +/* unparseable code here */ +#endif + + + + + Limitaciones + Tenga en cuenta que GTK-Doc soporta #ifndef(__GTK_DOC_IGNORE__) pero #if !defined(__GTK_DOC_IGNORE__) u otras combinaciones. + + + + + + Comentarios de la documentación + + Un comentario de varias líneas que comienza con un «*» adicional marca un bloque de documentación que GTK-Doc tools procesarán. Bloque de comentario de GTK-Doc + +/** + * identifier: + * documentation ... + */ + + + + El «identificador» es una línea con el nombre del elemento relacionado con el comentario. La sintaxis difiere un poco dependiendo del elemento. (Por hacer: añadir una tabla mostrando los identificadores) + + El bloque de «Documentación» también es diferente para cada tipo de símbolo. Los tipos de símbolos que obtienen parámetros tales como funciones o macros, tienen primero las descripciones seguidas por una línea blanca (exactamente un «*»). Después siguen las descripciones detalladas. Todas las líneas (fuera de los programas; listados y CDATA de la secciones) que solo contengan un « *» (asterisco con espacio) se convierten en párrafos. Si no quiere un espaciado de párrafo, cámbielo a un « * » (espacio-asterisco-espacio). Esto es útil para texto preformateado (listados de código). + + + Al documentar código, describa dos aspectos: + + Qué es: el nombre de la clase o la función puede confundir a veces a personas que provengan de otros entornos. + + + Qué hace: indique los usos comunes, en relación con las otras API. + + + + + Una ventaja del hipertexto sobre el texto plano es la capacidad de tener enlaces en el documento. Escribir las marcas adecuadas para un enlace puede ser tedioso aunque GTK-Doc le ayuda proporcionando abreviaturas útiles. + + Use función() para referirse a funciones o macros que toman argumentos. + + + Use @parámetro para referirse a parámetros. Úselo también al referirse a parámetros de otras funciones, relacionados al que se describe. + + + Use %constant para referirse a una constante, ej: %G_TRAVERSE_LEAFS. + + + Use #símbolo para referirse a otro tipo de símbolos, como por ejemplo estructuras, enumeraciones y macros que no toman argumentos. + + + Use #Object::signal para referirse a una señal de GObject. + + + Use #Object:property para referirse a una propiedad de GObject. + + + Use #Struct.field para referirse a un campo dentro de una estructura y #GObjectClass.foo_bar() para referirse a un vmethod. + + + + + Si necesita usar los caracteres especiales «<», «>», «()», «@», «%», o «#» en su documentación sin que GTK-Doc los cambie, puede usar las entidades XML «&lt;», «&gt;», «amp;lpar;», «amp;rpar;», «amp;commat;» «&percnt;» y «&num;» respectivamente o escaparlas con una contrabarra doble «\». + + + DocBook puede crear algo más que enlaces. También se pueden tener listas, ejemplos, cabeceras e imágenes. En la versión 1.20, la manera prefefira de hacer esto es usando un subconjunto de la sintaxis básica de formateado de texto llamada Marcado. En versiones anteriores de GTK-Doc, cualquier documentación que incluya marcado se renderizará como tal. Por ejemplo, los elementos de una lista aparecerán como líneas que empiezan con un guión. + + Aunque el marcado es el preferido, puede mezclar ambos. Una limitación aquí es que se puede usar docbook xml con marcado, pero el marcado con docbook xml no está soportado. + + En versiones anteriores de GTK-Doc, si necesitaba soporte para formato adicional, necesitaba activar el uso de etiquetas XML dentro de comentarios en la documentación poniendo o en la variable MKDB_OPTIONS dentro de Makefile.am. + + + Bloque de comentario de GTK-Doc usando marcado + +/** + * identifier: + * + * documentation paragraph ... + * + * # Sub Heading # + * + * ## Second Sub Heading + * + * # Sub Heading With a Link Anchor # {#heading-two} + * + * more documentation: + * + * - list item 1 + * + * Paragraph inside a list item. + * + * - list item 2 + * + * 1. numbered list item + * + * 2. another numbered list item + * + * Another paragraph. [A Link to the GNOME Website](http://www.gnome.org/) + * + * ![an inline image](plot-result.png) + * + * [A link to the heading anchor above][heading-two] + * + * A C-language example: + * |[<!-- language="C" --> + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ + + + + + Se pueden encontrar más ejemplos de las etiquetas de marcado soportadas en el Manual de referencia de sintaxis de marcado de documentación de GTK+. + + + Tal y como se ha mencionado antes, la documentación anterior de GTK-Doc es para documentar la API pública .Por ello, no se puede escribir documentación para los símbolos estáticos. No obstante es una buena práctica comentar los símbolos. Esto ayuda a que otros entiendan su código. Por ello se recomienda comentarlos usando comentarios normales (sin el segundo «*» en la primera línea). Si la función, posteriormente, se debe hacer pública, todo lo que el programador debe hacer es añadir otro «*» en el bloque de comentario e introducir el nombre del símbolo en la parte derecha dentro del archivo de secciones. + + + + + Documentar secciones + + Cada sección del documento contiene información acerca de una clase o un módulo. Para introducir el componente puede escribir un bloque de sección. La descripción corta además se usa dentro de la tabla de contenidos. Todos los campos @ son opcionales. + + + Bloque de comentarios en una sección + +/** + * SECTION:meepapp + * @short_description: the application class + * @title: Meep application + * @section_id: + * @see_also: #MeepSettings + * @stability: Stable + * @include: meep/app.h + * @image: application.png + * + * The application class handles ... + */ + + + + + + + SECCIÓN <nombre> + + El nombre enlaza la sección de la documentación con la parte respectiva en el archivo <paquete>-sections.txt. El nombre aquí proporcionado debería coincidir con la etiqueta <ARCHIVO> en el archivo <paquete>-sections.txt. + + + + @short_description + + Una línea descrita en la sección, que después aparece tras los enlaces en el TOC y en la página de la sección. + + + + @title + + De forma predeterminada el título de la sección es <name> de la declaración SECTION. Se puede sobrescribir con el campo @title. + + + + @section_id + + Sobrescribe el uso del título como el identificador de sección. <title> se usa en GObjects como el identificador de sección (section_id) y para otra sección es <MÓDULO>-<title>. + + + + @see_also + + Una lista de símbolos relacionados con esta sección. + + + + @stability + + Esta API tiene una descripción informal del nivel de estabilidad. Se recomienda el uso de uno de estos términos: + + Estable: La intención de una interfaz estable es la de permitir que terceras partes arbitrarias desarrollen aplicaciones para esas interfaces, las liberen, y confíen que que se podrán ejecutar en todas las publicaciones menores del producto (después de que se introdujese la interfaz en una de ellas, y dentro de la misma versión principal de la publicación). Incluso en publicaciones importantes no se espera que existan cambios incompatibles, y de haberlos habrá buenas razones para ello. + + + Inestable: Las interfaces inestables son experimentales o de transición. Generalmente se usan para dar a los desarrolladores externos acceso a tecnología nueva o cambiante, o para proporcionar una solución a un problema, anticipándose a una solución más general. No se realizan reclamaciones acerca de la compatibilidad del código o del binario desde una publicación menor a la siguiente. + + + Privada: Una interfaz que se puede usar en la pila de GNOME en si misma, pero que no está documentada para usuarios finales. Tales funciones sólo se deberían usar de formas especificadas y documentadas. + + + Interna: Una interfaz que es interna a un módulo y no requiere documentación para el usuario final. Se asume que las funciones que están sin documentar son internas. + + + + + + @include + + Los archivos #include para mostrar en la sección del resumen (una lista separada por comas), sobrescribiendo el valor global del archivo de secciones o de la línea de comandos. Este elemento es opcional. + + + + @image + + La imagen para mostrar en la parte superior de la página de referencia, para esta sección. Generalmente será un tipo de diagrama para ilustrar la apariencia visual de una clase o diagrama de su relación con otras clases. Este elemento es opcional. + + + + + + Para evitar recompilaciones innecesarias después de cambios en la documentación ponga los documentos de sección en el código fuente C cuando sea posible. + + + + + + Documentar símbolos + + Cada símbolo (función, macro, estructura, enum, señal y propiedad) está documentado en un bloque separado. La mejor posición para el bloque es junto a la definición del símbolo de tal forma que sea fácil mantenerlos sincronizados. Por ello las funciones generalmente se documentan en el código C y las macros, estructuras y enum en el archivo de cabecera. + + Etiquetas generales + + Puede añadir información de versiones a todos los elementos de la documentación para mostrar cuándo se introdujo una API o cuándo se declaró obsoleta. + + Versionado de etiquetas + Desde: + + Descripción desde qué versión del código está disponible la API. + + + Obsoleto: + + Párrafo que denota que esta función no se debería usar más. La descripción debería informar al lector de la nueva API. + + + + + También puede añadir información de estabilidad a todos los elementos de la documentación para indicar si la se garantiza la estabilidad de la API en todas las versiones menores futuras del proyecto. + + El nivel de estabilidad predeterminado para todos los elementos de la documentación se puede establecer pasando el argumento a gtkdoc-mkdb con uno de los siguientes valores. + + Etiquetas de estabilidad + Estabilidad: estable + + Marcar el elemento como estable. Esto es para API públicas que está garantizado que serán estables para todas las versiones menores futuras del proyecto. + + + Estabilidad: inestable + + Marcar el elemento como inestable. Esto es para las API públicas que se publican como versión previa antes de estabilizarse. + + + Estabilidad: privado + + Marcar el elemento como privado. Esto es para interfaces que se pueden usar en módulos fuertemente acoplados, pero no en terceras partes aleatorias. + + + + + Etiquetas generales + +/** + * foo_get_bar: + * @foo: some foo + * + * Retrieves @foo's bar. + * + * Returns: @foo's bar + * + * Since: 2.6 + * Deprecated: 2.12: Use foo_baz_get_bar() instead. + */ +Bar * +foo_get_bar(Foo *foo) +{ +... + + + + + Anotaciones + + Los bloques de documentación pueden contener etiquetas de anotaciones. Estas etiquetas se renderizarán con consejos que describan su significado. Las etiquetas se usan en la introspección de GObject para generar vinculaciones del lenguaje. Puede obtener una lista detallada de las etiquetas soportadas en el wiki. + + Anotaciones + +/** + * foo_get_bar: (annotation) + * @foo: (annotation): some foo + * + * Retrieves @foo's bar. + * + * Returns: (annotation): @foo's bar + */ +... +/** + * foo_set_bar_using_the_frobnicator: (annotation) (another annotation) + * (and another annotation) + * @foo: (annotation) (another annotation): some foo + * + * Sets bar on @foo. + */ + + + + + Bloque de comentario de función + + Recuerde: + + El documento, dependiendo de si devuelve objetos, listas, cadenas, etc. debería liberarse/desreferenciarse/etc. + + + El documento, dependiendo de si sus parámetros pueden ser nulos, y qué sucede si lo son. + + + Mencionar precondiciones y postcondiciones interesantes donde sea apropiado. + + + + GTK-Doc asume que todos los símbolos (macros, funciones) que empiezan por «_» son privados. Se tratan como funciones estáticas. + + Bloque de comentario de función + +/** + * function_name: + * @par1: description of parameter 1. These can extend over more than + * one line. + * @par2: description of parameter 2 + * @...: a %NULL-terminated list of bars + * + * The function description goes here. You can use @par1 to refer to parameters + * so that they are highlighted in the output. You can also use %constant + * for constants, function_name2() for functions and #GtkWidget for links to + * other declarations (which may be documented elsewhere). + * + * Returns: an integer. + * + * Since: 2.2 + * Deprecated: 2.18: Use other_function() instead. + */ + + + + Etiquetas de funciones + Devuelve: + + Párrafo que describe el resultado devuelto. + + + @...: + + En el caso de que la función tenga argumentos variados debe usar esta etiqueta (@Vargargs: también funciona por razones históricas). + + + + + + + Bloque de comentario de propiedad + + Bloque de comentario de propiedad + +/** + * SomeWidget:some-property: + * + * Here you can document a property. + */ +g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...); + + + + + + Bloque de comentario de señal + + Recuerde: + + Documentar cuando la señal se emite e indica si se emite antes o después de otras señales. + + + Documentar qué aplicación debe gestionar las señales. + + + + Bloque de comentario de señal + +/** + * FooWidget::foobarized: + * @widget: the widget that received the signal + * @foo: some foo + * @bar: some bar + * + * The ::foobarized signal is emitted each time someone tries to foobarize @widget. + */ +foo_signals[FOOBARIZED] = + g_signal_new ("foobarized", + ... + + + + + + Bloque de comentario de estructura + Bloque de comentario de estructura + +/** + * FooWidget: + * @bar: some #gboolean + * + * This is the best widget, ever. + */ +typedef struct _FooWidget { + GtkWidget parent_instance; + + gboolean bar; +} FooWidget; + + + + Use /*< private >*/ antes de campos de estructuras privadas que quiera ocultar. Use /*< public >*/ para revertir el comportamiento anterior. + + Si el primer campo es «g_iface», «parent_instance» o «parent_class» se considerará como privado automáticamente y no necesita mencionarse en el bloque de comentario. + + También se pueden usar bloques de comentario para GObjects y GObjectClasses. Generalmente es buena idea añadir un bloque de comentario para una clase, si tiene «vmethods» (ya que así se pueden documentar). Para el GObject en si, se puede usar la sección relativa a la documentación, tener un bloque separado para la estructura de la instancia sería útil si la instancia tiene campos públicos. Una desventaja aquí es que esto crea dos entradas de índice con el mismo nombre (la estructura y la sección). + + + + Enumerar bloques de comentarios + Enumerar bloques de comentarios + +/** + * Something: + * @SOMETHING_FOO: something foo + * @SOMETHING_BAR: something bar + * + * Enum values used for the thing, to specify the thing. + */ +typedef enum { + SOMETHING_FOO, + SOMETHING_BAR, + /*< private >*/ + SOMETHING_COUNT +} Something; + + + + Use /*< private >*/ antes de enumerar valores privados que quiera ocultar. Use /*< public >*/ para revertir el comportamiento anterior. + + + + + + + Documentación en línea del programa + Puede documentar programas y su interfaz de línea de comandos usando la documentación en línea. + + + Etiquetas + + PROGRAM + + + Define el inicio de la documentación de un programa. + + + + + @short_description: + + Define una descripción corta del programa. (Opcional) + + + + + @synopsis: + + Define el argumento o la lista de argumentos que el programa puede usar. (Opcional) + + + + + @see_also: + + Página del manual Ver también. (Opcional) + + + + + @arg: + + Argumentos pasados al programa y su descripción. (Opcional) + + + + + Description: + + Una descripción más larga del programa. + + + + + Devuelve: + + Especifique qué valores devuelve el programa. (Opcional) + + + + + + + Ejemplo de documentación de un programa. + Bloque de documentación del programa + +/** + * PROGRAM:test-program + * @short_description: A test program + * @synopsis: test-program [*OPTIONS*...] --arg1 *arg* *FILE* + * @see_also: test(1) + * @--arg1 *arg*: set arg1 to *arg* + * @--arg2 *arg*: set arg2 to *arg* + * @-v, --version: Print the version number + * @-h, --help: Print the help message + * + * Long description of program. + * + * Returns: Zero on success, non-zero on failure + */ +int main(int argc, char *argv[]) +{ + return 0; +} + + + + + + + + Etiquetas DocBook útiles + + Aquí están varias etiquetas de DocBook muy útiles al documentar código. + + Para enlazar otra sección en GTK docs: + +<link linkend="glib-Hash-Tables">Hash Tables</link> + + . El enlace es el id SGML en el elemento superior de la página a la que quiere enlazar. Para la mayoría de las páginas esta es la parte («gtk», «gdk», «glib») y después el título de página («Tablas hash»). Para los widgets es simplemente el nombre de la clase. Los espacios y guiones bajos se convierten a «-» para ajustarse a SGML/XML. + + Para referirse a una función externa, ej. una función de C estándar: + +<function>...</function> + + + + Para incluir un código de ejemplo: + +<example> + <title>Using a GHashTable.</title> + <programlisting> + ... + </programlisting> +</example> + + o posiblemente este, para fragmentos de código muy cortos que no necesitan título: + +<informalexample> + <programlisting> + ... + </programlisting> +</informalexample> + + . El último GTK-Doc también soporta abreviación: |[ ... ]| + + Para incluir listas de topos: + +<itemizedlist> + <listitem> + <para> + ... + </para> + </listitem> + <listitem> + <para> + ... + </para> + </listitem> +</itemizedlist> + + + + Para incluir una nota que sobresale del texto: + +<note> + <para> + Make sure you free the data after use. + </para> +</note> + + + + Para referirse a un tipo: + +<type>unsigned char</type> + + + + Para referirse a una estructura externa (no una descrita en la documentación de GTK): + +<structname>XFontStruct</structname> + + + + Para referirse a un campo o a una estructura: + +<structfield>len</structfield> + + + + Para referirse a un nombre de clase, se podría usar: + +<classname>GtkWidget</classname> + + pero probablemente estará usando #GtkWidget en su lugar (para crear automáticamente un enlace a la página GtkWidget; consulte abreviaciones). + + Para enfatizar un texto: + +<emphasis>This is important</emphasis> + + + + Para uso de nombres de archivo: + +<filename>/home/user/documents</filename> + + + + Para referirse a claves: + +<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo> + + + + + + + + Rellenar campos adicionales + + Existen tres archivos adicionales que deben mantenerse junto con los comentarios en línea del código fuente: <paquete>.types, <paquete>-docs.xml (.sgml en el pasado) y <paquete>-sections.txt. + + + Editar los tipos de archivo + + Si su biblioteca o aplicación incluye GObjects puede querer que sus señales, argumentos y/o parámetros y posición en la jerarquía se muestre en la documentación. Todo lo que debe hacer es listar las funciones xxx_get_type junto con sus «include» en el archivo <paquete>.types. + + + Fragmento de ejemplo de tipos de archivo + +#include <gtk/gtk.h> + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type + + + + + Desde GTK-Doc 1.8 gtkdoc-scan puede genera esta lista. Simplemente añada «--rebuild-types» a SCAN_OPTIONS en el Makefile.am. Si usa esto no debería ejecutar dist sobre los tipos de archivo ni tenerlos bajo el control de versiones. + + + + + Editar la sección maestra del documento + + GTK-Doc produce documentación en DocBook SGML/XML. Cuando se procesan los comentarios en las líneas del código, las herramientas de GTK-Doc generan una página de documentación por clase o módulo en un archivo aparte. El documento maestro las incluye y ordena. + + Puesto que GTK-Doc crea una documento maestro de plantilla, una posterior ejecución no lo modificará de nuevo. Esto significa que se puede estructurar libremente la documentación. Esto incluye agrupar páginas y añadir páginas adicionales. Ahora GTK-Doc tiene un entorno de pruebas, donde también el documento maestro se vuelve a crear desde cero. Es una buena idea mirarlo de vez en cuando para ver si se han introducido algunas mejoras. + + + No crear tutoriales como documentos adicionales. Solamente escriba capítulos adicionales. La ventaja de integrar directamente el tutorial para su biblioteca en la documentación de la API es que es fácil para el tutorial enlazar la documentación de símbolos. Además las posibilidades de actualizar el tutorial junto con la biblioteca son mayores. + + + ¿Así que qué es lo que hay que cambiar en el documento maestro? Para empezar es muy poco. Existen algunos «placeholders» (texto entre corchetes) de los que habría que encargarse. + + + Cabecera del documento maestro + +<bookinfo> + <title>MODULENAME Reference Manual</title> + <releaseinfo> + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + <ulink role="online-location" url="http://[SERVER]/MODULENAME/index.html">http://[SERVER]/MODULENAME/</ulink>. + </releaseinfo> +</bookinfo> + +<chapter> + <title>[Insert title here]</title> + + + + + Se crean además unos pocos elementos de opciones de la manera comentada. Puede revisarlos y activarlos como quiera. + + + Parte opcional en el documento maestro + + <!-- active esto cuando use anotaciones de introspección de gobject + <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> + --> + + + + + Por último, necesita añadir una sección nueva siempre que quiera introducir una. La herramienta gtkdoc-check le recordará los nuevos archivos xml generados que no estén inclídos todavía en la documentación. + + + Incluir secciones generadas + + <chapter> + <title>mi biblioteca</title> + <xi:include href="xml/object.xml"/> + ... + + + + + + + + Editar el archivo de sección + + El archivo de sección se usa para organizar la salida de la documentación por GTK-Doc. Aquí se especifica qué símbolos pertenecen a qué módulo o clase y el control de la visibilidad (pública o privada). + + El archivo de sección es un archivo de texto plano con etiquetas que delimitan las secciones. Se ignoran las líneas vacías y las líneas que comiencen con «#» se tratan como comentarios. + + + Aunque las etiquetas hacen que el archivo parezca XML, no lo es. No incluya etiquetas del tipo <SUBSECTION>. + + + + Incluir secciones generadas + +<INCLUDE>libmeep/meep.h</INCLUDE> + +<SECTION> +<FILE>meepapp</FILE> +<TITLE>MeepApp</TITLE> +MeepApp +<SUBSECTION Standard> +MEEP_APP +... +MeepAppClass +meep_app_get_type +</SECTION> + + + + + La etiqueta <FILE> ... </FILE> se usa para especificar el nombre del archivo, sin sufijo. Por ejemplo, usar «<FILE>gnome-config</FILE>» dará como resultado en la sección de declaraciones la salida tmpl/gnome-config.sgml en el archivo de plantilla, que se convertirá al archivo DocBook XML sgml/gnome-config.sgml o al archivo DocBook XML xml/gnome-config.xml. (El nombre del archivo HTML está basado en el nombre del módulo y en el título de la sección, o para GObjects está basado en el nombre de clase de GObject convertido a minúscula.) + + La etiqueta <TITLE> ... </TITLE> se usa para especificar el título de una sección. Sólo es útil antes de que las plantillas (si se usan) se creen inicialmente, ya que el título configurado en la plantilla lo sobrescribe. Además, si una usa comentarios SECTION en los fuentes, se queda obsoleto. + + Puede agrupar elementos en la sección usando la etiqueta <SUBSECTION>. Actualmente esto genera una línea en blanco entre subsecciones en la sección de resumen. También puede usar <SUBSECTION Standard> para declaraciones estándar de GObject (ej. funciones como g_object_get_type and macros como G_OBJECT(), G_IS_OBJECT() etc.). Actualmente éstas se han dejado fuera de la documentación. También puede usar <SUBSECTION Private> para declaraciones privadas que no producirán ninguna salida (s una manera práctica de evitar mensajes de advertencia sobre declaraciones sin usar). Si sus bibliotecas contienen tipos privados que no quiere que aparezcan en la jerarquía de objetos o en la lista de interfaces implementados o necesarios, añádalos a una subsección Privada. Si ubica GObject y GObjectClass como estructuras en la sección pública o estándar, depende de si tienen entradas públicas (variables, vmethods). + + También puede usar <INCLUDE> ... </INCLUDE> para especificar qué archivos #include se muestran en la sección de resumen. Contiene una lista de archivos #include separados por comas, sin las almohadillas. Si lo configura fuera de cualquier sección, actúa para todas las secciones hasta el final del archivo. Si lo configura dentro de una sección, sólo se aplica a esa sección. + + + + + + + Controlar el resultado + + Una ejecución de GTK-Doc genera archivos de informe dentro de la carpeta de la documentación. Los archivos generados se llaman <paquete>-undocumented.txt, <paquete>-undeclared.txt y <paquete>-unused.txt.Todos son archivos de texto plano y se pueden ver y posprocesar fácilmente. + + El archivo <paquete>-undocumented.txt comienza con el resumen de cobertura de la documentación. Debajo hay dos secciones divididas por líneas vacías. La primera sección lista los símbolos incompletos o indocumentados. La segunda sección hace lo mismo para los documentos de sección. Las entradas incompletas son aquellas que tienen documentación pero dónde; p.e. se ha añadido un parámetro nuevo. + + El archivo <paquete>-undeclared.txt lista símbolos proporcionados en el archivo <paquete>-sections.txt, pero no encontrados en los fuentes. Compruebe si se han eliminado o no se han escrito correctamente. + + El archivo <paquete>-unused.txt lista nombres de símbolos, donde el analizador de GTK-Doc ha encontrado documentación, pero no sabe dónde ponerla. Esto significa que el símbolo no se ha añadido todavía al archivo <paquete>-sections.txt. + + + Activar o añadir la línea en Makefile.am. Si como mínimo está instalado GTK-Doc 1.9, esto ejecutará comprobaciones de integridad durante la ejecución de make check. + + + También puede mirar los archivos producidos por el analizador del código fuente: <paquete>-decl-list.txt y <paquete>-decl.txt. El primero se puede comparar con el archivo de sección si se mantiene manualmente. El segundo lista todas las declaraciones desde las cabeceras. Si falta un símbolo, se puede comprobar si este archivo lo contiene. + + Si el proyecto está basado en GObject, también se puede mirar en los archivos producidos por el analizador de objetos: <paquete>.args.txt, <paquete>.hierarchy.txt, <paquete>.interfaces.txt, <paquete>.prerequisites.txt y <paquete>.signals.txt. Si faltan símbolos en cualquiera de ellos, puede hacer que GTK-Doc guarde el análisis de archivos para futuros análisis, pero ejecutándolo como GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + Modernizar la documentación + + GTK-Doc ha existido durante mucho tiempo. En esta sección se listan las características nuevas junto con la versión desde la que están disponibles. + + + GTK-Doc 1.9 + + Al usar XML en lugar de SGML, actualmente se puede nombrar el documento maestro <paquete>-docs.xml. + + Esta versión soporta en Makefile.am. Cuando está activada, el archivo <paquete>-sections.txt se genera automáticamente y se puede quitar del control de versiones. Esto sólo funciona en proyectos que tienen una estructura regular (ej. cada pareja .{c,h} creará una sección nueva). Si se organiza un proyecto parecido a esto, actualizar una sección mantenida manualmente puede ser tan sencillo como ejecutar meld <paquete>-decl-list.txt <paquete>-sections.txt. + + La versión 1.18 ya introdujo la sintaxis para documentar secciones en las fuentes en lugar de tener que hacerlo en archivos separados bajo tmpl. Esta versión añade opciones para cambiar todo el módulo «doc» del documento para que no realice el paso de construcción de tmpl adicional, usando en configure.ac. Si no tiene una tmpl marcada en su sistema de control de versiones y todavía no ha cambiado, simplemente añada la opción al archivo configure.ac y lo tendrá hecho. + + + + GTK-Doc 1.10 + + Esta versión soporta en Makefile.am. Cuando está activado, el archivo <package>.types se genera automáticamente y se puede eliminar del control de versiones. Al usar esta característica es importante configurar la variable IGNORE_HFILES en el Makefile.am para el código que se construye de manera condicional. + + + + GTK-Doc 1.16 + + Esta versión incluye una herramienta nueva llamada gtkdoc-check. Esta herramienta puede ejecutar una serie de comprobaciones de integridad de la documentación. Se activa añadiendo las siguientes líneas al final del archivo Makefile.am. Activar gtkdoc-check + +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +TESTS = $(GTKDOC_CHECK) +endif + + + + + + GTK-Doc 1.20 + + La versión 1.18 incluía soporte para cierto marcado inicial. Usar el marcado en los comentarios del documento es menos intrusivo que escribir el XML del «docbook». Esta versión mejora mucho esto y añade muchos más estilos. La sección que explica la sintaxis de los comentarios contiene todos los detalles. + + + + GTK-Doc 1.25 + + El makefile distribuído con esta versión genera un archivo de entidad en xml/gtkdocentities.ent, que contiene las entidades para, por ejemplo nombre_paquete y versión_paquete. Puede usar este ejemplo en el archivo main.xml para evitar escribir a mano el número de versión. A continuación se muestra un ejemplo que muestra cómo se incluye el archivo de entidad y cómo se usan las entidades. Las entidades también se pueden usar en todos los archivos generados, GTK-Doc usará la misma cabecera XML en los archivos XML generados. Usar entidades generadas previamenet + +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" +[ + <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> + <!ENTITY % gtkdocentities SYSTEM "xml/gtkdocentities.ent"> + %gtkdocentities; +]> +<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude"> + <bookinfo> + <title>&package_name; Reference Manual</title> + <releaseinfo> + for &package_string;. + The latest version of this documentation can be found on-line at + <ulink role="online-location" url="http://[SERVER]/&package_name;/index.html">http://[SERVER]/&package_name;/</ulink>. + </releaseinfo> + </bookinfo> + + + + + + + Documentar otras interfaces + + Hasta ahora se ha usado GTK-Doc para documentar la API del código. Las siguientes secciones contienen sugerencias acerca de cómo se pueden usar las herramientas para documentar otras interfaces. + + + Opciones de la línea de comandos y páginas man + + Ya que también se pueden generar páginas man para referencias de entrada docbook, parece buena idea usarlas para ese propósito. De esta forma la interfaz es parte de la referencia y se obtienen las páginas man sin trabajo. + + + Documentar la herramienta + + Cree un archivo de entrada de referencia para cada herramienta. Siguiendo el ejemplo se llamará meep/docs/reference/meeper/meep.xml. Para las etiquetas xml que se deben usar puede mirar al archivo generado en la subcarpeta xml así como los ejemplos en, por ejemplo, glib. + + + + Añadir la comprobación de configuración adicional + + + Comprobaciones de configuración adicionales + +AC_ARG_ENABLE(man, + [AC_HELP_STRING([--enable-man], + [regenerate man pages from Docbook [default=no]])],enable_man=yes, + enable_man=no) + +AC_PATH_PROG([XSLTPROC], [xsltproc]) +AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno) + + + + + + + Añadir reglas de makefile adicionales + + + Comprobaciones de configuración adicionales + +man_MANS = \ + meeper.1 + +if ENABLE_GTK_DOC +if ENABLE_MAN + +%.1 : %.xml + @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< + +endif +endif + +BUILT_EXTRA_DIST = $(man_MANS) +EXTRA_DIST += meep.xml + + + + + + + + Interfaces de DBus + + (ARREGLAR: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + Preguntas más frecuentes + + + + Pregunta + Respuesta + + Sin jerarquía de clases. + Los objetos de la función xxx_get_type() no se han introducido en el archivo <package>.types. + + + Aún sin jerarquía de clases. + Nombre incorrecto o ausente en el archivo <package>-sections.txt (consulte la explicación). + + + Maldición, aún no hay una jerarquía de clases. + Es el nombre del objeto (nombre de la estructura de la instancia, ej. GtkWidget) parte de la sección normal (no ponga esto en Estándar o Privado). + + + Sin índice de símbolos. + ¿<package>-docs.{xml,sgml} contiene un índice que «xi:includes» el índice generado? + + + Los símbolos no se enlazan con su sección en el documento. + ¿Está doc-comment usando el marcado correcto (añadido #,% o ())? Compruebe si gtk-doc-fixxref avisa de alguna referencia xref sin resolver. + + + Una clase nueva no aparece en la documentación. + Es la página nueva «xi:included» desde <package>-docs.{xml,sgml}. + + + Un símbolo nuevo no aparece en la documentación. + Comprobar que el doc-comment está formateado correctamente. Compruebe errores de escritura al principio del comentario. Compruebe si gtkdoc-fixxref avisa acerca de referencias xref no solventables. Compruebe si el símbolo está listado correctamente en <package>-sections.txt en una subsección pública. + + + Falta un tipo en la clase de jerarquías + Si el tipo está listado en <package>.hierarchy pero no en xml/tree_index.sgml, entonces compruebe dos veces que el tipo está correctamente ubicado en la <package>-sections.txt. No se mostrará el tipo de instancia (ej. GtkWidget) si no está listada o accidentalmente marcada como privada. + + + Obtengo enlaces de seguimiento de documentos para todas las anotaciones gobject. + Compruebe que xml/annotation-glossary.xml está «xi:included» desde <package>-docs.{xml,sgml}. + + + + + Parámetro descrito en el bloque de comentarios del código fuente pero no existe + Compruebe si el prototipo en la cabecera tiene nombres de parámetro diferentes de la fuente. + + + + + múltiples «ID» para la restricción enlazada: XYZ + El símbolo XYZ aparece dos veces en el archivo <package>-sections.txt. + + + Elemento typename en namespace «» encontrado en para, pero ninguna plantilla coincide. + + + + + + + Herramientas relacionadas con GTK-Doc + + GtkDocPlugin: un complemento de integración Trac GTK-Doc que añade documentos de la API a un sitio «trac» y se integra con la búsqueda de «trac». + Gtkdoc-depscan: una herramienta (parte de gtk-doc) para comprobar la API usada contra etiquetas en la API para determinar la versión mínima necesaria. + + + + + + + + + Versión 1.1, marzo de 2000 + 2000Free Software Foundation, Inc. + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    . Se permite la copia y distribución de copias literales de este documento, pero no se permite su modificación.
    +
    +
    + Licencia de documentación libre de GNU + + + 0. PREÁMBULO + El propósito de esta Licencia es permitir que un manual, libro de texto, u otro documento escrito sea libre en el sentido de libertad: asegurar a todo el mundo la libertad efectiva de copiarlo y redistribuirlo, con o sin modificaciones, de manera comercial o no. En segundo término, esta Licencia proporciona al autor y al editor una manera de obtener reconocimiento por su trabajo, sin que se le considere responsable de las modificaciones realizadas por otros. + + Esta Licencia es de tipo copyleft, lo que significa que los trabajos derivados del documento deben a su vez ser libres en el mismo sentido. Complementa la Licencia Pública General de GNU, que es una licencia tipo copyleft diseñada para el software libre. + + Hemos diseñado esta Licencia para usarla en manuales de software libre, ya que el software libre necesita documentación libre: Un programa libre debe venir con los manuales que ofrezcan la mismas libertades que da el software. Pero esta licencia no se limita a manuales de software; puede ser usada para cualquier trabajo textual, sin tener en cuenta su temática o si se publica como libro impreso. Recomendamos esta licencia principalmente para trabajos cuyo fin sea instructivo o de referencia. + + + 1. APLICABILIDAD Y DEFINICIONES + Esta Licencia se aplica a cualquier manual u otro trabajo que contenga un aviso colocado por el poseedor del copyright diciendo que puede distribuirse bajo los términos de esta Licencia. El Documento, abajo, se refiere a cualquier manual o trabajo. Cualquier miembro del público es un licenciatario, y será referido como Usted. + + Una Versión Modificada del Documento significa cualquier trabajo que contenga el Documento o una porción del mismo, ya sea una copia literal o con modificaciones y/o traducciones a otro idioma. + + Una Sección Secundaria es un apéndice con título o una sección preliminar del Documento que trata exclusivamente de la relación entre los autores o editores y el tema general delDocumento que trata exclusivamente con la relación entre los editores o autores del Documento con el asunto general del Documento (o asuntos relacionados) y no contiene nada que pueda considerarse dentro del tema principal. (Por ejemplo, si el Documento es en parte un libro de texto de matemáticas, una Sección Secundaria no explicará nada de matemáticas.) La relación puede ser una conexión histórica con el asunto o temas relacionados, o una opinión legal, comercial, filosófica, ética o política acerca de ellos. + + Las Secciones Invariantes son ciertas Secciones Secundarias cuyos títulos son designados como Secciones Invariantes en la nota que indica que el Documento se publica bajo esta Licencia. + + Los Textos de Cubierta son ciertos pasajes cortos de texto que se listan como Textos de Cubierta Delantera o Textos de Cubierta Trasera en la nota que indica que el Documento se publica bajo esta Licencia. + + Una copia Transparente del Documento, significa una copia para lectura en máquina, representada en un formato cuya especificación está disponible al público en general, cuyo contenido puede ser visto y editados directamente con editores de texto genéricos o (para imágenes compuestas por píxeles) con programas genéricos de manipulación de imágenes o (para dibujos) con algún editor de dibujos ampliamente disponible, y que sea adecuado como entrada para formateadores de texto o para su traducción automática a formatos adecuados para formateadores de texto. Una copia hecha en un formato definido como Transparente, pero cuyo marcaje o ausencia de él haya sido diseñado para impedir o dificultar modificaciones posteriores por parte de los lectores no es Transparente. Una copia que no es Transparente se denomina Opaca. + + Como ejemplos de formatos adecuados para copias Transparentes están ASCII puro sin marcaje, formato de entrada de Texinfo, formato de entrada de LaTeX, SGML o XML usando una DTD disponible públicamente, y HTML, PostScript o PDF simples, que sigan los estándares y diseños para que los modifiquen personas.Los formatos Opacos incluyen formatos propietarios que pueden ser leídos y editados únicamente en procesadores de textos propietarios, SGML o XML para los cuáles las DTD y/o herramientas de procesamiento no estén ampliamente disponibles, y HTML, PostScript o PDF generados por algunos procesadores de textos sólo como salida. + + La Portada significa, en un libro impreso, la página de título, más las páginas siguientes que sean necesarias para mantener legiblemente el material que esta Licencia requiere en la portada. Para trabajos en formatos que no tienen página de portada como tal, Portadasignifica el texto cercano a la aparición más prominente del título del trabajo,precediendo el comienzo del cuerpo del texto. + + + + 2. COPIA LITERAL + Usted puede copiar y distribuir el Documento en cualquier soporte, sea en forma comercial o no, siempre y cuando proporcione esta Licencia, las notas de copyright y la nota que indica que esta Licencia se aplica al Documento reproduciéndola en todas las copias y que usted no añada ninguna otra condición a las expuestas en esta Licencia. Usted no puede usar medidas técnicas para obstruir o controlar la lectura o copia posterior de las copias que usted haga o distribuya. Sin embargo, usted puede aceptar compensación a cambio de las copias. Si distribuye un número suficientemente grande de copias también deberá seguir las condiciones de la sección 3. + + Usted también puede prestar copias, bajo las mismas condiciones establecidas anteriormente, y puede exhibir copias públicamente. + + + + 3. COPIAR EN CANTIDAD + Si publica copias impresas del Documento que sobrepasen las 100, y la nota de licencia del Documento exige Textos de Cubierta, debe incluirlas copias con cubiertas que lleven en forma clara y legible todos esos Textos de Cubierta: Textos de Cubierta Delantera en la cubierta delantera y Textos de Cubierta Trasera en la cubierta trasera. Ambas cubiertas deben identificarlo a Usted clara y legiblemente como editor de tales copias. La cubierta debe mostrar el título completo con todas las palabras igualmente prominentes y visibles. Además puede añadir otro material en las cubiertas. Las copias con cambios limitados a las cubiertas, siempre que conserven el título del Documento y satisfagan estas condiciones, pueden considerarse como copias literales en todos los aspectos. + + Si los textos requeridos para la cubierta son muy voluminosos para que ajusten legiblemente, debe colocar los primeros (tantos como sea razonable colocar) en la verdadera cubierta y situar el resto en páginas adyacentes. + + Si Usted publica o distribuye copias Opacas del Documento cuya cantidad exceda las 100, debe incluir una copia Transparente, que pueda ser leída por una máquina, con cada copia Opaca, o bien mostrar, en cada copia Opaca, una dirección de red donde cualquier usuario de la misma tenga acceso por medio de protocolos públicos y estandarizados a una copia Transparente del Documento completa, sin material adicional. Si usted hace uso de la última opción, deberá tomar las medidas necesarias, cuando comience la distribución de las copias Opacas en cantidad, para asegurar que esta copia Transparente permanecerá accesible en el sitio establecido por lo menos un año después de la última vez que distribuya una copia Opaca de esa edición al público (directamente o a través de sus agentes o distribuidores). + + Se solicita, aunque no es requisito, que se ponga en contacto con los autores del Documento antes de redistribuir gran número de copias, para darles la oportunidad de que le proporcionen una versión actualizada del Documento. + + + + 4. MODIFICACIONES + Puede copiar y distribuir una Versión Modificada del Documento bajo las condiciones de las secciones 2 y 3 anteriores, siempre que Usted libere la Versión Modificada bajo esta misma Licencia, con la Versión Modificada haciendo el rol del Documento, por lo tanto dando Licencia de distribución y modificación de la Versión Modificada a quienquiera posea una copia de la misma. Además, debe hacer lo siguiente en la Versión Modificada: + + + + + A + Usar en la Portada (y en las cubiertas, si hay alguna) un título distinto al del Documento y de sus versiones anteriores (que deberían, si hay alguna, estar listadas en la sección de Historia del Documento). Puede usar el mismo título de versiones anteriores al original siempre y cuando quien las publicó originalmente otorgue permiso. + + + + + + B + Listar en la Portada, como autores, una o más personas o entidades responsables de la autoría de las modificaciones de la Versión Modificada, junto con por lo menos cinco de los autores principales del Documento (todos sus autores principales, si hay menos de cinco), a menos que le eximan de tal requisito. + + + + + + C + Mostrar en la Portada como editor el nombre del editor de la Versión Modificada + + + + + + D + Conservar todas las notas de copyright del Documento. + + + + + + E + Añadir una nota de copyright apropiada a sus modificaciones, adyacente a las otras notas de copyright. + + + + + + F + Incluir, inmediatamente después de los avisos de copyright, una nota de licencia dando el permiso público para usar la Versión Modificada bajo los términos de esta Licencia, de la forma mostrada en el Adenda de más abajo. + + + + + + G + Incluir, inmediatamente después de ese aviso de licencia, la lista completa de Secciones invariantes y de los Textos de Cubierta que sean requeridos en el aviso de Licencia del Documento original. + + + + + + H + Incluir una copia sin modificación de esta Licencia. + + + + + + I + Conservar la sección titulada Historia, conservar su Título y añadirle un elemento que declare al menos el título, el año, los nuevos autores y el editor de la Versión Modificada, tal como figuran en la Portada. Si no hay una sección titulada Historia en el Documento, crear una estableciendo el título, el año, los autores y el editor del Documento, tal como figuran en su Portada, añadiendo además un elemento describiendo la Versión Modificada, como se estableció en la sentencia anterior. + + + + + + J + Conservar la dirección en red, si la hay, dada en el Documento para el acceso público a una copia Transparente del mismo, así como las otras direcciones de red dadas en el Documento para versiones anteriores en las que estuviese basado. Pueden ubicarse en la sección Historia. Se puede omitir la ubicación en red de un trabajo que haya sido publicado por lo menos cuatro años antes que el Documento mismo, o si el editor original de dicha versión da permiso. + + + + + + K + En cualquier sección titulada Agradecimientos o Dedicatorias, conservar el título de la sección y conservar en ella toda la sustancia y el tono de los agradecimientos y/o dedicatorias incluidas por cada contribuyente. + + + + + + L + Conservar todas las Secciones Invariantes del Documento, sin alterar su texto ni sus títulos. Los números de sección o equivalentes no se consideran parte de los títulos de la sección. + + + + + + M + Eliminar cualquier sección titulada Aprobaciones. Tales secciones no pueden estar incluidas en las Versiones Modificadas. + + + + + + N + No cambiar el título de ninguna sección existente a Aprobaciones ni a uno que entre en conflicto con el de alguna Sección Invariante. + + + + + Si la Versión Modificada incluye secciones o apéndices nuevos que cualifiquen como Secciones Secundarias y no contienen ningún material copiado del Documento, puede opcionalmente designar algunas o todas esas secciones como invariantes. Para hacerlo, añada sus títulos a la lista de Secciones Invariantes en el aviso de licencia de la Versión Modificada. Tales títulos deben ser distintos de cualquier otro título de sección. + + Puede añadir una sección titulada Aprobaciones, siempre que contenga únicamente aprobaciones de su Versión Modificada por otras fuentes --por ejemplo, observaciones de compañeros o que el texto ha sido aprobado por una organización como definición oficial de un estándar. + + Puede añadir un pasaje de hasta cinco palabras como Texto de Cubierta Delantera y un pasaje de hasta 25 palabras como Texto de Cubierta Trasera al final de la lista de Texto de Cubierta en la Versión Modificada. Una entidad sólo puede añadir (o hacer que se añada) un pasaje al Texto de Cubierta Delantera y uno al de Cubierta Trasera. Si el Documento ya incluye un textos de cubiertas añadidos previamente por usted o por acuerdo previo con la entidad que usted representa, usted no puede añadir otro; pero puede reemplazar el anterior, con permiso explícito del editor anterior que agregó el texto anterior. + + Con esta Licencia ni los autores ni los editores del Documento dan permiso para usar sus nombres para publicidad ni para asegurar o implicar aprobación de cualquier Versión Modificada. + + + + 5. COMBINAR DOCUMENTOS + Usted puede combinar el Documento con otros documentos liberados bajo esta Licencia, bajo los términos definidos en la sección section 4 más arriba para versiones modificadas, siempre que incluya en la combinación todas las Secciones Invariantes de todos los documentos originales, sin modificaciones, y las liste todas como Secciones Invariantes de su trabajo combinado en su aviso de licencia. + + El trabajo combinado necesita contener solamente una copia de esta Licencia, y múltiples Secciones Invariantes idénticas pueden reemplazarse por una sola copia. Si hay múltiples Secciones Invariantes con el mismo nombre pero con contenidos diferentes, haga el título de cada una de estas secciones único añadiéndolo al final de este, entre paréntesis, el nombre del autor o de quien editó originalmente esa sección, si es conocido, o si no, un número único. Haga el mismo ajuste a los títulos de sección en la lista de Secciones Invariantes en la nota de licencia del trabajo combinado. + + En la combinación, debe combinar cualquier sección titulada Historia de los distintos documentos originales, formando una sección titulada Historia; de la misma forma, combine cualquier sección titulada Reconocimientos y cualquier sección titulada Dedicatorias. Debe eliminar todas las secciones tituladas Aprobaciones. + + + + 6. COLECCIONES DE DOCUMENTOS + Puede hacer una colección que conste del Documento y de otros documentos publicados bajo esta Licencia, y reemplazar las copias individuales de esta Licencia en todos los documentos por una sola copia que esté incluida en la colección, siempre que siga las reglas de esta Licencia para cada copia literal de cada uno de los documentos en cualquiera de los demás aspectos. + + Puede extraer un solo documento de una de tales colecciones y distribuirlo individualmente bajo esta Licencia, siempre que inserte una copia de esta Licencia en el documento extraído, y siga esta Licencia en todos los demás aspectos relativos a la copia literal de dicho documento. + + + + 7. AGREGACIÓN CON TRABAJOS INDEPENDIENTES + Una recopilación que conste del Documento o sus derivados y de otros documentos o trabajos separados e independientes, en cualquier soporte de almacenamiento o distribución, no cuenta como un todo como una Versión Modificada del Documento, siempre que no se reclame ningún derecho de copyright por la compilación. Dicha compilación se denomina un agregado, y esta Licencia no se aplica a otros trabajos autocontenidos incluidos con el Documento. teniendo en cuenta que son compilados, si no son los mismos trabajos derivados del Documento. Si el requisito de Texto de Cubierta de la sección 3 es aplicable a estas copias del Documento, entonces si el Documento es menor que un cuarto del agregado completo, los Textos de Cubierta del Documento pueden colocarse en cubiertas que enmarquen solamente el Documento dentro del agregado. En caso contrario deben aparecer en cubiertas impresas enmarcando todo el agregado. + + + + 8. TRADUCCIÓN + La traducción se considera un tipo de modificación, así que puede distribuir traducciones del Documento bajo los términos de la sección 4. Reemplazar las Secciones invariantes con traducciones requiere permiso especial de los mantenedores de la propietarios del copyright, pero puede incluir traducciones de algunos o todas las Secciones invariantes. Puede incluir una traducción de esta licencia proporcionada que además incluya la versión original de esta Sección invariante en adición de esta licencia. En caso de desacuerdo prevalecerá la versión original en inglés. + + + + 9. TERMINACIÓN + Usted no puede copiar, modificar, sublicenciar o distribuir el Documento salvo por lo permitido expresamente por esta Licencia. Cualquier otro intento de copia, modificación, sublicenciamiento o distribución del Documento es nulo, y dará por terminados automáticamente sus derechos bajo esa Licencia. Sin embargo, los terceros que hayan recibido copias, o derechos, de usted bajo esta Licencia no verán terminadas sus licencias, siempre que permanezcan en total conformidad con ella. + + + + 10. FUTURAS REVISIONES DE ESTA LICENCIA + La Free Software Foundation puede publicar versiones nuevas y revisadas de la Licencia de Documentación Libre GNU de vez en cuando. Dichas versiones nuevas serán similares en espíritu a la presente versión, pero pueden diferir en detalles para solucionar nuevos problemas o preocupaciones. Vea http://www.gnu.org/copyleft/. + + Cada versión de la licencia tiene un número de versión. Si la Documentación especifica que el número particular de versión de esta Licencia o cualquier posterior versión aplicado sobre él, tiene la opción de seguir los términos y condiciones de cualquiera de esas versiones especificadas o de cualquiera de las versiones publicadas (no como borrador) por la Free Software Foundation. Si el Documento no especifica un número de versión de la licencia, puede elegir cualquier versión publicada (no como borrador) por la Free Software Foundation. + + + + Addendum + Para usar esta licencia en un documento que ha escrito, incluya una copia de la Licencia en el documento y ponga el siguiente copyright y las notas justo después del título de la página. + +
    + Copyright 2009-2016 Daniel Mustieles +Copyright 2009-2010 Jorge González González +Copyright 2009-2010 Francisco Javier Fernández Serrador + Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation; con las Secciones Invariantes siendo su LISTE SUS TÍTULOS, con Textos de Cubierta Delantera siendo LISTA, y con los Textos de Cubierta Trasera siendo LISTA. Una copia de la licencia está incluida en la sección titulada GNU Free Documentation License. +
    + + Si no tiene Secciones Invariantes, escriba sin Secciones Invariantes en vez de decir cuáles son invariantes. Si no tiene Textos de Cubierta Frontal, escriba sin Textos de Cubierta Frontal; de la misma manera para Textos de Cubierta Trasera. + + Si su documento contiene ejemplos de código de programa no triviales, recomendamos liberar estos ejemplos en paralelo bajo la licencia de software libre que usted elija, como la Licencia Pública General de GNU (GNU General Public License), para permitir su uso en software libre. +
    +
    + + + + + + + + +
    diff --git a/help/manual/fr/fdl-appendix.xml b/help/manual/fr/fdl-appendix.xml new file mode 100644 index 0000000..ef18f36 --- /dev/null +++ b/help/manual/fr/fdl-appendix.xml @@ -0,0 +1,239 @@ + + + + + Version 1.1, mars 2000 + + 2000Free Software Foundation, Inc. + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    Chacun est libre de copier et de distribuer des copies conformes de cette Licence, mais nul n'est autorisé à la modifier.
    +
    +
    + Licence de Documentation Libre GNU + + + 0. Préambule + L'objet de cette Licence est de rendre tout manuel, livre ou autre document écrit « libre » au sens de la liberté d'utilisation, à savoir : assurer à chacun la liberté effective de le copier ou de le redistribuer, avec ou sans modifications, commercialement ou non. En outre, cette Licence garantit à l'auteur et à l'éditeur la reconnaissance de leur travail, sans qu'ils soient pour autant considérés comme responsables des modifications réalisées par des tiers. + + Cette Licence est une sorte de copyleft, ce qui signifie que les travaux dérivés du document d'origine sont eux-mêmes « libres » selon les mêmes termes. Elle complète la Licence Publique Générale GNU, qui est également une Licence copyleft, conçue pour les logiciels libres. + + Nous avons conçu cette Licence pour la documentation des logiciels libres, car les logiciels libres ont besoin d'une documentation elle-même libre : un logiciel libre doit être accompagné d'un manuel garantissant les mêmes libertés que celles accordées par le logiciel lui-même. Mais cette Licence n'est pas limitée aux seuls manuels des logiciels ; elle peut être utilisée pour tous les documents écrits, sans distinction particulière relative au sujet traité ou au mode de publication. Nous recommandons l'usage de cette Licence principalement pour les travaux destinés à des fins d'enseignement ou devant servir de documents de référence. + + + 1. APPLICABILITÉ ET DÉFINITIONS + Cette Licence couvre tout manuel ou tout autre travail écrit contenant une notice de copyright autorisant la redistribution selon les termes de cette Licence. Le mot Document se réfère ci-après à un tel manuel ou travail. Toute personne en est par définition concessionnaire et est référencée ci-après par le terme Vous. + + Une Version modifiée du Document désigne tout travail en contenant la totalité ou seulement une portion de celui-ci, copiée mot pour mot, modifiée et/ou traduite dans une autre langue. + + Une Section secondaire désigne une annexe au Document, ou toute information indiquant les rapports entre l'auteur ou l'éditeur et le sujet (ou tout autre sujet connexe) du Document, sans toutefois être en rapport direct avec le sujet lui-même (par exemple, si le Document est un manuel de mathématiques, une Section secondaire ne traitera d'aucune notion mathématique). Cette section peut contenir des informations relatives à l'historique du Document, des sources documentaires, des dispositions légales, commerciales, philosophiques, ou des positions éthiques ou politiques susceptibles de concerner le sujet traité. + + Les Sections inaltérables sont des sections secondaires considérées comme ne pouvant être modifiées et citées comme telles dans la notice légale qui place le Document sous cette Licence. + + Les Textes de couverture sont les textes courts situés sur les pages de couverture avant et arrière, et cités comme tels dans la mention légale de ce Document. + + Le terme Copie transparente désigne une version numérique du Document représentée dans un format dont les spécifications sont publiquement disponibles et dont le contenu peut être visualisé et édité directement et immédiatement par un éditeur de texte quelconque, ou (pour les images composées de pixels) par un programme de traitement d'images quelconque, ou (pour les dessins) par un éditeur de dessins courant. Ce format doit pouvoir être accepté directement ou être convertible facilement dans des formats utilisables directement par des logiciels de formatage de texte. Une copie publiée dans un quelconque format numérique ouvert mais dont la structure a été conçue dans le but exprès de prévenir les modifications ultérieures du Document ou dans le but d'en décourager les lecteurs n'est pas considérée comme une Copie Transparente. Une copie qui n'est pas Copie transparente est considérée, par opposition, comme Opaque. + + Le format de fichier texte codé en ASCII générique et n'utilisant pas de balises, les formats de fichiers Texinfo ou LaTeX, les formats de fichiers SGML ou XML utilisant une DTD publiquement accessible, ainsi que les formats de fichiers HTML simple et standard, écrits de telle sorte qu'ils sont modifiables sans outil spécifique, sont des exemples de formats acceptables pour la réalisation de Copies Transparentes. Les formats suivants sont opaques : PostScript, PDF, formats de fichiers propriétaires qui ne peuvent être visualisés ou édités que par des traitements de textes propriétaires, SGML et XML utilisant des DTD et/ou des outils de formatage qui ne sont pas disponibles publiquement, et du code HTML généré par une machine à l'aide d'un traitement de texte quelconque et dans le seul but de la génération d'un format de sortie. + + La Page de titre désigne, pour les ouvrages imprimés, la page de titre elle-même, ainsi que les pages supplémentaires nécessaires pour fournir clairement les informations dont cette Licence impose la présence sur la page de titre. Pour les travaux n'ayant pas de Page de titre comme décrit ci-dessus, la Page de titre désigne le texte qui s'apparente le plus au titre du document et situé avant le texte principal. + + + + 2. COPIES CONFORMES + Vous pouvez copier et distribuer le Document sur tout type de support, commercialement ou non, à condition que cette Licence, la notice de copyright et la notice de la Licence indiquant que cette Licence s'applique à ce Document soient reproduits dans toutes les copies, et que vous n'y ajoutiez aucune condition restrictive supplémentaire. Vous ne pouvez pas utiliser un quelconque moyen technique visant à empêcher ou à contrôler la lecture ou la reproduction ultérieure des copies que vous avez créées ou distribuées. Toutefois, vous pouvez solliciter une rétribution en échange des copies. Si vous distribuez une grande quantité de copies, référez-vous aux dispositions de la section 3. + + Vous pouvez également prêter des copies, sous les mêmes conditions que celles suscitées, et vous pouvez afficher publiquement des copies de ce Document. + + + + 3. COPIES EN NOMBRE + Si vous publiez des copies imprimées de ce Document à plus de 100 exemplaires et que la Licence du Document indique la présence de Textes de couverture, vous devez fournir une couverture pour chaque copie, qui présente les Textes de couverture des première et dernière pages de couverture du Document. Les première et dernière pages de couverture doivent également vous identifier clairement et sans ambiguïté comme étant l'éditeur de ces copies. La première page de couverture doit comporter le titre du Document en mots d'importance et de visibilité égales. Vous pouvez ajouter des informations complémentaires sur les pages de couverture. Les copies du Document dont seule la couverture a été modifiée peuvent être considérées comme des copies conformes, à condition que le titre du Document soit préservé et que les conditions indiquées précédemment soient respectées. + + Si les textes devant se trouver sur la couverture sont trop importants pour y tenir de manière claire, vous pouvez ne placer que les premiers sur la première page et placer les suivants sur les pages consécutives. + + Si vous publiez plus de 100 Opaque du Document, vous devez soit fournir une Copie transparente pour chaque Copie opaque, soit préciser ou fournir avec chaque Copie opaque une adresse réseau publiquement accessible d'une Copie transparente et complète du Document, sans aucun ajout ou modification, et à laquelle tout le monde peut accéder en téléchargement anonyme et sans frais, selon des protocoles réseau communs et standard. Si vous choisissez cette dernière option, vous devez prendre les dispositions nécessaires, dans la limite du raisonnable, afin de garantir l'accès non restrictif à la Copie transparente durant une année pleine après la diffusion publique de la dernière Copie opaque(directement ou via vos revendeurs). + + Nous recommandons, mais ce n'est pas obligatoire, que vous contactiez l'auteur du Document suffisamment tôt avant toute publication d'un grand nombre de copies, afin de lui permettre de vous donner une version à jour du Document. + + + + 4. MODIFICATIONS + Vous pouvez copier et distribuer une Version modifiée du Document en respectant les conditions des sections 2 et 3 précédentes, à condition de placer cette Version modifiée sous la présente Licence, dans laquelle le terme « Document » doit être remplacé par les termes « Version modifiée », donnant ainsi l'autorisation de redistribuer et de modifier cette Version modifiée à quiconque en possède une copie. De plus, vous devez effectuer les actions suivantes dans la Version modifiée : + + + + + A + Utiliser sur la Page de titre (et sur la page de couverture éventuellement présente) un titre distinct de celui du Document d'origine et de toutes ses versions antérieures (qui, si elles existent, doivent être mentionnées dans la section Historique du Document). Vous pouvez utiliser le même titre si l'éditeur d'origine vous en a donné expressément la permission. + + + + + + B + Mentionner sur la Page de titre en tant qu'auteurs une ou plusieurs des personnes ou entités responsables des modifications de la Version modifiée, avec au moins les cinq principaux auteurs du Document (ou tous les auteurs s'il y en a moins de cinq). + + + + + + C + Préciser sur la Page de titre le nom de l'éditeur de la Version modifiée, en tant qu'éditeur du Document. + + + + + + D + Préserver intégralement toutes les notices de copyright du Document. + + + + + + E + Ajouter une notice de copyright adjacente aux autres notices pour vos propres modifications. + + + + + + F + Inclure immédiatement après les notices de copyright une notice donnant à quiconque l'autorisation d'utiliser la Version modifiée selon les termes de cette Licence, sous la forme présentée dans l'annexe indiquée ci-dessous. + + + + + + G + Préserver dans cette notice la liste complète des Sections inaltérables et les Textes de couverture donnés avec la notice de la Licence du Document. + + + + + + H + Inclure une copie non modifiée de cette Licence. + + + + + + I + Préserver la section nommée Historique et son titre, et y ajouter une nouvelle entrée décrivant le titre, l'année, les nouveaux auteurs et l'éditeur de la Version modifiée, tels que décrits sur la Page de titre, ainsi qu'un descriptif des modifications apportées depuis la précédente version. S'il n'y a pas de section nommée Historique dans le Document, créer une telle section précisant le titre, l'année, les auteurs et l'éditeur du Document tel que précisé sur la Page de titre,et ajouter une entrée décrivant la Version modifiée tel que précisé dans la phrase précédente. + + + + + + J + Conserver l'adresse réseau éventuellement indiquée dans le Document permettant à quiconque d'accéder à une Copie transparente du Document, ainsi que les adresses réseau indiquées dans le Document pour les versions précédentes sur lesquelles le Document se base. Ces liens peuvent être placés dans la section Historique. Vous pouvez ne pas conserver les liens pour un travail datant de plus de quatre ans avant la version courante ou si l'éditeur d'origine vous en accorde la permission. + + + + + + K + Si une section Remerciements ou une section Dédicaces sont présentes, les informations et les appréciations concernant les contributeurs et les personnes auxquelles s'adressent ces remerciements doivent être conservées, ainsi que le titre de ces sections. + + + + + + L + Conserver sans modification les Sections inaltérables du Document, ni dans leurs textes, ni dans leurs titres. Les numéros de sections ne sont pas considérés comme faisant partie du texte des sections. + + + + + + M + Effacer toute section intitulée Approbations. Une telle section ne peut pas être incluse dans une Version modifiée. + + + + + + N + Ne pas renommer une section existante sous le titre Approbations ou sous un autre titre entrant en conflit avec le titre d'une Section inaltérable. + + + + + Si la Version modifiée contient de nouvelles sections préliminaires ou de nouvelles annexes considérées comme des sections secondaires et que celles-ci ne contiennent aucun élément copié à partir du Document, vous pouvez à votre convenance en désigner une ou plusieurs comme étant des Sections inaltérables. Pour ce faire, ajoutez leurs titres dans la liste des Sections inaltérables au sein de la notice de Licence de la Version modifiée. Ces titres doivent êtres distincts des titres des autres sections. + + Vous pouvez ajouter une section nommée Approbations à condition que ces approbations ne concernent que les modifications ayant donné naissance à la Version modifiée (par exemple, comptes rendus de revue du document ou acceptation du texte par une organisation le reconnaissant comme étant la définition d'un standard). + + Vous pouvez ajouter un passage comprenant jusqu'à cinq mots en première page de couverture, et jusqu'à vingt-cinq mots en dernière page de couverture, à la liste des Textes de couverture de la Version modifiée. Il n'est autorisé d'ajouter qu'un seul passage en première et en dernière pages de couverture par personne ou groupe de personnes ou organisation ayant contribué à la modification du Document. Si le Document comporte déjà un passage sur la même couverture, ajouté en votre nom ou au nom de l'organisation au nom de laquelle vous agissez, vous ne pouvez pas ajouter de passage supplémentaire ; mais vous pouvez remplacer un ancien passage si vous avez expressément obtenu l'autorisation de l'éditeur de celui-ci. + + Cette Licence ne vous donne pas le droit d'utiliser le nom des auteurs et des éditeurs de ce Document à des fins publicitaires ou pour prétendre à l'approbation d'une Version modifiée. + + + + 5. FUSION DE DOCUMENTS + Vous pouvez fusionner le Document avec d'autres documents soumis à cette Licence, suivant les spécifications de la section 4 pour les Versions modifiées, à condition d'inclure dans le document résultant toutes les Sections inaltérables des documents originaux sans modification, et de toutes les lister dans la liste des Sections inaltérables de la notice de Licence du document résultant de la fusion. + + Le document résultant de la fusion n'a besoin que d'une seule copie de cette Licence, et les Sections inaltérables existant en multiples exemplaires peuvent être remplacées par une copie unique. S'il existe plusieurs Sections inaltérables portant le même nom mais de contenu différent, rendez unique le titre de chaque section en ajoutant, à la fin de celui-ci, entre parenthèses, le nom de l'auteur ou de l'éditeur d'origine, ou, à défaut, un numéro unique. Les mêmes modifications doivent être réalisées dans la liste des Sections inaltérables de la notice de Licence du document final. + + Dans le document résultant de la fusion, vous devez rassembler toutes les sections Historique des documents d'origine en une seule section <_quote-2/>. De même, vous devez rassembler les sections Remerciements et Dédicaces. Vous devez supprimer toutes les sections Approbations. + + + + 6. REGROUPEMENTS DE DOCUMENTS + Vous pouvez créer un regroupement de documents comprenant le Document d'autres documents soumis à cette Licence, et remplacer les copies individuelles de cette Licence des différents documents par une unique copie incluse dans le regroupement de documents, à condition de respecter pour chacun de ces documents l'ensemble des règles de cette Licence concernant les copies conformes. + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGRÉGATION AVEC DES TRAVAUX INDÉPENDANTS + La compilation du Document ou de ses dérivés avec d'autres documents ou travaux séparés et indépendants sur un support de stockage ou sur un média de distribution quelconque ne représente pas une Version modifiée du Document tant qu'aucun copyright n'est déposé pour cette compilation. Une telle compilation est appelée agrégat et cette Licence ne s'applique pas aux autres travaux indépendants compilés avec le Document s'ils ne sont pas eux-mêmes des travaux dérivés du Document. Si les exigences de la Textes de couverture concernant les section 3 sont applicables à ces copies du Document, et si le Document représente un volume inférieur à un quart du volume total de l'agrégat, les Textes de couverture du Document peuvent être placés sur des pages de couverture qui n'encadrent que le Document au sein de l'agrégat. Dans le cas contraire, ils doivent apparaître sur les pages de couverture de l'agrégat complet. + + + + 8. TRADUCTION + La traduction est considérée comme une forme de modification, vous pouvez donc distribuer les traductions du Document selon les termes de la section 4. Vous devez obtenir l'autorisation spéciale des auteurs des Sections inaltérables pour les remplacer par des traductions, mais vous pouvez inclure les traductions des Sections inaltérables en plus des textes originaux. Vous pouvez inclure une traduction de cette Licence à condition d'inclure également la version originale en anglais. En cas de contradiction entre la traduction et la version originale en anglais, c'est cette dernière qui prévaut. + + + + 9. RÉVOCATION + Vous ne pouvez pas copier, modifier, sous-licencier ou distribuer le Document autrement que selon les termes de cette Licence. Tout autre acte de copie, modification, sous-Licence ou distribution du Document est sans objet et vous prive automatiquement des droits que cette Licence vous accorde. En revanche, les personnes qui ont reçu de votre part des copies ou les droits sur le document sous couvert de cette Licence ne voient pas leurs droits révoqués tant qu'elles en respectent les principes. + + + + 10. RÉVISIONS FUTURES DE CETTE LICENCE + La Free Software Foundation peut publier de temps en temps de nouvelles versions révisées de cette Licence. Ces nouvelles versions seront semblables à la présente version dans l'esprit, mais pourront différer sur des points particuliers en fonction de nouvelles questions ou nouveaux problèmes. Voyez http://www.gnu.org/copyleft/ pour plus de détails. + + Chaque version de cette Licence est dotée d'un numéro de version distinct. Si un Document spécifie un numéro de version particulier de cette Licence, et porte la mention ou toute autre version ultérieure, vous pouvez choisir de suivre les termes de la version spécifiée ou ceux de n'importe quelle version ultérieure publiée par la Free Software Foundation. Si aucun numéro de version n'est spécifié, vous pouvez choisir n'importe quelle version officielle publiée par la Free Software Foundation. + + + + Addendum + Pour utiliser cette Licence avec un document que vous avez écrit, incorporez une copie du texte de cette Licence en anglais et placez le texte ci-dessous juste après la page de titre : + +
    + Copyright © 2010 Bruno Brouard. + Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation ; avec Sections inaltérables suivantes LISTE DES TITRES DES SECTIONS INALTÉRABLES, avec le texte de première page de couverture suivant TEXTE DE PREMIÈRE PAGE DE COUVERTURE et avec le texte de dernière page de couverture suivant TEXTE DE DERNIÈRE PAGE DE COUVERTURE. Une copie de cette Licence est incluse dans la section appelée Licence de Documentation Libre GNU de ce document. +
    + + Si votre Document ne comporte pas de Sections inaltérables écrivez pas de section inaltérable au lieu de la liste des sections inaltérables. Si votre Document ne comporte pas de texte de première page de couverture, écrivez pas de texte de première page de couverture au lieu de texte de première page de couverture suivant TEXTE DE PREMIÈRE PAGE DE COUVERTURE; de même pour le texte de dernière page de couverture. + + Si votre Document contient des exemples non triviaux de code programme, nous recommandons de distribuer ces exemples en parallèle sous Licence Publique Générale GNU, qui permet leur usage dans les logiciels libres. +
    +
    diff --git a/help/manual/fr/fr.po b/help/manual/fr/fr.po new file mode 100644 index 0000000..a80d05d --- /dev/null +++ b/help/manual/fr/fr.po @@ -0,0 +1,5112 @@ +# French translation of gtk-doc +# This file is distributed under the same license as the gtk-doc package. +# +# +# Yannick Tailliez , 2009. +# Bruno Brouard , 2009-2010,2012. +# Claude Paroz , 2010. +# Gérard Baylard , 2010. +# Luc Pionchon , 2011. +# +# Ajoutez votre nom aussi à la chaîne translator-credits +# Daniel Mustieles , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc-help HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-10-15 08:49+0000\n" +"PO-Revision-Date: 2013-01-23 12:34+0100\n" +"Last-Translator: Daniel Mustieles \n" +"Language-Team: Español \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n>1;\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "" +"Yannick Tailliez , 2009\n" +"Frédéric Péters , 2009\n" +"Bruno Brouard , 2010,2012\n" +"Claude Paroz , 2010\n" +"Gérard Baylard , 2010\n" +"Luc Pionchon , 2011" + +#: C/index.docbook:12(bookinfo/title) +msgid "GTK-Doc Manual" +msgstr "Manuel de GTK-Doc" + +#: C/index.docbook:13(bookinfo/edition) +msgid "1.18.1" +msgstr "1.18.1" + +#: C/index.docbook:14(abstract/para) +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "" +"Manuel utilisateur pour les développeurs contenant les instructions sur " +"l'usage de GTK-Doc." + +#: C/index.docbook:16(authorgroup/author) +msgid "" +"Chris Lyttle " +"
    chris@wilddev.net
    " +msgstr "" +"Chris Lyttle " +"
    chris@wilddev.net
    " + +#: C/index.docbook:25(authorgroup/author) +msgid "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " +msgstr "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " + +#: C/index.docbook:34(authorgroup/author) +msgid "" +"Stefan Kost " +"
    ensonic@users.sf.net
    " +msgstr "" +"Stefan Kost " +"
    ensonic@users.sf.net
    " + +#: C/index.docbook:45(publisher/publishername) +msgid "GTK-Doc project" +msgstr "Projet GTK-Doc" + +#: C/index.docbook:44(bookinfo/publisher) +msgid "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " +msgstr "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " + +#: C/index.docbook:48(bookinfo/copyright) +msgid "2000, 2005 Dan Mueth and Chris Lyttle" +msgstr "2000, 2005 Dan Mueth et Chris Lyttle" + +#: C/index.docbook:52(bookinfo/copyright) +msgid "2007-2011 Stefan Sauer (Kost)" +msgstr "2007-2011 Stefan Sauer (Kost)" + +#: C/index.docbook:65(legalnotice/para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, " +"Version 1.1 or any later version published by the Free Software Foundation " +"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A " +"copy of the license is included." +msgstr "" +"Permission vous est donnée de copier, distribuer et/ou modifier ce document " +"selon les termes de la licence de documentation libre GNU, version 1.1 ou ultérieure publiée par la Free Software " +"Foundation sans section inaltérable, sans texte de première page de " +"couverture ni texte de dernière page de couverture. Vous trouverez un " +"exemplaire de cette licence en suivant ce lien." + +#: C/index.docbook:73(legalnotice/para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and those trademarks are made aware to the members of the " +"GNOME Documentation Project, the names have been printed in caps or initial " +"caps." +msgstr "" +"La plupart des noms utilisés par les entreprises pour distinguer leurs " +"produits et services sont des marques déposées. Lorsque ces noms " +"apparaissent dans la documentation GNOME et que les membres du projet de " +"Documentation GNOME sont informés de l'existence de ces marques déposées, " +"soit ces noms entiers, soit leur première lettre est en majuscule." + +#: C/index.docbook:83(revhistory/revision) +msgid "" +"1.18.1 20 Sep 2011 ss development version" +msgstr "" +"1.18.1 20 septembre 2011 " +"ss version de développement" + +#: C/index.docbook:89(revhistory/revision) +msgid "" +"1.18 14 sep 2011 ss bug fixes, speedups, markdown support" +msgstr "" +"1.18 14 septembre 2011 " +"ss correction de bogues, " +"amélioration de la vitesse de traitement, prise en charge de markdown" + +#: C/index.docbook:95(revhistory/revision) +msgid "" +"1.17 26 Feb 2011 sk urgent bug fix update" +msgstr "" +"1.17 26 février 2011 sk mise à jour pour une correction de bogue urgente" + +#: C/index.docbook:101(revhistory/revision) +msgid "" +"1.16 14 Jan 2011 sk bugfixes, layout improvements" +msgstr "" +"1.16 14 janvier 2011 sk correctifs et améliorations de mise en page" + +#: C/index.docbook:107(revhistory/revision) +msgid "" +"1.15 21 May 2010 sk bug and regression fixes" +msgstr "" +"1.15 21 mai 2010 sk corrections d'anomalies et de régressions" + +#: C/index.docbook:113(revhistory/revision) +msgid "" +"1.14 28 March 2010 sk bugfixes and performance improvements" +msgstr "" +"1.14 28 mars 2010 sk correctifs et amélioration de performances" + +#: C/index.docbook:119(revhistory/revision) +msgid "" +"1.13 18 December 2009 " +"sk broken tarball update" +msgstr "" +"1.13 18 décembre 2009 " +"sk mise à jour du tarball brisé" + +#: C/index.docbook:125(revhistory/revision) +msgid "" +"1.12 18 December 2009 " +"sk new tool features and " +"bugfixes" +msgstr "" +"1.12 18 décembre 2009 " +"sk nouvelles fonctionnalités aux " +"outils et résolution de bogues" + +#: C/index.docbook:131(revhistory/revision) +msgid "" +"1.11 16 November 2008 " +"mal GNOME doc-utils migration" +msgstr "" +"1.11 16 novembre 2008 " +"mal Migration à GNOME doc-utils" + +#: C/index.docbook:144(chapter/title) +msgid "Introduction" +msgstr "Introduction" + +#: C/index.docbook:146(chapter/para) +msgid "" +"This chapter introduces GTK-Doc and gives an overview of what it is and how " +"it is used." +msgstr "" +"Ce chapitre présente GTK-Doc et fournit un aperçu de ce que c'est et de la " +"manière de l'utiliser." + +#: C/index.docbook:152(sect1/title) +msgid "What is GTK-Doc?" +msgstr "Qu'est-ce que GTK-Doc ?" + +#: C/index.docbook:154(sect1/para) +msgid "" +"GTK-Doc is used to document C code. It is typically used to document the " +"public API of libraries, such as the GTK+ and GNOME libraries. But it can " +"also be used to document application code." +msgstr "" +"GTK-Doc est utilisé pour documenter du code C. Il est typiquement utilisé " +"pour documenter les API publiques de bibliothèques, comme les bibliothèques " +"GTK+ et GNOME. Mais il peut aussi être utilisé pour documenter du code " +"d'application." + +#: C/index.docbook:162(sect1/title) +msgid "How Does GTK-Doc Work?" +msgstr "Fonctionnement de GTK-Doc ?" + +#: C/index.docbook:164(sect1/para) +msgid "" +"GTK-Doc works by using documentation of functions placed inside the source " +"files in specially-formatted comment blocks, or documentation added to the " +"template files which GTK-Doc uses (though note that GTK-Doc will only " +"document functions that are declared in header files; it won't produce " +"output for static functions)." +msgstr "" +"GTK-Doc fonctionne en utilisant la documentation de fonctions placées dans " +"le code source sous la forme de blocs de commentaires avec un formatage " +"spécifique ou la documentation ajoutée aux fichiers prototypes que GTK-Doc " +"utilise (notez cependant que GTK-Doc ne documente que les fonctions " +"déclarées dans des fichiers d'en-tête ; il ne fait rien pour les fonctions " +"statiques)." + +#: C/index.docbook:171(sect1/para) +msgid "" +"GTK-Doc consists of a number of perl scripts, each performing a different " +"step in the process." +msgstr "" +"GTK-Doc consiste en un certain nombre de scripts Perl, chacun réalisant une " +"étape du processus." + +#: C/index.docbook:176(sect1/para) +msgid "There are 5 main steps in the process:" +msgstr "Il y a 5 étapes principales :" + +#: C/index.docbook:183(listitem/para) +msgid "" +"Writing the documentation. The author fills in the " +"source files with the documentation for each function, macro, union etc. (In " +"the past information was entered in generated template files, which is not " +"recommended anymore)." +msgstr "" +"Écriture de la documentation. L'auteur complète les " +"fichiers sources avec la documentation pour chaque fonction, macro, union, " +"etc. (dans le passé, l'information était saisie dans les fichiers prototypes " +"générés mais ce n'est plus recommandé)." + +#: C/index.docbook:193(listitem/para) +msgid "" +"Gathering information about the code. " +"gtkdoc-scan scans the header files of the code " +"looking for declarations of functions, macros, enums, structs, and unions. " +"It creates the file <module>-decl-list.txt " +"containing a list of the declarations, placing them into sections according " +"to which header file they are in. On the first run this file is copied to " +"<module>-sections.txt. The author can rearrange " +"the sections, and the order of the declarations within them, to produce the " +"final desired order. The second file it generates is <" +"module>-decl.txt. This file contains the full declarations " +"found by the scanner. If for some reason one would like some symbols to show " +"up in the docs, where the full declaration cannot be found by the scanner or " +"the declaration should appear differently, one can place entities similar to " +"the ones in <module>-decl.txt into <" +"module>-overrides.txt." +msgstr "" +"Collecte des informations sur le code. " +"gtkdoc-scan analyse les fichiers d'en-tête du " +"code à la recherche des déclarations de fonctions, de macros, " +"d'énumérations, de structures et d'unions. Il crée le fichier <" +"module>-decl-list.txt contenant une liste des déclarations en " +"les plaçant dans des sections en accord avec le fichier d'en-tête d'où elles " +"proviennent. Lors du premier lancement, ce fichier est copié dans " +"<module>-sections.txt. L'auteur peut réorganiser " +"les sections et l'ordre des déclarations dans celui-ci, pour obtenir l'ordre " +"final souhaité. Le deuxième fichier généré est <module>-decl." +"txt. Ce fichier contient les déclarations complètes trouvées lors " +"de l'analyse. Si, pour une raison quelconque, on souhaite voir apparaître " +"dans la documentation des éléments qui n'ont pas été trouvé lors de " +"l'analyse, ou dont la déclaration doit apparaître différemment, il est " +"possible d'ajouter des entrées dans <module>-overrides.txt similaires à celle de <module>-decl.txt." + +#: C/index.docbook:210(listitem/para) +msgid "" +"gtkdoc-scangobj can also be used to dynamically " +"query a library about any GObject subclasses it exports. It saves " +"information about each object's position in the class hierarchy and about " +"any GObject properties and signals it provides." +msgstr "" +"gtkdoc-scanobj peut aussi être utilisé pour " +"interroger de manière dynamique une bibliothèque à propos de n'importe " +"quelle sous-classe de GtkObject qu'elle exporte. Il enregistre les " +"informations sur la position de chaque objet dans la hiérarchie de classe et " +"sur tous les arguments et signaux GTK fournis." + +#: C/index.docbook:216(listitem/para) +msgid "" +"gtkdoc-scanobj should not be used anymore. It was " +"needed in the past when GObject was still GtkObject inside gtk+." +msgstr "" +"gtkdoc-scanobj ne devrait plus être utilisé. Il " +"était nécessaire par le passé lorsque GObject était encore GtkObject dans gtk" +"+." + +#: C/index.docbook:223(listitem/para) +msgid "" +"Generating the \"template\" files. gtkdoc-" +"mktmpl creates a number of files in the tmpl/ subdirectory, using the information gathered " +"in the first step. (Note that this can be run repeatedly. It will try to " +"ensure that no documentation is ever lost.)" +msgstr "" +"Génération des fichiers « prototypes ». " +"gtkdoc-mktmpl crée un certain nombre de fichiers " +"dans le sous-répertoire tmpl/, en " +"utilisant les informations récoltées lors de la première étape (notez que le " +"script peut être exécuté plusieurs fois, il est fait en sorte qu'aucune " +"donnée ne soit jamais perdue)." + +#: C/index.docbook:232(note/para) +msgid "" +"Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep " +"documentation in the code. gtkdocize supports now " +"a option that chooses a makefile that " +"skips tmpl usage totally. If you have never changed file in tmpl by hand, " +"please remove the directory (e.g. from version control system)." +msgstr "" +"Depuis GTK-Doc 1.9, les prototypes peuvent être évités. Nous encourageons " +"tout le monde à conserver la documentation dans le code. " +"gtkdocize prend maintenant en charge l'option " +" qui choisit un makefile qui évite " +"complètement l'utilisation de tmpl. Si vous n'avez jamais modifié de " +"fichiers à la main dans tmpl, effacez le répertoire (par ex. à partir d'un " +"système de gestion de versions)." + +#: C/index.docbook:244(listitem/para) +msgid "" +"Generating the SGML/XML and HTML/PDF. " +"gtkdoc-mkdb turns the template files into SGML or " +"XML files in the sgml/ or xml/ subdirectory. If the source code " +"contains documentation on functions, using the special comment blocks, it " +"gets merged in here. If there are no tmpl files used it only reads docs from " +"sources and introspection data. We recommend to use Docbook XML." +msgstr "" +"Génération du SGML/XML et du HTML/PDF. " +"gtkdoc-mkdb transforme les fichiers prototypes en " +"fichiers SGML ou XML dans le répertoire sgml/ ou xml/. Si le code " +"source contient de la documentation sur les fonctions, en utilisant les " +"blocs de commentaires spéciaux, elle sera fusionnée ici. Si aucun fichier " +"tmpl n'est utilisé, seule la documentation contenue dans les sources et les " +"données d'introspection seront lues. Nous recommandons l'utilisation de XML " +"DocBook." + +#: C/index.docbook:255(listitem/para) +msgid "" +"gtkdoc-mkhtml turns the SGML/XML files into HTML " +"files in the html/ subdirectory. " +"Likewise gtkdoc-mkpdf turns the SGML/XML files " +"into a PDF document called <package>.pdf." +msgstr "" +"gtkdoc-mkhtml transforme les fichiers SGML/XML en " +"fichiers HTML dans le répertoire html/. De même gtkdoc-mkpdf transforme les " +"fichiers SGML/XML en documents PDF appelés <package>.pdf." + +#: C/index.docbook:261(listitem/para) +msgid "" +"Files in sgml/ or xml/ and html/ directories are always overwritten. One should never edit them " +"directly." +msgstr "" +"Les fichiers dans les répertoires sgml/ ou xml/ et html/ sont toujours écrasés. Il ne faut pas " +"les modifier directement." + +#: C/index.docbook:269(listitem/para) +msgid "" +"Fixing up cross-references between documents. After " +"installing the HTML files, gtkdoc-fixxref can be " +"run to fix up any cross-references between separate documents. For example, " +"the GTK+ documentation contains many cross-references to types documented in " +"the GLib manual. When creating the source tarball for distribution, " +"gtkdoc-rebase turns all external links into web-" +"links. When installing distributed (pregenerated) docs the same application " +"will try to turn links back to local links (where those docs are installed)." +msgstr "" +"Résolution des références croisées entre les documents. " +"Après installation des fichiers HTML, gtkdoc-fixxref peut être exécuté pour résoudre toutes les références croisées " +"entre les différents documents. Par exemple, la documentation de GTK+ " +"contient beaucoup de références croisées vers des types documentés dans le " +"manuel de GLib. Lors de la création de l'archive des sources pour la " +"distribution, gtkdoc-rebase transforme tous les " +"liens externes en liens Web. Lorsque vous installez la documentation " +"distribuée (pré-générée), la même application va essayer de retransformer " +"les liens en liens locaux (là où ces documentations sont installées)." + +#: C/index.docbook:287(sect1/title) +msgid "Getting GTK-Doc" +msgstr "Obtention de GTK-Doc" + +#: C/index.docbook:290(sect2/title) +msgid "Requirements" +msgstr "Pré-requis" + +#: C/index.docbook:291(sect2/para) +msgid "Perl v5 - the main scripts are in Perl." +msgstr "" +"Perl v5 - les principaux scripts sont écrits en Perl." + +#: C/index.docbook:294(sect2/para) +msgid "" +"DocBook DTD v3.0 - This is the DocBook SGML DTD. http://www.ora.com/" +"davenport" +msgstr "" +"DocBook DTD v3.0 - ce sont les DTD DocBook SGML. http://www.ora.com/" +"davenport" + +#: C/index.docbook:298(sect2/para) +msgid "" +"Jade v1.1 - This is a DSSSL processor for converting " +"SGML to various formats. http://www.jclark.com/jade" +msgstr "" +"Jade v1.1 - c'est un moteur DSSSL pour convertir le " +"SGML en divers formats. http://www.jclark.com/jade" + +#: C/index.docbook:302(sect2/para) +msgid "" +"Modular DocBook Stylesheets This is the DSSSL code to " +"convert DocBook to HTML (and a few other formats). It's used together with " +"jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to colour the " +"program code listings/declarations, and to support global cross-reference " +"indices in the generated HTML. http://nwalsh.com/docbook/dsssl" +msgstr "" +"Modular DocBook Stylesheets - c'est le code DSSSL " +"utilisé pour convertir de DocBook vers HTML (ainsi que quelques autres " +"formats). Il est utilisé conjointement avec Jade. J'ai légèrement " +"personnalisé le code DSSSL, dans gtk-doc.dsl, pour coloriser les listings de " +"code du programme et les déclarations ainsi que pour prendre en charge les " +"indices globaux des références croisées dans le HTML généré. http://nwalsh.com/docbook/" +"dsssl" + +#: C/index.docbook:311(sect2/para) +msgid "" +"docbook-to-man - if you want to create man pages from " +"the DocBook. I've customized the 'translation spec' slightly, to capitalise " +"section headings and add the 'GTK Library' title at the top of the pages and " +"the revision date at the bottom. There is a link to this on http://www.ora.com/davenport NOTE: This does not work yet." +msgstr "" +"docbook-to-man - si vous souhaitez créer des pages de " +"manuel depuis DocBook. J'ai légèrement adapté les « spécifications de " +"traduction » pour mettre en majuscule les en-têtes de section et pour " +"ajouter le titre « GTK Library » en haut des pages et la date de révision en " +"bas. Il y a un lien sur cela ici http://www.ora.com/davenport. Note : cela ne " +"fonctionne pas encore." + +#: C/index.docbook:322(sect2/title) +msgid "Installation" +msgstr "Installation" + +#: C/index.docbook:323(sect2/para) +msgid "" +"There is no standard place where the DocBook Modular Stylesheets are " +"installed." +msgstr "" +"Il n'y a pas d'emplacement standard pour l'installation des feuilles de " +"styles modulaires de DocBook." + +#: C/index.docbook:326(sect2/para) +msgid "GTK-Doc's configure script searches these 3 directories automatically:" +msgstr "" +"Les scripts d'installation de GTK-Doc cherchent dans ces trois répertoires " +"automatiquement :" + +#: C/index.docbook:329(sect2/para) +msgid "" +" /usr/lib/sgml/stylesheets/nwalsh-modular (used by " +"RedHat)" +msgstr "" +" /usr/lib/sgml/stylesheets/nwalsh-modular (utilisé par " +"Red Hat)" + +#: C/index.docbook:332(sect2/para) +msgid "" +" /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +msgstr "" +" /usr/lib/dsssl/stylesheets/docbook (utilisé par " +"Debian)" + +#: C/index.docbook:335(sect2/para) +msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +msgstr " /usr/share/sgml/docbkdsl (utilisé par SuSE)" + +#: C/index.docbook:338(sect2/para) +msgid "" +"If you have the stylesheets installed somewhere else, you need to configure " +"GTK-Doc using the option: --with-dsssl-dir=<" +"PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +msgstr "" +"Si les feuilles de styles sont installées autre part, vous devez configurer " +"GTK-Doc en utilisant l'option : --with-dsssl-dir=<" +"CHEMIN_VERS_REPERTOIRE_RACINE_FEUILLES2STYLEs>." + +#: C/index.docbook:362(sect1/title) +msgid "About GTK-Doc" +msgstr "À propos de GTK-Doc" + +#: C/index.docbook:364(sect1/para) C/index.docbook:378(sect1/para) +msgid "(FIXME)" +msgstr "(À COMPLETER)" + +#: C/index.docbook:368(sect1/para) +msgid "" +"(History, authors, web pages, license, future plans, comparison with other " +"similar systems.)" +msgstr "" +"(Historique, auteurs, pages Web, licence, projets futurs, comparaison avec " +"des systèmes similaires.)" + +#: C/index.docbook:376(sect1/title) +msgid "About this Manual" +msgstr "À propos de ce manuel" + +#: C/index.docbook:382(sect1/para) +msgid "(who it is meant for, where you can get it, license)" +msgstr "(qui est concerné, où le récupérer, licence)" + +#: C/index.docbook:391(chapter/title) +msgid "Setting up your project" +msgstr "Mise en place de votre projet" + +#: C/index.docbook:393(chapter/para) +msgid "" +"The next sections describe what steps to perform to integrate GTK-Doc into " +"your project. Theses sections assume we work on a project called 'meep'. " +"This project contains a library called 'libmeep' and an end-user app called " +"'meeper'. We also assume you will be using autoconf and automake. In " +"addition section plain makefiles or other " +"build systems will describe the basics needed to work in a different " +"build setup." +msgstr "" +"Les sections suivantes décrivent les étapes à suivre pour intégrer GTK-Doc " +"dans votre projet. Nous allons supposer que vous travaillez sur un projet " +"appelé « meep ». Ce projet contient une bibliothèque appelée « libmeep » et " +"une application « meeper ». Nous supposons également que vous utilisez " +"autoconf et automake. Dans le cas contraire, la section « makefiles » simples et autres systèmes de compilation décrit les éléments de base à respecter pour travailler dans une autre " +"configuration de construction." + +#: C/index.docbook:404(sect1/title) +msgid "Setting up a skeleton documentation" +msgstr "Mise en place du squelette de documentation" + +#: C/index.docbook:406(sect1/para) +msgid "" +"Under your top-level project directory create folders called docs/reference " +"(this way you can also have docs/help for end-user documentation). It is " +"recommended to create another subdirectory with the name of the doc-package. " +"For packages with just one library this step is not necessary." +msgstr "" +"Dans le répertoire racine de votre projet, créez les répertoires appelés " +"docs/reference (de la même façon, vous pouvez avoir docs/help pour la " +"documentation utilisateur). Il est recommandé de créer un autre sous-" +"répertoire portant le nom du paquet de documentation. Pour les paquets qui " +"contiennent seulement une bibliothèque, cette étape n'est pas nécessaire." + +#: C/index.docbook:415(example/title) +msgid "Example directory structure" +msgstr "Exemple d'arborescence de répertoires" + +#: C/index.docbook:416(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +"\n" +" " + +#: C/index.docbook:413(sect1/para) +msgid "This can then look as shown below: <_:example-1/>" +msgstr "Cela peut ressembler à ce qui suit : <_:example-1/>" + +#: C/index.docbook:433(sect1/title) C/index.docbook:440(example/title) +msgid "Integration with autoconf" +msgstr "Intégration avec autoconf" + +#: C/index.docbook:435(sect1/para) +msgid "" +"Very easy! Just add one line to your configure.ac " +"script." +msgstr "" +"C'est très simple ! Il faut juste ajouter une ligne dans votre script " +"configure.ac." + +#: C/index.docbook:441(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"\n" +" " + +#: C/index.docbook:455(example/title) +msgid "Keep gtk-doc optional" +msgstr "Laisser gtk-doc optionnel" + +#: C/index.docbook:456(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +"\n" +" " + +#: C/index.docbook:450(sect1/para) +msgid "" +"This will require all developers to have gtk-doc installed. If it is okay " +"for your project to have optional api-doc build setup, you can solve this as " +"below. Keep it as is, as gtkdocize is looking for GTK_DOC_CHECK at the start of a line. <_:example-1/>" +msgstr "" +"Cela impose à tous les développeurs d'installer gtk-doc. Si pour votre " +"projet, vous pouvez avoir une configuration de construction api-doc " +"optionnelle, vous pouvez résoudre ce problème comme ci-dessous. Ne le " +"modifiez pas car gtkdocize recherche GTK_DOC_CHECK au " +"début d'une ligne. <_:example-1/>" + +#: C/index.docbook:469(sect1/para) +msgid "" +"The first argument is used to check for the gtkdocversion at configure time. " +"The 2nd, optional argument is used by gtkdocize. " +"The GTK_DOC_CHECK macro also adds several configure " +"switches:" +msgstr "" +"Le premier argument est utilisé pour vérifier le paramètre gtkdocversion au " +"moment de la configuration. Le second, en option, est utilisé par " +"gtkdocize. La macro GTK_DOC_CHECK ajoute également plusieurs drapeaux de configuration :" + +#: C/index.docbook:475(listitem/para) +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "" +"--with-html-dir=CHEMIN : répertoire d'installation de la documentation," + +#: C/index.docbook:476(listitem/para) +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "" +"--enable-gtk-doc : utilisation de gtk-doc pour construire la documentation " +"[par défaut=no]," + +#: C/index.docbook:477(listitem/para) +msgid "" +"--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "" +"--enable-gtk-doc-html : construction de la documentation au format html [par " +"défaut=yes]," + +#: C/index.docbook:478(listitem/para) +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "" +"--enable-gtk-doc-pdf : construction de la documentation au format pdf [par " +"défaut=no]." + +#: C/index.docbook:482(important/para) +msgid "" +"GTK-Doc is disabled by default! Remember to pass the option to the next configure run. " +"Otherwise pregenerated documentation is installed (which makes sense for " +"users but not for developers)." +msgstr "" +"GTK-Doc est désactivé par défaut ! N'oubliez pas de passer l'option " +" lors de la prochaine exécution du script " +"configure. Dans le cas contraire, la documentation pré-" +"générée est installée (ce qui a du sens pour les utilisateurs mais pas pour " +"les développeurs)." + +#: C/index.docbook:490(sect1/para) +msgid "" +"Furthermore it is recommended that you have the following line inside you " +"configure.ac script. This allows " +"gtkdocize to automatically copy the macro " +"definition for GTK_DOC_CHECK to your project." +msgstr "" +"De plus, il est recommandé d'avoir la ligne suivante dans votre script " +"configure.ac. Cela permet à gtkdocize de copier automatiquement les définitions de macro pour " +"GTK_DOC_CHECK à votre projet." + +#: C/index.docbook:498(example/title) +msgid "Preparation for gtkdocize" +msgstr "Préparation pour gtkdocize" + +#: C/index.docbook:499(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +"\n" +" " + +#: C/index.docbook:509(sect1/title) +msgid "Integration with automake" +msgstr "Intégration avec automake" + +#: C/index.docbook:511(sect1/para) +msgid "" +"First copy the Makefile.am from the examples " +"subdirectory of the gtkdoc-sources to your project's API documentation " +"directory ( ./docs/reference/<package>). If you have multiple doc-packages repeat this for each one." +msgstr "" +"Pour commencer, copiez le fichier Makefile.am depuis le " +"sous-répertoire des exemples de gtkdoc-sources vers le répertoire de " +"documentation d'API du projet (./docs/" +"reference/<paquet>). S'il y a plusieurs paquets de " +"documentation, répétez cette étape pour chacun d'eux." + +#: C/index.docbook:518(sect1/para) +msgid "" +"The next step is to edit the settings inside the Makefile.am. All the settings have a comment above that describes their " +"purpose. Most settings are extra flags passed to the respective tools. Every " +"tool has a variable of the form . " +"All the tools support to list the supported " +"parameters." +msgstr "" +"L'étape suivante est de modifier les options dans le fichier " +"Makefile.am. Toutes les options sont accompagnées d'un " +"commentaire au-dessus qui explique leur fonction. La plupart des options " +"sont des paramètres supplémentaires qui sont passés aux outils respectifs. " +"Chaque outil possède une variable de la forme . Tous les outils prennent en charge l'option qui affiche la liste des options prises en charge." + +#: C/index.docbook:529(sect1/para) +msgid "" +"You may also want to enable GTK-Doc for the distcheck make target. Just add " +"the one line shown in the next example to your top-level Makefile." +"am:" +msgstr "" +"Il est aussi possible d'activer GTK-Doc pour la cible distcheck de make. Il " +"faut juste ajouter la ligne suivante au fichier Makefile.am du répertoire racine :" + +#: C/index.docbook:536(example/title) +msgid "Enable GTK-Doc during make distcheck" +msgstr "Activation de GTK-Doc pendant le « make distcheck »" + +#: C/index.docbook:537(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc\n" +"\n" +" " + +#: C/index.docbook:548(sect1/title) +msgid "Integration with autogen" +msgstr "Intégration avec autogen" + +#: C/index.docbook:550(sect1/para) +msgid "" +"Most projects will have an autogen.sh script to setup " +"the build infrastructure after a checkout from version control system (such " +"as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before " +"autoheader, automake or autoconf." +msgstr "" +"La plupart des projets possède un script autogen.sh " +"pour configurer l'infrastructure de compilation après un « checkout » depuis " +"un système de gestion de versions (comme cvs/svn/git). GTK-Doc est livré " +"avec un outil appelé gtkdocize, qui peut être " +"utilisé dans un script comme celui-ci. Il doit être lancé avant autoheader, " +"automake ou autoconf." + +#: C/index.docbook:559(example/title) +msgid "Running gtkdocize from autogen.sh" +msgstr "Exécution de gtkdocize depuis autogen.sh" + +#: C/index.docbook:560(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"gtkdocize || exit 1\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"gtkdocize || exit 1\n" +"\n" +" " + +#: C/index.docbook:568(sect1/para) +msgid "" +"When running gtkdocize it copies gtk-" +"doc.make to your project root (or any directory specified by the " +" option). It also checks you configure script for " +"the GTK_DOC_CHECK invocation. This macro can be used to " +"pass extra parameters to gtkdocize." +msgstr "" +"Lorsque gtkdocize est exécuté, il copie gtk-" +"doc.make vers le répertoire racine de votre projet (ou tout autre " +"répertoire désigné par l'option ). Il vérifie " +"également l'invocation de GTK_DOC_CHECK dans le script " +"configure. Cette macro peut être utilisée pour transmettre des paramètres " +"supplémentaires à gtkdocize." + +#: C/index.docbook:577(sect1/para) +msgid "" +"Historically GTK-Doc was generating template files where developers entered " +"the docs. This turned out to be not so good (e.g. the need for having " +"generated files under version control). Since GTK-Doc 1.9 the tools can get " +"all the information from source comments and thus the templates can be " +"avoided. We encourage people to keep documentation in the code. " +"gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. " +"Besides adding the option directly to the command invocation, they can be " +"added also to an environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in " +"the configure script. If you have never changed file in tmpl by hand and " +"migrating from older gtkdoc versions, please remove the directory (e.g. from " +"version control system)." +msgstr "" +"Historiquement, GTK-Doc générait des fichiers prototypes dans lesquels les " +"développeurs saisissaient la documentation. Il s'est avéré que ce n'était " +"pas une bonne idée (comme le besoin de placer les fichiers générés dans le " +"gestionnaire de versions). Depuis GTK-Doc 1.9, les outils peuvent récupérer " +"toutes les informations à partir des commentaires dans les sources, ce qui " +"permet d'éviter d'avoir des prototypes. Nous vous encourageons à conserver " +"la documentation dans le code. gtkdocize prend " +"maintenant en charge une option qui " +"choisit un makefile qui s'affranchit totalement de l'utilisation des " +"fichiers prototypes (tmpl). En plus d'ajouter les options directement au " +"moment de l'appel de la commande, elles peuvent être ajoutées également dans " +"une variable d'environnement appelée GTKDOCIZE_FLAGS ou " +"choisies comme deuxième paramètre dans la macro GTK_DOC_CHECK dans le script de configuration. Si aucune modification n'a été " +"faite à la main dans les fichiers prototypes et si vous migrez à partir " +"d'anciennes versions de gtkdoc, supprimez le répertoire (par ex. à partir du " +"système de gestion de versions)." + +#: C/index.docbook:594(sect1/title) C/index.docbook:611(example/title) +msgid "Running the doc build" +msgstr "Lancement de la construction de la documentation" + +#: C/index.docbook:596(sect1/para) +msgid "" +"After the previous steps it's time to run the build. First we need to rerun " +"autogen.sh. If this script runs configure for you, then " +"give it the option. Otherwise manually run " +"configure with this option afterwards." +msgstr "" +"Après toutes ces étapes, il est temps de lancer la construction. Tout " +"d'abord, il faut relancer autogen.sh. Si ce script " +"lance « configure » pour vous, alors il faut ajouter l'option , sinon lancez manuellement configure suivi de cette option." + +#: C/index.docbook:603(sect1/para) +msgid "" +"The first make run generates several additional files in the doc-" +"directories. The important ones are: <package>.types, <package>-docs.xml (in the past ." +"sgml), <package>-sections.txt." +msgstr "" +"La première exécution de make génère plusieurs fichiers supplémentaires dans " +"les répertoires de documentation (doc-directories). Les plus importants " +"sont : <paquet>.types, <paquet>-" +"docs.xml (anciennement .sgml), <paquet>-sections." +"txt." + +#: C/index.docbook:612(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" +"\n" +" " + +#: C/index.docbook:620(sect1/para) +msgid "" +"Now you can point your browser to docs/reference/<package>/" +"index.html. Yes, it's a bit disappointing still. But hang-on, " +"during the next chapter we tell you how to fill the pages with life." +msgstr "" +"Maintenant, vous pouvez saisir l'adresse docs/reference/<" +"paquet>/index.html dans votre navigateur. Le résultat est " +"encore un peu décevant mais le prochain chapitre va expliquer comment donner " +"de la vie à ces pages." + +#: C/index.docbook:628(sect1/title) +msgid "Integration with version control systems" +msgstr "Intégration avec des systèmes de gestion de versions" + +#: C/index.docbook:630(sect1/para) +msgid "" +"As a rule of the thumb, it's those files you edit, that should go under " +"version control. For typical projects it's these files: <" +"package>.types, <package>-docs..xml " +"(in the past .sgml), <package>-sections.txt, " +"Makefile.am" +msgstr "" +"Comme le veut la règle de base, ce sont les fichiers que vous modifiez qui " +"doivent être placés dans le système de gestion de versions. Pour les projets " +"typiques, ce sont ces fichiers : <paquet>.types, " +"<paquet>-docs.xml (anciennement .sgml), " +"<paquet>-sections.txt, Makefile.am" + +#: C/index.docbook:641(sect1/title) +msgid "Integration with plain makefiles or other build systems" +msgstr "" +"Intégration avec des « makefiles » simples et d'autres systèmes de " +"compilation" + +#: C/index.docbook:643(sect1/para) +msgid "" +"In the case one does not want to use automake and therefore gtk-" +"doc.mak one will need to call the gtkdoc tools in the right order " +"in own makefiles (or other build tools)." +msgstr "" +"Dans les cas où l'emploi de automake n'est pas souhaité et donc sans fichier " +"gtk-doc.mak, il s'agit alors d'appeler les outils " +"gtkdoc dans le bon ordre dans les fichiers « makefiles » ad hoc (ou d'autres " +"systèmes)." + +#: C/index.docbook:650(example/title) +msgid "Documentation build steps" +msgstr "Étapes de construction de la documentation" + +#: C/index.docbook:651(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"DOC_MODULE=meep\n" +"// sources have changed\n" +"gtkdoc-scan --module=$(DOC_MODULE) --source-dir=...\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml\n" +"// xml files have changed\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"DOC_MODULE=meep\n" +"// sources have changed\n" +"gtkdoc-scan --module=$(DOC_MODULE) --source-dir=...\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml\n" +"// xml files have changed\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" +"\n" +" " + +#: C/index.docbook:667(sect1/para) +msgid "" +"One will need to look at the Makefile.am and " +"gtk-doc.mak to pick the extra options needed." +msgstr "" +"Il s'agit d'examiner les fichiers Makefile.am et " +"gtk-doc.mak pour y trouver les options supplémentaires " +"nécessaires." + +#: C/index.docbook:676(chapter/title) +msgid "Documenting the code" +msgstr "Documentation du code" + +#: C/index.docbook:678(chapter/para) +msgid "" +"GTK-Doc uses source code comment with a special syntax for code " +"documentation. Further it retrieves information about your project structure " +"from other sources. During the next section you will find all information " +"about the syntax of the comments." +msgstr "" +"GTK-Doc utilise les commentaires du code source, avec une syntaxe spéciale " +"pour la documentation du code. En outre, il récupère des informations sur la " +"structure de votre projet à partir d'autres sources. La section suivante " +"vous donne toutes les informations concernant la syntaxe des commentaires." + +#: C/index.docbook:686(note/title) +msgid "Documentation placement" +msgstr "Emplacement de la documentation" + +#: C/index.docbook:687(note/para) +msgid "" +"In the past most documentation had to be filled into files residing inside " +"the tmpl directory. This has the disadvantages that the " +"information is often not updated and also that the file tend to cause " +"conflicts with version control systems." +msgstr "" +"Par le passé, la plupart de la documentation devait être placé dans des " +"fichiers dans le répertoire tmpl. Les inconvénients " +"étaient que l'information n'était pas souvent mise à jour et que ces " +"fichiers avaient tendance à provoquer des conflits avec les systèmes de " +"gestion de versions." + +#: C/index.docbook:693(note/para) +msgid "" +"The avoid the aforementioned problems we suggest putting the documentation " +"inside the sources. This manual will only describe this way of documenting " +"code." +msgstr "" +"Pour éviter ces problèmes, il est conseillé de placer la documentation dans " +"le code source. Ce manuel ne décrit que cette manière de documenter du code." + +#: C/index.docbook:704(example/title) C/index.docbook:723(example/title) +msgid "GTK-Doc comment block" +msgstr "Bloc de commentaire GTK-Doc" + +#: C/index.docbook:705(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" +"\n" +" " + +#: C/index.docbook:700(chapter/para) +msgid "" +"The scanner can handle the majority of c headers fine. In the case of " +"receiving warnings from the scanner that look like a special case, one can " +"hint GTK-Doc to skip over them. <_:example-1/>" +msgstr "" +"L'analyse peut prendre en charge de manière correcte la majorité des en-" +"têtes C. Au cours de l'analyse, en cas d'apparition d'avertissements qui ont " +"l'air d'être des cas spéciaux, vous pouvez indiquer à GTK-Doc de les passer. " +"<_:example-1/>" + +#: C/index.docbook:718(sect1/title) +msgid "Documentation comments" +msgstr "Commentaires de documentation" + +#: C/index.docbook:724(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" +"\n" +" " + +#: C/index.docbook:720(sect1/para) +msgid "" +"A multiline comment that starts with an additional '*' marks a documentation " +"block that will be processed by the GTK-Doc tools. <_:example-1/>" +msgstr "" +"Un commentaire multi-ligne qui commence avec un symbole « * » supplémentaire " +"indique un bloc de documentation qui sera traité par les outils GTK-Doc. <_:" +"example-1/>" + +#: C/index.docbook:735(sect1/para) +msgid "" +"The 'identifier' is one line with the name of the item the comment is " +"related to. The syntax differs a little depending on the item. (TODO add " +"table showing identifiers)" +msgstr "" +"L'« identifier » (identifiant) est une ligne contenant le nom de l'élément " +"avec lequel le commentaire est lié. La syntaxe diffère légèrement en " +"fonction de l'élément. (À FAIRE : ajouter un tableau montrant les " +"identifiants)" + +#: C/index.docbook:741(sect1/para) +msgid "" +"The 'documentation' block is also different for each symbol type. Symbol " +"types that get parameters such as functions or macros have the parameter " +"description first followed by a blank line (just a '*'). Afterwards follows " +"the detailed description. All lines (outside program- listings and CDATA " +"sections) just containing a ' *' (blank-asterisk) are converted to paragraph " +"breaks. If you don't want a paragraph break, change that into ' * ' (blank-" +"asterisk-blank-blank). This is useful in preformatted text (code listings)." +msgstr "" +"Le bloc « documentation » est aussi différent pour chaque type de symbole. " +"Les type de symbole qui prennent des paramètres comme les fonctions ou les " +"macros commencent par une description des paramètres suivie par une ligne " +"blanche (juste un « * »). Ensuite, vient la description détaillée. Toutes " +"les lignes (à l'exception des sections de code et des sections CDATA) " +"contenant seulement un «  * » (espace-astérisque) sont converties en saut de " +"paragraphe. Si vous ne désirez pas de saut de paragraphe, modifiez-les en " +"«  *   » (espace-astérisque-espace-espace)." + +#: C/index.docbook:758(listitem/para) +msgid "" +"What it is: The name for a class or function can sometimes be misleading for " +"people coming from a different background." +msgstr "" +"Ce que c'est : le nom d'une classe ou d'une fonction peut parfois être " +"trompeur pour les personnes habituées à d'autres environnements." + +#: C/index.docbook:764(listitem/para) +msgid "" +"What it does: Tell about common uses. Put it in relation with the other API." +msgstr "" +"Ce qu'il fait : indiquer les usages courants. À mettre en relation avec les " +"autres API." + +#: C/index.docbook:754(tip/para) +msgid "When documenting code, describe two aspects: <_:itemizedlist-1/>" +msgstr "" +"En documentant le code, deux aspects doivent être abordés : <_:" +"itemizedlist-1/>" + +#: C/index.docbook:779(listitem/para) +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "" +"Utilisez fonction() pour vous référer à des fonctions ou des macros qui " +"prennent des arguments." + +#: C/index.docbook:784(listitem/para) +msgid "" +"Use @param to refer to parameters. Also use this when referring to " +"parameters of other functions, related to the one being described." +msgstr "" +"Utilisez @paramètre pour vous référer aux paramètres. Utilisez-le aussi pour " +"les paramètres d'autres fonctions, en relation avec celle décrite." + +#: C/index.docbook:790(listitem/para) +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "" +"Utilisez %constante pour vous référer à une constante, par ex. : " +"%MA_CONSTANTE." + +#: C/index.docbook:795(listitem/para) +msgid "" +"Use #symbol to refer to other types of symbol, e.g. structs and enums and " +"macros which don't take arguments." +msgstr "" +"Utilisez #symbole pour vous référer à d'autres types de symbole. Par exemple " +"des structures, énumérations ou macros qui ne prennent pas d'arguments." + +#: C/index.docbook:801(listitem/para) +msgid "Use #Object::signal to refer to a GObject signal" +msgstr "Utilisez #Objet::signal pour vous référer à un signal GObject." + +#: C/index.docbook:806(listitem/para) +msgid "Use #Object:property to refer to a GObject property" +msgstr "Utilisez #Objet::propriété pour vous référer à une propriété GObject." + +#: C/index.docbook:811(listitem/para) +msgid "Use #Struct.field to refer to a field inside a structure." +msgstr "Utilisez #Structure.champ pour vous référer au champ d'une stucture." + +#: C/index.docbook:773(sect1/para) +msgid "" +"One advantage of hyper-text over plain-text is the ability to have links in " +"the document. Writing the correct markup for a link can be tedious though. " +"GTK-Doc comes to help by providing several useful abbreviations. <_:" +"itemizedlist-1/>" +msgstr "" +"L'un des avantages de l'hypertexte par rapport au texte simple, c'est la " +"possibilité d'avoir des liens dans les documents. Écrire correctement le " +"balisage d'un lien peut être fastidieux. GTK-Doc fournit plusieurs " +"raccourcis utiles pour vous aider. <_:itemizedlist-1/>" + +#: C/index.docbook:819(tip/para) +msgid "" +"If you need to use the special characters '<', '>', '()', '@', '%', or " +"'#' in your documentation without GTK-Doc changing them you can use the XML " +"entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&" +"commat;\", \"&percnt;\" and \"&num;\" respectively or escape them " +"with a backslash '\\'." +msgstr "" +"Si vous avez besoin d'utiliser les caractères spéciaux « '<', '> », " +"« () », « @ », « % » ou « # » dans votre documentation sans que GTK-Doc ne " +"les interprète, vous pouvez utiliser les entités XML « &lt; », « &" +"gt; », « &lpar; », « &rpar; », « &commat; », « &percnt; », " +"« &num; » ou les échapper en les précédant d'un antislash « \\ »." + +#: C/index.docbook:828(sect1/para) +msgid "" +"DocBook can do more than just links. One can also have lists, tables and " +"examples. To enable the usage of docbook SGML/XML tags inside doc-comments " +"you need to have or " +"in the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" +"DocBook peut faire plus que des liens. Il peut aussi générer des listes, des " +"tableaux et des exemples. Pour activer l'utilisation des balises SGML/XML " +"DocBook dans les commentaires de documentation, vous devez avoir une des " +"options ou dans la " +"variable MKDB_OPTIONS du fichier Makefile.am." + +#: C/index.docbook:842(example/title) +msgid "GTK-Doc comment block using markdown" +msgstr "Bloc de commentaire GTK-Doc utilisant la syntaxe markdown" + +#: C/index.docbook:843(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * identifier:\n" +" *\n" +" * documentation ...\n" +" *\n" +" * # Sub heading #\n" +" *\n" +" * more documentation:\n" +" * - list item 1\n" +" * - list item 2\n" +" *\n" +" * Even more docs.\n" +" */\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * identifier:\n" +" *\n" +" * documentation ...\n" +" *\n" +" * # Sub heading #\n" +" *\n" +" * more documentation:\n" +" * - list item 1\n" +" * - list item 2\n" +" *\n" +" * Even more docs.\n" +" */\n" +"\n" +" " + +#: C/index.docbook:836(sect1/para) +msgid "" +"Since GTK-Doc-1.18 the tool supports a subset or the markdown language. One can " +"use it for sub-headings and simple itemized lists. On older GTK-Doc versions " +"the content will be rendered as it (the list items will appear in one line " +"separated by dashes). <_:example-1/>" +msgstr "" +"À partir de GTK-Doc 1.18, il est possible d'utiliser un sous-ensemble de la " +"syntaxe " +"markdown. On peut l'utiliser pour les sous-titres et les listes à " +"puces simples. Dans des versions plus anciennes de GTK-Doc, le contenu est " +"affiché tel quel (les éléments d'une liste sont affichés sur une seule " +"ligne, séparés par des tirets). <_:example-1/>" + +#: C/index.docbook:864(tip/para) +msgid "" +"As already mentioned earlier GTK-Doc is for documenting public API. Thus one " +"cannot write documentation for static symbols. Nevertheless it is good to " +"comment those symbols too. This helps other to understand you code. " +"Therefore we recommend to comment these using normal comments (without the " +"2nd '*' in the first line). If later the function needs to be made public, " +"all one needs to do is to add another '*' in the comment block and insert " +"the symbol name at the right place inside the sections file." +msgstr "" +"Comme indiqué plus tôt, GTK-Doc est fait pour documenter les API publiques. " +"On ne peut donc pas écrire de la documentation pour les symboles statiques. " +"Néanmoins, il est bon de commenter ces symboles aussi. Cela aide les autres " +"à comprendre votre code. Par conséquent, nous recommandons de les documenter " +"à l'aide de commentaires normaux (sans le second « * » à la première ligne). " +"Si, plus tard, la fonction doit être rendue publique, il suffira juste " +"d'ajouter un « * » dans le bloc de commentaires et d'ajouter le nom du " +"symbole à la bonne place à l'intérieur du fichier des sections." + +#: C/index.docbook:878(sect1/title) +msgid "Documenting sections" +msgstr "Documentation des sections" + +#: C/index.docbook:880(sect1/para) +msgid "" +"Each section of the documentation contains information about one class or " +"module. To introduce the component one can write a section block. The short " +"description is also used inside the table of contents. All the @fields are " +"optional." +msgstr "" +"Chaque section de la documentation contient des informations sur une classe " +"ou un module. Pour introduire le composant, il est possible d'écrire un bloc " +"de section. La description courte est également utilisée dans la table des " +"matières. Tous les @champs sont facultatifs." + +#: C/index.docbook:888(example/title) +msgid "Section comment block" +msgstr "Bloc de commentaires de section" + +#: C/index.docbook:889(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: the application class\n" +" * @title: Meep application\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * The application class handles ...\n" +" */\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: the application class\n" +" * @title: Meep application\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * The application class handles ...\n" +" */\n" +"\n" +" " + +#: C/index.docbook:910(varlistentry/term) +msgid "SECTION:<name>" +msgstr "SECTION:<nom>" + +#: C/index.docbook:912(listitem/para) +msgid "" +"The name links the section documentation to the respective part in the " +"<package>-sections.txt file. The name give here " +"should match the <FILE> tag in the <package>-sections." +"txt file." +msgstr "" +"Le nom relie la section de la documentation à la partie respective dans le " +"fichier <package>-sections.txt. Le nom fourni ici " +"doit correspondre à la balise <FILE> du fichier <" +"package>-sections.txt." + +#: C/index.docbook:921(varlistentry/term) +msgid "@short_description" +msgstr "@short_description" + +#: C/index.docbook:923(listitem/para) +msgid "" +"A one line description of the section, that later will appear after the " +"links in the TOC and at the top of the section page." +msgstr "" +"Une description de la section en une seule ligne, elle apparaîtra derrière " +"les liens dans la table des matières et au début de la page de la section." + +#: C/index.docbook:930(varlistentry/term) +msgid "@title" +msgstr "@title" + +#: C/index.docbook:932(listitem/para) +msgid "" +"The section title defaults to <name> from the SECTION declaration. It " +"can be overridden with the @title field." +msgstr "" +"Par défaut, la section titre est celle de la déclaration SECTION: <" +"nom>. Elle peut être modifiée grâce au champ @title." + +#: C/index.docbook:939(varlistentry/term) +msgid "@section_id" +msgstr "@section_id" + +#: C/index.docbook:941(listitem/para) +msgid "" +"Overrides the use of title as a section identifier. For GObjects the <" +"title> is used as a section_id and for other sections it is <" +"MODULE>-<title>." +msgstr "" +"Remplace l'utilisation du titre comme identificateur de section. Pour " +"GObjects, <title> est utilisé à la place de section_id et pour les " +"autres sections, c'est <MODULE>-<title>." + +#: C/index.docbook:949(varlistentry/term) +msgid "@see_also" +msgstr "@see_also" + +#: C/index.docbook:951(listitem/para) +msgid "A list of symbols that are related to this section." +msgstr "Une liste de symboles qui ont un lien avec cette section." + +#: C/index.docbook:957(varlistentry/term) +msgid "@stability" +msgstr "@stability" + +#: C/index.docbook:964(listitem/para) +msgid "" +"Stable - The intention of a Stable interface is to enable arbitrary third " +"parties to develop applications to these interfaces, release them, and have " +"confidence that they will run on all minor releases of the product (after " +"the one in which the interface was introduced, and within the same major " +"release). Even at a major release, incompatible changes are expected to be " +"rare, and to have strong justifications." +msgstr "" +"« Stable » - L'intention d'une interface stable est de permettre à des " +"parties tierces de développer des applications pour ces interfaces, de les " +"distribuer et d'avoir l'assurance qu'elles fonctionneront avec toutes les " +"versions mineures du produit (après celle où l'interface a été introduite et " +"pour le même numéro de version majeur). De plus, à chaque version majeure, " +"les modifications incompatibles doivent être rares et être sérieusement " +"justifiées." + +#: C/index.docbook:976(listitem/para) +msgid "" +"Unstable - Unstable interfaces are experimental or transitional. They are " +"typically used to give outside developers early access to new or rapidly " +"changing technology, or to provide an interim solution to a problem where a " +"more general solution is anticipated. No claims are made about either source " +"or binary compatibility from one minor release to the next." +msgstr "" +"« Unstable » - Les interfaces instables sont expérimentales ou en " +"transition. Elles sont généralement utilisées pour que les développeurs " +"extérieurs aient un accès précoce aux technologies nouvelles ou en évolution " +"rapide, ou de fournir une solution temporaire à un problème pour lequel une " +"solution plus générale est prévue. Aucune exigence n'est demandée à propos " +"de la compatibilité binaire ou de celle des sources, d'une version mineure à " +"l'autre." + +#: C/index.docbook:988(listitem/para) +msgid "" +"Private - An interface that can be used within the GNOME stack itself, but " +"that is not documented for end-users. Such functions should only be used in " +"specified and documented ways." +msgstr "" +"« Private » - C'est une interface qui peut être utilisée dans le noyau GNOME " +"lui-même, mais qui n'est pas documentée pour les utilisateurs finaux. Ce " +"type de fonctions ne doit être utilisé que dans des cas spécifiques et " +"documentés." + +#: C/index.docbook:997(listitem/para) +msgid "" +"Internal - An interface that is internal to a module and does not require " +"end-user documentation. Functions that are undocumented are assumed to be " +"Internal." +msgstr "" +"« Internal » - C'est une interface qui est interne à un module et qui ne " +"nécessite pas de documentation pour l'utilisateur final. Les fonctions non " +"documentées sont considérées comme internes." + +#: C/index.docbook:959(listitem/para) +msgid "" +"A informal description of the stability level this API has. We recommend the " +"use of one of these terms: <_:itemizedlist-1/>" +msgstr "" +"Une description informelle du niveau de stabilité de cet API. Il est " +"recommandé d'utiliser l'un de ces termes : <_:itemizedlist-1/>" + +#: C/index.docbook:1009(varlistentry/term) +msgid "@include" +msgstr "@include" + +#: C/index.docbook:1011(listitem/para) +msgid "" +"The #include files to show in the section synopsis (a " +"comma separated list), overriding the global value from the section file or command line. This item is " +"optional." +msgstr "" +"Les fichiers #include à afficher dans le résumé de la " +"section (liste d'éléments séparés par des virgules), elle outrepasse la " +"valeur globale du fichier de section ou de la ligne de commande. Cet élément est facultatif." + +#: C/index.docbook:1020(varlistentry/term) +msgid "@image" +msgstr "@image" + +#: C/index.docbook:1022(listitem/para) +msgid "" +"The image to display at the top of the reference page for this section. This " +"will often be some sort of a diagram to illustrate the visual appearance of " +"a class or a diagram of its relationship to other classes. This item is " +"optional." +msgstr "" +"L'image à afficher en haut de la page de référence pour cette section. C'est " +"très souvent une espèce de diagramme pour illustrer l'apparence visuelle " +"d'une classe ou un diagramme de ses relations avec d'autres classes. Cet " +"élément est facultatif." + +#: C/index.docbook:1033(tip/para) +msgid "" +"To avoid unnecessary recompilation after doc-changes put the section docs " +"into the c-source where possible." +msgstr "" +"Pour éviter des recompilations inutiles après des modifications de la " +"documentation, placez la documentation de section dans les fichiers sources " +"C, lorsque cela est possible." + +#: C/index.docbook:1042(sect1/title) +msgid "Documenting symbols" +msgstr "Documentation des symboles" + +#: C/index.docbook:1044(sect1/para) +msgid "" +"Each symbol (function, macro, struct, enum, signal and property) is " +"documented in a separate block. The block is best placed close to the " +"definition of the symbols so that it is easy to keep them in sync. Thus " +"functions are usually documented in the c-source and macros, structs and " +"enums in the header file." +msgstr "" +"Chaque symbole (fonction, macro, structure, énumération, signal et " +"propriété) est documenté dans un bloc séparé. Il est mieux de placer le bloc " +"près de la définition de son symbole pour faciliter sa synchronisation. Par " +"conséquent, les fonctions sont habituellement documentées dans les fichiers " +"sources C et les macros et les structures et les énumérations le sont dans " +"le fichier d'en-tête." + +#: C/index.docbook:1052(sect2/title) C/index.docbook:1081(example/title) +msgid "General tags" +msgstr "Étiquettes générales" + +#: C/index.docbook:1054(sect2/para) +msgid "" +"You can add versioning information to all documentation elements to tell " +"when an API was introduced, or when it was deprecated." +msgstr "" +"Vous pouvez ajouter des informations de version à tous les éléments de " +"documentation pour indiquer quand l'API a été introduite ou quand elle est " +"devenue obsolète." + +#: C/index.docbook:1059(variablelist/title) +msgid "Versioning Tags" +msgstr "Étiquettes de version" + +#: C/index.docbook:1060(varlistentry/term) +msgid "Since:" +msgstr "« Since »:" + +#: C/index.docbook:1062(listitem/para) +msgid "Description since which version of the code the API is available." +msgstr "" +"Texte indiquant depuis quelle version du code cette API est disponible." + +#: C/index.docbook:1067(varlistentry/term) +msgid "Deprecated:" +msgstr "« Deprecated » :" + +#: C/index.docbook:1069(listitem/para) +msgid "" +"Paragraph denoting that this function should no be used anymore. The " +"description should point the reader to the new API." +msgstr "" +"Texte indiquant que cette fonction ne doit plus être utilisée. La " +"description doit rediriger le lecteur vers la nouvelle API." + +#: C/index.docbook:1077(sect2/para) +msgid "(FIXME : Stability information)" +msgstr "(FIXME : informations de stabilité)" + +#: C/index.docbook:1082(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: @foo's bar\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Use foo_baz_get_bar() instead.\n" +" **/\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: @foo's bar\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Use foo_baz_get_bar() instead.\n" +" **/\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" +"\n" +" " + +#: C/index.docbook:1104(sect2/title) C/index.docbook:1140(example/title) +msgid "Function comment block" +msgstr "Bloc de commentaires pour les fonctions" + +#: C/index.docbook:1110(listitem/para) +msgid "" +"Document whether returned objects, lists, strings, etc, should be freed/" +"unrefed/released." +msgstr "" +"d'indiquer si les objets, listes, chaînes, etc. retournés doivent être freed/" +"unfreed/released," + +#: C/index.docbook:1116(listitem/para) +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "" +"d'indiquer si les paramètres peuvent être NULL et ce qui se passe dans ce " +"cas," + +#: C/index.docbook:1121(listitem/para) +msgid "" +"Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "" +"de mentionner les pré-conditions et post-conditions intéressantes si " +"nécessaire." + +#: C/index.docbook:1106(sect2/para) C/index.docbook:1203(sect2/para) +msgid "Please remember to: <_:itemizedlist-1/>" +msgstr "N'oubliez pas : <_:itemizedlist-1/>" + +#: C/index.docbook:1128(sect2/para) +msgid "" +"Gtk-doc assumes all symbols (macros, functions) starting with '_' are " +"private. They are treated like static functions." +msgstr "" +"GTK-Doc considère que tous les symboles (macros, fonctions) commençant par " +"« _ » sont privés. Ils sont traités comme des fonctions statiques." + +#: C/index.docbook:1133(sect2/para) +msgid "" +"Also, take a look at gobject introspection annotation tags: http://live." +"gnome.org/GObjectIntrospection/Annotations" +msgstr "" +"Jetez un coup d'œil aux étiquettes d'annotation de l'introspection gobject : " +"http://live.gnome.org/GObjectIntrospection/Annotations" + +#: C/index.docbook:1141(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * function_name:\n" +" * @par1: description of parameter 1. These can extend over more than\n" +" * one line.\n" +" * @par2: description of parameter 2\n" +" * @...: a %NULL-terminated list of bars\n" +" *\n" +" * The function description goes here. You can use @par1 to refer to parameters\n" +" * so that they are highlighted in the output. You can also use %constant\n" +" * for constants, function_name2() for functions and #GtkWidget for links to\n" +" * other declarations (which may be documented elsewhere).\n" +" *\n" +" * Returns: an integer.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Use other_function() instead.\n" +" */\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * function_name:\n" +" * @par1: description of parameter 1. These can extend over more than\n" +" * one line.\n" +" * @par2: description of parameter 2\n" +" * @...: a %NULL-terminated list of bars\n" +" *\n" +" * The function description goes here. You can use @par1 to refer to parameters\n" +" * so that they are highlighted in the output. You can also use %constant\n" +" * for constants, function_name2() for functions and #GtkWidget for links to\n" +" * other declarations (which may be documented elsewhere).\n" +" *\n" +" * Returns: an integer.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Use other_function() instead.\n" +" */\n" +"\n" +" " + +#: C/index.docbook:1164(variablelist/title) +msgid "Function tags" +msgstr "Étiquettes de fonction" + +#: C/index.docbook:1165(varlistentry/term) +msgid "Returns:" +msgstr "« Returns » :" + +#: C/index.docbook:1167(listitem/para) +msgid "Paragraph describing the returned result." +msgstr "Paragraphe décrivant le résultat retourné." + +#: C/index.docbook:1172(varlistentry/term) +msgid "@...:" +msgstr "@...:" + +#: C/index.docbook:1174(listitem/para) +msgid "" +"In case the function has variadic arguments, you should use this tag " +"(@Varargs: does also work for historic reasons)." +msgstr "" +"Au cas où la fonction possède des arguments variables, vous devriez utiliser " +"cette étiquette (@Varargs : peut également être utilisé pour des raisons " +"historiques)." + +#: C/index.docbook:1184(sect2/title) C/index.docbook:1186(example/title) +msgid "Property comment block" +msgstr "Bloc de commentaires pour les propriétés" + +#: C/index.docbook:1187(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * SomeWidget:some-property:\n" +" *\n" +" * Here you can document a property.\n" +" */\n" +"g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * SomeWidget:some-property:\n" +" *\n" +" * Here you can document a property.\n" +" */\n" +"g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);\n" +"\n" +" " + +#: C/index.docbook:1201(sect2/title) C/index.docbook:1220(example/title) +msgid "Signal comment block" +msgstr "Bloc de commentaires pour les signaux" + +#: C/index.docbook:1207(listitem/para) +msgid "" +"Document when the signal is emitted and whether it is emitted before or " +"after other signals." +msgstr "" +"d'indiquer quand le signal est émis et s'il est émis avant ou après d'autres " +"signaux," + +#: C/index.docbook:1213(listitem/para) +msgid "Document what an application might do in the signal handler." +msgstr "" +"d'indiquer ce qu'une application peut faire dans le gestionnaire du signal." + +#: C/index.docbook:1221(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * FooWidget::foobarized:\n" +" * @widget: the widget that received the signal\n" +" * @foo: some foo\n" +" * @bar: some bar\n" +" *\n" +" * The ::foobarized signal is emitted each time someone tries to foobarize @widget.\n" +" */\n" +"foo_signals[FOOBARIZE] =\n" +" g_signal_new (\"foobarize\",\n" +" ...\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * FooWidget::foobarized:\n" +" * @widget: the widget that received the signal\n" +" * @foo: some foo\n" +" * @bar: some bar\n" +" *\n" +" * The ::foobarized signal is emitted each time someone tries to foobarize @widget.\n" +" */\n" +"foo_signals[FOOBARIZE] =\n" +" g_signal_new (\"foobarize\",\n" +" ...\n" +"\n" +" " + +#: C/index.docbook:1240(sect2/title) C/index.docbook:1241(example/title) +msgid "Struct comment block" +msgstr "Bloc de commentaire pour les structures" + +#: C/index.docbook:1242(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: some #gboolean\n" +" *\n" +" * This is the best widget, ever.\n" +" */\n" +"typedef struct _FooWidget {\n" +" /*< private >*/\n" +" GtkWidget parent;\n" +"\n" +" /*< public >*/\n" +" gboolean bar;\n" +"} FooWidget;\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: some #gboolean\n" +" *\n" +" * This is the best widget, ever.\n" +" */\n" +"typedef struct _FooWidget {\n" +" /*< private >*/\n" +" GtkWidget parent;\n" +"\n" +" /*< public >*/\n" +" gboolean bar;\n" +"} FooWidget;\n" +"\n" +" " + +#: C/index.docbook:1261(sect2/para) +msgid "" +"Use /*< private >*/ before the private struct fields you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"Utilisez /*< private >*/ avant les champs de structures " +"privées que vous voulez cacher. Utilisez /*< public >*/ " +"dans le cas contraire." + +#: C/index.docbook:1267(sect2/para) +msgid "" +"Struct comment blocks can also be used for GObjects and GObjectClasses. It " +"is usually a good idea to add a comment block for a class, if it has " +"vmethods (as this is how they can be documented). For the GObject itself one " +"can use the related section docs, having a separate block for the instance " +"struct would be useful if the instance has public fields. One disadvantage " +"here is that this creates two index entries of the same name (the structure " +"and the section)." +msgstr "" +"Les blocs de commentaire pour les structures peuvent aussi être utilisés " +"avec GObjects et GObjectClasses. Il est normalement recommandé d'ajouter un " +"bloc de commentaire pour une classe, si elle contient des vmethods (car " +"c'est la manière de les documenter). Pour GObject, il est possible " +"d'utiliser la documentation de section correspondante ; la présence d'un " +"bloc séparé pour la structure de l'instance serait utile si l'instance " +"possède des champs publics. Le désavantage ici étant que cela crée deux " +"entrées d'index pour le même nom (la structure et la section)." + +#: C/index.docbook:1279(sect2/title) C/index.docbook:1280(example/title) +msgid "Enum comment block" +msgstr "Bloc de commentaire pour les énumérations" + +#: C/index.docbook:1281(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: something foo\n" +" * @SOMETHING_BAR: something bar\n" +" *\n" +" * Enum values used for the thing, to specify the thing.\n" +" *\n" +" **/\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: something foo\n" +" * @SOMETHING_BAR: something bar\n" +" *\n" +" * Enum values used for the thing, to specify the thing.\n" +" *\n" +" **/\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" +"\n" +" " + +#: C/index.docbook:1301(sect2/para) +msgid "" +"Use /*< private >*/ before the private enum values you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"Utilisez /*< private >*/ avant les valeurs d'énumérations " +"privées que vous voulez cacher. Utilisez /*< public >*/ " +"dans le cas contraire." + +#: C/index.docbook:1311(sect1/title) +msgid "Useful DocBook tags" +msgstr "Balises DocBook utiles" + +#: C/index.docbook:1313(sect1/para) +msgid "" +"Here are some DocBook tags which are most useful when documenting the code." +msgstr "" +"Voici quelques balises DocBook très utiles pendant la conception de la " +"documentation d'un code." + +#: C/index.docbook:1322(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hash Tables</link>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hash Tables</link>\n" +"\n" +" " + +#: C/index.docbook:1318(sect1/para) +msgid "" +"To link to another section in the GTK docs: <_:informalexample-1/> The " +"linkend is the SGML/XML id on the top item of the page you want to link to. " +"For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and " +"then the page title (\"Hash Tables\"). For widgets it is just the class " +"name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" +"Pour créer un lien vers une autre section dans la documentation GTK : <_:" +"informalexample-1/> l'élément « linkend » est l'identifiant SGML/XML de " +"l'élément le plus haut sur la page vers laquelle vous voulez pointer. Pour " +"la plupart des pages, c'est en général la partie (« gtk », « gdk », " +"« glib ») suivi du titre de la page (« Hash Tables »). Pour les éléments " +"graphiques, c'est simplement le nom de la classe. Les espaces et les " +"caractères de soulignement sont convertis en « - » pour être conforme au " +"SGML/XML." + +#: C/index.docbook:1337(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<function>...</function>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<function>...</function>\n" +"\n" +" " + +#: C/index.docbook:1334(sect1/para) +msgid "" +"To refer to an external function, e.g. a standard C function: <_:" +"informalexample-1/>" +msgstr "" +"Pour faire référence à une fonction externe comme, par exemple, à une " +"fonction C standard : <_:informalexample-1/>" + +#: C/index.docbook:1348(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<example>\n" +" <title>Using a GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<example>\n" +" <title>Using a GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" +"\n" +" " + +#: C/index.docbook:1361(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" +"\n" +" " + +#: C/index.docbook:1345(sect1/para) +msgid "" +"To include example code: <_:informalexample-1/> or possibly this, for very " +"short code fragments which don't need a title: <_:informalexample-2/> For " +"the latter GTK-Doc also supports an abbreviation: |[ ... ]|" +msgstr "" +"Pour inclure des extraits de code : <_:informalexample-1/> ou ceci, pour des " +"petits fragments de code qui ne nécessitent pas de titre : <_:" +"informalexample-2/> Pour ces derniers, GTK-Doc prend également en charge une " +"abréviation : |[ ... ]|" + +#: C/index.docbook:1382(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" +"\n" +" " + +#: C/index.docbook:1379(sect1/para) +msgid "To include bulleted lists: <_:informalexample-1/>" +msgstr "Pour ajouter une liste à puces : <_:informalexample-1/>" + +#: C/index.docbook:1404(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<note>\n" +" <para>\n" +" Make sure you free the data after use.\n" +" </para>\n" +"</note>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<note>\n" +" <para>\n" +" Make sure you free the data after use.\n" +" </para>\n" +"</note>\n" +"\n" +" " + +#: C/index.docbook:1401(sect1/para) +msgid "" +"To include a note which stands out from the text: <_:informalexample-1/>" +msgstr "Pour ajouter une note de bas de page : <_:informalexample-1/>" + +#: C/index.docbook:1419(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<type>unsigned char</type>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<type>unsigned char</type>\n" +"\n" +" " + +#: C/index.docbook:1416(sect1/para) +msgid "To refer to a type: <_:informalexample-1/>" +msgstr "Pour se référer à un type : <_:informalexample-1/>" + +#: C/index.docbook:1430(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<structname>XFontStruct</structname>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<structname>XFontStruct</structname>\n" +"\n" +" " + +#: C/index.docbook:1427(sect1/para) +msgid "" +"To refer to an external structure (not one described in the GTK docs): <_:" +"informalexample-1/>" +msgstr "" +"Pour se référer à une structure externe (non décrite dans la documentation " +"GTK) : <_:informalexample-1/>" + +#: C/index.docbook:1441(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<structfield>len</structfield>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<structfield>len</structfield>\n" +"\n" +" " + +#: C/index.docbook:1438(sect1/para) +msgid "To refer to a field of a structure: <_:informalexample-1/>" +msgstr "Pour se référer à un champ d'une structure : <_:informalexample-1/>" + +#: C/index.docbook:1452(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<classname>GtkWidget</classname>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<classname>GtkWidget</classname>\n" +"\n" +" " + +#: C/index.docbook:1449(sect1/para) +msgid "" +"To refer to a class name, we could possibly use: <_:informalexample-1/> but " +"you'll probably be using #GtkWidget instead (to automatically create a link " +"to the GtkWidget page - see the " +"abbreviations)." +msgstr "" +"Pour se référer au nom d'une classe, il est possible d'utiliser : <_:" +"informalexample-1/> mais vous utiliserez probablement #GtkWidget à la place " +"(pour créer automatiquement un lien vers la page GtkWidget - consultez les raccourcis)." + +#: C/index.docbook:1465(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<emphasis>This is important</emphasis>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<emphasis>This is important</emphasis>\n" +"\n" +" " + +#: C/index.docbook:1462(sect1/para) +msgid "To emphasize text: <_:informalexample-1/>" +msgstr "Pour mettre en évidence un texte : <_:informalexample-1/>" + +#: C/index.docbook:1476(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<filename>/home/user/documents</filename>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<filename>/home/user/documents</filename>\n" +"\n" +" " + +#: C/index.docbook:1473(sect1/para) +msgid "For filenames use: <_:informalexample-1/>" +msgstr "Pour les noms de fichiers : <_:informalexample-1/>" + +#: C/index.docbook:1487(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" +"\n" +" " + +#: C/index.docbook:1484(sect1/para) +msgid "To refer to keys use: <_:informalexample-1/>" +msgstr "Pour se référer à des touches : <_:informalexample-1/>" + +#: C/index.docbook:1499(chapter/title) +msgid "Filling the extra files" +msgstr "Remplissage des fichiers supplémentaires" + +#: C/index.docbook:1501(chapter/para) +msgid "" +"There are a couple of extra files, that need to be maintained along with the " +"inline source code comments: <package>.types, " +"<package>-docs.xml (in the past .sgml), " +"<package>-sections.txt." +msgstr "" +"Il y a plusieurs fichiers supplémentaires, qui ont besoin d'être maintenus " +"en parallèle aux commentaires dans le code source : <" +"package>.types, <package>-docs.xml " +"(anciennement .sgml), <package>-sections.txt." + +#: C/index.docbook:1510(sect1/title) +msgid "Editing the types file" +msgstr "Édition du fichier « types »" + +#: C/index.docbook:1512(sect1/para) +msgid "" +"If your library or application includes GtkObjects/GObjects, you want their " +"signals, arguments/parameters and position in the hierarchy to be shown in " +"the documentation. All you need to do, is to list the " +"xxx_get_type functions together with their include " +"inside the <package>.types file." +msgstr "" +"Si votre bibliothèque ou application contient des GtkObjects ou GObjects, " +"vous voudrez que leurs signaux, arguments/paramètres et position dans la " +"hiérarchie soient affichés dans la documentation. Il vous suffit juste de " +"lister les fonctions xxx_get_type ainsi que leur " +"fichier inclus dans le fichier <package>.types." + +#: C/index.docbook:1521(example/title) +msgid "Example types file snippet" +msgstr "Extrait d'un exemple de fichier « types »" + +#: C/index.docbook:1522(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" +"\n" +" " + +#: C/index.docbook:1535(sect1/para) +msgid "" +"Since GTK-Doc 1.8 gtkdoc-scan can generate this " +"list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in " +"Makefile.am. If you use this approach you should not " +"dist the types file nor have it under version control." +msgstr "" +"Depuis GTK-Doc 1.8, gtkdoc-scan peut générer " +"cette liste pour vous. Ajoutez simplement l'option « --rebuild-types » à " +"SCAN_OPTIONS dans le fichier Makefile.am. Si vous " +"utilisez cette approche vous ne devriez pas distribuer le fichier « types », " +"ni l'avoir dans le système de gestion de versions." + +#: C/index.docbook:1544(sect1/title) +msgid "Editing the master document" +msgstr "Édition du document maître" + +#: C/index.docbook:1546(sect1/para) +msgid "" +"GTK-Doc produces documentation in DocBook SGML/XML. When processing the " +"inline source comments, the GTK-Doc tools generate one documentation page " +"per class or module as a separate file. The master document includes them " +"and place them in an order." +msgstr "" +"GTK-Doc génère de la documentation au format SGML/XML DocBook. Lors du " +"traitement des commentaires dans les fichiers sources, les outils GTK-Doc " +"génèrent une page de documentation par classe ou par module dans un fichier " +"séparé. Le document maître les inclut et les place dans l'ordre." + +#: C/index.docbook:1553(sect1/para) +msgid "" +"While GTK-Doc creates a template master document for you, later run will not " +"touch it again. This means that one can freely structure the documentation. " +"That includes grouping pages and adding extra pages. GTK-Doc has now a test " +"suite, where also the master-document is recreated from scratch. Its a good " +"idea to look at this from time to time to see if there are some new goodies " +"introduced there." +msgstr "" +"Une fois que GTK-Doc a créé un prototype de document maître pour vous, il ne " +"va plus y toucher par la suite. Vous pouvez ainsi structurer votre " +"documentation comme vous l'entendez. Vous pouvez regrouper des pages et en " +"ajouter. GTK-Doc possède maintenant une panoplie de tests, dans laquelle " +"même le document maître est recréé à partir de zéro. C'est une bonne idée de " +"regarder cela de temps en temps pour voir s'il n'y a pas des nouveautés " +"intéressantes." + +#: C/index.docbook:1563(tip/para) +msgid "" +"Do not create tutorials as extra documents. Just write extra chapters. The " +"benefit of directly embedding the tutorial for your library into the API " +"documentation is that it is easy to link for the tutorial to symbol " +"documentation. Apart chances are higher that the tutorial gets updates along " +"with the library." +msgstr "" +"Ne créez pas de tutoriels comme documents supplémentaires. Écrivez juste des " +"chapitres supplémentaires. L'avantage d'inclure le tutoriel de votre " +"bibliothèque directement dans la documentation de l'API est qu'il est facile " +"d'y ajouter des liens qui pointent vers la documentation des symboles. De " +"plus, il y aura plus de chance que votre tutoriel soit mis à jour en même " +"temps que la bibliothèque." + +#: C/index.docbook:1572(sect1/para) +msgid "" +"So what are the things to change inside the master document? For a start is " +"only a little. There are some placeholders (text in square brackets) there " +"which you should take care of." +msgstr "" +"Alors, quelles sont les choses à modifier dans le document maître ? Pour " +"commencer, très peu de choses. Il n'y a quelques paramètres substituables " +"(texte entre crochets) que vous devrez prendre en charge." + +#: C/index.docbook:1579(example/title) +msgid "Master document header" +msgstr "En-tête du document maître" + +#: C/index.docbook:1580(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<bookinfo>\n" +" <title>MODULENAME Reference Manual</title>\n" +" <releaseinfo>\n" +" for MODULENAME [VERSION]\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULENAME/index.html\">http://[SERVER]/MODULENAME/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insert title here]</title>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<bookinfo>\n" +" <title>MODULENAME Reference Manual</title>\n" +" <releaseinfo>\n" +" for MODULENAME [VERSION]\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULENAME/index.html\">http://[SERVER]/MODULENAME/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insert title here]</title>\n" +"\n" +" " + +#: C/index.docbook:1601(sect1/title) +msgid "Editing the section file" +msgstr "Édition du fichier section" + +#: C/index.docbook:1603(sect1/para) +msgid "" +"The section file is used to organise the documentation output by GTK-Doc. " +"Here one specifies which symbol belongs to which module or class and control " +"the visibility (public or private)." +msgstr "" +"Le fichier section est utilisé pour organiser la documentation générée par " +"GTK-Doc. C'est ici qu'il faut indiquer quels symboles sont attachés à quels " +"modules ou classes et contrôler la visibilité (« public » ou « private »)." + +#: C/index.docbook:1609(sect1/para) +msgid "" +"The section file is a plain test file with xml like syntax (using tags). " +"Blank lines are ignored and lines starting with a '#' are treated as comment " +"lines." +msgstr "" +"Le fichier section est un fichier texte plat, avec une syntaxe type XML " +"(utilisant des balises). Les lignes blanches sont ignorées et celles " +"commençant par un « # » sont considérées comme des lignes de commentaires." + +#: C/index.docbook:1615(sect1/para) +msgid "" +"The <FILE> ... </FILE> tag is used to specify the file name, " +"without any suffix. For example, using '<FILE>gnome-config</" +"FILE>' will result in the section declarations being output in the " +"template file tmpl/gnome-config.sgml, which will be " +"converted into the DocBook SGML/XML file sgml/gnome-config.sgml or .DocBook XML file xml/gnome-config.xml. " +"(The name of the html file is based on the module name and the section " +"title, or for gobjects it is based on the gobjects class name converted to " +"lower case)." +msgstr "" +"La balise <FILE> ... </FILE> est utilisée pour indiquer le nom " +"du fichier, sans extension. Par exemple, utiliser <FILE>gnome-" +"config</FILE> va entraîner la sortie des déclarations de section dans " +"le fichier prototype tmpl/gnome-config.sgml, qui seront " +"converties dans le fichier SGML/XML DocBook sgml/gnome-config." +"sgml ou le fichier XML DocBook xml/gnome-config.xml (le nom du fichier html est basé sur le nom du module et le titre " +"de la section, ou, pour les gobjects, sur le nom de la classe gobjects " +"converti en minuscule)." + +#: C/index.docbook:1627(sect1/para) +msgid "" +"The <TITLE> ... </TITLE> tag is used to specify the title of the " +"section. It is only useful before the templates (if used) are initially " +"created, since the title set in the template file overrides this. Also if " +"one uses SECTION comment in the sources, this is obsolete." +msgstr "" +"La balise <TITLE> ... </TITLE> est utilisée pour indiquer le " +"titre de la section. C'est utile seulement avant la création initiale des " +"prototypes, car ensuite le titre défini dans le prototype est prioritaire. " +"Elle est également obsolète si des commentaires de SECTION sont utilisés " +"dans les fichiers sources." + +#: C/index.docbook:1634(sect1/para) +msgid "" +"You can group items in the section by using the <SUBSECTION> tag. " +"Currently it outputs a blank line between subsections in the synopsis " +"section. You can also use <SUBSECTION Standard> for standard GObject " +"declarations (e.g. the functions like g_object_get_type and macros like " +"G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the " +"documentation. You can also use <SUBSECTION Private> for private " +"declarations which will not be output (It is a handy way to avoid warning " +"messages about unused declarations.). If your library contains private types " +"which you don't want to appear in the object hierarchy and the list of " +"implemented or required interfaces, add them to a Private subsection. " +"Whether you would place GObject and GObjectClass like structs in public or " +"Standard section depends if they have public entries (variables, vmethods)." +msgstr "" +"Vous pouvez regrouper les éléments dans la section en utilisant la balise " +"<SUBSECTION>. Actuellement, une ligne blanche est ajoutée entre les " +"sous-sections dans la section résumé. Vous pouvez également utiliser <" +"SUBSECTION Standard> pour les déclarations GObject standards (par " +"exemple, les fonctions comme g_object_get_type et les macros comme G_OBJECT" +"(), G_IS_OBJECT(), etc.). Actuellement, elles ne sont pas intégrées dans la " +"documentation. Vous pouvez utiliser <SUBSECTION Private> pour les " +"déclarations privées qui ne seront pas affichées (c'est un moyen pratique " +"d'éviter les messages d'avertissement sur les déclarations inutilisées). Si " +"votre bibliothèque contient des types privés que vous ne souhaitez pas voir " +"apparaître dans la hiérarchie des objets et dans la liste des interfaces " +"implémentées ou nécessaires, ajoutez-les à une sous-section privée. Le choix " +"de placer des GObject ou GObjectClass comme des structures dans une section " +"standard ou publique dépend de la présence d'éléments publics (variables, " +"vmethods)." + +#: C/index.docbook:1653(sect1/para) +msgid "" +"You can also use <INCLUDE> ... </INCLUDE> to specify the " +"#include files which are shown in the synopsis sections. It contains a comma-" +"separate list of #include files, without the angle brackets. If you set it " +"outside of any sections, it acts for all sections until the end of the file. " +"If you set it within a section, it only applies to that section." +msgstr "" +"Vous pouvez utiliser les balises <INCLUDE> ... </INCLUDE> pour " +"indiquer les fichiers #include qui sont affichés dans les sections résumé. " +"Elles contiennent une liste de fichiers #include, séparés par des virgules, " +"sans les chevrons. Si vous les placez en dehors d'une section, elles " +"s'appliquent à toutes les sections jusqu'à la fin du fichier. Si vous les " +"placez dans une section, elles s'appliquent seulement à cette section." + +#: C/index.docbook:1667(chapter/title) +msgid "Controlling the result" +msgstr "Contrôle du résultat" + +#: C/index.docbook:1669(chapter/para) +msgid "" +"A GTK-Doc run generates report files inside the documentation directory. The " +"generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and " +"<package>-unused.txt. All those are plain text " +"files that can be viewed and postprocessed easily." +msgstr "" +"Une exécution de GTK-Doc produit des fichiers de compte-rendu dans le " +"répertoire de documentation. Ces fichiers sont nommés : <" +"package>-undocumented.txt, <package>-" +"undeclared.txt et <package>-unused.txt. Tous ces fichiers texte peuvent être lus et post-traités " +"facilement." + +#: C/index.docbook:1678(chapter/para) +msgid "" +"The <package>-undocumented.txt file starts with " +"the documentation coverage summary. Below are two sections divided by blank " +"lines. The first section lists undocumented or incomplete symbols. The " +"second section does the same for section docs. Incomplete entries are those, " +"which have documentation, but where e.g. a new parameter has been added." +msgstr "" +"Le fichier <package>-undocumented.txt commence " +"avec un résumé du sujet couvert par la documentation. Suivent deux sections " +"séparées par des lignes blanches. La première section liste les symboles non " +"documentés ou incomplets. La seconde section fait de même pour les " +"documentations de sections. Les éléments incomplets sont ceux qui possèdent " +"une documentation mais auxquels, par exemple, un paramètre a été ajouté." + +#: C/index.docbook:1687(chapter/para) +msgid "" +"The <package>-undeclared.txt file lists symbols " +"given in the <package>-sections.txt but not found " +"in the sources. Check if they have been removed or if they are misspelled." +msgstr "" +"Le fichier <package>-undeclared.txt liste les " +"symboles contenus dans le fichier <package>-sections.txt mais non trouvés dans les fichiers sources. Vérifiez s'ils n'ont " +"pas été supprimés ou mal orthographiés." + +#: C/index.docbook:1694(chapter/para) +msgid "" +"The <package>-unused.txt file lists symbol names, " +"where the GTK-Doc scanner has found documentation, but does not know where " +"to put it. This means that the symbol has not yet been added to the " +"<package>-sections.txt file." +msgstr "" +"Le fichier <package>-unused.txt liste les noms " +"des symboles pour lesquels l'analyseur GTK-Doc a trouvé de la documentation " +"mais ne sait pas où la placer. Cela signifie que le symbole n'a pas encore " +"été ajouté au fichier <package>-sections.txt." + +#: C/index.docbook:1702(tip/para) +msgid "" +"Enable or add the line in Makefile." +"am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during " +"make check run." +msgstr "" +"Activez ou ajoutez la ligne dans le " +"fichier Makefile.am. Si la version installée de GTK-Doc est supérieure à " +"1.9, des contrôles de validité seront lancés pendant l'exécution de " +"make check." + +#: C/index.docbook:1709(chapter/para) +msgid "" +"One can also look at the files produced by the source code scanner: " +"<package>-decl-list.txt and <" +"package>-decl.txt. The first one can be compared with the " +"section file if that is manually maintained. The second lists all " +"declarations from the headers If a symbol is missing one could check if this " +"file contains it." +msgstr "" +"Vous pouvez également regarder les fichiers produits par le scanneur de code " +"source : <package>-decl-list.txt et <" +"package>-decl.txt. Le premier peut être comparé avec le " +"fichier section s'il est maintenu manuellement. Le second liste toutes les " +"déclarations contenues dans les fichiers en-tête. Si un symbole est " +"manquant, il faut vérifier si ce fichier le contient." + +#: C/index.docbook:1718(chapter/para) +msgid "" +"If the project is GObject based, one can also look into the files produced " +"by the object scanner: <package>.args.txt, " +"<package>.hierarchy.txt, <" +"package>.interfaces.txt, <package>." +"prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask gtkdoc " +"to keep the intermediate scanner file for further analysis, but running it " +"as GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" +"Si le projet est basé sur GObject, il est possible de regarder dans les " +"fichiersgénérés par le scanneur d'objet : <package>.args." +"txt, <package>.hierarchy.txt, " +"<package>.interfaces.txt, <" +"package>.prerequisites.txt et <package>." +"signals.txt. S'il manque des symboles dans l'un d'eux, il est " +"possible de demander à gtkdoc de conserver le fichier de scanneur " +"intermédiaire pour en faire une analyse ultérieure mais en le lançant comme " +"GTK_DOC_KEEP_INTERMEDIATE=1 make." + +#: C/index.docbook:1733(chapter/title) +msgid "Documenting other interfaces" +msgstr "Documentation d'autres interfaces" + +#: C/index.docbook:1735(chapter/para) +msgid "" +"So far we have been using GTK-Doc to document the API of code. The next " +"sections contain suggestions how the tools can be used to document other " +"interfaces too." +msgstr "" +"Nous avons jusqu'ici utilisé GTK-Doc pour documenter les API du code. Les " +"sections qui suivent contiennent des suggestions sur la manière d'utiliser " +"les outils pour documenter aussi d'autres interfaces." + +#: C/index.docbook:1742(sect1/title) +msgid "Command line options and man pages" +msgstr "Options de ligne de commande et pages de manuel" + +#: C/index.docbook:1744(sect1/para) +msgid "" +"As one can generate man pages for a docbook refentry as well, it sounds like " +"a good idea to use it for that purpose. This way the interface is part of " +"the reference and one gets the man-page for free." +msgstr "" +"Comme il est possible de générer aussi des pages de manuel à partir d'une " +"« refentry » DocBook, il semble donc intéressant de l'utiliser dans ce but. " +"Ainsi, l'interface fait partie de la référence et l'on obtient en cadeau la " +"page de manuel." + +#: C/index.docbook:1751(sect2/title) +msgid "Document the tool" +msgstr "Documentation de l'outil" + +#: C/index.docbook:1753(sect2/para) +msgid "" +"Create one refentry file per tool. Following our example we would call it meep/" +"docs/reference/meeper/meep.xml. For the xml tags that should be " +"used and can look at generated file in the xml subdirectory as well as " +"examples e.g. in glib." +msgstr "" +"Créez un fichier « refentry » par outil. En suivant notre exemple, nous l'appellerons " +"meep/docs/reference/meeper/meep.xml. Pour connaître les " +"balises XML pouvant être utilisées, on peut observer le fichier généré dans " +"le sous-répertoire xml ou des exemples comme dans glib." + +#: C/index.docbook:1763(sect2/title) +msgid "Adding the extra configure check" +msgstr "Ajout de contrôles « configure » supplémentaires" + +#: C/index.docbook:1766(example/title) C/index.docbook:1786(example/title) +msgid "Extra configure checks" +msgstr "Contrôles « configure » supplémentaires" + +#: C/index.docbook:1767(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [regenerate man pages from Docbook [default=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [regenerate man pages from Docbook [default=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" +"\n" +" " + +#: C/index.docbook:1783(sect2/title) +msgid "Adding the extra makefile rules" +msgstr "Ajout de règles « makefile » supplémentaires" + +#: C/index.docbook:1787(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" +"\n" +" " + +#: C/index.docbook:1811(sect1/title) +msgid "DBus interfaces" +msgstr "Interfaces DBus" + +#: C/index.docbook:1813(sect1/para) +msgid "" +"(FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://" +"cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" +msgstr "" +"(À_CORRIGER : http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, " +"http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" + +#: C/index.docbook:1822(chapter/title) +msgid "Frequently asked questions" +msgstr "Foire aux questions" + +#: C/index.docbook:1826(segmentedlist/segtitle) +msgid "Question" +msgstr "Question " + +#: C/index.docbook:1827(segmentedlist/segtitle) +msgid "Answer" +msgstr "Réponse " + +#: C/index.docbook:1829(seglistitem/seg) +msgid "No class hierarchy." +msgstr "Pas de hiérarchie de classe." + +#: C/index.docbook:1830(seglistitem/seg) +msgid "" +"The objects xxx_get_type() function has not been " +"entered into the <package>.types file." +msgstr "" +"Les fonctions objet xxx_get_type() n'ont pas été " +"saisies dans le fichier <module>.types." + +#: C/index.docbook:1836(seglistitem/seg) +msgid "Still no class hierarchy." +msgstr "Toujours pas de hiérarchie de classe." + +#: C/index.docbook:1837(seglistitem/seg) +msgid "" +"Missing or wrong naming in <package>-sections.txt " +"file (see explanation)." +msgstr "" +"Mauvais nom ou nom absent dans le fichier <module>-sections." +"txt (consultez une explication)." + +#: C/index.docbook:1843(seglistitem/seg) +msgid "Damn, I have still no class hierarchy." +msgstr "Zut, je n'ai toujours pas de hiérarchie de classe." + +#: C/index.docbook:1844(seglistitem/seg) +msgid "" +"Is the object name (name of the instance struct, e.g. GtkWidget) part of the normal section (don't put this into Standard or Private " +"subsections)." +msgstr "" +"Est-ce que le nom de l'objet (nom de la structure de l'instance, par ex. " +"GtkWidget) fait parti de la section « normal » (ne pas le " +"mettre dans les sous-sections « Standard » ou « Private »)." + +#: C/index.docbook:1851(seglistitem/seg) +msgid "No symbol index." +msgstr "Pas d'index des symboles." + +#: C/index.docbook:1852(seglistitem/seg) +msgid "" +"Does the <package>-docs.{xml,sgml} contain a " +"index that xi:includes the generated index?" +msgstr "" +"Est-ce que <module>-docs.{xml,sgml} contient un " +"index qui « xi:includes » l'index généré ?" + +#: C/index.docbook:1858(seglistitem/seg) +msgid "Symbols are not linked to their doc-section." +msgstr "Les symboles ne sont pas liés à leur section de documentation." + +#: C/index.docbook:1859(seglistitem/seg) +msgid "" +"Is the doc-comment using the correct markup (added #,% or ())? Check if the " +"gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" +"Est-ce que doc-comment utilise le markup correct (ajout d'un #, % ou ()) ? " +"Contrôlez si gtkdoc-fixxref affiche des avertissements à propos de xrefs non " +"résolus." + +#: C/index.docbook:1865(seglistitem/seg) +msgid "A new class does not appear in the docs." +msgstr "Une nouvelle classe n'apparaît pas dans les documents." + +#: C/index.docbook:1866(seglistitem/seg) +msgid "" +"Is the new page xi:included from <package>-docs.{xml,sgml}." +msgstr "" +"Est-ce que la nouvelle page est xi:included à partir de <" +"module>-docs.{xml,sgml}." + +#: C/index.docbook:1872(seglistitem/seg) +msgid "A new symbol does not appear in the docs." +msgstr "Un nouveau symbole n'apparaît pas dans les documents." + +#: C/index.docbook:1873(seglistitem/seg) +msgid "" +"Is the doc-comment properly formatted. Check for spelling mistakes in the " +"begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable " +"xrefs. Check if the symbol is correctly listed in the <" +"package>-sections.txt in a public subsection." +msgstr "" +"Est-ce que le doc-comment est correctement formaté. Vérifiez qu'il n'y a pas " +"d'erreur de frappe au début du commentaire. Vérifiez que gtkdoc-fixxref ne " +"vous indique pas de xrefs non résolus. Vérifiez que le symbole est " +"correctement listé dans une section publique de <module>-" +"sections.txt." + +#: C/index.docbook:1881(seglistitem/seg) +msgid "A type is missing from the class hierarchy." +msgstr "Un type est absent dans la hiérarchie de classe." + +#: C/index.docbook:1882(seglistitem/seg) +msgid "" +"If the type is listed in <package>.hierarchy but " +"not in xml/tree_index.sgml then double check that the " +"type is correctly placed in the <package>-sections.txt. If the type instance (e.g. GtkWidget) is not listed " +"or incidentialy makred private it will not be shown." +msgstr "" +"Si le type est listé dans <module>.hierarchy mais " +"pas dans xml/tree_index.sgml alors contrôlez deux-fois " +"que le type est correctement placé dans <module>-sections." +"txt. Si l'instance du type (par ex. GtkWidget) n'est " +"pas listée ou marquée par accident comme privée, elle ne sera pas affichée." + +#: C/index.docbook:1891(seglistitem/seg) +msgid "I get foldoc links for all gobject annotations." +msgstr "J'obtiens des liens foldoc pour toutes les annotations gobject." + +#: C/index.docbook:1892(seglistitem/seg) +msgid "" +"Check that xml/annotation-glossary.xml is xi:included " +"from <package>-docs.{xml,sgml}." +msgstr "" +"Vérifiez que xml/annotation-glossary.xml est xi:" +"included à partir de <module>-docs.{xml,sgml}." + +#: C/index.docbook:1900(seglistitem/seg) +msgid "Parameter described in source code comment block but does not exist" +msgstr "" +"Un paramètre est décrit dans le bloc de commentaires dans le code source " +"mais il n'existe pas." + +#: C/index.docbook:1901(seglistitem/seg) +msgid "" +"Check if the prototype in the header has different parameter names as in the " +"source." +msgstr "" +"Vérifiez si le prototype dans le fichier d'en-tête possède des noms de " +"paramètres différents de ceux du fichier source." + +#: C/index.docbook:1906(seglistitem/seg) +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "« ID » multiples pour le linkend: XYZ contraint" + +#: C/index.docbook:1907(seglistitem/seg) +msgid "" +"Symbol XYZ appears twice in <package>-sections.txt file." +msgstr "" +"Le symbole XYZ apparaît en double dans le fichier <module>-" +"sections.txt." + +#: C/index.docbook:1910(seglistitem/seg) +msgid "" +"Element typename in namespace '' encountered in para, but no template " +"matches." +msgstr "" +"Élément typename dans l'espace de nom '' rencontré dans para mais aucun " +"prototype ne correspond." + +#: C/index.docbook:1917(chapter/title) +msgid "Tools related to gtk-doc" +msgstr "Outils liés à gtk-doc" + +#: C/index.docbook:1919(chapter/para) +msgid "" +"GtkDocPlugin - a Trac " +"GTK-Doc integration plugin, that adds api docs to a trac site and " +"integrates with the trac search." +msgstr "" +"GtkDocPlugin - un greffon d'intégration à Trac, qui ajoute la documentation d'API à un " +"site Trac et s'intègre à la recherche Trac." + +#: C/index.docbook:1924(chapter/para) +msgid "" +"Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since " +"tags in the api to determine the minimum required version." +msgstr "" +"Gtkdoc-depscan - un outil (intégré à gtk-doc) qui vérifie les API utilisées " +"pour déterminer la version minimale requise." + +#: C/index.docbook:12(appendixinfo/releaseinfo) +#: C/fdl-appendix.xml:12(appendixinfo/releaseinfo) +msgid "Version 1.1, March 2000" +msgstr "Version 1.1, mars 2000" + +#: C/index.docbook:15(appendixinfo/copyright) +msgid "2000Free Software Foundation, Inc." +msgstr "2000Free Software Foundation, Inc." + +#: C/index.docbook:20(para/address) +#, no-wrap +msgid "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" +msgstr "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" + +#: C/index.docbook:19(legalnotice/para) +#: C/fdl-appendix.xml:19(legalnotice/para) +msgid "" +"<_:address-1/> Everyone is permitted to copy and distribute verbatim copies " +"of this license document, but changing it is not allowed." +msgstr "" +"<_:address-1/> Chacun est libre de copier et de distribuer des copies " +"conformes de cette Licence, mais nul n'est autorisé à la modifier." + +#: C/index.docbook:28(appendix/title) C/fdl-appendix.xml:28(appendix/title) +#: C/fdl-appendix.xml:642(para/quote) +msgid "GNU Free Documentation License" +msgstr "Licence de Documentation Libre GNU" + +#: C/index.docbook:31(sect1/title) C/fdl-appendix.xml:31(sect1/title) +msgid "0. PREAMBLE" +msgstr "0. Préambule" + +#: C/index.docbook:32(sect1/para) +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document free in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" +"L'objet de cette Licence est de rendre tout manuel, livre ou autre document " +"écrit libre au sens de la liberté d'utilisation, à savoir : " +"assurer à chacun la liberté effective de le copier ou de le redistribuer, " +"avec ou sans modifications, commercialement ou non. En outre, cette Licence " +"garantit à l'auteur et à l'éditeur la reconnaissance de leur travail, sans " +"qu'ils soient pour autant considérés comme responsables des modifications " +"réalisées par des tiers." + +#: C/index.docbook:43(sect1/para) +msgid "" +"This License is a kind of copyleft, which means that " +"derivative works of the document must themselves be free in the same sense. " +"It complements the GNU General Public License, which is a copyleft license " +"designed for free software." +msgstr "" +"Cette Licence est une sorte de copyleft, ce qui signifie que " +"les travaux dérivés du document d'origine sont eux-mêmes « libres » selon " +"les mêmes termes. Elle complète la Licence Publique Générale GNU, qui est " +"également une Licence copyleft, conçue pour les logiciels libres." + +#: C/index.docbook:50(sect1/para) C/fdl-appendix.xml:50(sect1/para) +msgid "" +"We have designed this License in order to use it for manuals for free " +"software, because free software needs free documentation: a free program " +"should come with manuals providing the same freedoms that the software does. " +"But this License is not limited to software manuals; it can be used for any " +"textual work, regardless of subject matter or whether it is published as a " +"printed book. We recommend this License principally for works whose purpose " +"is instruction or reference." +msgstr "" +"Nous avons conçu cette Licence pour la documentation des logiciels libres, " +"car les logiciels libres ont besoin d'une documentation elle-même libre : un " +"logiciel libre doit être accompagné d'un manuel garantissant les mêmes " +"libertés que celles accordées par le logiciel lui-même. Mais cette Licence " +"n'est pas limitée aux seuls manuels des logiciels ; elle peut être utilisée " +"pour tous les documents écrits, sans distinction particulière relative au " +"sujet traité ou au mode de publication. Nous recommandons l'usage de cette " +"Licence principalement pour les travaux destinés à des fins d'enseignement " +"ou devant servir de documents de référence." + +#: C/index.docbook:62(sect1/title) C/fdl-appendix.xml:62(sect1/title) +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "1. APPLICABILITÉ ET DÉFINITIONS" + +#: C/index.docbook:63(sect1/para) +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The Document, below, refers to any such " +"manual or work. Any member of the public is a licensee, and is addressed as " +"you." +msgstr "" +"Cette Licence couvre tout manuel ou tout autre travail écrit contenant une " +"notice de copyright autorisant la redistribution selon les termes de cette " +"Licence. Le mot Document se réfère ci-après à un tel manuel " +"ou travail. Toute personne en est par définition concessionnaire et est " +"référencée ci-après par le terme Vous." + +#: C/index.docbook:72(sect1/para) +msgid "" +"A Modified Version of the Document means any work containing " +"the Document or a portion of it, either copied verbatim, or with " +"modifications and/or translated into another language." +msgstr "" +"Une Version modifiée du Document désigne tout travail en " +"contenant la totalité ou seulement une portion de celui-ci, copiée mot pour " +"mot, modifiée et/ou traduite dans une autre langue." + +#: C/index.docbook:79(sect1/para) +msgid "" +"A Secondary Section is a named appendix or a front-matter " +"section of the Document that deals " +"exclusively with the relationship of the publishers or authors of the " +"Document to the Document's overall subject (or to related matters) and " +"contains nothing that could fall directly within that overall subject. (For " +"example, if the Document is in part a textbook of mathematics, a Secondary " +"Section may not explain any mathematics.) The relationship could be a matter " +"of historical connection with the subject or with related matters, or of " +"legal, commercial, philosophical, ethical or political position regarding " +"them." +msgstr "" +"Une Section secondaire désigne une annexe au Document, ou toute information indiquant les " +"rapports entre l'auteur ou l'éditeur et le sujet (ou tout autre sujet " +"connexe) du Document, sans toutefois être en rapport direct avec le sujet " +"lui-même (par exemple, si le Document est un manuel de mathématiques, une " +"Section secondaire ne traitera d'aucune notion mathématique). Cette section " +"peut contenir des informations relatives à l'historique du Document, des " +"sources documentaires, des dispositions légales, commerciales, " +"philosophiques, ou des positions éthiques ou politiques susceptibles de " +"concerner le sujet traité." + +#: C/index.docbook:94(sect1/para) +msgid "" +"The Invariant Sections are certain Secondary Sections whose titles are designated, as being " +"those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" +"Les Sections inaltérables sont des sections secondaires considérées comme ne pouvant être " +"modifiées et citées comme telles dans la notice légale qui place le Document sous cette Licence." + +#: C/index.docbook:103(sect1/para) +msgid "" +"The Cover Texts are certain short passages of text that are " +"listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says " +"that the Document is released under " +"this License." +msgstr "" +"Les Textes de couverture sont les textes courts situés sur " +"les pages de couverture avant et arrière du Document, et cités comme tels dans la mention légale de ce Document." + +#: C/index.docbook:111(sect1/para) +msgid "" +"A Transparent copy of the " +"Document means a machine-readable copy, represented in a format whose " +"specification is available to the general public, whose contents can be " +"viewed and edited directly and straightforwardly with generic text editors " +"or (for images composed of pixels) generic paint programs or (for drawings) " +"some widely available drawing editor, and that is suitable for input to text " +"formatters or for automatic translation to a variety of formats suitable for " +"input to text formatters. A copy made in an otherwise Transparent file " +"format whose markup has been designed to thwart or discourage subsequent " +"modification by readers is not Transparent. A copy that is not " +"Transparent is called Opaque." +msgstr "" +"Le terme Copie transparente désigne une version numérique du " +" Document représentée dans un format " +"dont les spécifications sont publiquement disponibles et dont le contenu " +"peut être visualisé et édité directement et immédiatement par un éditeur de " +"texte quelconque, ou (pour les images composées de pixels) par un programme " +"de traitement d'images quelconque, ou (pour les dessins) par un éditeur de " +"dessins courant. Ce format doit pouvoir être accepté directement ou être " +"convertible facilement dans des formats utilisables directement par des " +"logiciels de formatage de texte. Une copie publiée dans un quelconque format " +"numérique ouvert mais dont la structure a été conçue dans le but exprès de " +"prévenir les modifications ultérieures du Document ou dans le but d'en " +"décourager les lecteurs n'est pas considérée comme une Copie Transparente. " +"Une copie qui n'est pas Transparente est considérée, par " +"opposition, comme Opaque." + +#: C/index.docbook:128(sect1/para) C/fdl-appendix.xml:128(sect1/para) +msgid "" +"Examples of suitable formats for Transparent copies include plain ASCII " +"without markup, Texinfo input format, LaTeX input format, SGML or XML using " +"a publicly available DTD, and standard-conforming simple HTML designed for " +"human modification. Opaque formats include PostScript, PDF, proprietary " +"formats that can be read and edited only by proprietary word processors, " +"SGML or XML for which the DTD and/or processing tools are not generally " +"available, and the machine-generated HTML produced by some word processors " +"for output purposes only." +msgstr "" +"Le format de fichier texte codé en ASCII générique et n'utilisant pas de " +"balises, les formats de fichiers Texinfo ou LaTeX, les formats de fichiers " +"SGML ou XML utilisant une DTD publiquement accessible, ainsi que les formats " +"de fichiers HTML simple et standard, écrits de telle sorte qu'ils sont " +"modifiables sans outil spécifique, sont des exemples de formats acceptables " +"pour la réalisation de Copies Transparentes. Les formats suivants sont " +"opaques : PostScript, PDF, formats de fichiers propriétaires qui ne peuvent " +"être visualisés ou édités que par des traitements de textes propriétaires, " +"SGML et XML utilisant des DTD et/ou des outils de formatage qui ne sont pas " +"disponibles publiquement, et du code HTML généré par une machine à l'aide " +"d'un traitement de texte quelconque et dans le seul but de la génération " +"d'un format de sortie." + +#: C/index.docbook:141(sect1/para) +msgid "" +"The Title Page means, for a printed book, the title page " +"itself, plus such following pages as are needed to hold, legibly, the " +"material this License requires to appear in the title page. For works in " +"formats which do not have any title page as such, Title Page " +"means the text near the most prominent appearance of the work's title, " +"preceding the beginning of the body of the text." +msgstr "" +"La Page de titre désigne, pour les ouvrages imprimés, la page " +"de titre elle-même, ainsi que les pages supplémentaires nécessaires pour " +"fournir clairement les informations dont cette Licence impose la présence " +"sur la page de titre. Pour les travaux n'ayant pas de Page de titre comme " +"décrit ci-dessus, la Page de titre désigne le texte qui " +"s'apparente le plus au titre du document et situé avant le texte principal." + +#: C/index.docbook:153(sect1/title) C/fdl-appendix.xml:153(sect1/title) +msgid "2. VERBATIM COPYING" +msgstr "2. COPIES CONFORMES" + +#: C/index.docbook:154(sect1/para) +msgid "" +"You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that " +"this License, the copyright notices, and the license notice saying this " +"License applies to the Document are reproduced in all copies, and that you " +"add no other conditions whatsoever to those of this License. You may not use " +"technical measures to obstruct or control the reading or further copying of " +"the copies you make or distribute. However, you may accept compensation in " +"exchange for copies. If you distribute a large enough number of copies you " +"must also follow the conditions in section 3." +msgstr "" +"Vous pouvez copier et distribuer le Document sur tout type de support, commercialement ou non, à condition que " +"cette Licence, la notice de copyright et la notice de la Licence indiquant " +"que cette Licence s'applique à ce Document soient reproduits dans toutes les " +"copies, et que vous n'y ajoutiez aucune condition restrictive " +"supplémentaire. Vous ne pouvez pas utiliser un quelconque moyen technique " +"visant à empêcher ou à contrôler la lecture ou la reproduction ultérieure " +"des copies que vous avez créées ou distribuées. Toutefois, vous pouvez " +"solliciter une rétribution en échange des copies. Si vous distribuez une " +"grande quantité de copies, référez-vous aux dispositions de la section 3." + +#: C/index.docbook:169(sect1/para) C/fdl-appendix.xml:169(sect1/para) +msgid "" +"You may also lend copies, under the same conditions stated above, and you " +"may publicly display copies." +msgstr "" +"Vous pouvez également prêter des copies, sous les mêmes conditions que " +"celles suscitées, et vous pouvez afficher publiquement des copies de ce " +"Document." + +#: C/index.docbook:176(sect1/title) C/fdl-appendix.xml:176(sect1/title) +msgid "3. COPYING IN QUANTITY" +msgstr "3. COPIES EN NOMBRE" + +#: C/index.docbook:177(sect1/para) +msgid "" +"If you publish printed copies of the Document numbering more than 100, and the Document's license " +"notice requires Cover Texts, you " +"must enclose the copies in covers that carry, clearly and legibly, all these " +"Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on " +"the back cover. Both covers must also clearly and legibly identify you as " +"the publisher of these copies. The front cover must present the full title " +"with all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as " +"verbatim copying in other respects." +msgstr "" +"Si vous publiez des copies imprimées de ce Document à plus de 100 exemplaires et que la Licence du Document " +"indique la présence de Textes de " +"couverture, vous devez fournir une couverture pour chaque copie, qui " +"présente les Textes de couverture des première et dernière pages de " +"couverture du Document. Les première et dernière pages de couverture doivent " +"également vous identifier clairement et sans ambiguïté comme étant l'éditeur " +"de ces copies. La première page de couverture doit comporter le titre du " +"Document en mots d'importance et de visibilité égales. Vous pouvez ajouter " +"des informations complémentaires sur les pages de couverture. Les copies du " +"Document dont seule la couverture a été modifiée peuvent être considérées " +"comme des copies conformes, à condition que le titre du Document soit préservé et que les conditions indiquées " +"précédemment soient respectées." + +#: C/index.docbook:195(sect1/para) C/fdl-appendix.xml:195(sect1/para) +msgid "" +"If the required texts for either cover are too voluminous to fit legibly, " +"you should put the first ones listed (as many as fit reasonably) on the " +"actual cover, and continue the rest onto adjacent pages." +msgstr "" +"Si les textes devant se trouver sur la couverture sont trop importants pour " +"y tenir de manière claire, vous pouvez ne placer que les premiers sur la " +"première page et placer les suivants sur les pages consécutives." + +#: C/index.docbook:202(sect1/para) +msgid "" +"If you publish or distribute Opaque " +"copies of the Document numbering more " +"than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state " +"in or with each Opaque copy a publicly-accessible computer-network location " +"containing a complete Transparent copy of the Document, free of added " +"material, which the general network-using public has access to download " +"anonymously at no charge using public-standard network protocols. If you use " +"the latter option, you must take reasonably prudent steps, when you begin " +"distribution of Opaque copies in quantity, to ensure that this Transparent " +"copy will remain thus accessible at the stated location until at least one " +"year after the last time you distribute an Opaque copy (directly or through " +"your agents or retailers) of that edition to the public." +msgstr "" +"Si vous publiez plus de 100 Copies " +"opaques du Document, vous devez " +"soit fournir une Copie transparente pour chaque Copie opaque, soit préciser " +"ou fournir avec chaque Copie opaque une adresse réseau publiquement " +"accessible d'une Copie transparente " +"et complète du Document, sans aucun ajout ou modification, et à laquelle " +"tout le monde peut accéder en téléchargement anonyme et sans frais, selon " +"des protocoles réseau communs et standard. Si vous choisissez cette dernière " +"option, vous devez prendre les dispositions nécessaires, dans la limite du " +"raisonnable, afin de garantir l'accès non restrictif à la Copie transparente " +"durant une année pleine après la diffusion publique de la dernière Copie " +"opaque(directement ou via vos revendeurs)." + +#: C/index.docbook:222(sect1/para) +msgid "" +"It is requested, but not required, that you contact the authors of the Document well before redistributing any " +"large number of copies, to give them a chance to provide you with an updated " +"version of the Document." +msgstr "" +"Nous recommandons, mais ce n'est pas obligatoire, que vous contactiez " +"l'auteur du Document suffisamment tôt " +"avant toute publication d'un grand nombre de copies, afin de lui permettre " +"de vous donner une version à jour du Document." + +#: C/index.docbook:231(sect1/title) C/fdl-appendix.xml:231(sect1/title) +msgid "4. MODIFICATIONS" +msgstr "4. MODIFICATIONS" + +#: C/index.docbook:232(sect1/para) +msgid "" +"You may copy and distribute a Modified " +"Version of the Document under " +"the conditions of sections 2 and 3 above, provided that you release the " +"Modified Version under precisely this License, with the Modified Version " +"filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" +"Vous pouvez copier et distribuer une Version " +"modifiée du Document en " +"respectant les conditions des sections 2 et 3 précédentes, à condition de " +"placer cette Version modifiée sous la présente Licence, dans laquelle le " +"terme « Document » doit être remplacé par les termes « Version modifiée », " +"donnant ainsi l'autorisation de redistribuer et de modifier cette Version " +"modifiée à quiconque en possède une copie. De plus, vous devez effectuer les " +"actions suivantes dans la Version modifiée :" + +#: C/index.docbook:248(formalpara/title) +#: C/fdl-appendix.xml:248(formalpara/title) +msgid "A" +msgstr "A" + +#: C/index.docbook:249(formalpara/para) +msgid "" +"Use in the Title Page (and on the " +"covers, if any) a title distinct from that of the Document, and from those of previous versions (which " +"should, if there were any, be listed in the History section of the " +"Document). You may use the same title as a previous version if the original " +"publisher of that version gives permission." +msgstr "" +"Utiliser sur la Page de titre (et " +"sur la page de couverture éventuellement présente) un titre distinct de " +"celui du Document d'origine et de " +"toutes ses versions antérieures (qui, si elles existent, doivent être " +"mentionnées dans la section Historique du Document). Vous pouvez utiliser le " +"même titre si l'éditeur d'origine vous en a donné expressément la permission." + +#: C/index.docbook:264(formalpara/title) +#: C/fdl-appendix.xml:264(formalpara/title) +msgid "B" +msgstr "B" + +#: C/index.docbook:265(formalpara/para) +msgid "" +"List on the Title Page, as authors, " +"one or more persons or entities responsible for authorship of the " +"modifications in the Modified Version, " +"together with at least five of the principal authors of the Document (all of its principal authors, if it has " +"less than five)." +msgstr "" +"Mentionner sur la Page de titre en " +"tant qu'auteurs une ou plusieurs des personnes ou entités responsables des " +"modifications de la Version modifiée, " +"avec au moins les cinq principaux auteurs du Document (ou tous les auteurs s'il y en a moins de cinq)." + +#: C/index.docbook:279(formalpara/title) +#: C/fdl-appendix.xml:279(formalpara/title) +msgid "C" +msgstr "C" + +#: C/index.docbook:280(formalpara/para) +msgid "" +"State on the Title Page the name of " +"the publisher of the Modified Version, " +"as the publisher." +msgstr "" +"Préciser sur la Page de titre le nom " +"de l'éditeur de la Version modifiée, " +"en tant qu'éditeur du Document." + +#: C/index.docbook:291(formalpara/title) +#: C/fdl-appendix.xml:291(formalpara/title) +msgid "D" +msgstr "D" + +#: C/index.docbook:292(formalpara/para) +msgid "" +"Preserve all the copyright notices of the Document." +msgstr "" +"Préserver intégralement toutes les notices de copyright du Document." + +#: C/index.docbook:301(formalpara/title) +#: C/fdl-appendix.xml:301(formalpara/title) +msgid "E" +msgstr "E" + +#: C/index.docbook:302(formalpara/para) +#: C/fdl-appendix.xml:302(formalpara/para) +msgid "" +"Add an appropriate copyright notice for your modifications adjacent to the " +"other copyright notices." +msgstr "" +"Ajouter une notice de copyright adjacente aux autres notices pour vos " +"propres modifications." + +#: C/index.docbook:311(formalpara/title) +#: C/fdl-appendix.xml:311(formalpara/title) +msgid "F" +msgstr "F" + +#: C/index.docbook:312(formalpara/para) +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the Modified " +"Version under the terms of this License, in the form shown in the " +"Addendum below." +msgstr "" +"Inclure immédiatement après les notices de copyright une notice donnant à " +"quiconque l'autorisation d'utiliser la Version modifiée selon les termes de cette Licence, sous la forme " +"présentée dans l'annexe indiquée ci-dessous." + +#: C/index.docbook:324(formalpara/title) +#: C/fdl-appendix.xml:324(formalpara/title) +msgid "G" +msgstr "G" + +#: C/index.docbook:325(formalpara/para) +msgid "" +"Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" +"Préserver dans cette notice la liste complète des Sections inaltérables et les Textes de couverture donnés avec la notice de la Licence du " +"Document." + +#: C/index.docbook:337(formalpara/title) +#: C/fdl-appendix.xml:337(formalpara/title) +msgid "H" +msgstr "H" + +#: C/index.docbook:338(formalpara/para) +#: C/fdl-appendix.xml:338(formalpara/para) +msgid "Include an unaltered copy of this License." +msgstr "Inclure une copie non modifiée de cette Licence." + +#: C/index.docbook:346(formalpara/title) +#: C/fdl-appendix.xml:346(formalpara/title) +msgid "I" +msgstr "I" + +#: C/index.docbook:347(formalpara/para) +msgid "" +"Preserve the section entitled History, and its title, and add " +"to it an item stating at least the title, year, new authors, and publisher " +"of the Modified Version as given on " +"the Title Page. If there is no " +"section entitled History in the Document, create one stating the title, year, authors, and " +"publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" +"Préserver la section nommée Historique et son titre, et y " +"ajouter une nouvelle entrée décrivant le titre, l'année, les nouveaux " +"auteurs et l'éditeur de la Version modifiée, tels que décrits sur la Page de " +"titre, ainsi qu'un descriptif des modifications apportées depuis la " +"précédente version. S'il n'y a pas de section nommée Historique dans le Document, créer une " +"telle section précisant le titre, l'année, les auteurs et l'éditeur du " +"Document tel que précisé sur la Page de " +"titre, et ajouter une entrée décrivant la Version modifiée tel que précisé dans la phrase précédente." + +#: C/index.docbook:365(formalpara/title) +#: C/fdl-appendix.xml:365(formalpara/title) +msgid "J" +msgstr "J" + +#: C/index.docbook:366(formalpara/para) +msgid "" +"Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the " +"network locations given in the Document for previous versions it was based " +"on. These may be placed in the History section. You may omit " +"a network location for a work that was published at least four years before " +"the Document itself, or if the original publisher of the version it refers " +"to gives permission." +msgstr "" +"Conserver l'adresse réseau éventuellement indiquée dans le Document permettant à quiconque d'accéder à une " +"Copie transparente du Document, " +"ainsi que les adresses réseau indiquées dans le Document pour les versions " +"précédentes sur lesquelles le Document se base. Ces liens peuvent être " +"placés dans la section Historique. Vous pouvez ne pas " +"conserver les liens pour un travail datant de plus de quatre ans avant la " +"version courante ou si l'éditeur d'origine vous en accorde la permission." + +#: C/index.docbook:383(formalpara/title) +#: C/fdl-appendix.xml:383(formalpara/title) +msgid "K" +msgstr "K" + +#: C/index.docbook:384(formalpara/para) +msgid "" +"In any section entitled Acknowledgements or " +"Dedications, preserve the section's title, and preserve in " +"the section all the substance and tone of each of the contributor " +"acknowledgements and/or dedications given therein." +msgstr "" +"Si une section Remerciements ou une section Dédicaces sont présentes, les informations et les appréciations concernant les " +"contributeurs et les personnes auxquelles s'adressent ces remerciements " +"doivent être conservées, ainsi que le titre de ces sections." + +#: C/index.docbook:396(formalpara/title) +#: C/fdl-appendix.xml:396(formalpara/title) +msgid "L" +msgstr "L" + +#: C/index.docbook:397(formalpara/para) +msgid "" +"Preserve all the Invariant Sections " +"of the Document, unaltered in their " +"text and in their titles. Section numbers or the equivalent are not " +"considered part of the section titles." +msgstr "" +"Conserver sans modification les Sections " +"inaltérables du Document, ni " +"dans leurs textes, ni dans leurs titres. Les numéros de sections ne sont pas " +"considérés comme faisant partie du texte des sections." + +#: C/index.docbook:409(formalpara/title) +#: C/fdl-appendix.xml:409(formalpara/title) +msgid "M" +msgstr "M" + +#: C/index.docbook:410(formalpara/para) +msgid "" +"Delete any section entitled Endorsements. Such a section may " +"not be included in the Modified Version." +msgstr "" +"Effacer toute section intitulée Approbations. Une telle " +"section ne peut pas être incluse dans une Version modifiée." + +#: C/index.docbook:421(formalpara/title) +#: C/fdl-appendix.xml:421(formalpara/title) +msgid "N" +msgstr "N" + +#: C/index.docbook:422(formalpara/para) +msgid "" +"Do not retitle any existing section as Endorsements or to " +"conflict in title with any Invariant " +"Section." +msgstr "" +"Ne pas renommer une section existante sous le titre Approbations ou sous un autre titre entrant en conflit avec le titre d'une Section inaltérable." + +#: C/index.docbook:432(sect1/para) +msgid "" +"If the Modified Version includes new " +"front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from " +"the Document, you may at your option designate some or all of these sections " +"as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's " +"license notice. These titles must be distinct from any other section titles." +msgstr "" +"Si la Version modifiée contient de " +"nouvelles sections préliminaires ou de nouvelles annexes considérées comme " +"des Sections secondaires et que " +"celles-ci ne contiennent aucun élément copié à partir du Document, vous " +"pouvez à votre convenance en désigner une ou plusieurs comme étant des " +"Sections inaltérables. Pour ce faire, ajoutez leurs titres dans la liste des " +"Sections inaltérables au sein de la " +"notice de Licence de la Version modifiée. Ces titres doivent êtres distincts " +"des titres des autres sections." + +#: C/index.docbook:444(sect1/para) +msgid "" +"You may add a section entitled Endorsements, provided it " +"contains nothing but endorsements of your Modified Version by various parties--for example, statements of " +"peer review or that the text has been approved by an organization as the " +"authoritative definition of a standard." +msgstr "" +"Vous pouvez ajouter une section nommée Approbations à " +"condition que ces approbations ne concernent que les modifications ayant " +"donné naissance à la Version modifiée " +"(par exemple, comptes rendus de revue du document ou acceptation du texte " +"par une organisation le reconnaissant comme étant la définition d'un " +"standard)." + +#: C/index.docbook:453(sect1/para) +msgid "" +"You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list " +"of Cover Texts in the Modified Version. Only one passage of Front-Cover " +"Text and one of Back-Cover Text may be added by (or through arrangements " +"made by) any one entity. If the Document already includes a cover text for the same cover, previously added by " +"you or by arrangement made by the same entity you are acting on behalf of, " +"you may not add another; but you may replace the old one, on explicit " +"permission from the previous publisher that added the old one." +msgstr "" +"Vous pouvez ajouter un passage comprenant jusqu'à cinq mots en première page de couverture, et jusqu'à vingt-" +"cinq mots en dernière page de couverture, à la liste des Textes de " +"couverture de la Version modifiée. Il n'est autorisé d'ajouter qu'un seul passage en première et en " +"dernière pages de couverture par personne ou groupe de personnes ou " +"organisation ayant contribué à la modification du Document. Si le Document comporte déjà un passage sur la " +"même couverture, ajouté en votre nom ou au nom de l'organisation au nom de " +"laquelle vous agissez, vous ne pouvez pas ajouter de passage " +"supplémentaire ; mais vous pouvez remplacer un ancien passage si vous avez " +"expressément obtenu l'autorisation de l'éditeur de celui-ci." + +#: C/index.docbook:470(sect1/para) +msgid "" +"The author(s) and publisher(s) of the Document do not by this License give permission to use their names " +"for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" +"Cette Licence ne vous donne pas le droit d'utiliser le nom des auteurs et " +"des éditeurs de ce Document à des fins " +"publicitaires ou pour prétendre à l'approbation d'une Version modifiée." + +#: C/index.docbook:480(sect1/title) C/fdl-appendix.xml:480(sect1/title) +msgid "5. COMBINING DOCUMENTS" +msgstr "5. FUSION DE DOCUMENTS" + +#: C/index.docbook:481(sect1/para) +msgid "" +"You may combine the Document with " +"other documents released under this License, under the terms defined in " +"section 4 above for modified versions, " +"provided that you include in the combination all of the Invariant Sections of all of the original documents, " +"unmodified, and list them all as Invariant Sections of your combined work in " +"its license notice." +msgstr "" +"Vous pouvez fusionner le Document avec " +"d'autres documents soumis à cette Licence, suivant les spécifications de la " +"section 4 pour les Versions modifiées, " +"à condition d'inclure dans le document résultant toutes les Sections inaltérables des documents originaux sans " +"modification, et de toutes les lister dans la liste des Sections " +"inaltérables de la notice de Licence du document résultant de la fusion." + +#: C/index.docbook:492(sect1/para) +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical Invariant Sections may be " +"replaced with a single copy. If there are multiple Invariant Sections with " +"the same name but different contents, make the title of each such section " +"unique by adding at the end of it, in parentheses, the name of the original " +"author or publisher of that section if known, or else a unique number. Make " +"the same adjustment to the section titles in the list of Invariant Sections " +"in the license notice of the combined work." +msgstr "" +"Le document résultant de la fusion n'a besoin que d'une seule copie de cette " +"Licence, et les Sections inaltérables " +"existant en multiples exemplaires peuvent être remplacées par une copie " +"unique. S'il existe plusieurs Sections inaltérables portant le même nom mais " +"de contenu différent, rendez unique le titre de chaque section en ajoutant, " +"à la fin de celui-ci, entre parenthèses, le nom de l'auteur ou de l'éditeur " +"d'origine, ou, à défaut, un numéro unique. Les mêmes modifications doivent " +"être réalisées dans la liste des Sections inaltérables de la notice de " +"Licence du document final." + +#: C/index.docbook:505(sect1/para) +msgid "" +"In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled " +"History; likewise combine any sections entitled " +"Acknowledgements, and any sections entitled " +"Dedications. You must delete all sections entitled " +"Endorsements." +msgstr "" +"Dans le document résultant de la fusion, vous devez rassembler en une seule " +"toutes les sections Historique des documents d'origine. De " +"même, vous devez rassembler les sections Remerciements et " +"Dédicaces. Vous devez supprimer toutes les sections " +"Approbations." + +#: C/index.docbook:516(sect1/title) C/fdl-appendix.xml:516(sect1/title) +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "6. REGROUPEMENTS DE DOCUMENTS" + +#: C/index.docbook:517(sect1/para) +msgid "" +"You may make a collection consisting of the Document and other documents released under this License, and " +"replace the individual copies of this License in the various documents with " +"a single copy that is included in the collection, provided that you follow " +"the rules of this License for verbatim copying of each of the documents in " +"all other respects." +msgstr "" +"Vous pouvez créer un regroupement de documents comprenant le Document et d'autres documents soumis à cette " +"Licence, et remplacer les copies individuelles de cette Licence des " +"différents documents par une unique copie incluse dans le regroupement de " +"documents, à condition de respecter pour chacun de ces documents l'ensemble " +"des règles de cette Licence concernant les copies conformes." + +#: C/index.docbook:527(sect1/para) C/fdl-appendix.xml:527(sect1/para) +msgid "" +"You may extract a single document from such a collection, and dispbibute it " +"individually under this License, provided you insert a copy of this License " +"into the extracted document, and follow this License in all other respects " +"regarding verbatim copying of that document." +msgstr "" +"Vous pouvez extraire un document d'un tel regroupement et le distribuer " +"individuellement sous couvert de cette Licence, à condition d'y inclure une " +"copie de cette Licence et d'en respecter l'ensemble des règles concernant " +"les copies conformes." + +#: C/index.docbook:537(sect1/title) C/fdl-appendix.xml:537(sect1/title) +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "7. AGRÉGATION AVEC DES TRAVAUX INDÉPENDANTS" + +#: C/index.docbook:538(sect1/para) +msgid "" +"A compilation of the Document or its " +"derivatives with other separate and independent documents or works, in or on " +"a volume of a storage or distribution medium, does not as a whole count as a " +"Modified Version of the Document, " +"provided no compilation copyright is claimed for the compilation. Such a " +"compilation is called an aggregate, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the Cover Text requirement of section 3 is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" +"La compilation du Document ou de ses " +"dérivés avec d'autres documents ou travaux séparés et indépendants sur un " +"support de stockage ou sur un média de distribution quelconque ne représente " +"pas une Version modifiée du Document " +"tant qu'aucun copyright n'est déposé pour cette compilation. Une telle " +"compilation est appelée agrégat et cette Licence ne " +"s'applique pas aux autres travaux indépendants compilés avec le Document " +"s'ils ne sont pas eux-mêmes des travaux dérivés du Document. Si les " +"exigences de la section 3 concernant " +"les Textes de couverture sont " +"applicables à ces copies du Document, et si le Document représente un volume " +"inférieur à un quart du volume total de l'agrégat, les Textes de couverture " +"du Document peuvent être placés sur des pages de couverture qui n'encadrent " +"que le Document au sein de l'agrégat. Dans le cas contraire, ils doivent " +"apparaître sur les pages de couverture de l'agrégat complet." + +#: C/index.docbook:561(sect1/title) C/fdl-appendix.xml:561(sect1/title) +msgid "8. TRANSLATION" +msgstr "8. TRADUCTION" + +#: C/index.docbook:562(sect1/para) +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the Document under the " +"terms of section 4. Replacing Invariant Sections with translations " +"requires special permission from their copyright holders, but you may " +"include translations of some or all Invariant Sections in addition to the " +"original versions of these Invariant Sections. You may include a translation " +"of this License provided that you also include the original English version " +"of this License. In case of a disagreement between the translation and the " +"original English version of this License, the original English version will " +"prevail." +msgstr "" +"La traduction est considérée comme une forme de modification, vous pouvez " +"donc distribuer les traductions du Document selon les termes de la section 4. Vous devez obtenir l'autorisation spéciale des auteurs des Sections inaltérables pour les remplacer " +"par des traductions, mais vous pouvez inclure les traductions des Sections " +"inaltérables en plus des textes originaux. Vous pouvez inclure une " +"traduction de cette Licence à condition d'inclure également la version " +"originale en anglais. En cas de contradiction entre la traduction et la " +"version originale en anglais, c'est cette dernière qui prévaut." + +#: C/index.docbook:580(sect1/title) C/fdl-appendix.xml:580(sect1/title) +msgid "9. TERMINATION" +msgstr "9. RÉVOCATION" + +#: C/index.docbook:581(sect1/para) +msgid "" +"You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this " +"License. Any other attempt to copy, modify, sublicense or distribute the " +"Document 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." +msgstr "" +"Vous ne pouvez pas copier, modifier, sous-licencier ou distribuer le Document autrement que selon les termes de " +"cette Licence. Tout autre acte de copie, modification, sous-Licence ou " +"distribution du Document est sans objet et vous prive automatiquement des " +"droits que cette Licence vous accorde. En revanche, les personnes qui ont " +"reçu de votre part des copies ou les droits sur le document sous couvert de " +"cette Licence ne voient pas leurs droits révoqués tant qu'elles en " +"respectent les principes." + +#: C/index.docbook:594(sect1/title) C/fdl-appendix.xml:594(sect1/title) +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "10. RÉVISIONS FUTURES DE CETTE LICENCE" + +#: C/index.docbook:595(sect1/para) +msgid "" +"The Free " +"Software Foundation may publish new, revised versions of the GNU " +"Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" +"La Free " +"Software Foundation peut publier de temps en temps de nouvelles " +"versions révisées de cette Licence. Ces nouvelles versions seront semblables " +"à la présente version dans l'esprit, mais pourront différer sur des points " +"particuliers en fonction de nouvelles questions ou nouveaux problèmes. Voyez " +"http://www.gnu.org/" +"copyleft/ pour plus de détails." + +#: C/index.docbook:606(sect1/para) +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"Document specifies that a particular " +"numbered version of this License or any later version applies " +"to it, you have the option of following the terms and conditions either of " +"that specified version or of any later version that has been published (not " +"as a draft) by the Free Software Foundation. If the Document does not " +"specify a version number of this License, you may choose any version ever " +"published (not as a draft) by the Free Software Foundation." +msgstr "" +"Chaque version de cette Licence est dotée d'un numéro de version distinct. " +"Si un Document spécifie un numéro de " +"version particulier de cette Licence, et porte la mention ou toute " +"autre version ultérieure, vous pouvez choisir de suivre les termes " +"de la version spécifiée ou ceux de n'importe quelle version ultérieure " +"publiée par la Free Software Foundation. Si aucun numéro de version n'est " +"spécifié, vous pouvez choisir n'importe quelle version officielle publiée " +"par la Free Software Foundation." + +#: C/index.docbook:621(sect1/title) C/fdl-appendix.xml:621(sect1/title) +msgid "Addendum" +msgstr "Addendum" + +#: C/index.docbook:622(sect1/para) C/fdl-appendix.xml:622(sect1/para) +msgid "" +"To use this License in a document you have written, include a copy of the " +"License in the document and put the following copyright and license notices " +"just after the title page:" +msgstr "" +"Pour utiliser cette Licence avec un document que vous avez écrit, incorporez " +"une copie du texte de cette Licence en anglais et placez le texte ci-dessous " +"juste après la page de titre :" + +#: C/index.docbook:629(blockquote/para) +#: C/fdl-appendix.xml:629(blockquote/para) +msgid "Copyright YEAR YOUR NAME." +msgstr "Copyright © 2010 Bruno Brouard." + +#: C/index.docbook:632(blockquote/para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with " +"the Front-Cover Texts being LIST, " +"and with the Back-Cover Texts being " +"LIST. A copy of the license is included in the section entitled GNU " +"Free Documentation License." +msgstr "" +"Permission vous est donnée de copier, distribuer et/ou modifier ce document " +"selon les termes de la Licence GNU Free Documentation License, Version 1.1 " +"ou ultérieure publiée par la Free Software Foundation ; avec les sections inaltérables suivantes LISTE DES " +"TITRES DES SECTIONS INALTÉRABLES, avec le texte de première page de couverture suivant TEXTE DE PREMIÈRE " +"PAGE DE COUVERTURE et avec le texte de " +"dernière page de couverture suivant TEXTE DE DERNIÈRE PAGE DE " +"COUVERTURE. Une copie de cette Licence est incluse dans la section appelée " +"GNU Free Documentation License de ce document." + +#: C/index.docbook:647(sect1/para) +msgid "" +"If you have no Invariant Sections, " +"write with no Invariant Sections instead of saying which ones " +"are invariant. If you have no Front-Cover " +"Texts, write no Front-Cover Texts instead of " +"Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" +"Si votre Document ne comporte pas de section " +"inaltérable écrivez pas de section inaltérable au lieu " +"de la liste des sections inaltérables. Si votre Document ne comporte pas de " +"texte de première page de couverture, écrivez pas de texte de première page de couverture au " +"lieu de texte de première page de couverture suivant TEXTE DE " +"PREMIÈRE PAGE DE COUVERTURE ; de même pour le texte de dernière page de couverture." + +#: C/index.docbook:657(sect1/para) +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the GNU General Public License, to permit their use in free " +"software." +msgstr "" +"Si votre Document contient des exemples non triviaux de code programme, nous " +"recommandons de distribuer ces exemples en parallèle sous Licence GNU General Public " +"License, qui permet leur usage dans les logiciels libres." + +#: C/fdl-appendix.xml:16(copyright/year) +msgid "2000" +msgstr "2000" + +#: C/fdl-appendix.xml:16(copyright/holder) +msgid "Free Software Foundation, Inc." +msgstr "Free Software Foundation, Inc." + +#: C/fdl-appendix.xml:20(address/street) +msgid "51 Franklin Street, Suite 330" +msgstr "51 Franklin Street, Suite 330" + +#: C/fdl-appendix.xml:21(address/city) +msgid "Boston" +msgstr "Boston" + +#: C/fdl-appendix.xml:21(address/state) +msgid "MA" +msgstr "MA" + +#: C/fdl-appendix.xml:22(address/postcode) +msgid "02110-1301" +msgstr "02110-1301" + +#: C/fdl-appendix.xml:22(address/country) +msgid "USA" +msgstr "USA" + +#: C/fdl-appendix.xml:20(para/address) +msgid "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" +msgstr "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" + +#: C/fdl-appendix.xml:34(para/quote) +msgid "free" +msgstr "libre" + +#: C/fdl-appendix.xml:32(sect1/para) +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document <_:quote-1/> in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" +"L'objet de cette Licence est de rendre tout manuel, livre ou autre document " +"écrit « <_:quote-1/> » au sens de la liberté d'utilisation, à savoir : " +"assurer à chacun la liberté effective de le copier ou de le redistribuer, " +"avec ou sans modifications, commercialement ou non. En outre, cette Licence " +"garantit à l'auteur et à l'éditeur la reconnaissance de leur travail, sans " +"qu'ils soient pour autant considérés comme responsables des modifications " +"réalisées par des tiers." + +#: C/fdl-appendix.xml:44(para/quote) +msgid "copyleft" +msgstr "copyleft" + +#: C/fdl-appendix.xml:43(sect1/para) +msgid "" +"This License is a kind of <_:quote-1/>, which means that derivative works of " +"the document must themselves be free in the same sense. It complements the " +"GNU General Public License, which is a copyleft license designed for free " +"software." +msgstr "" +"Cette Licence est une sorte de <_:quote-1/>, ce qui signifie que les travaux " +"dérivés du document d'origine sont eux-mêmes « libres » selon les mêmes " +"termes. Elle complète la Licence Publique Générale GNU, qui est également " +"une Licence copyleft, conçue pour les logiciels libres." + +#: C/fdl-appendix.xml:67(para/quote) C/fdl-appendix.xml:82(para/link) +#: C/fdl-appendix.xml:99(para/link) C/fdl-appendix.xml:107(para/link) +#: C/fdl-appendix.xml:113(para/link) C/fdl-appendix.xml:156(para/link) +#: C/fdl-appendix.xml:179(para/link) C/fdl-appendix.xml:190(para/link) +#: C/fdl-appendix.xml:205(para/link) C/fdl-appendix.xml:224(para/link) +#: C/fdl-appendix.xml:235(para/link) C/fdl-appendix.xml:253(para/link) +#: C/fdl-appendix.xml:271(para/link) C/fdl-appendix.xml:294(para/link) +#: C/fdl-appendix.xml:354(para/link) C/fdl-appendix.xml:368(para/link) +#: C/fdl-appendix.xml:400(para/link) C/fdl-appendix.xml:462(para/link) +#: C/fdl-appendix.xml:472(para/link) C/fdl-appendix.xml:482(para/link) +#: C/fdl-appendix.xml:519(para/link) C/fdl-appendix.xml:540(para/link) +#: C/fdl-appendix.xml:565(para/link) C/fdl-appendix.xml:583(para/link) +#: C/fdl-appendix.xml:608(para/link) +msgid "Document" +msgstr "Document" + +#: C/fdl-appendix.xml:69(para/quote) +msgid "you" +msgstr "Vous" + +#: C/fdl-appendix.xml:63(sect1/para) +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The <_:quote-1/>, below, refers to any such manual or work. " +"Any member of the public is a licensee, and is addressed as <_:quote-2/>." +msgstr "" +"Cette Licence couvre tout manuel ou tout autre travail écrit contenant une " +"notice de copyright autorisant la redistribution selon les termes de cette " +"Licence. Le mot <_:quote-1/> se réfère ci-après à un tel manuel ou travail. " +"Toute personne en est par définition concessionnaire et est référencée ci-" +"après par le terme <_:quote-2/>." + +#: C/fdl-appendix.xml:73(para/quote) C/fdl-appendix.xml:234(para/link) +#: C/fdl-appendix.xml:269(para/link) C/fdl-appendix.xml:283(para/link) +#: C/fdl-appendix.xml:315(para/link) C/fdl-appendix.xml:351(para/link) +#: C/fdl-appendix.xml:413(para/link) C/fdl-appendix.xml:433(para/link) +#: C/fdl-appendix.xml:447(para/link) C/fdl-appendix.xml:459(para/link) +#: C/fdl-appendix.xml:475(para/link) C/fdl-appendix.xml:543(para/link) +msgid "Modified Version" +msgstr "Version modifiée" + +#: C/fdl-appendix.xml:72(sect1/para) +msgid "" +"A <_:quote-1/> of the Document means any work containing the Document or a " +"portion of it, either copied verbatim, or with modifications and/or " +"translated into another language." +msgstr "" +"Une <_:quote-1/> du Document désigne tout travail en contenant la totalité " +"ou seulement une portion de celui-ci, copiée mot pour mot, modifiée et/ou " +"traduite dans une autre langue." + +#: C/fdl-appendix.xml:80(para/quote) +msgid "Secondary Section" +msgstr "Section secondaire" + +#: C/fdl-appendix.xml:79(sect1/para) +msgid "" +"A <_:quote-1/> is a named appendix or a front-matter section of the <_:" +"link-2/> that deals exclusively with the relationship of the publishers or " +"authors of the Document to the Document's overall subject (or to related " +"matters) and contains nothing that could fall directly within that overall " +"subject. (For example, if the Document is in part a textbook of mathematics, " +"a Secondary Section may not explain any mathematics.) The relationship could " +"be a matter of historical connection with the subject or with related " +"matters, or of legal, commercial, philosophical, ethical or political " +"position regarding them." +msgstr "" +"Une <_:quote-1/> désigne une annexe au <_:link-2/>, ou toute information " +"indiquant les rapports entre l'auteur ou l'éditeur et le sujet (ou tout " +"autre sujet connexe) du Document, sans toutefois être en rapport direct avec " +"le sujet lui-même (par exemple, si le Document est un manuel de " +"mathématiques, une Section secondaire ne traitera d'aucune notion " +"mathématique). Cette section peut contenir des informations relatives à " +"l'historique du Document, des sources documentaires, des dispositions " +"légales, commerciales, philosophiques, ou des positions éthiques ou " +"politiques susceptibles de concerner le sujet traité." + +#: C/fdl-appendix.xml:95(para/quote) C/fdl-appendix.xml:327(para/link) +#: C/fdl-appendix.xml:398(para/link) C/fdl-appendix.xml:439(para/link) +#: C/fdl-appendix.xml:486(para/link) C/fdl-appendix.xml:494(para/link) +#: C/fdl-appendix.xml:567(para/link) C/fdl-appendix.xml:637(para/link) +#: C/fdl-appendix.xml:648(para/link) +msgid "Invariant Sections" +msgstr "Sections inaltérables" + +#: C/fdl-appendix.xml:96(para/link) C/fdl-appendix.xml:435(para/link) +msgid "Secondary Sections" +msgstr "sections secondaires" + +#: C/fdl-appendix.xml:94(sect1/para) +msgid "" +"The <_:quote-1/> are certain <_:link-2/> whose titles are designated, as " +"being those of Invariant Sections, in the notice that says that the <_:" +"link-3/> is released under this License." +msgstr "" +"Les <_:quote-1/> sont des <_:link-2/> considérées comme ne pouvant être " +"modifiées et citées comme telles dans la notice légale qui place le <_:" +"link-3/> sous cette Licence." + +#: C/fdl-appendix.xml:104(para/quote) C/fdl-appendix.xml:181(para/link) +#: C/fdl-appendix.xml:328(para/link) C/fdl-appendix.xml:458(para/link) +msgid "Cover Texts" +msgstr "Textes de couverture" + +#: C/fdl-appendix.xml:103(sect1/para) +msgid "" +"The <_:quote-1/> are certain short passages of text that are listed, as " +"Front-Cover Texts or Back-Cover Texts, in the notice that says that the <_:" +"link-2/> is released under this License." +msgstr "" +"Les <_:quote-1/> sont les textes courts situés sur les pages de couverture " +"avant et arrière, et cités comme tels dans la mention légale de ce <_:link-2/" +">." + +#: C/fdl-appendix.xml:112(para/quote) C/fdl-appendix.xml:124(para/quote) +#: C/fdl-appendix.xml:207(para/link) C/fdl-appendix.xml:369(para/link) +msgid "Transparent" +msgstr "Copie transparente" + +#: C/fdl-appendix.xml:125(para/quote) C/fdl-appendix.xml:204(para/link) +msgid "Opaque" +msgstr "Opaque" + +#: C/fdl-appendix.xml:111(sect1/para) +msgid "" +"A <_:quote-1/> copy of the <_:link-2/> means a machine-readable copy, " +"represented in a format whose specification is available to the general " +"public, whose contents can be viewed and edited directly and " +"straightforwardly with generic text editors or (for images composed of " +"pixels) generic paint programs or (for drawings) some widely available " +"drawing editor, and that is suitable for input to text formatters or for " +"automatic translation to a variety of formats suitable for input to text " +"formatters. A copy made in an otherwise Transparent file format whose markup " +"has been designed to thwart or discourage subsequent modification by readers " +"is not Transparent. A copy that is not <_:quote-3/> is called <_:quote-4/>." +msgstr "" +"Le terme <_:quote-1/> désigne une version numérique du <_:link-2/> " +"représentée dans un format dont les spécifications sont publiquement " +"disponibles et dont le contenu peut être visualisé et édité directement et " +"immédiatement par un éditeur de texte quelconque, ou (pour les images " +"composées de pixels) par un programme de traitement d'images quelconque, ou " +"(pour les dessins) par un éditeur de dessins courant. Ce format doit pouvoir " +"être accepté directement ou être convertible facilement dans des formats " +"utilisables directement par des logiciels de formatage de texte. Une copie " +"publiée dans un quelconque format numérique ouvert mais dont la structure a " +"été conçue dans le but exprès de prévenir les modifications ultérieures du " +"Document ou dans le but d'en décourager les lecteurs n'est pas considérée " +"comme une Copie Transparente. Une copie qui n'est pas <_:quote-3/> est " +"considérée, par opposition, comme <_:quote-4/>." + +#: C/fdl-appendix.xml:142(para/quote) C/fdl-appendix.xml:146(para/quote) +#: C/fdl-appendix.xml:250(para/link) C/fdl-appendix.xml:266(para/link) +#: C/fdl-appendix.xml:281(para/link) C/fdl-appendix.xml:352(para/link) +msgid "Title Page" +msgstr "Page de titre" + +#: C/fdl-appendix.xml:141(sect1/para) +msgid "" +"The <_:quote-1/> means, for a printed book, the title page itself, plus such " +"following pages as are needed to hold, legibly, the material this License " +"requires to appear in the title page. For works in formats which do not have " +"any title page as such, <_:quote-2/> means the text near the most prominent " +"appearance of the work's title, preceding the beginning of the body of the " +"text." +msgstr "" +"La <_:quote-1/> désigne, pour les ouvrages imprimés, la page de titre elle-" +"même, ainsi que les pages supplémentaires nécessaires pour fournir " +"clairement les informations dont cette Licence impose la présence sur la " +"page de titre. Pour les travaux n'ayant pas de Page de titre comme décrit ci-" +"dessus, la <_:quote-2/> désigne le texte qui s'apparente le plus au titre du " +"document et situé avant le texte principal." + +#: C/fdl-appendix.xml:166(para/link) C/fdl-appendix.xml:551(para/link) +msgid "section 3" +msgstr "section 3" + +#: C/fdl-appendix.xml:154(sect1/para) +msgid "" +"You may copy and distribute the <_:link-1/> in any medium, either " +"commercially or noncommercially, provided that this License, the copyright " +"notices, and the license notice saying this License applies to the Document " +"are reproduced in all copies, and that you add no other conditions " +"whatsoever to those of this License. You may not use technical measures to " +"obstruct or control the reading or further copying of the copies you make or " +"distribute. However, you may accept compensation in exchange for copies. If " +"you distribute a large enough number of copies you must also follow the " +"conditions in <_:link-2/>." +msgstr "" +"Vous pouvez copier et distribuer le <_:link-1/> sur tout type de support, " +"commercialement ou non, à condition que cette Licence, la notice de " +"copyright et la notice de la Licence indiquant que cette Licence s'applique " +"à ce Document soient reproduits dans toutes les copies, et que vous n'y " +"ajoutiez aucune condition restrictive supplémentaire. Vous ne pouvez pas " +"utiliser un quelconque moyen technique visant à empêcher ou à contrôler la " +"lecture ou la reproduction ultérieure des copies que vous avez créées ou " +"distribuées. Toutefois, vous pouvez solliciter une rétribution en échange " +"des copies. Si vous distribuez une grande quantité de copies, référez-vous " +"aux dispositions de la <_:link-2/>." + +#: C/fdl-appendix.xml:177(sect1/para) +msgid "" +"If you publish printed copies of the <_:link-1/> numbering more than 100, " +"and the Document's license notice requires <_:link-2/>, you must enclose the " +"copies in covers that carry, clearly and legibly, all these Cover Texts: " +"Front-Cover Texts on the front cover, and Back-Cover Texts on the back " +"cover. Both covers must also clearly and legibly identify you as the " +"publisher of these copies. The front cover must present the full title with " +"all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the <_:link-3/> and satisfy " +"these conditions, can be treated as verbatim copying in other respects." +msgstr "" +"Si vous publiez des copies imprimées de ce <_:link-1/> à plus de 100 " +"exemplaires et que la Licence du Document indique la présence de <_:link-2/" +">, vous devez fournir une couverture pour chaque copie, qui présente les " +"Textes de couverture des première et dernière pages de couverture du " +"Document. Les première et dernière pages de couverture doivent également " +"vous identifier clairement et sans ambiguïté comme étant l'éditeur de ces " +"copies. La première page de couverture doit comporter le titre du Document " +"en mots d'importance et de visibilité égales. Vous pouvez ajouter des " +"informations complémentaires sur les pages de couverture. Les copies du " +"Document dont seule la couverture a été modifiée peuvent être considérées " +"comme des copies conformes, à condition que le titre du <_:link-3/> soit " +"préservé et que les conditions indiquées précédemment soient respectées." + +#: C/fdl-appendix.xml:202(sect1/para) +msgid "" +"If you publish or distribute <_:link-1/> copies of the <_:link-2/> numbering " +"more than 100, you must either include a machine-readable <_:link-3/> copy " +"along with each Opaque copy, or state in or with each Opaque copy a publicly-" +"accessible computer-network location containing a complete Transparent copy " +"of the Document, free of added material, which the general network-using " +"public has access to download anonymously at no charge using public-standard " +"network protocols. If you use the latter option, you must take reasonably " +"prudent steps, when you begin distribution of Opaque copies in quantity, to " +"ensure that this Transparent copy will remain thus accessible at the stated " +"location until at least one year after the last time you distribute an " +"Opaque copy (directly or through your agents or retailers) of that edition " +"to the public." +msgstr "" +"Si vous publiez plus de 100 <_:link-1/> du <_:link-2/>, vous devez soit " +"fournir une Copie transparente pour chaque Copie opaque, soit préciser ou " +"fournir avec chaque Copie opaque une adresse réseau publiquement accessible " +"d'une <_:link-3/> et complète du Document, sans aucun ajout ou modification, " +"et à laquelle tout le monde peut accéder en téléchargement anonyme et sans " +"frais, selon des protocoles réseau communs et standard. Si vous choisissez " +"cette dernière option, vous devez prendre les dispositions nécessaires, dans " +"la limite du raisonnable, afin de garantir l'accès non restrictif à la Copie " +"transparente durant une année pleine après la diffusion publique de la " +"dernière Copie opaque(directement ou via vos revendeurs)." + +#: C/fdl-appendix.xml:222(sect1/para) +msgid "" +"It is requested, but not required, that you contact the authors of the <_:" +"link-1/> well before redistributing any large number of copies, to give them " +"a chance to provide you with an updated version of the Document." +msgstr "" +"Nous recommandons, mais ce n'est pas obligatoire, que vous contactiez " +"l'auteur du <_:link-1/> suffisamment tôt avant toute publication d'un grand " +"nombre de copies, afin de lui permettre de vous donner une version à jour du " +"Document." + +#: C/fdl-appendix.xml:236(para/link) +msgid "2" +msgstr "2" + +#: C/fdl-appendix.xml:237(para/link) +msgid "3" +msgstr "3" + +#: C/fdl-appendix.xml:232(sect1/para) +msgid "" +"You may copy and distribute a <_:link-1/> of the <_:link-2/> under the " +"conditions of sections <_:link-3/> and <_:link-4/> above, provided that you " +"release the Modified Version under precisely this License, with the Modified " +"Version filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" +"Vous pouvez copier et distribuer une <_:link-1/> du <_:link-2/> en " +"respectant les conditions des sections <_:link-3/> et <_:link-4/> " +"précédentes, à condition de placer cette Version modifiée sous la présente " +"Licence, dans laquelle le terme « Document » doit être remplacé par les " +"termes « Version modifiée », donnant ainsi l'autorisation de redistribuer et " +"de modifier cette Version modifiée à quiconque en possède une copie. De " +"plus, vous devez effectuer les actions suivantes dans la Version modifiée :" + +#: C/fdl-appendix.xml:249(formalpara/para) +msgid "" +"Use in the <_:link-1/> (and on the covers, if any) a title distinct from " +"that of the <_:link-2/>, and from those of previous versions (which should, " +"if there were any, be listed in the History section of the Document). You " +"may use the same title as a previous version if the original publisher of " +"that version gives permission." +msgstr "" +"Utiliser sur la <_:link-1/> (et sur la page de couverture éventuellement " +"présente) un titre distinct de celui du <_:link-2/> d'origine et de toutes " +"ses versions antérieures (qui, si elles existent, doivent être mentionnées " +"dans la section Historique du Document). Vous pouvez utiliser le même titre " +"si l'éditeur d'origine vous en a donné expressément la permission." + +#: C/fdl-appendix.xml:265(formalpara/para) +msgid "" +"List on the <_:link-1/>, as authors, one or more persons or entities " +"responsible for authorship of the modifications in the <_:link-2/>, together " +"with at least five of the principal authors of the <_:link-3/> (all of its " +"principal authors, if it has less than five)." +msgstr "" +"Mentionner sur la <_:link-1/> en tant qu'auteurs une ou plusieurs des " +"personnes ou entités responsables des modifications de la <_:link-2/>, avec " +"au moins les cinq principaux auteurs du <_:link-3/> (ou tous les auteurs " +"s'il y en a moins de cinq)." + +#: C/fdl-appendix.xml:280(formalpara/para) +msgid "" +"State on the <_:link-1/> the name of the publisher of the <_:link-2/>, as " +"the publisher." +msgstr "" +"Préciser sur la <_:link-1/> le nom de l'éditeur de la <_:link-2/>, en tant " +"qu'éditeur du Document." + +#: C/fdl-appendix.xml:292(formalpara/para) +msgid "Preserve all the copyright notices of the <_:link-1/>." +msgstr "" +"Préserver intégralement toutes les notices de copyright du <_:link-1/>." + +#: C/fdl-appendix.xml:312(formalpara/para) +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the <_:link-1/> under the terms of this " +"License, in the form shown in the Addendum below." +msgstr "" +"Inclure immédiatement après les notices de copyright une notice donnant à " +"quiconque l'autorisation d'utiliser la <_:link-1/> selon les termes de cette " +"Licence, sous la forme présentée dans l'annexe indiquée ci-dessous." + +#: C/fdl-appendix.xml:330(para/link) +msgid "Document's" +msgstr "Document" + +#: C/fdl-appendix.xml:325(formalpara/para) +msgid "" +"Preserve in that license notice the full lists of <_:link-1/> and required " +"<_:link-2/> given in the <_:link-3/> license notice." +msgstr "" +"Préserver dans cette notice la liste complète des <_:link-1/> et les <_:" +"link-2/> donnés avec la notice de la Licence du <_:link-3/>." + +#: C/fdl-appendix.xml:348(para/quote) C/fdl-appendix.xml:353(para/quote) +#: C/fdl-appendix.xml:372(para/quote) C/fdl-appendix.xml:507(para/quote) +#: C/fdl-appendix.xml:508(para/quote) +msgid "History" +msgstr "Historique" + +#: C/fdl-appendix.xml:347(formalpara/para) +msgid "" +"Preserve the section entitled <_:quote-1/>, and its title, and add to it an " +"item stating at least the title, year, new authors, and publisher of the <_:" +"link-2/> as given on the <_:link-3/>. If there is no section entitled <_:" +"quote-4/> in the <_:link-5/>, create one stating the title, year, authors, " +"and publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" +"Préserver la section nommée <_:quote-1/> et son titre, et y ajouter une " +"nouvelle entrée décrivant le titre, l'année, les nouveaux auteurs et " +"l'éditeur de la <_:link-2/>, tels que décrits sur la <_:link-3/>, ainsi " +"qu'un descriptif des modifications apportées depuis la précédente version. " +"S'il n'y a pas de section nommée <_:quote-4/> dans le <_:link-5/>, créer une " +"telle section précisant le titre, l'année, les auteurs et l'éditeur du " +"Document tel que précisé sur la Page de titre,et ajouter une entrée " +"décrivant la Version modifiée tel que précisé dans la phrase précédente." + +#: C/fdl-appendix.xml:366(formalpara/para) +msgid "" +"Preserve the network location, if any, given in the <_:link-1/> for public " +"access to a <_:link-2/> copy of the Document, and likewise the network " +"locations given in the Document for previous versions it was based on. These " +"may be placed in the <_:quote-3/> section. You may omit a network location " +"for a work that was published at least four years before the Document " +"itself, or if the original publisher of the version it refers to gives " +"permission." +msgstr "" +"Conserver l'adresse réseau éventuellement indiquée dans le <_:link-1/> " +"permettant à quiconque d'accéder à une <_:link-2/> du Document, ainsi que " +"les adresses réseau indiquées dans le Document pour les versions précédentes " +"sur lesquelles le Document se base. Ces liens peuvent être placés dans la " +"section <_:quote-3/>. Vous pouvez ne pas conserver les liens pour un travail " +"datant de plus de quatre ans avant la version courante ou si l'éditeur " +"d'origine vous en accorde la permission." + +#: C/fdl-appendix.xml:385(para/quote) C/fdl-appendix.xml:509(para/quote) +msgid "Acknowledgements" +msgstr "Remerciements" + +#: C/fdl-appendix.xml:386(para/quote) C/fdl-appendix.xml:510(para/quote) +msgid "Dedications" +msgstr "Dédicaces" + +#: C/fdl-appendix.xml:384(formalpara/para) +msgid "" +"In any section entitled <_:quote-1/> or <_:quote-2/>, preserve the section's " +"title, and preserve in the section all the substance and tone of each of the " +"contributor acknowledgements and/or dedications given therein." +msgstr "" +"Si une section <_:quote-1/> ou une section <_:quote-2/> sont présentes, les " +"informations et les appréciations concernant les contributeurs et les " +"personnes auxquelles s'adressent ces remerciements doivent être conservées, " +"ainsi que le titre de ces sections." + +#: C/fdl-appendix.xml:397(formalpara/para) +msgid "" +"Preserve all the <_:link-1/> of the <_:link-2/>, unaltered in their text and " +"in their titles. Section numbers or the equivalent are not considered part " +"of the section titles." +msgstr "" +"Conserver sans modification les <_:link-1/> du <_:link-2/>, ni dans leurs " +"textes, ni dans leurs titres. Les numéros de sections ne sont pas considérés " +"comme faisant partie du texte des sections." + +#: C/fdl-appendix.xml:412(para/quote) C/fdl-appendix.xml:424(para/quote) +#: C/fdl-appendix.xml:445(para/quote) +msgid "Endorsements" +msgstr "Approbations" + +#: C/fdl-appendix.xml:410(formalpara/para) +msgid "" +"Delete any section entitled <_:quote-1/>. Such a section may not be included " +"in the <_:link-2/>." +msgstr "" +"Effacer toute section intitulée <_:quote-1/>. Une telle section ne peut pas " +"être incluse dans une <_:link-2/>." + +#: C/fdl-appendix.xml:425(para/link) +msgid "Invariant Section" +msgstr "Section inaltérable" + +#: C/fdl-appendix.xml:422(formalpara/para) +msgid "" +"Do not retitle any existing section as <_:quote-1/> or to conflict in title " +"with any <_:link-2/>." +msgstr "" +"Ne pas renommer une section existante sous le titre <_:quote-1/> ou sous un " +"autre titre entrant en conflit avec le titre d'une <_:link-2/>." + +#: C/fdl-appendix.xml:432(sect1/para) +msgid "" +"If the <_:link-1/> includes new front-matter sections or appendices that " +"qualify as <_:link-2/> and contain no material copied from the Document, you " +"may at your option designate some or all of these sections as invariant. To " +"do this, add their titles to the list of <_:link-3/> in the Modified " +"Version's license notice. These titles must be distinct from any other " +"section titles." +msgstr "" +"Si la <_:link-1/> contient de nouvelles sections préliminaires ou de " +"nouvelles annexes considérées comme des <_:link-2/> et que celles-ci ne " +"contiennent aucun élément copié à partir du Document, vous pouvez à votre " +"convenance en désigner une ou plusieurs comme étant des Sections " +"inaltérables. Pour ce faire, ajoutez leurs titres dans la liste des <_:" +"link-3/> au sein de la notice de Licence de la Version modifiée. Ces titres " +"doivent êtres distincts des titres des autres sections." + +#: C/fdl-appendix.xml:444(sect1/para) +msgid "" +"You may add a section entitled <_:quote-1/>, provided it contains nothing " +"but endorsements of your <_:link-2/> by various parties--for example, " +"statements of peer review or that the text has been approved by an " +"organization as the authoritative definition of a standard." +msgstr "" +"Vous pouvez ajouter une section nommée <_:quote-1/> à condition que ces " +"approbations ne concernent que les modifications ayant donné naissance à la " +"<_:link-2/> (par exemple, comptes rendus de revue du document ou acceptation " +"du texte par une organisation le reconnaissant comme étant la définition " +"d'un standard)." + +#: C/fdl-appendix.xml:455(para/link) +msgid "Front-Cover Text" +msgstr "première page de couverture" + +#: C/fdl-appendix.xml:457(para/link) +msgid "Back-Cover Text" +msgstr "dernière page de couverture" + +#: C/fdl-appendix.xml:453(sect1/para) +msgid "" +"You may add a passage of up to five words as a <_:link-1/>, and a passage of " +"up to 25 words as a <_:link-2/>, to the end of the list of <_:link-3/> in " +"the <_:link-4/>. Only one passage of Front-Cover Text and one of Back-Cover " +"Text may be added by (or through arrangements made by) any one entity. If " +"the <_:link-5/> already includes a cover text for the same cover, previously " +"added by you or by arrangement made by the same entity you are acting on " +"behalf of, you may not add another; but you may replace the old one, on " +"explicit permission from the previous publisher that added the old one." +msgstr "" +"Vous pouvez ajouter un passage comprenant jusqu'à cinq mots en <_:link-1/>, " +"et jusqu'à vingt-cinq mots en <_:link-2/>, à la liste des <_:link-3/> de la " +"<_:link-4/>. Il n'est autorisé d'ajouter qu'un seul passage en première et " +"en dernière pages de couverture par personne ou groupe de personnes ou " +"organisation ayant contribué à la modification du Document. Si le <_:link-5/" +"> comporte déjà un passage sur la même couverture, ajouté en votre nom ou au " +"nom de l'organisation au nom de laquelle vous agissez, vous ne pouvez pas " +"ajouter de passage supplémentaire ; mais vous pouvez remplacer un ancien " +"passage si vous avez expressément obtenu l'autorisation de l'éditeur de " +"celui-ci." + +#: C/fdl-appendix.xml:470(sect1/para) +msgid "" +"The author(s) and publisher(s) of the <_:link-1/> do not by this License " +"give permission to use their names for publicity for or to assert or imply " +"endorsement of any <_:link-2/>." +msgstr "" +"Cette Licence ne vous donne pas le droit d'utiliser le nom des auteurs et " +"des éditeurs de ce <_:link-1/> à des fins publicitaires ou pour prétendre à " +"l'approbation d'une <_:link-2/>." + +#: C/fdl-appendix.xml:484(para/link) C/fdl-appendix.xml:566(para/link) +msgid "section 4" +msgstr "section 4" + +#: C/fdl-appendix.xml:481(sect1/para) +msgid "" +"You may combine the <_:link-1/> with other documents released under this " +"License, under the terms defined in <_:link-2/> above for modified versions, " +"provided that you include in the combination all of the <_:link-3/> of all " +"of the original documents, unmodified, and list them all as Invariant " +"Sections of your combined work in its license notice." +msgstr "" +"Vous pouvez fusionner le <_:link-1/> avec d'autres documents soumis à cette " +"Licence, suivant les spécifications de la <_:link-2/> pour les Versions " +"modifiées, à condition d'inclure dans le document résultant toutes les <_:" +"link-3/> des documents originaux sans modification, et de toutes les lister " +"dans la liste des Sections inaltérables de la notice de Licence du document " +"résultant de la fusion." + +#: C/fdl-appendix.xml:492(sect1/para) +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical <_:link-1/> may be replaced with a single copy. If there are " +"multiple Invariant Sections with the same name but different contents, make " +"the title of each such section unique by adding at the end of it, in " +"parentheses, the name of the original author or publisher of that section if " +"known, or else a unique number. Make the same adjustment to the section " +"titles in the list of Invariant Sections in the license notice of the " +"combined work." +msgstr "" +"Le document résultant de la fusion n'a besoin que d'une seule copie de cette " +"Licence, et les <_:link-1/> existant en multiples exemplaires peuvent être " +"remplacées par une copie unique. S'il existe plusieurs Sections inaltérables " +"portant le même nom mais de contenu différent, rendez unique le titre de " +"chaque section en ajoutant, à la fin de celui-ci, entre parenthèses, le nom " +"de l'auteur ou de l'éditeur d'origine, ou, à défaut, un numéro unique. Les " +"mêmes modifications doivent être réalisées dans la liste des Sections " +"inaltérables de la notice de Licence du document final." + +#: C/fdl-appendix.xml:511(para/quote) +msgid "Endorsements." +msgstr "Approbations" + +#: C/fdl-appendix.xml:505(sect1/para) +msgid "" +"In the combination, you must combine any sections entitled <_:quote-1/> in " +"the various original documents, forming one section entitled <_:quote-2/>; " +"likewise combine any sections entitled <_:quote-3/>, and any sections " +"entitled <_:quote-4/>. You must delete all sections entitled <_:quote-5/>" +msgstr "" +"Dans le document résultant de la fusion, vous devez rassembler toutes les " +"sections <_:quote-1/> des documents d'origine en une seule section <_quote-2/" +">. De même, vous devez rassembler les sections <_:quote-3/> et <_:quote-4/>. " +"Vous devez supprimer toutes les sections <_:quote-5/>." + +#: C/fdl-appendix.xml:517(sect1/para) +msgid "" +"You may make a collection consisting of the <_:link-1/> and other documents " +"released under this License, and replace the individual copies of this " +"License in the various documents with a single copy that is included in the " +"collection, provided that you follow the rules of this License for verbatim " +"copying of each of the documents in all other respects." +msgstr "" +"Vous pouvez créer un regroupement de documents comprenant le <_:link-1/> " +"d'autres documents soumis à cette Licence, et remplacer les copies " +"individuelles de cette Licence des différents documents par une unique copie " +"incluse dans le regroupement de documents, à condition de respecter pour " +"chacun de ces documents l'ensemble des règles de cette Licence concernant " +"les copies conformes." + +#: C/fdl-appendix.xml:546(para/quote) +msgid "aggregate" +msgstr "agrégat" + +#: C/fdl-appendix.xml:550(para/link) +msgid "Cover Text" +msgstr "Textes de couverture" + +#: C/fdl-appendix.xml:538(sect1/para) +msgid "" +"A compilation of the <_:link-1/> or its derivatives with other separate and " +"independent documents or works, in or on a volume of a storage or " +"distribution medium, does not as a whole count as a <_:link-2/> of the " +"Document, provided no compilation copyright is claimed for the compilation. " +"Such a compilation is called an <_:quote-3/>, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the <_:link-4/> requirement of <_:link-5/> is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" +"La compilation du <_:link-1/> ou de ses dérivés avec d'autres documents ou " +"travaux séparés et indépendants sur un support de stockage ou sur un média " +"de distribution quelconque ne représente pas une <_:link-2/> du Document " +"tant qu'aucun copyright n'est déposé pour cette compilation. Une telle " +"compilation est appelée <_:quote-3/> et cette Licence ne s'applique pas aux " +"autres travaux indépendants compilés avec le Document s'ils ne sont pas eux-" +"mêmes des travaux dérivés du Document. Si les exigences de la <_:link-4/> " +"concernant les <_:link-5/> sont applicables à ces copies du Document, et si " +"le Document représente un volume inférieur à un quart du volume total de " +"l'agrégat, les Textes de couverture du Document peuvent être placés sur des " +"pages de couverture qui n'encadrent que le Document au sein de l'agrégat. " +"Dans le cas contraire, ils doivent apparaître sur les pages de couverture de " +"l'agrégat complet." + +#: C/fdl-appendix.xml:562(sect1/para) +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the <_:link-1/> under the terms of <_:link-2/>. Replacing <_:" +"link-3/> with translations requires special permission from their copyright " +"holders, but you may include translations of some or all Invariant Sections " +"in addition to the original versions of these Invariant Sections. You may " +"include a translation of this License provided that you also include the " +"original English version of this License. In case of a disagreement between " +"the translation and the original English version of this License, the " +"original English version will prevail." +msgstr "" +"La traduction est considérée comme une forme de modification, vous pouvez " +"donc distribuer les traductions du <_:link-1/> selon les termes de la <_:" +"link-2/>. Vous devez obtenir l'autorisation spéciale des auteurs des <_:" +"link-3/> pour les remplacer par des traductions, mais vous pouvez inclure " +"les traductions des Sections inaltérables en plus des textes originaux. Vous " +"pouvez inclure une traduction de cette Licence à condition d'inclure " +"également la version originale en anglais. En cas de contradiction entre la " +"traduction et la version originale en anglais, c'est cette dernière qui " +"prévaut." + +#: C/fdl-appendix.xml:581(sect1/para) +msgid "" +"You may not copy, modify, sublicense, or distribute the <_:link-1/> except " +"as expressly provided for under this License. Any other attempt to copy, " +"modify, sublicense or distribute the Document 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." +msgstr "" +"Vous ne pouvez pas copier, modifier, sous-licencier ou distribuer le <_:" +"link-1/> autrement que selon les termes de cette Licence. Tout autre acte de " +"copie, modification, sous-Licence ou distribution du Document est sans objet " +"et vous prive automatiquement des droits que cette Licence vous accorde. En " +"revanche, les personnes qui ont reçu de votre part des copies ou les droits " +"sur le document sous couvert de cette Licence ne voient pas leurs droits " +"révoqués tant qu'elles en respectent les principes." + +#: C/fdl-appendix.xml:597(para/ulink) +msgid "Free Software Foundation" +msgstr "Free Software Foundation" + +#: C/fdl-appendix.xml:603(para/ulink) +msgid "http://www.gnu.org/copyleft/" +msgstr "http://www.gnu.org/copyleft/" + +#: C/fdl-appendix.xml:595(sect1/para) +msgid "" +"The <_:ulink-1/> may publish new, revised versions of the GNU Free " +"Documentation 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. See <_:ulink-2/>." +msgstr "" +"La <_:ulink-1/> peut publier de temps en temps de nouvelles versions " +"révisées de cette Licence. Ces nouvelles versions seront semblables à la " +"présente version dans l'esprit, mais pourront différer sur des points " +"particuliers en fonction de nouvelles questions ou nouveaux problèmes. Voyez " +"<_:ulink-2/> pour plus de détails." + +#: C/fdl-appendix.xml:610(para/quote) +msgid "or any later version" +msgstr "ou toute autre version ultérieure" + +#: C/fdl-appendix.xml:606(sect1/para) +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"<_:link-1/> specifies that a particular numbered version of this License <_:" +"quote-2/> applies to it, you have the option of following the terms and " +"conditions either of that specified version or of any later version that has " +"been published (not as a draft) by the Free Software Foundation. If the " +"Document does not specify a version number of this License, you may choose " +"any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" +"Chaque version de cette Licence est dotée d'un numéro de version distinct. " +"Si un <_:link-1/> spécifie un numéro de version particulier de cette " +"Licence, et porte la mention <_:quote-2/>, vous pouvez choisir de suivre les " +"termes de la version spécifiée ou ceux de n'importe quelle version " +"ultérieure publiée par la Free Software Foundation. Si aucun numéro de " +"version n'est spécifié, vous pouvez choisir n'importe quelle version " +"officielle publiée par la Free Software Foundation." + +#: C/fdl-appendix.xml:639(para/link) C/fdl-appendix.xml:651(para/link) +msgid "Front-Cover Texts" +msgstr "texte de première page de couverture" + +#: C/fdl-appendix.xml:640(para/link) C/fdl-appendix.xml:654(para/link) +msgid "Back-Cover Texts" +msgstr "texte de dernière page de couverture" + +#: C/fdl-appendix.xml:632(blockquote/para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the <_:link-1/> " +"being LIST THEIR TITLES, with the <_:link-2/> being LIST, and with the <_:" +"link-3/> being LIST. A copy of the license is included in the section " +"entitled <_:quote-4/>." +msgstr "" +"Permission vous est donnée de copier, distribuer et/ou modifier ce document " +"selon les termes de la Licence GNU Free Documentation License, Version 1.1 " +"ou ultérieure publiée par la Free Software Foundation ; avec <_:link-1/> " +"suivantes LISTE DES TITRES DES SECTIONS INALTÉRABLES, avec le <_:link-2/> " +"suivant TEXTE DE PREMIÈRE PAGE DE COUVERTURE et avec le <_:link-3/> suivant " +"TEXTE DE DERNIÈRE PAGE DE COUVERTURE. Une copie de cette Licence est incluse " +"dans la section appelée <_:quote-4/> de ce document." + +#: C/fdl-appendix.xml:649(para/quote) +msgid "with no Invariant Sections" +msgstr "pas de section inaltérable" + +#: C/fdl-appendix.xml:652(para/quote) +msgid "no Front-Cover Texts" +msgstr "pas de texte de première page de couverture" + +#: C/fdl-appendix.xml:653(para/quote) +msgid "Front-Cover Texts being LIST" +msgstr "" +"texte de première page de couverture suivant TEXTE DE PREMIÈRE PAGE DE " +"COUVERTURE" + +#: C/fdl-appendix.xml:647(sect1/para) +msgid "" +"If you have no <_:link-1/>, write <_:quote-2/> instead of saying which ones " +"are invariant. If you have no <_:link-3/>, write <_:quote-4/> instead of <_:" +"quote-5/>; likewise for <_:link-6/>." +msgstr "" +"Si votre Document ne comporte pas de <_:link-1/> écrivez <_:quote-2/> au " +"lieu de la liste des sections inaltérables. Si votre Document ne comporte " +"pas de <_:link-3/>, écrivez <_:quote-4/> au lieu de <_:quote-5/>; de même " +"pour le <_:link-6/>." + +#: C/fdl-appendix.xml:661(para/ulink) +msgid "GNU General Public License" +msgstr "Licence Publique Générale GNU" + +#: C/fdl-appendix.xml:657(sect1/para) +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the <_:ulink-1/>, to permit their use in free software." +msgstr "" +"Si votre Document contient des exemples non triviaux de code programme, nous " +"recommandons de distribuer ces exemples en parallèle sous <_:ulink-1/>, qui " +"permet leur usage dans les logiciels libres." + +#~ msgid "Chris" +#~ msgstr "Chris" + +#~ msgid "Lyttle" +#~ msgstr "Lyttle" + +#~ msgid "chris@wilddev.net" +#~ msgstr "chris@wilddev.net" + +#~ msgid "Dan" +#~ msgstr "Dan" + +#~ msgid "Mueth" +#~ msgstr "Mueth" + +#~ msgid "d-mueth@uchicago.edu" +#~ msgstr "d-mueth@uchicago.edu" + +#~ msgid "Stefan" +#~ msgstr "Stefan" + +#~ msgid "Kost" +#~ msgstr "Kost" + +#~ msgid "ensonic@users.sf.net" +#~ msgstr "ensonic@users.sf.net" + +#~ msgid "gtk-doc-list@gnome.org" +#~ msgstr "gtk-doc-list@gnome.org" + +#~ msgid "2000, 2005" +#~ msgstr "2000, 2005" + +#~ msgid "Dan Mueth and Chris Lyttle" +#~ msgstr "Dan Mueth et Chris Lyttle" + +#~ msgid "2007-2011" +#~ msgstr "2007-2011" + +#~ msgid "Stefan Sauer (Kost)" +#~ msgstr "Stefan Sauer (Kost)" + +#~ msgid "20 Sep 2011" +#~ msgstr "20 septembre 2011" + +#~ msgid "ss" +#~ msgstr "ss" + +#~ msgid "development version" +#~ msgstr "version de développement" + +#~ msgid "1.18" +#~ msgstr "1.18" + +#~ msgid "14 sep 2011" +#~ msgstr "14 septembre 2011" + +#~ msgid "bug fixes, speedups, markdown support" +#~ msgstr "" +#~ "correction de bogues, amélioration de la vitesse de traitement, prise en " +#~ "charge de markdown" + +#~ msgid "1.17" +#~ msgstr "1.17" + +#~ msgid "26 Feb 2011" +#~ msgstr "26 février 2011" + +#~ msgid "sk" +#~ msgstr "sk" + +#~ msgid "urgent bug fix update" +#~ msgstr "mise à jour pour une correction de bogue urgente" + +#~ msgid "1.16" +#~ msgstr "1.16" + +#~ msgid "14 Jan 2011" +#~ msgstr "14 janvier 2011" + +#~ msgid "bugfixes, layout improvements" +#~ msgstr "correctifs et améliorations de mise en page" + +#~ msgid "1.15" +#~ msgstr "1.15" + +#~ msgid "21 May 2010" +#~ msgstr "21 mai 2010" + +#~ msgid "bug and regression fixes" +#~ msgstr "corrections d'anomalies et de régressions" + +#~ msgid "1.14" +#~ msgstr "1.14" + +#~ msgid "28 March 2010" +#~ msgstr "28 mars 2010" + +#~ msgid "bugfixes and performance improvements" +#~ msgstr "correctifs et amélioration de performances" + +#~ msgid "1.13" +#~ msgstr "1.13" + +#~ msgid "18 December 2009" +#~ msgstr "18 décembre 2009" + +#~ msgid "broken tarball update" +#~ msgstr "mise à jour du tarball brisé" + +#~ msgid "1.12" +#~ msgstr "1.12" + +#~ msgid "new tool features and bugfixes" +#~ msgstr "comportements de nouveaux outils et résolution de bogues" + +#~ msgid "1.11" +#~ msgstr "1.11" + +#~ msgid "16 Novemebr 2008" +#~ msgstr "16 novembre 2008" + +#~ msgid "mal" +#~ msgstr "mal" + +#~ msgid "GNOME doc-utils migration" +#~ msgstr "Migration à GNOME doc-utils" + +#~ msgid "xxx_get_type()" +#~ msgstr "xxx_get_type()" + +#~ msgid "<package>.types" +#~ msgstr "<package>.types" + +#~ msgid "<package>-sections.txt" +#~ msgstr "<package>-sections.txt" + +#~ msgid "explanation" +#~ msgstr "explication" + +#~ msgid "" +#~ "Missing or wrong naming in file (see )." +#~ msgstr "" +#~ "Mauvais nom ou nom absent dans le fichier (consultez " +#~ ")." + +#~ msgid "GtkWidget" +#~ msgstr "GtkWidget" + +#~ msgid "<package>-docs.{xml,sgml}" +#~ msgstr "<package>-docs.{xml,sgml}" + +#~ msgid "<package>.hierarchy" +#~ msgstr "<package>.hierarchy" + +#~ msgid "xml/tree_index.sgml" +#~ msgstr "xml/tree_index.sgml" + +#~ msgid "xml/annotation-glossary.xml" +#~ msgstr "xml/annotation-glossary.xml" + +#~ msgid "Check that is xi:included from ." +#~ msgstr "" +#~ "Vérifiez que est xi:included à partir de ." diff --git a/help/manual/fr/fr.stamp b/help/manual/fr/fr.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/fr/fr.stamp diff --git a/help/manual/fr/index.docbook b/help/manual/fr/index.docbook new file mode 100644 index 0000000..e624249 --- /dev/null +++ b/help/manual/fr/index.docbook @@ -0,0 +1,2064 @@ + + + + +included"> +]> + + + + Manuel de GTK-Doc + 1.24.1 + Manuel utilisateur pour les développeurs contenant les instructions sur l'usage de GTK-Doc. + + Chris Lyttle
    chris@wilddev.net
    + Dan Mueth
    d-mueth@uchicago.edu
    + + Stefan + Sauer (Kost) + +
    + ensonic@users.sf.net +
    +
    +
    +
    + Projet GTK-Doc
    gtk-doc-list@gnome.org
    + 2000, 2005 Dan Mueth et Chris Lyttle + + 2007-2015 + Stefan Sauer (Kost) + + + + + + Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la licence de documentation libre GNU, version 1.1 ou ultérieure publiée par la Free Software Foundation sans section inaltérable, sans texte de première page de couverture ni texte de dernière page de couverture. Vous trouverez un exemplaire de cette licence en suivant ce lien. + La plupart des noms utilisés par les entreprises pour distinguer leurs produits et services sont des marques déposées. Lorsque ces noms apparaissent dans la documentation GNOME et que les membres du projet de Documentation GNOME sont informés de l'existence de ces marques déposées, soit ces noms entiers, soit leur première lettre est en majuscule. + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + + 1.27 + 07 Dec 2017 + ss + fine tuning of the python port + + + 1.26 + 11 Aug 2017 + ss + port all tools from perl/bash to python + + + 1.25 + 21 March 2016 + ss + bug fixes, test cleanups + + + 1.24 + 29 May 2015 + ss + bug fix + + + 1.23 + 17 May 2015 + ss + bug fix + + + 1.22 + 07 May 2015 + ss + bug fixes, dropping deprecated features + + + 1.21 + 17 Jul 2014 + ss + bug fixes, dropping deprecated features + + + 1.20 + 16 Feb 2014 + ss + bug fixes, markdown support, style improvements + + + 1.19 + 05 Jun 2013 + ss + bug fixes + + + 1.18 + 14 Sep 2011 + ss + bug fixes, speedups, markdown support + + 1.17 26 février 2011 sk mise à jour pour une correction de bogue urgente + 1.16 14 janvier 2011 sk correctifs et améliorations de mise en page + 1.15 21 mai 2010 sk corrections d'anomalies et de régressions + 1.14 28 mars 2010 sk correctifs et amélioration de performances + 1.13 18 décembre 2009 sk mise à jour du tarball brisé + 1.12 18 décembre 2009 sk nouvelles fonctionnalités aux outils et résolution de bogues + 1.11 16 novembre 2008 mal Migration à GNOME doc-utils + + + + + + Yannick Tailliez + + ytdispatch-libre02@yahoo.com + + + + 2009 + + Yannick Tailliez + + + + + Frédéric Péters + + fpeters@0d.be + + + + 2009 + + Frédéric Péters + + + + + Bruno Brouard + + annoa.b@gmail.com + + + + 2010 + + 2012 + + Bruno Brouard + + + + + Claude Paroz + + claude@2xlibre.net + + + + 2010 + + Claude Paroz + + + + + Gérard Baylard + + Geodebay@gmail.com + + + + 2010 + + Gérard Baylard + + + + + Luc Pionchon + + pionchon.luc@gmail.com + + + + 2011 + + Luc Pionchon + +
    + + + + + Introduction + + Ce chapitre présente GTK-Doc et fournit un aperçu de ce que c'est et de la manière de l'utiliser. + + + Qu'est-ce que GTK-Doc ? + + GTK-Doc est utilisé pour documenter du code C. Il est typiquement utilisé pour documenter les API publiques de bibliothèques, comme les bibliothèques GTK+ et GNOME. Mais il peut aussi être utilisé pour documenter du code d'application. + + + + Fonctionnement de GTK-Doc ? + + GTK-Doc fonctionne en utilisant la documentation de fonctions placées dans le code source sous la forme de blocs de commentaires avec un formatage spécifique ou la documentation ajoutée aux fichiers prototypes que GTK-Doc utilise (notez cependant que GTK-Doc ne documente que les fonctions déclarées dans des fichiers d'en-tête ; il ne fait rien pour les fonctions statiques). + + + GTK-Doc consists of a number of python scripts, each performing a different step + in the process. + + + Il y a 5 étapes principales : + + + + + Écriture de la documentation. L'auteur complète les fichiers sources avec la documentation pour chaque fonction, macro, union, etc. (dans le passé, l'information était saisie dans les fichiers prototypes générés mais ce n'est plus recommandé). + + + + Collecte des informations sur le code. gtkdoc-scan analyse les fichiers d'en-tête du code à la recherche des déclarations de fonctions, de macros, d'énumérations, de structures et d'unions. Il crée le fichier <module>-decl-list.txt contenant une liste des déclarations en les plaçant dans des sections en accord avec le fichier d'en-tête d'où elles proviennent. Lors du premier lancement, ce fichier est copié dans <module>-sections.txt. L'auteur peut réorganiser les sections et l'ordre des déclarations dans celui-ci, pour obtenir l'ordre final souhaité. Le deuxième fichier généré est <module>-decl.txt. Ce fichier contient les déclarations complètes trouvées lors de l'analyse. Si, pour une raison quelconque, on souhaite voir apparaître dans la documentation des éléments qui n'ont pas été trouvé lors de l'analyse, ou dont la déclaration doit apparaître différemment, il est possible d'ajouter des entrées dans <module>-overrides.txt similaires à celle de <module>-decl.txt. + gtkdoc-scanobj peut aussi être utilisé pour interroger de manière dynamique une bibliothèque à propos de n'importe quelle sous-classe de GtkObject qu'elle exporte. Il enregistre les informations sur la position de chaque objet dans la hiérarchie de classe et sur tous les arguments et signaux GTK fournis. + gtkdoc-scanobj ne devrait plus être utilisé. Il était nécessaire par le passé lorsque GObject était encore GtkObject dans gtk+. + + + + + Generating the XML and HTML/PDF. + + gtkdoc-mkdb turns the template files into + XML files in the xml/ subdirectory. + If the source code contains documentation on functions, using the + special comment blocks, it gets merged in here. If there are no tmpl files used + it only reads docs from sources and introspection data. + + + gtkdoc-mkhtml turns the XML files into HTML + files in the html/ subdirectory. + Likewise gtkdoc-mkpdf turns the XML files into a PDF + document called <package>.pdf. + + + Files in xml/ and + html/ directories are always + overwritten. One should never edit them directly. + + + + + Résolution des références croisées entre les documents. Après installation des fichiers HTML, gtkdoc-fixxref peut être exécuté pour résoudre toutes les références croisées entre les différents documents. Par exemple, la documentation de GTK+ contient beaucoup de références croisées vers des types documentés dans le manuel de GLib. Lors de la création de l'archive des sources pour la distribution, gtkdoc-rebase transforme tous les liens externes en liens Web. Lorsque vous installez la documentation distribuée (pré-générée), la même application va essayer de retransformer les liens en liens locaux (là où ces documentations sont installées). + + + + + + + Obtention de GTK-Doc + + + Pré-requis + + python 2/3 - the main scripts are written in python. + + + xsltproc - the xslt processor from libxslt + xmlsoft.org/XSLT/ + + + docbook-xsl - the docbook xsl stylesheets + sourceforge.net/projects/docbook/files/docbook-xsl + + + One of source-highlight, highlight or + vim - optional - used for syntax highlighting of examples + + + + + + À propos de GTK-Doc + + (À COMPLETER) + + + (History, authors, web pages, mailing list, license, future plans, + comparison with other similar systems.) + + + + + + À propos de ce manuel + + (À COMPLETER) + + (qui est concerné, où le récupérer, licence) + + + + + + + Mise en place de votre projet + + Les sections suivantes décrivent les étapes à suivre pour intégrer GTK-Doc dans votre projet. Nous allons supposer que vous travaillez sur un projet appelé « meep ». Ce projet contient une bibliothèque appelée « libmeep » et une application « meeper ». Nous supposons également que vous utilisez autoconf et automake. Dans le cas contraire, la section « makefiles » simples et autres systèmes de compilation décrit les éléments de base à respecter pour travailler dans une autre configuration de construction. + + + Mise en place du squelette de documentation + + Dans le répertoire racine de votre projet, créez les répertoires appelés docs/reference (de la même façon, vous pouvez avoir docs/help pour la documentation utilisateur). Il est recommandé de créer un autre sous-répertoire portant le nom du paquet de documentation. Pour les paquets qui contiennent seulement une bibliothèque, cette étape n'est pas nécessaire. + + Cela peut ressembler à ce qui suit : Exemple d'arborescence de répertoires + + + + + + Intégration avec autoconf + + C'est très simple ! Il faut juste ajouter une ligne dans votre script configure.ac. + + + Intégration avec autoconf + + + + + Cela impose à tous les développeurs d'installer gtk-doc. Si pour votre projet, vous pouvez avoir une configuration de construction api-doc optionnelle, vous pouvez résoudre ce problème comme ci-dessous. Ne le modifiez pas car gtkdocize recherche GTK_DOC_CHECK au début d'une ligne. Laisser gtk-doc optionnel + + + + Le premier argument est utilisé pour vérifier le paramètre gtkdocversion au moment de la configuration. Le second, en option, est utilisé par gtkdocize. La macro GTK_DOC_CHECK ajoute également plusieurs drapeaux de configuration : + + --with-html-dir=CHEMIN : répertoire d'installation de la documentation, + --enable-gtk-doc : utilisation de gtk-doc pour construire la documentation [par défaut=no], + --enable-gtk-doc-html : construction de la documentation au format html [par défaut=yes], + --enable-gtk-doc-pdf : construction de la documentation au format pdf [par défaut=no]. + + + + GTK-Doc est désactivé par défaut ! N'oubliez pas de passer l'option lors de la prochaine exécution du script configure. Dans le cas contraire, la documentation pré-générée est installée (ce qui a du sens pour les utilisateurs mais pas pour les développeurs). + + + + Furthermore it is recommended that you have the following line inside + your configure.ac script. + This allows gtkdocize to automatically copy the + macro definition for GTK_DOC_CHECK to your project. + + + + Préparation pour gtkdocize + + + + + After all changes to configure.ac are made, update + the configure file. This can be done by re-running + autoreconf -i or autogen.sh. + + + + + Intégration avec automake + + + First copy the Makefile.am from the + examples sub directory of the + gtkdoc-sources + to your project's API documentation directory ( + ./docs/reference/<package>). + A local copy should be available under e.g. + /usr/share/doc/gtk-doc-tools/examples/Makefile.am. + If you have multiple doc-packages repeat this for each one. + + + L'étape suivante est de modifier les options dans le fichier Makefile.am. Toutes les options sont accompagnées d'un commentaire au-dessus qui explique leur fonction. La plupart des options sont des paramètres supplémentaires qui sont passés aux outils respectifs. Chaque outil possède une variable de la forme . Tous les outils prennent en charge l'option qui affiche la liste des options prises en charge. + + + + + + + Intégration avec autogen + + La plupart des projets possède un script autogen.sh pour configurer l'infrastructure de compilation après un « checkout » depuis un système de gestion de versions (comme cvs/svn/git). GTK-Doc est livré avec un outil appelé gtkdocize, qui peut être utilisé dans un script comme celui-ci. Il doit être lancé avant autoheader, automake ou autoconf. + + + Exécution de gtkdocize depuis autogen.sh + + + + + Lorsque gtkdocize est exécuté, il copie gtk-doc.make vers le répertoire racine de votre projet (ou tout autre répertoire désigné par l'option ). Il vérifie également l'invocation de GTK_DOC_CHECK dans le script configure. Cette macro peut être utilisée pour transmettre des paramètres supplémentaires à gtkdocize. + + Historiquement, GTK-Doc générait des fichiers prototypes dans lesquels les développeurs saisissaient la documentation. Il s'est avéré que ce n'était pas une bonne idée (comme le besoin de placer les fichiers générés dans le gestionnaire de versions). Depuis GTK-Doc 1.9, les outils peuvent récupérer toutes les informations à partir des commentaires dans les sources, ce qui permet d'éviter d'avoir des prototypes. Nous vous encourageons à conserver la documentation dans le code. gtkdocize prend maintenant en charge une option qui choisit un makefile qui s'affranchit totalement de l'utilisation des fichiers prototypes (tmpl). En plus d'ajouter les options directement au moment de l'appel de la commande, elles peuvent être ajoutées également dans une variable d'environnement appelée GTKDOCIZE_FLAGS ou choisies comme deuxième paramètre dans la macro GTK_DOC_CHECK dans le script de configuration. Si aucune modification n'a été faite à la main dans les fichiers prototypes et si vous migrez à partir d'anciennes versions de gtkdoc, supprimez le répertoire (par ex. à partir du système de gestion de versions). + + + + Lancement de la construction de la documentation + + Après toutes ces étapes, il est temps de lancer la construction. Tout d'abord, il faut relancer autogen.sh. Si ce script lance « configure » pour vous, alors il faut ajouter l'option , sinon lancez manuellement configure suivi de cette option. + La première exécution de make génère plusieurs fichiers supplémentaires dans les répertoires de documentation (doc-directories). Les plus importants sont : <paquet>.types, <paquet>-docs.xml (anciennement .sgml), <paquet>-sections.txt. + + Lancement de la construction de la documentation + + + + Maintenant, vous pouvez saisir l'adresse docs/reference/<paquet>/index.html dans votre navigateur. Le résultat est encore un peu décevant mais le prochain chapitre va expliquer comment donner de la vie à ces pages. + + + + Intégration avec des systèmes de gestion de versions + + + As a rule of thumb, it's the files you edit which should go under + version control. For typical projects it's these files: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt, + Makefile.am. + + + Files in the xml/ and html/ + directories should not go under version control. Neither should any of + the .stamp files. + + + + + Intégration avec des « makefiles » simples et d'autres systèmes de compilation + + Dans les cas où l'emploi de automake n'est pas souhaité et donc sans fichier gtk-doc.mak, il s'agit alors d'appeler les outils gtkdoc dans le bon ordre dans les fichiers « makefiles » ad hoc (ou d'autres systèmes). + + + Étapes de construction de la documentation + +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir= +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html +]]> + + + + Il s'agit d'examiner les fichiers Makefile.am et gtk-doc.mak pour y trouver les options supplémentaires nécessaires. + + + + Integration with CMake build systems + + + GTK-Doc now provides a GtkDocConfig.cmake module + (and the corresponding GtkDocConfigVersion.cmake + module). This provides a gtk_doc_add_module + command that you can set in your CMakeLists.txt + file. + + + + The following example shows how to use this command. + Example of using GTK-Doc from CMake + + + + + + + + Documentation du code + + GTK-Doc utilise les commentaires du code source, avec une syntaxe spéciale pour la documentation du code. En outre, il récupère des informations sur la structure de votre projet à partir d'autres sources. La section suivante vous donne toutes les informations concernant la syntaxe des commentaires. + + + Emplacement de la documentation + Par le passé, la plupart de la documentation devait être placé dans des fichiers dans le répertoire tmpl. Les inconvénients étaient que l'information n'était pas souvent mise à jour et que ces fichiers avaient tendance à provoquer des conflits avec les systèmes de gestion de versions. + Pour éviter ces problèmes, il est conseillé de placer la documentation dans le code source. Ce manuel ne décrit que cette manière de documenter du code. + + + + The scanner can handle the majority of C headers fine. In the case of + receiving warnings from the scanner that look like a special case, one can + hint GTK-Doc to skip over them. + GTK-Doc comment block + + + + + + Limitations + + Note, that GTK-Doc's supports + #ifndef(__GTK_DOC_IGNORE__) but not + #if !defined(__GTK_DOC_IGNORE__) or other combinations. + + + + + + + Commentaires de documentation + + Un commentaire multi-ligne qui commence avec un symbole « * » supplémentaire indique un bloc de documentation qui sera traité par les outils GTK-Doc. Bloc de commentaire GTK-Doc + + + + L'« identifier » (identifiant) est une ligne contenant le nom de l'élément avec lequel le commentaire est lié. La syntaxe diffère légèrement en fonction de l'élément. (À FAIRE : ajouter un tableau montrant les identifiants) + + + The 'documentation' block is also different for each symbol type. Symbol + types that get parameters such as functions or macros have the parameter + description first followed by a blank line (just a '*'). + Afterwards follows the detailed description. All lines (outside program + listings and CDATA sections) just containing a ' *' (blank-asterisk) are + converted to paragraph breaks. + If you don't want a paragraph break, change that into ' * ' + (blank-asterisk-blank-blank). This is useful in preformatted text (code + listings). + + + + En documentant le code, deux aspects doivent être abordés : + + Ce que c'est : le nom d'une classe ou d'une fonction peut parfois être trompeur pour les personnes habituées à d'autres environnements. + + + Ce qu'il fait : indiquer les usages courants. À mettre en relation avec les autres API. + + + + + L'un des avantages de l'hypertexte par rapport au texte simple, c'est la possibilité d'avoir des liens dans les documents. Écrire correctement le balisage d'un lien peut être fastidieux. GTK-Doc fournit plusieurs raccourcis utiles pour vous aider. + + Utilisez fonction() pour vous référer à des fonctions ou des macros qui prennent des arguments. + + + Utilisez @paramètre pour vous référer aux paramètres. Utilisez-le aussi pour les paramètres d'autres fonctions, en relation avec celle décrite. + + + Utilisez %constante pour vous référer à une constante, par ex. : %MA_CONSTANTE. + + + Utilisez #symbole pour vous référer à d'autres types de symbole. Par exemple des structures, énumérations ou macros qui ne prennent pas d'arguments. + + + + Use #Object::signal to refer to a GObject signal. + + + + + Use #Object:property to refer to a GObject property. + + + + + Use #Struct.field to refer to a field inside a structure and + #GObjectClass.foo_bar() to refer to a vmethod. + + + + + + Si vous avez besoin d'utiliser les caractères spéciaux « '<', '> », « () », « @ », « % » ou « # » dans votre documentation sans que GTK-Doc ne les interprète, vous pouvez utiliser les entités XML « &lt; », « &gt; », « &lpar; », « &rpar; », « &commat; », « &percnt; », « &num; » ou les échapper en les précédant d'un antislash « \ ». + + + + DocBook can do more than just links. One can also have lists, + examples, headings, and images. As of version 1.20, the + preferred way is to use a subset of the basic text formatting + syntax called + Markdown. + On older GTK-Doc versions any documentation that includes + Markdown will be rendered as is. For example, list items will + appear as lines starting with a dash. + + + + While markdown is now preferred one can mix both. One limitation here is + that one can use docbook xml within markdown, but markdown within + docbook xml is not supported. + + + + In older GTK-Doc releases, if you need support for additional + formatting, you would need to enable the usage of docbook + XML tags inside doc-comments by putting + (or ) in the variable + MKDB_OPTIONS inside Makefile.am. + + + + GTK-Doc comment block using Markdown + + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ +]]> + + + + + More examples of what markdown tags are supported can be found in the + GTK+ Documentation Markdown Syntax Reference. + + + + Comme indiqué plus tôt, GTK-Doc est fait pour documenter les API publiques. On ne peut donc pas écrire de la documentation pour les symboles statiques. Néanmoins, il est bon de commenter ces symboles aussi. Cela aide les autres à comprendre votre code. Par conséquent, nous recommandons de les documenter à l'aide de commentaires normaux (sans le second « * » à la première ligne). Si, plus tard, la fonction doit être rendue publique, il suffira juste d'ajouter un « * » dans le bloc de commentaires et d'ajouter le nom du symbole à la bonne place à l'intérieur du fichier des sections. + + + + + Documentation des sections + + Chaque section de la documentation contient des informations sur une classe ou un module. Pour introduire le composant, il est possible d'écrire un bloc de section. La description courte est également utilisée dans la table des matières. Tous les @champs sont facultatifs. + + + Bloc de commentaires de section + + + + + + + SECTION:<nom> + + + The name links the section documentation to the respective part in + the <package>-sections.txt file. The + name given here should match the <FILE> tag in the + <package>-sections.txt file. + + + + + @short_description + + Une description de la section en une seule ligne, elle apparaîtra derrière les liens dans la table des matières et au début de la page de la section. + + + + @title + + Par défaut, la section titre est celle de la déclaration SECTION: <nom>. Elle peut être modifiée grâce au champ @title. + + + + @section_id + + Remplace l'utilisation du titre comme identificateur de section. Pour GObjects, <title> est utilisé à la place de section_id et pour les autres sections, c'est <MODULE>-<title>. + + + + @see_also + + Une liste de symboles qui ont un lien avec cette section. + + + + @stability + + + An informal description of the stability level this API has. + We recommend the use of one of these terms: + + + + Stable + - The intention of a Stable interface is to enable arbitrary + third parties to develop applications to these interfaces, + release them, and have confidence that they will run on all + minor releases of the product (after the one in which the + interface was introduced, and within the same major release). + Even at a major release, incompatible changes are expected + to be rare, and to have strong justifications. + + + + + Unstable + - Unstable interfaces are experimental or transitional. + They are typically used to give outside developers early + access to new or rapidly changing technology, or to provide + an interim solution to a problem where a more general + solution is anticipated. + No claims are made about either source or binary + compatibility from one minor release to the next. + + + + + Private + - An interface that can be used within the GNOME stack + itself, but that is not documented for end-users. Such + functions should only be used in specified and documented + ways. + + + + + Internal + - An interface that is internal to a module and does not + require end-user documentation. Functions that are + undocumented are assumed to be Internal. + + + + + + + + @include + + Les fichiers #include à afficher dans le résumé de la section (liste d'éléments séparés par des virgules), elle outrepasse la valeur globale du fichier de section ou de la ligne de commande. Cet élément est facultatif. + + + + @image + + L'image à afficher en haut de la page de référence pour cette section. C'est très souvent une espèce de diagramme pour illustrer l'apparence visuelle d'une classe ou un diagramme de ses relations avec d'autres classes. Cet élément est facultatif. + + + + + + Pour éviter des recompilations inutiles après des modifications de la documentation, placez la documentation de section dans les fichiers sources C, lorsque cela est possible. + + + + + + Documentation des symboles + + Chaque symbole (fonction, macro, structure, énumération, signal et propriété) est documenté dans un bloc séparé. Il est mieux de placer le bloc près de la définition de son symbole pour faciliter sa synchronisation. Par conséquent, les fonctions sont habituellement documentées dans les fichiers sources C et les macros et les structures et les énumérations le sont dans le fichier d'en-tête. + + Étiquettes générales + + Vous pouvez ajouter des informations de version à tous les éléments de documentation pour indiquer quand l'API a été introduite ou quand elle est devenue obsolète. + + Étiquettes de version + « Since »: + + Texte indiquant depuis quelle version du code cette API est disponible. + + + « Deprecated » : + + Texte indiquant que cette fonction ne doit plus être utilisée. La description doit rediriger le lecteur vers la nouvelle API. + + + + + + You can also add stability information to all documentation elements + to indicate whether API stability is guaranteed for them for all + future minor releases of the project. + + + + The default stability level for all documentation elements can be set + by passing the argument to + gtkdoc-mkdb with one of the values below. + + + Stability Tags + Stability: Stable + + + Mark the element as stable. This is for public APIs which are + guaranteed to remain stable for all future minor releases of the + project. + + + + Stability: Unstable + + + Mark the element as unstable. This is for public APIs which are + released as a preview before being stabilised. + + + + Stability: Private + + + Mark the element as private. This is for interfaces which can be + used by tightly coupled modules, but not by arbitrary third + parties. + + + + + + Étiquettes générales + + + + + Annotations + + + Documentation blocks can contain annotation-tags. These tags will be + rendered with tooltips describing their meaning. The tags are used by + gobject-introspection to generate language bindings. A detailed list + of the supported tags can be found on + the wiki. + + + Annotations + + + + + Bloc de commentaires pour les fonctions + + N'oubliez pas : + + d'indiquer si les objets, listes, chaînes, etc. retournés doivent être freed/unfreed/released, + + + d'indiquer si les paramètres peuvent être NULL et ce qui se passe dans ce cas, + + + de mentionner les pré-conditions et post-conditions intéressantes si nécessaire. + + + + GTK-Doc considère que tous les symboles (macros, fonctions) commençant par « _ » sont privés. Ils sont traités comme des fonctions statiques. + + Bloc de commentaires pour les fonctions + + + + Étiquettes de fonction + « Returns » : + + Paragraphe décrivant le résultat retourné. + + + @...: + + Au cas où la fonction possède des arguments variables, vous devriez utiliser cette étiquette (@Varargs : peut également être utilisé pour des raisons historiques). + + + + + + + Bloc de commentaires pour les propriétés + + Bloc de commentaires pour les propriétés + + + + + + Bloc de commentaires pour les signaux + + N'oubliez pas : + + d'indiquer quand le signal est émis et s'il est émis avant ou après d'autres signaux, + + + d'indiquer ce qu'une application peut faire dans le gestionnaire du signal. + + + + Bloc de commentaires pour les signaux + + + + + + Bloc de commentaire pour les structures + Bloc de commentaire pour les structures + + + + Utilisez /*< private >*/ avant les champs de structures privées que vous voulez cacher. Utilisez /*< public >*/ dans le cas contraire. + + + If the first field is "g_iface", "parent_instance" or "parent_class" + it will be considered private automatically and doesn't need to be + mentioned in the comment block. + + + Les blocs de commentaire pour les structures peuvent aussi être utilisés avec GObjects et GObjectClasses. Il est normalement recommandé d'ajouter un bloc de commentaire pour une classe, si elle contient des vmethods (car c'est la manière de les documenter). Pour GObject, il est possible d'utiliser la documentation de section correspondante ; la présence d'un bloc séparé pour la structure de l'instance serait utile si l'instance possède des champs publics. Le désavantage ici étant que cela crée deux entrées d'index pour le même nom (la structure et la section). + + + + Bloc de commentaire pour les énumérations + Bloc de commentaire pour les énumérations + */ + SOMETHING_COUNT +} Something; +]]> + + + Utilisez /*< private >*/ avant les valeurs d'énumérations privées que vous voulez cacher. Utilisez /*< public >*/ dans le cas contraire. + + + + + + + Inline program documentation + + You can document programs and their commandline interface using inline + documentation. + + + + Tags + + PROGRAM + + + + Defines the start of a program documentation. + + + + + + @short_description: + + + Defines a short description of the program. (Optional) + + + + + + @synopsis: + + + Defines the arguments, or list of arguments that the program can take. + (Optional) + + + + + + @see_also: + + + See Also manual page section. (Optional) + + + + + + @arg: + + + Argument(s) passed to the program and their description. (Optional) + + + + + + Description: + + + A longer description of the program. + + + + + + « Returns » : + + + Specificy what value(s) the program returns. (Optional) + + + + + + + + Example of program documentation. + Program documentation block + + + + + + + + Balises DocBook utiles + + Voici quelques balises DocBook très utiles pendant la conception de la documentation d'un code. + + Pour créer un lien vers une autre section dans la documentation GTK : + Hash Tables +]]> + l'élément « linkend » est l'identifiant SGML/XML de l'élément le plus haut sur la page vers laquelle vous voulez pointer. Pour la plupart des pages, c'est en général la partie (« gtk », « gdk », « glib ») suivi du titre de la page (« Hash Tables »). Pour les éléments graphiques, c'est simplement le nom de la classe. Les espaces et les caractères de soulignement sont convertis en « - » pour être conforme au SGML/XML. + + Pour faire référence à une fonction externe comme, par exemple, à une fonction C standard : + ...
    +]]> + + + Pour inclure des extraits de code : + + Using a GHashTable. + + ... + + +]]> + ou ceci, pour des petits fragments de code qui ne nécessitent pas de titre : + + + ... + + +]]> + Pour ces derniers, GTK-Doc prend également en charge une abréviation : |[ ... ]| + + Pour ajouter une liste à puces : + + + + ... + + + + + ... + + + +]]> + + + Pour ajouter une note de bas de page : + + + Make sure you free the data after use. + + +]]> + + + Pour se référer à un type : + unsigned char
    +]]> + + + Pour se référer à une structure externe (non décrite dans la documentation GTK) : + XFontStruct +]]> + + + Pour se référer à un champ d'une structure : + len +]]> + + + Pour se référer au nom d'une classe, il est possible d'utiliser : + GtkWidget +]]> + mais vous utiliserez probablement #GtkWidget à la place (pour créer automatiquement un lien vers la page GtkWidget - consultez les raccourcis). + + Pour mettre en évidence un texte : + This is important +]]> + + + Pour les noms de fichiers : + /home/user/documents
    +]]> + + + Pour se référer à des touches : + ControlL +]]> + + + + + + + Remplissage des fichiers supplémentaires + + Il y a plusieurs fichiers supplémentaires, qui ont besoin d'être maintenus en parallèle aux commentaires dans le code source : <package>.types, <package>-docs.xml (anciennement .sgml), <package>-sections.txt. + + + Édition du fichier « types » + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Extrait d'un exemple de fichier « types » + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + Depuis GTK-Doc 1.8, gtkdoc-scan peut générer cette liste pour vous. Ajoutez simplement l'option « --rebuild-types » à SCAN_OPTIONS dans le fichier Makefile.am. Si vous utilisez cette approche vous ne devriez pas distribuer le fichier « types », ni l'avoir dans le système de gestion de versions. + + + + + Édition du document maître + + GTK-Doc génère de la documentation au format SGML/XML DocBook. Lors du traitement des commentaires dans les fichiers sources, les outils GTK-Doc génèrent une page de documentation par classe ou par module dans un fichier séparé. Le document maître les inclut et les place dans l'ordre. + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + Ne créez pas de tutoriels comme documents supplémentaires. Écrivez juste des chapitres supplémentaires. L'avantage d'inclure le tutoriel de votre bibliothèque directement dans la documentation de l'API est qu'il est facile d'y ajouter des liens qui pointent vers la documentation des symboles. De plus, il y aura plus de chance que votre tutoriel soit mis à jour en même temps que la bibliothèque. + + + Alors, quelles sont les choses à modifier dans le document maître ? Pour commencer, très peu de choses. Il n'y a quelques paramètres substituables (texte entre crochets) que vous devrez prendre en charge. + + + En-tête du document maître + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + Édition du fichier section + + Le fichier section est utilisé pour organiser la documentation générée par GTK-Doc. C'est ici qu'il faut indiquer quels symboles sont attachés à quels modules ou classes et contrôler la visibilité (« public » ou « private »). + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + La balise <TITLE> ... </TITLE> est utilisée pour indiquer le titre de la section. C'est utile seulement avant la création initiale des prototypes, car ensuite le titre défini dans le prototype est prioritaire. Elle est également obsolète si des commentaires de SECTION sont utilisés dans les fichiers sources. + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + Vous pouvez utiliser les balises <INCLUDE> ... </INCLUDE> pour indiquer les fichiers #include qui sont affichés dans les sections résumé. Elles contiennent une liste de fichiers #include, séparés par des virgules, sans les chevrons. Si vous les placez en dehors d'une section, elles s'appliquent à toutes les sections jusqu'à la fin du fichier. Si vous les placez dans une section, elles s'appliquent seulement à cette section. + +
    + +
    + + + Contrôle du résultat + + Une exécution de GTK-Doc produit des fichiers de compte-rendu dans le répertoire de documentation. Ces fichiers sont nommés : <package>-undocumented.txt, <package>-undeclared.txt et <package>-unused.txt. Tous ces fichiers texte peuvent être lus et post-traités facilement. + + Le fichier <package>-undocumented.txt commence avec un résumé du sujet couvert par la documentation. Suivent deux sections séparées par des lignes blanches. La première section liste les symboles non documentés ou incomplets. La seconde section fait de même pour les documentations de sections. Les éléments incomplets sont ceux qui possèdent une documentation mais auxquels, par exemple, un paramètre a été ajouté. + + Le fichier <package>-undeclared.txt liste les symboles contenus dans le fichier <package>-sections.txt mais non trouvés dans les fichiers sources. Vérifiez s'ils n'ont pas été supprimés ou mal orthographiés. + + Le fichier <package>-unused.txt liste les noms des symboles pour lesquels l'analyseur GTK-Doc a trouvé de la documentation mais ne sait pas où la placer. Cela signifie que le symbole n'a pas encore été ajouté au fichier <package>-sections.txt. + + + Activez ou ajoutez la ligne dans le fichier Makefile.am. Si la version installée de GTK-Doc est supérieure à 1.9, des contrôles de validité seront lancés pendant l'exécution de make check. + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documentation d'autres interfaces + + Nous avons jusqu'ici utilisé GTK-Doc pour documenter les API du code. Les sections qui suivent contiennent des suggestions sur la manière d'utiliser les outils pour documenter aussi d'autres interfaces. + + + Options de ligne de commande et pages de manuel + + Comme il est possible de générer aussi des pages de manuel à partir d'une « refentry » DocBook, il semble donc intéressant de l'utiliser dans ce but. Ainsi, l'interface fait partie de la référence et l'on obtient en cadeau la page de manuel. + + + Documentation de l'outil + + Créez un fichier « refentry » par outil. En suivant notre exemple, nous l'appellerons meep/docs/reference/meeper/meep.xml. Pour connaître les balises XML pouvant être utilisées, on peut observer le fichier généré dans le sous-répertoire xml ou des exemples comme dans glib. + + + + Ajout de contrôles « configure » supplémentaires + + + Contrôles « configure » supplémentaires + + + + + + + Ajout de règles « makefile » supplémentaires + + + Contrôles « configure » supplémentaires + + + + + + + + Interfaces DBus + + (À_CORRIGER : http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + Foire aux questions + + + + Question  + Réponse  + + Pas de hiérarchie de classe. + Les fonctions objet xxx_get_type() n'ont pas été saisies dans le fichier <module>.types. + + + Toujours pas de hiérarchie de classe. + Mauvais nom ou nom absent dans le fichier <module>-sections.txt (consultez une explication). + + + Zut, je n'ai toujours pas de hiérarchie de classe. + Est-ce que le nom de l'objet (nom de la structure de l'instance, par ex. GtkWidget) fait parti de la section « normal » (ne pas le mettre dans les sous-sections « Standard » ou « Private »). + + + Pas d'index des symboles. + Est-ce que <module>-docs.{xml,sgml} contient un index qui « xi:includes » l'index généré ? + + + Les symboles ne sont pas liés à leur section de documentation. + Est-ce que doc-comment utilise le markup correct (ajout d'un #, % ou ()) ? Contrôlez si gtkdoc-fixxref affiche des avertissements à propos de xrefs non résolus. + + + Une nouvelle classe n'apparaît pas dans les documents. + Est-ce que la nouvelle page est xi:included à partir de <module>-docs.{xml,sgml}. + + + Un nouveau symbole n'apparaît pas dans les documents. + Est-ce que le doc-comment est correctement formaté. Vérifiez qu'il n'y a pas d'erreur de frappe au début du commentaire. Vérifiez que gtkdoc-fixxref ne vous indique pas de xrefs non résolus. Vérifiez que le symbole est correctement listé dans une section publique de <module>-sections.txt. + + + Un type est absent dans la hiérarchie de classe. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + J'obtiens des liens foldoc pour toutes les annotations gobject. + Vérifiez que xml/annotation-glossary.xml est xi:included à partir de <module>-docs.{xml,sgml}. + + + + + Un paramètre est décrit dans le bloc de commentaires dans le code source mais il n'existe pas. + Vérifiez si le prototype dans le fichier d'en-tête possède des noms de paramètres différents de ceux du fichier source. + + + + + « ID » multiples pour le linkend: XYZ contraint + Le symbole XYZ apparaît en double dans le fichier <module>-sections.txt. + + + Élément typename dans l'espace de nom '' rencontré dans para mais aucun prototype ne correspond. + + + + + + + Outils liés à gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + Version 1.1, mars 2000 + 2000Free Software Foundation, Inc. + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    Chacun est libre de copier et de distribuer des copies conformes de cette Licence, mais nul n'est autorisé à la modifier.
    +
    +
    + Licence de Documentation Libre GNU + + + 0. Préambule + L'objet de cette Licence est de rendre tout manuel, livre ou autre document écrit libre au sens de la liberté d'utilisation, à savoir : assurer à chacun la liberté effective de le copier ou de le redistribuer, avec ou sans modifications, commercialement ou non. En outre, cette Licence garantit à l'auteur et à l'éditeur la reconnaissance de leur travail, sans qu'ils soient pour autant considérés comme responsables des modifications réalisées par des tiers. + + Cette Licence est une sorte de copyleft, ce qui signifie que les travaux dérivés du document d'origine sont eux-mêmes « libres » selon les mêmes termes. Elle complète la Licence Publique Générale GNU, qui est également une Licence copyleft, conçue pour les logiciels libres. + + Nous avons conçu cette Licence pour la documentation des logiciels libres, car les logiciels libres ont besoin d'une documentation elle-même libre : un logiciel libre doit être accompagné d'un manuel garantissant les mêmes libertés que celles accordées par le logiciel lui-même. Mais cette Licence n'est pas limitée aux seuls manuels des logiciels ; elle peut être utilisée pour tous les documents écrits, sans distinction particulière relative au sujet traité ou au mode de publication. Nous recommandons l'usage de cette Licence principalement pour les travaux destinés à des fins d'enseignement ou devant servir de documents de référence. + + + 1. APPLICABILITÉ ET DÉFINITIONS + Cette Licence couvre tout manuel ou tout autre travail écrit contenant une notice de copyright autorisant la redistribution selon les termes de cette Licence. Le mot Document se réfère ci-après à un tel manuel ou travail. Toute personne en est par définition concessionnaire et est référencée ci-après par le terme Vous. + + Une Version modifiée du Document désigne tout travail en contenant la totalité ou seulement une portion de celui-ci, copiée mot pour mot, modifiée et/ou traduite dans une autre langue. + + Une Section secondaire désigne une annexe au Document, ou toute information indiquant les rapports entre l'auteur ou l'éditeur et le sujet (ou tout autre sujet connexe) du Document, sans toutefois être en rapport direct avec le sujet lui-même (par exemple, si le Document est un manuel de mathématiques, une Section secondaire ne traitera d'aucune notion mathématique). Cette section peut contenir des informations relatives à l'historique du Document, des sources documentaires, des dispositions légales, commerciales, philosophiques, ou des positions éthiques ou politiques susceptibles de concerner le sujet traité. + + Les Sections inaltérables sont des sections secondaires considérées comme ne pouvant être modifiées et citées comme telles dans la notice légale qui place le Document sous cette Licence. + + Les Textes de couverture sont les textes courts situés sur les pages de couverture avant et arrière du Document, et cités comme tels dans la mention légale de ce Document. + + Le terme Copie transparente désigne une version numérique du Document représentée dans un format dont les spécifications sont publiquement disponibles et dont le contenu peut être visualisé et édité directement et immédiatement par un éditeur de texte quelconque, ou (pour les images composées de pixels) par un programme de traitement d'images quelconque, ou (pour les dessins) par un éditeur de dessins courant. Ce format doit pouvoir être accepté directement ou être convertible facilement dans des formats utilisables directement par des logiciels de formatage de texte. Une copie publiée dans un quelconque format numérique ouvert mais dont la structure a été conçue dans le but exprès de prévenir les modifications ultérieures du Document ou dans le but d'en décourager les lecteurs n'est pas considérée comme une Copie Transparente. Une copie qui n'est pas Transparente est considérée, par opposition, comme Opaque. + + Le format de fichier texte codé en ASCII générique et n'utilisant pas de balises, les formats de fichiers Texinfo ou LaTeX, les formats de fichiers SGML ou XML utilisant une DTD publiquement accessible, ainsi que les formats de fichiers HTML simple et standard, écrits de telle sorte qu'ils sont modifiables sans outil spécifique, sont des exemples de formats acceptables pour la réalisation de Copies Transparentes. Les formats suivants sont opaques : PostScript, PDF, formats de fichiers propriétaires qui ne peuvent être visualisés ou édités que par des traitements de textes propriétaires, SGML et XML utilisant des DTD et/ou des outils de formatage qui ne sont pas disponibles publiquement, et du code HTML généré par une machine à l'aide d'un traitement de texte quelconque et dans le seul but de la génération d'un format de sortie. + + La Page de titre désigne, pour les ouvrages imprimés, la page de titre elle-même, ainsi que les pages supplémentaires nécessaires pour fournir clairement les informations dont cette Licence impose la présence sur la page de titre. Pour les travaux n'ayant pas de Page de titre comme décrit ci-dessus, la Page de titre désigne le texte qui s'apparente le plus au titre du document et situé avant le texte principal. + + + + 2. COPIES CONFORMES + Vous pouvez copier et distribuer le Document sur tout type de support, commercialement ou non, à condition que cette Licence, la notice de copyright et la notice de la Licence indiquant que cette Licence s'applique à ce Document soient reproduits dans toutes les copies, et que vous n'y ajoutiez aucune condition restrictive supplémentaire. Vous ne pouvez pas utiliser un quelconque moyen technique visant à empêcher ou à contrôler la lecture ou la reproduction ultérieure des copies que vous avez créées ou distribuées. Toutefois, vous pouvez solliciter une rétribution en échange des copies. Si vous distribuez une grande quantité de copies, référez-vous aux dispositions de la section 3. + + Vous pouvez également prêter des copies, sous les mêmes conditions que celles suscitées, et vous pouvez afficher publiquement des copies de ce Document. + + + + 3. COPIES EN NOMBRE + Si vous publiez des copies imprimées de ce Document à plus de 100 exemplaires et que la Licence du Document indique la présence de Textes de couverture, vous devez fournir une couverture pour chaque copie, qui présente les Textes de couverture des première et dernière pages de couverture du Document. Les première et dernière pages de couverture doivent également vous identifier clairement et sans ambiguïté comme étant l'éditeur de ces copies. La première page de couverture doit comporter le titre du Document en mots d'importance et de visibilité égales. Vous pouvez ajouter des informations complémentaires sur les pages de couverture. Les copies du Document dont seule la couverture a été modifiée peuvent être considérées comme des copies conformes, à condition que le titre du Document soit préservé et que les conditions indiquées précédemment soient respectées. + + Si les textes devant se trouver sur la couverture sont trop importants pour y tenir de manière claire, vous pouvez ne placer que les premiers sur la première page et placer les suivants sur les pages consécutives. + + Si vous publiez plus de 100 Copies opaques du Document, vous devez soit fournir une Copie transparente pour chaque Copie opaque, soit préciser ou fournir avec chaque Copie opaque une adresse réseau publiquement accessible d'une Copie transparente et complète du Document, sans aucun ajout ou modification, et à laquelle tout le monde peut accéder en téléchargement anonyme et sans frais, selon des protocoles réseau communs et standard. Si vous choisissez cette dernière option, vous devez prendre les dispositions nécessaires, dans la limite du raisonnable, afin de garantir l'accès non restrictif à la Copie transparente durant une année pleine après la diffusion publique de la dernière Copie opaque(directement ou via vos revendeurs). + + Nous recommandons, mais ce n'est pas obligatoire, que vous contactiez l'auteur du Document suffisamment tôt avant toute publication d'un grand nombre de copies, afin de lui permettre de vous donner une version à jour du Document. + + + + 4. MODIFICATIONS + Vous pouvez copier et distribuer une Version modifiée du Document en respectant les conditions des sections 2 et 3 précédentes, à condition de placer cette Version modifiée sous la présente Licence, dans laquelle le terme « Document » doit être remplacé par les termes « Version modifiée », donnant ainsi l'autorisation de redistribuer et de modifier cette Version modifiée à quiconque en possède une copie. De plus, vous devez effectuer les actions suivantes dans la Version modifiée : + + + + + A + Utiliser sur la Page de titre (et sur la page de couverture éventuellement présente) un titre distinct de celui du Document d'origine et de toutes ses versions antérieures (qui, si elles existent, doivent être mentionnées dans la section Historique du Document). Vous pouvez utiliser le même titre si l'éditeur d'origine vous en a donné expressément la permission. + + + + + + B + Mentionner sur la Page de titre en tant qu'auteurs une ou plusieurs des personnes ou entités responsables des modifications de la Version modifiée, avec au moins les cinq principaux auteurs du Document (ou tous les auteurs s'il y en a moins de cinq). + + + + + + C + Préciser sur la Page de titre le nom de l'éditeur de la Version modifiée, en tant qu'éditeur du Document. + + + + + + D + Préserver intégralement toutes les notices de copyright du Document. + + + + + + E + Ajouter une notice de copyright adjacente aux autres notices pour vos propres modifications. + + + + + + F + Inclure immédiatement après les notices de copyright une notice donnant à quiconque l'autorisation d'utiliser la Version modifiée selon les termes de cette Licence, sous la forme présentée dans l'annexe indiquée ci-dessous. + + + + + + G + Préserver dans cette notice la liste complète des Sections inaltérables et les Textes de couverture donnés avec la notice de la Licence du Document. + + + + + + H + Inclure une copie non modifiée de cette Licence. + + + + + + I + Préserver la section nommée Historique et son titre, et y ajouter une nouvelle entrée décrivant le titre, l'année, les nouveaux auteurs et l'éditeur de la Version modifiée, tels que décrits sur la Page de titre, ainsi qu'un descriptif des modifications apportées depuis la précédente version. S'il n'y a pas de section nommée Historique dans le Document, créer une telle section précisant le titre, l'année, les auteurs et l'éditeur du Document tel que précisé sur la Page de titre, et ajouter une entrée décrivant la Version modifiée tel que précisé dans la phrase précédente. + + + + + + J + Conserver l'adresse réseau éventuellement indiquée dans le Document permettant à quiconque d'accéder à une Copie transparente du Document, ainsi que les adresses réseau indiquées dans le Document pour les versions précédentes sur lesquelles le Document se base. Ces liens peuvent être placés dans la section Historique. Vous pouvez ne pas conserver les liens pour un travail datant de plus de quatre ans avant la version courante ou si l'éditeur d'origine vous en accorde la permission. + + + + + + K + Si une section Remerciements ou une section Dédicaces sont présentes, les informations et les appréciations concernant les contributeurs et les personnes auxquelles s'adressent ces remerciements doivent être conservées, ainsi que le titre de ces sections. + + + + + + L + Conserver sans modification les Sections inaltérables du Document, ni dans leurs textes, ni dans leurs titres. Les numéros de sections ne sont pas considérés comme faisant partie du texte des sections. + + + + + + M + Effacer toute section intitulée Approbations. Une telle section ne peut pas être incluse dans une Version modifiée. + + + + + + N + Ne pas renommer une section existante sous le titre Approbations ou sous un autre titre entrant en conflit avec le titre d'une Section inaltérable. + + + + + Si la Version modifiée contient de nouvelles sections préliminaires ou de nouvelles annexes considérées comme des Sections secondaires et que celles-ci ne contiennent aucun élément copié à partir du Document, vous pouvez à votre convenance en désigner une ou plusieurs comme étant des Sections inaltérables. Pour ce faire, ajoutez leurs titres dans la liste des Sections inaltérables au sein de la notice de Licence de la Version modifiée. Ces titres doivent êtres distincts des titres des autres sections. + + Vous pouvez ajouter une section nommée Approbations à condition que ces approbations ne concernent que les modifications ayant donné naissance à la Version modifiée (par exemple, comptes rendus de revue du document ou acceptation du texte par une organisation le reconnaissant comme étant la définition d'un standard). + + Vous pouvez ajouter un passage comprenant jusqu'à cinq mots en première page de couverture, et jusqu'à vingt-cinq mots en dernière page de couverture, à la liste des Textes de couverture de la Version modifiée. Il n'est autorisé d'ajouter qu'un seul passage en première et en dernière pages de couverture par personne ou groupe de personnes ou organisation ayant contribué à la modification du Document. Si le Document comporte déjà un passage sur la même couverture, ajouté en votre nom ou au nom de l'organisation au nom de laquelle vous agissez, vous ne pouvez pas ajouter de passage supplémentaire ; mais vous pouvez remplacer un ancien passage si vous avez expressément obtenu l'autorisation de l'éditeur de celui-ci. + + Cette Licence ne vous donne pas le droit d'utiliser le nom des auteurs et des éditeurs de ce Document à des fins publicitaires ou pour prétendre à l'approbation d'une Version modifiée. + + + + 5. FUSION DE DOCUMENTS + Vous pouvez fusionner le Document avec d'autres documents soumis à cette Licence, suivant les spécifications de la section 4 pour les Versions modifiées, à condition d'inclure dans le document résultant toutes les Sections inaltérables des documents originaux sans modification, et de toutes les lister dans la liste des Sections inaltérables de la notice de Licence du document résultant de la fusion. + + Le document résultant de la fusion n'a besoin que d'une seule copie de cette Licence, et les Sections inaltérables existant en multiples exemplaires peuvent être remplacées par une copie unique. S'il existe plusieurs Sections inaltérables portant le même nom mais de contenu différent, rendez unique le titre de chaque section en ajoutant, à la fin de celui-ci, entre parenthèses, le nom de l'auteur ou de l'éditeur d'origine, ou, à défaut, un numéro unique. Les mêmes modifications doivent être réalisées dans la liste des Sections inaltérables de la notice de Licence du document final. + + Dans le document résultant de la fusion, vous devez rassembler en une seule toutes les sections Historique des documents d'origine. De même, vous devez rassembler les sections Remerciements et Dédicaces. Vous devez supprimer toutes les sections Approbations. + + + + 6. REGROUPEMENTS DE DOCUMENTS + Vous pouvez créer un regroupement de documents comprenant le Document et d'autres documents soumis à cette Licence, et remplacer les copies individuelles de cette Licence des différents documents par une unique copie incluse dans le regroupement de documents, à condition de respecter pour chacun de ces documents l'ensemble des règles de cette Licence concernant les copies conformes. + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGRÉGATION AVEC DES TRAVAUX INDÉPENDANTS + La compilation du Document ou de ses dérivés avec d'autres documents ou travaux séparés et indépendants sur un support de stockage ou sur un média de distribution quelconque ne représente pas une Version modifiée du Document tant qu'aucun copyright n'est déposé pour cette compilation. Une telle compilation est appelée agrégat et cette Licence ne s'applique pas aux autres travaux indépendants compilés avec le Document s'ils ne sont pas eux-mêmes des travaux dérivés du Document. Si les exigences de la section 3 concernant les Textes de couverture sont applicables à ces copies du Document, et si le Document représente un volume inférieur à un quart du volume total de l'agrégat, les Textes de couverture du Document peuvent être placés sur des pages de couverture qui n'encadrent que le Document au sein de l'agrégat. Dans le cas contraire, ils doivent apparaître sur les pages de couverture de l'agrégat complet. + + + + 8. TRADUCTION + La traduction est considérée comme une forme de modification, vous pouvez donc distribuer les traductions du Document selon les termes de la section 4. Vous devez obtenir l'autorisation spéciale des auteurs des Sections inaltérables pour les remplacer par des traductions, mais vous pouvez inclure les traductions des Sections inaltérables en plus des textes originaux. Vous pouvez inclure une traduction de cette Licence à condition d'inclure également la version originale en anglais. En cas de contradiction entre la traduction et la version originale en anglais, c'est cette dernière qui prévaut. + + + + 9. RÉVOCATION + Vous ne pouvez pas copier, modifier, sous-licencier ou distribuer le Document autrement que selon les termes de cette Licence. Tout autre acte de copie, modification, sous-Licence ou distribution du Document est sans objet et vous prive automatiquement des droits que cette Licence vous accorde. En revanche, les personnes qui ont reçu de votre part des copies ou les droits sur le document sous couvert de cette Licence ne voient pas leurs droits révoqués tant qu'elles en respectent les principes. + + + + 10. RÉVISIONS FUTURES DE CETTE LICENCE + La Free Software Foundation peut publier de temps en temps de nouvelles versions révisées de cette Licence. Ces nouvelles versions seront semblables à la présente version dans l'esprit, mais pourront différer sur des points particuliers en fonction de nouvelles questions ou nouveaux problèmes. Voyez http://www.gnu.org/copyleft/ pour plus de détails. + + Chaque version de cette Licence est dotée d'un numéro de version distinct. Si un Document spécifie un numéro de version particulier de cette Licence, et porte la mention ou toute autre version ultérieure, vous pouvez choisir de suivre les termes de la version spécifiée ou ceux de n'importe quelle version ultérieure publiée par la Free Software Foundation. Si aucun numéro de version n'est spécifié, vous pouvez choisir n'importe quelle version officielle publiée par la Free Software Foundation. + + + + Addendum + Pour utiliser cette Licence avec un document que vous avez écrit, incorporez une copie du texte de cette Licence en anglais et placez le texte ci-dessous juste après la page de titre : + +
    + Copyright © 2010 Bruno Brouard. + Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation ; avec les sections inaltérables suivantes LISTE DES TITRES DES SECTIONS INALTÉRABLES, avec le texte de première page de couverture suivant TEXTE DE PREMIÈRE PAGE DE COUVERTURE et avec le texte de dernière page de couverture suivant TEXTE DE DERNIÈRE PAGE DE COUVERTURE. Une copie de cette Licence est incluse dans la section appelée GNU Free Documentation License de ce document. +
    + + Si votre Document ne comporte pas de section inaltérable écrivez pas de section inaltérable au lieu de la liste des sections inaltérables. Si votre Document ne comporte pas de texte de première page de couverture, écrivez pas de texte de première page de couverture au lieu de texte de première page de couverture suivant TEXTE DE PREMIÈRE PAGE DE COUVERTURE ; de même pour le texte de dernière page de couverture. + + Si votre Document contient des exemples non triviaux de code programme, nous recommandons de distribuer ces exemples en parallèle sous Licence GNU General Public License, qui permet leur usage dans les logiciels libres. +
    +
    + + + + + + + + + diff --git a/help/manual/gl/fdl-appendix.xml b/help/manual/gl/fdl-appendix.xml new file mode 100644 index 0000000..b6bd653 --- /dev/null +++ b/help/manual/gl/fdl-appendix.xml @@ -0,0 +1,621 @@ + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPIANDO EN CANTIDADE + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICACIÓNS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    diff --git a/help/manual/gl/gl.po b/help/manual/gl/gl.po new file mode 100644 index 0000000..ea131ec --- /dev/null +++ b/help/manual/gl/gl.po @@ -0,0 +1,3842 @@ +# Galician translation for gtk-doc. +# Copyright (C) 2014 gtk-doc's COPYRIGHT HOLDER +# This file is distributed under the same license as the gtk-doc package. +# Fran Dieguez , 2014. +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc master\n" +"POT-Creation-Date: 2014-09-22 21:18+0000\n" +"PO-Revision-Date: 2014-09-23 02:11+0200\n" +"Last-Translator: Fran Dieguez \n" +"Language-Team: gnome-l10n-gl@gnome.org\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "Fran Diéguez , 2014." + +#. (itstool) path: bookinfo/title +#: C/index.docbook:12 +msgid "GTK-Doc Manual" +msgstr "Manual de GTK-Doc" + +#. (itstool) path: bookinfo/edition +#: C/index.docbook:13 +msgid "1.20" +msgstr "1.20" + +#. (itstool) path: abstract/para +#: C/index.docbook:14 +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "" +"Manual de usuarios para desenvolvedores con instrucións do uso de GTK-Doc." + +#. (itstool) path: authorgroup/author +#: C/index.docbook:16 +msgid "" +"Chris Lyttle " +"
    chris@wilddev.net
    " +msgstr "" +"Chris Lyttle " +"
    chris@wilddev.net
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:25 +msgid "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " +msgstr "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:34 +msgid "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " +msgstr "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " + +#. (itstool) path: publisher/publishername +#: C/index.docbook:45 +msgid "GTK-Doc project" +msgstr "Proxecto GTK-Doc" + +#. (itstool) path: bookinfo/publisher +#: C/index.docbook:44 +msgid "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " +msgstr "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:48 +msgid "2000, 2005 Dan Mueth and Chris Lyttle" +msgstr "2000, 2005 Dan Mueth and Chris Lyttle" + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:52 +msgid "2007-2014 Stefan Sauer (Kost)" +msgstr "2007-2014 Stefan Sauer (Kost)" + +#. (itstool) path: legalnotice/para +#: C/index.docbook:65 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, " +"Version 1.1 or any later version published by the Free Software Foundation " +"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A " +"copy of the license is included." +msgstr "" +"Pode copiar, distribuír e modificar este documento baixo os termos da " +"Licenza de Documentación Libre GNU, na súa versión " +"1.1 ou posterior, publicada pola Free Software Foundation, sen seccións " +"invariantes e sen textos de portada ou de contraportada. Inclúese unha cópida da licenza." + +#. (itstool) path: legalnotice/para +#: C/index.docbook:73 +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and those trademarks are made aware to the members of the " +"GNOME Documentation Project, the names have been printed in caps or initial " +"caps." +msgstr "" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:83 +msgid "" +"1.21.1 18 Jul 2014 ss development version" +msgstr "" +"1.21.1 18 de Xullo de 2014 " +"ss versión de " +"desenvolvemento" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:89 +msgid "" +"1.21 17 Jul 2014 ss bug fixes, dropping deprecated features" +msgstr "" +"1.21 17 de Xullo de 2014 " +"ss arranxos de erros, retirado " +"de características obsoletas" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:95 +msgid "" +"1.20 16 Feb 2014 ss bug fixes, markdown support, style improvements" +msgstr "" +"1.20 16 de Febreiro de 2014 " +"ss arranxos de erros, " +"compatibilidade de markdown, melloras de estilo" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:101 +msgid "" +"1.19 05 Jun 2013 ss bug fixes" +msgstr "" +"1.19 05 de Xuño de 2013 " +"ss arranxos de erros" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:107 +msgid "" +"1.18 14 Sep 2011 ss bug fixes, speedups, markdown support" +msgstr "" +"1.18 14 de Setembro de 2011 " +"ss arranxos de erros, melloras " +"de velocidade, compatibilidade de markdown" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:113 +msgid "" +"1.17 26 Feb 2011 sk urgent bug fix update" +msgstr "" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:119 +msgid "" +"1.16 14 Jan 2011 sk bugfixes, layout improvements" +msgstr "" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:125 +msgid "" +"1.15 21 May 2010 sk bug and regression fixes" +msgstr "" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:131 +msgid "" +"1.14 28 March 2010 sk bugfixes and performance improvements" +msgstr "" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:137 +msgid "" +"1.13 18 December 2009 " +"sk broken tarball update" +msgstr "" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:143 +msgid "" +"1.12 18 December 2009 " +"sk new tool features and " +"bugfixes" +msgstr "" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:149 +msgid "" +"1.11 16 November 2008 " +"mal GNOME doc-utils migration" +msgstr "" + +#. (itstool) path: chapter/title +#: C/index.docbook:162 +msgid "Introduction" +msgstr "" + +#. (itstool) path: chapter/para +#: C/index.docbook:164 +msgid "" +"This chapter introduces GTK-Doc and gives an overview of what it is and how " +"it is used." +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:170 +msgid "What is GTK-Doc?" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:172 +msgid "" +"GTK-Doc is used to document C code. It is typically used to document the " +"public API of libraries, such as the GTK+ and GNOME libraries. But it can " +"also be used to document application code." +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:180 +msgid "How Does GTK-Doc Work?" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:182 +msgid "" +"GTK-Doc works by using documentation of functions placed inside the source " +"files in specially-formatted comment blocks, or documentation added to the " +"template files which GTK-Doc uses (though note that GTK-Doc will only " +"document functions that are declared in header files; it won't produce " +"output for static functions)." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:189 +msgid "" +"GTK-Doc consists of a number of perl scripts, each performing a different " +"step in the process." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:194 +msgid "There are 5 main steps in the process:" +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:201 +msgid "" +"Writing the documentation. The author fills in the " +"source files with the documentation for each function, macro, union etc. (In " +"the past information was entered in generated template files, which is not " +"recommended anymore)." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:211 +msgid "" +"Gathering information about the code. " +"gtkdoc-scan scans the header files of the code " +"looking for declarations of functions, macros, enums, structs, and unions. " +"It creates the file <module>-decl-list.txt " +"containing a list of the declarations, placing them into sections according " +"to which header file they are in. On the first run this file is copied to " +"<module>-sections.txt. The author can rearrange " +"the sections, and the order of the declarations within them, to produce the " +"final desired order. The second file it generates is <" +"module>-decl.txt. This file contains the full declarations " +"found by the scanner. If for some reason one would like some symbols to show " +"up in the docs, where the full declaration cannot be found by the scanner or " +"the declaration should appear differently, one can place entities similar to " +"the ones in <module>-decl.txt into <" +"module>-overrides.txt." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:228 +msgid "" +"gtkdoc-scangobj can also be used to dynamically " +"query a library about any GObject subclasses it exports. It saves " +"information about each object's position in the class hierarchy and about " +"any GObject properties and signals it provides." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:234 +msgid "" +"gtkdoc-scanobj should not be used anymore. It was " +"needed in the past when GObject was still GtkObject inside gtk+." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:241 +msgid "" +"Generating the \"template\" files. gtkdoc-" +"mktmpl creates a number of files in the tmpl/ subdirectory, using the information gathered " +"in the first step. (Note that this can be run repeatedly. It will try to " +"ensure that no documentation is ever lost.)" +msgstr "" + +#. (itstool) path: note/para +#: C/index.docbook:250 +msgid "" +"Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep " +"documentation in the code. gtkdocize supports now " +"a option that chooses a makefile that " +"skips tmpl usage totally. If you have never changed file in tmpl by hand, " +"please remove the directory (e.g. from version control system)." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:262 +msgid "" +"Generating the SGML/XML and HTML/PDF. " +"gtkdoc-mkdb turns the template files into SGML or " +"XML files in the sgml/ or xml/ subdirectory. If the source code " +"contains documentation on functions, using the special comment blocks, it " +"gets merged in here. If there are no tmpl files used it only reads docs from " +"sources and introspection data. We recommend to use Docbook XML." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:273 +msgid "" +"gtkdoc-mkhtml turns the SGML/XML files into HTML " +"files in the html/ subdirectory. " +"Likewise gtkdoc-mkpdf turns the SGML/XML files " +"into a PDF document called <package>.pdf." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:279 +msgid "" +"Files in sgml/ or xml/ and html/ directories are always overwritten. One should never edit them " +"directly." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:287 +msgid "" +"Fixing up cross-references between documents. After " +"installing the HTML files, gtkdoc-fixxref can be " +"run to fix up any cross-references between separate documents. For example, " +"the GTK+ documentation contains many cross-references to types documented in " +"the GLib manual. When creating the source tarball for distribution, " +"gtkdoc-rebase turns all external links into web-" +"links. When installing distributed (pregenerated) docs the same application " +"will try to turn links back to local links (where those docs are installed)." +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:305 +msgid "Getting GTK-Doc" +msgstr "" + +#. (itstool) path: sect2/title +#: C/index.docbook:308 +msgid "Requirements" +msgstr "" + +#. (itstool) path: sect2/para +#: C/index.docbook:309 +msgid "Perl v5 - the main scripts are in Perl." +msgstr "" + +#. (itstool) path: sect2/para +#: C/index.docbook:312 +msgid "" +"xsltproc - the xslt processor from libxslt xmlsoft.org/XSLT/" +msgstr "" + +#. (itstool) path: sect2/para +#: C/index.docbook:316 +msgid "" +"docbook-xsl - the docbook xsl stylesheets sourceforge.net/projects/docbook/files/docbook-xsl" +msgstr "" + +#. (itstool) path: sect2/para +#: C/index.docbook:320 +msgid "Python - optional - for gtkdoc-depscan" +msgstr "" + +#. (itstool) path: sect2/para +#: C/index.docbook:323 +msgid "" +"One of source-highlight, highlight " +"or vim - optional - used for syntax highlighting of " +"examples" +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:331 +msgid "About GTK-Doc" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:333 C/index.docbook:347 +msgid "(FIXME)" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:337 +msgid "" +"(History, authors, web pages, mailing list, license, future plans, " +"comparison with other similar systems.)" +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:345 +msgid "About this Manual" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:351 +msgid "(who it is meant for, where you can get it, license)" +msgstr "" + +#. (itstool) path: chapter/title +#: C/index.docbook:360 +msgid "Setting up your project" +msgstr "" + +#. (itstool) path: chapter/para +#: C/index.docbook:362 +msgid "" +"The next sections describe what steps to perform to integrate GTK-Doc into " +"your project. Theses sections assume we work on a project called 'meep'. " +"This project contains a library called 'libmeep' and an end-user app called " +"'meeper'. We also assume you will be using autoconf and automake. In " +"addition section plain makefiles or other " +"build systems will describe the basics needed to work in a different " +"build setup." +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:373 +msgid "Setting up a skeleton documentation" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:375 +msgid "" +"Under your top-level project directory create folders called docs/reference " +"(this way you can also have docs/help for end-user documentation). It is " +"recommended to create another subdirectory with the name of the doc-package. " +"For packages with just one library this step is not necessary." +msgstr "" + +#. (itstool) path: example/title +#: C/index.docbook:384 +msgid "Example directory structure" +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:385 +#, no-wrap +msgid "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:382 +msgid "This can then look as shown below: <_:example-1/>" +msgstr "" + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:400 C/index.docbook:407 +msgid "Integration with autoconf" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:402 +msgid "" +"Very easy! Just add one line to your configure.ac " +"script." +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:408 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +msgstr "" + +#. (itstool) path: example/title +#: C/index.docbook:420 +msgid "Keep gtk-doc optional" +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:421 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:415 +msgid "" +"This will require all developers to have gtk-doc installed. If it is okay " +"for your project to have optional api-doc build setup, you can solve this as " +"below. Keep it as is, as gtkdocize is looking for GTK_DOC_CHECK at the start of a line. <_:example-1/>" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:432 +msgid "" +"The first argument is used to check for the gtkdocversion at configure time. " +"The 2nd, optional argument is used by gtkdocize. " +"The GTK_DOC_CHECK macro also adds several configure " +"switches:" +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:438 +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:439 +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:440 +msgid "" +"--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:441 +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "" + +#. (itstool) path: important/para +#: C/index.docbook:445 +msgid "" +"GTK-Doc is disabled by default! Remember to pass the option to the next configure run. " +"Otherwise pregenerated documentation is installed (which makes sense for " +"users but not for developers)." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:453 +msgid "" +"Furthermore it is recommended that you have the following line inside you " +"configure.ac script. This allows " +"gtkdocize to automatically copy the macro " +"definition for GTK_DOC_CHECK to your project." +msgstr "" + +#. (itstool) path: example/title +#: C/index.docbook:461 +msgid "Preparation for gtkdocize" +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:462 +#, no-wrap +msgid "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:467 +msgid "" +"After all changes to configure.ac are made, update the " +"configure file. This can be done by re-running " +"autoreconf -i or autogen.sh." +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:475 +msgid "Integration with automake" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:477 +msgid "" +"First copy the Makefile.am from the examples sub directory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). A local copy " +"should be available under e.g. /usr/share/doc/gtk-doc-tools/" +"examples/Makefile.am. If you have multiple doc-packages repeat " +"this for each one." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:488 +msgid "" +"The next step is to edit the settings inside the Makefile.am. All the settings have a comment above that describes their " +"purpose. Most settings are extra flags passed to the respective tools. Every " +"tool has a variable of the form . " +"All the tools support to list the supported " +"parameters." +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:502 +msgid "Integration with autogen" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:504 +msgid "" +"Most projects will have an autogen.sh script to setup " +"the build infrastructure after a checkout from version control system (such " +"as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before " +"autoheader, automake or autoconf." +msgstr "" + +#. (itstool) path: example/title +#: C/index.docbook:513 +msgid "Running gtkdocize from autogen.sh" +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:514 +#, no-wrap +msgid "" +"\n" +"gtkdocize || exit 1\n" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:520 +msgid "" +"When running gtkdocize it copies gtk-" +"doc.make to your project root (or any directory specified by the " +" option). It also checks you configure script for " +"the GTK_DOC_CHECK invocation. This macro can be used to " +"pass extra parameters to gtkdocize." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:529 +msgid "" +"Historically GTK-Doc was generating template files where developers entered " +"the docs. This turned out to be not so good (e.g. the need for having " +"generated files under version control). Since GTK-Doc 1.9 the tools can get " +"all the information from source comments and thus the templates can be " +"avoided. We encourage people to keep documentation in the code. " +"gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. " +"Besides adding the option directly to the command invocation, they can be " +"added also to an environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in " +"the configure script. If you have never changed file in tmpl by hand and " +"migrating from older gtkdoc versions, please remove the directory (e.g. from " +"version control system)." +msgstr "" + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:546 C/index.docbook:563 +msgid "Running the doc build" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:548 +msgid "" +"After the previous steps it's time to run the build. First we need to rerun " +"autogen.sh. If this script runs configure for you, then " +"give it the option. Otherwise manually run " +"configure with this option afterwards." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:555 +msgid "" +"The first make run generates several additional files in the doc-" +"directories. The important ones are: <package>.types, <package>-docs.xml (in the past ." +"sgml), <package>-sections.txt." +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:564 +#, no-wrap +msgid "" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:570 +msgid "" +"Now you can point your browser to docs/reference/<package>/" +"index.html. Yes, it's a bit disappointing still. But hang-on, " +"during the next chapter we tell you how to fill the pages with life." +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:578 +msgid "Integration with version control systems" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:580 +msgid "" +"As a rule of the thumb, it's those files you edit, that should go under " +"version control. For typical projects it's these files: <" +"package>.types, <package>-docs.xml " +"(in the past .sgml), <package>-sections.txt, " +"Makefile.am" +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:591 +msgid "Integration with plain makefiles or other build systems" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:593 +msgid "" +"In the case one does not want to use automake and therefore gtk-" +"doc.mak one will need to call the gtkdoc tools in the right order " +"in own makefiles (or other build tools)." +msgstr "" + +#. (itstool) path: example/title +#: C/index.docbook:600 +msgid "Documentation build steps" +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:601 +#, no-wrap +msgid "" +"\n" +"DOC_MODULE=meep\n" +"// sources have changed\n" +"gtkdoc-scan --module=$(DOC_MODULE) --source-dir=...\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml\n" +"// xml files have changed\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:615 +msgid "" +"One will need to look at the Makefile.am and " +"gtk-doc.mak to pick the extra options needed." +msgstr "" + +#. (itstool) path: chapter/title +#: C/index.docbook:624 +msgid "Documenting the code" +msgstr "" + +#. (itstool) path: chapter/para +#: C/index.docbook:626 +msgid "" +"GTK-Doc uses source code comment with a special syntax for code " +"documentation. Further it retrieves information about your project structure " +"from other sources. During the next section you will find all information " +"about the syntax of the comments." +msgstr "" + +#. (itstool) path: note/title +#: C/index.docbook:634 +msgid "Documentation placement" +msgstr "" + +#. (itstool) path: note/para +#: C/index.docbook:635 +msgid "" +"In the past most documentation had to be filled into files residing inside " +"the tmpl directory. This has the disadvantages that the " +"information is often not updated and also that the file tend to cause " +"conflicts with version control systems." +msgstr "" + +#. (itstool) path: note/para +#: C/index.docbook:641 +msgid "" +"The avoid the aforementioned problems we suggest putting the documentation " +"inside the sources. This manual will only describe this way of documenting " +"code." +msgstr "" + +#. (itstool) path: example/title +#: C/index.docbook:652 C/index.docbook:669 +msgid "GTK-Doc comment block" +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:653 +#, no-wrap +msgid "" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" +msgstr "" + +#. (itstool) path: chapter/para +#: C/index.docbook:648 +msgid "" +"The scanner can handle the majority of C headers fine. In the case of " +"receiving warnings from the scanner that look like a special case, one can " +"hint GTK-Doc to skip over them. <_:example-1/>" +msgstr "" + +#. (itstool) path: sect1/title +#: C/index.docbook:664 +msgid "Documentation comments" +msgstr "" + +#. (itstool) path: example/programlisting +#: C/index.docbook:670 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:666 +msgid "" +"A multiline comment that starts with an additional '*' marks a documentation " +"block that will be processed by the GTK-Doc tools. <_:example-1/>" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:679 +msgid "" +"The 'identifier' is one line with the name of the item the comment is " +"related to. The syntax differs a little depending on the item. (TODO add " +"table showing identifiers)" +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:685 +msgid "" +"The 'documentation' block is also different for each symbol type. Symbol " +"types that get parameters such as functions or macros have the parameter " +"description first followed by a blank line (just a '*'). Afterwards follows " +"the detailed description. All lines (outside program listings and CDATA " +"sections) just containing a ' *' (blank-asterisk) are converted to paragraph " +"breaks. If you don't want a paragraph break, change that into ' * ' (blank-" +"asterisk-blank-blank). This is useful in preformatted text (code listings)." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:702 +msgid "" +"What it is: The name for a class or function can sometimes be misleading for " +"people coming from a different background." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:708 +msgid "" +"What it does: Tell about common uses. Put it in relation with the other API." +msgstr "" + +#. (itstool) path: tip/para +#: C/index.docbook:698 +msgid "When documenting code, describe two aspects: <_:itemizedlist-1/>" +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:723 +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:728 +msgid "" +"Use @param to refer to parameters. Also use this when referring to " +"parameters of other functions, related to the one being described." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:734 +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:739 +msgid "" +"Use #symbol to refer to other types of symbol, e.g. structs and enums and " +"macros which don't take arguments." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:745 +msgid "Use #Object::signal to refer to a GObject signal." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:750 +msgid "Use #Object:property to refer to a GObject property." +msgstr "" + +#. (itstool) path: listitem/para +#: C/index.docbook:755 +msgid "" +"Use #Struct.field to refer to a field inside a structure and #GObjectClass." +"foo_bar() to refer to a vmethod." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:717 +msgid "" +"One advantage of hyper-text over plain-text is the ability to have links in " +"the document. Writing the correct markup for a link can be tedious though. " +"GTK-Doc comes to help by providing several useful abbreviations. <_:" +"itemizedlist-1/>" +msgstr "" + +#. (itstool) path: tip/para +#: C/index.docbook:764 +msgid "" +"If you need to use the special characters '<', '>', '()', '@', '%', or " +"'#' in your documentation without GTK-Doc changing them you can use the XML " +"entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&" +"commat;\", \"&percnt;\" and \"&num;\" respectively or escape them " +"with a backslash '\\'." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:773 +msgid "" +"DocBook can do more than just links. One can also have lists, examples, " +"headings, and images. As of version 1.20, the preferred way is to use a " +"subset of the basic text formatting syntax called Markdown. On older GTK-Doc " +"versions any documentation that includes Markdown will be rendered as is. " +"For example, list items will appear as lines starting with a dash." +msgstr "" + +#. (itstool) path: sect1/para +#: C/index.docbook:784 +msgid "" +"In older GTK-Doc releases, if you need support for additional formatting, " +"you would need to enable the usage of docbook SGML/XML tags inside doc-" +"comments by putting or +]]> + + + + + To refer to keys use: + + ControlL +]]> + + + + + + + + Filling the extra files + + + There are a couple of extra files, that need to be maintained along with + the inline source code comments: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + + Editing the types file + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Example types file snippet + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + + Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. + Just add "--rebuild-types" to SCAN_OPTIONS in Makefile.am. If you + use this approach you should not dist the types file nor have it under version control. + + + + + + Editing the master document + + + GTK-Doc produces documentation in DocBook SGML/XML. When processing the + inline source comments, the GTK-Doc tools generate one documentation + page per class or module as a separate file. The master document + includes them and place them in an order. + + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + + Do not create tutorials as extra documents. Just write extra chapters. + The benefit of directly embedding the tutorial for your library into + the API documentation is that it is easy to link for the tutorial to + symbol documentation. Apart chances are higher that the tutorial gets + updates along with the library. + + + + + So what are the things to change inside the master document? For a start + is only a little. There are some placeholders (text in square brackets) + there which you should take care of. + + + + Master document header + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + Editing the section file + + + The section file is used to organise the documentation output by + GTK-Doc. Here one specifies which symbol belongs to which module or + class and control the visibility (public or private). + + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + + The <TITLE> ... </TITLE> tag is used to specify the title of + the section. It is only useful before the templates (if used) are + initially created, since the title set in the template file overrides + this. Also if one uses SECTION comment in the sources, this is obsolete. + + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + + You can also use <INCLUDE> ... </INCLUDE> to specify the + #include files which are shown in the synopsis sections. + It contains a comma-separate list of #include files, without the angle + brackets. If you set it outside of any sections, it acts for all + sections until the end of the file. If you set it within a section, it + only applies to that section. + + +
    + +
    + + + Controlling the result + + + A GTK-Doc run generates report files inside the documentation directory. + The generated files are named: + <package>-undocumented.txt, + <package>-undeclared.txt and + <package>-unused.txt. + All those are plain text files that can be viewed and postprocessed easily. + + + + The <package>-undocumented.txt file starts with + the documentation coverage summary. Below are two sections divided by + blank lines. The first section lists undocumented or incomplete symbols. + The second section does the same for section docs. Incomplete entries are + those, which have documentation, but where e.g. a new parameter has been + added. + + + + The <package>-undeclared.txt file lists symbols + given in the <package>-sections.txt but not + found in the sources. Check if they have been removed or if they are + misspelled. + + + + The <package>-unused.txt file lists symbol + names, where the GTK-Doc scanner has found documentation, but does not + know where to put it. This means that the symbol has not yet been added to + the <package>-sections.txt file. + + + + + Enable or add the line in Makefile.am. + If at least GTK-Doc 1.9 is installed, this will run sanity checks during + make check run. + + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documentando outras interfaces + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + Command line options and man pages + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + Documente a ferramenta + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + Adding the extra configure check + + + Extra configure checks + + + + + + + Adding the extra makefile rules + + + Extra configure checks + + + + + + + + Intefaces de DBus + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + Preguntas frecuentes + + + + Pregunta + Resposta + + Non hai herdanza de clases. + + The objects xxx_get_type() function has not been + entered into the <package>.types file. + + + + Aínda non hai herdanza de clases. + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + Redemo, aínda non hai herdanza de clase. + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + No symbol index. + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + Symbols are not linked to their doc-section. + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + A new class does not appear in the docs. + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + A new symbol does not appear in the docs. + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + A type is missing from the class hierarchy. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + I get foldoc links for all gobject annotations. + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + Parameter described in source code comment block but does not exist + Check if the prototype in the header has different parameter names as in the source. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + Element typename in namespace '' encountered in para, but no template matches. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPIANDO EN CANTIDADE + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICACIÓNS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    + + + + + + + + + diff --git a/help/manual/gu/fdl-appendix.xml b/help/manual/gu/fdl-appendix.xml new file mode 100644 index 0000000..2f3276f --- /dev/null +++ b/help/manual/gu/fdl-appendix.xml @@ -0,0 +1,611 @@ + + + + + Version 1.1, March 2000 + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + આ લાઇસન્સની ચેતવણી ન થયેલ નકલને સમાવો. + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + તમે લખેલ છે તે દસ્તાવેજમાં આ લાઇસન્સને વાપરવા માટે, દસ્તાવેજમાં લાઇસન્સની નકલને સમાવો અને નીચેનાં કોપીરાઇટ અને લાઇસન્સ સૂચનાઓને શીર્ષક પાનાં પછી મૂકો: + +
    + Copyright YEAR YOUR NAME. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    diff --git a/help/manual/gu/gu.po b/help/manual/gu/gu.po new file mode 100644 index 0000000..99fb45a --- /dev/null +++ b/help/manual/gu/gu.po @@ -0,0 +1,1470 @@ +# translation of gtk-doc-help.master.po to Gujarati +# Sweta Kothari , 2010. +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc-help.master\n" +"POT-Creation-Date: 2010-01-25 08:26+0000\n" +"PO-Revision-Date: 2010-02-03 11:20+0530\n" +"Last-Translator: Sweta Kothari \n" +"Language-Team: Gujarati\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: C/gtk-doc-manual.xml:12(title) +msgid "GTK-Doc Manual" +msgstr "GTK-Doc પુસ્તિકા" + +#: C/gtk-doc-manual.xml:13(edition) C/gtk-doc-manual.xml:92(revnumber) +msgid "1.12" +msgstr "1.12" + +#: C/gtk-doc-manual.xml:14(para) +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "GTK-Doc વપરાશની સૂચનાઓ સાથે ડેવલપરો માટે વપરાશકર્તા પુસ્તિકા." + +#: C/gtk-doc-manual.xml:17(firstname) +msgid "Chris" +msgstr "ક્રીસ" + +#: C/gtk-doc-manual.xml:18(surname) +msgid "Lyttle" +msgstr "લિટ્લે" + +#: C/gtk-doc-manual.xml:21(email) +msgid "chris@wilddev.net" +msgstr "chris@wilddev.net" + +#: C/gtk-doc-manual.xml:26(firstname) +msgid "Dan" +msgstr "Dan" + +#: C/gtk-doc-manual.xml:27(surname) +msgid "Mueth" +msgstr "મૂએથ" + +#: C/gtk-doc-manual.xml:30(email) +msgid "d-mueth@uchicago.edu" +msgstr "d-mueth@uchicago.edu" + +#: C/gtk-doc-manual.xml:35(firstname) +msgid "Stefan" +msgstr "સ્ટેફાન" + +#: C/gtk-doc-manual.xml:36(surname) +msgid "Kost" +msgstr "કોસ્ટ" + +#: C/gtk-doc-manual.xml:39(email) +msgid "ensonic@users.sf.net" +msgstr "ensonic@users.sf.net" + +#: C/gtk-doc-manual.xml:45(publishername) +msgid "GTK-Doc project" +msgstr "GTK-Doc પ્રોજેક્ટ" + +#: C/gtk-doc-manual.xml:46(email) +msgid "gtk-doc-list@gnome.org" +msgstr "gtk-doc-list@gnome.org" + +#: C/gtk-doc-manual.xml:49(year) +msgid "2000, 2005, 2007-2009" +msgstr "2000, 2005, 2007-2009" + +#: C/gtk-doc-manual.xml:50(holder) +msgid "Dan Mueth and Chris Lyttle and Stefan Kost" +msgstr "ડૅમ મૂએથ અને ક્રીસ લિટ્લે અને સ્ટેફાન કોસ્ટ" + +#: C/gtk-doc-manual.xml:61(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included." +msgstr "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included." + +#: C/gtk-doc-manual.xml:69(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps." +msgstr "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps." + +#: C/gtk-doc-manual.xml:80(revnumber) +msgid "1.14" +msgstr "1.14" + +#: C/gtk-doc-manual.xml:81(date) +msgid "19 December 2009" +msgstr "19 ડિસેમ્બર 2009" + +#: C/gtk-doc-manual.xml:82(authorinitials) C/gtk-doc-manual.xml:88(authorinitials) C/gtk-doc-manual.xml:94(authorinitials) +msgid "sk" +msgstr "sk" + +#: C/gtk-doc-manual.xml:83(revremark) +msgid "development version" +msgstr "ડેવલ્પમેન્ટ આવૃત્તિ" + +#: C/gtk-doc-manual.xml:86(revnumber) +msgid "1.13" +msgstr "1.13" + +#: C/gtk-doc-manual.xml:87(date) C/gtk-doc-manual.xml:93(date) +msgid "18 December 2009" +msgstr "18 ડિસેમ્બર 2009" + +#: C/gtk-doc-manual.xml:89(revremark) +msgid "broken tarball update" +msgstr "તૂટેલ ટારબોલ સુધારા" + +#: C/gtk-doc-manual.xml:95(revremark) +msgid "new tool features and bugfixes" +msgstr "નવા સાધન લક્ષણો અને ભૂલ સુધારાઓ" + +#: C/gtk-doc-manual.xml:98(revnumber) +msgid "1.11" +msgstr "1.11" + +#: C/gtk-doc-manual.xml:99(date) +msgid "16 Novemebr 2008" +msgstr "16 નવેમ્બર 2008" + +#: C/gtk-doc-manual.xml:100(authorinitials) +msgid "mal" +msgstr "mal" + +#: C/gtk-doc-manual.xml:101(revremark) +msgid "GNOME doc-utils migration" +msgstr "GNOME doc-utils સ્થળાંતર" + +#: C/gtk-doc-manual.xml:110(title) +msgid "Introduction" +msgstr "પરિચય" + +#: C/gtk-doc-manual.xml:112(para) +msgid "This chapter introduces GTK-Doc and gives an overview of what it is and how it is used." +msgstr "આ પ્રકરણ GTK-Doc ને રજૂ કરે છે અને તે શું છે અને તેને કેવી રીતે વપરાયેલ છે તેની ઝાંખી આપે છે." + +#: C/gtk-doc-manual.xml:118(title) +msgid "What is GTK-Doc?" +msgstr "GTK-Doc શું છે?" + +#: C/gtk-doc-manual.xml:120(para) +msgid "GTK-Doc is used to document C code. It is typically used to document the public API of libraries, such as the GTK+ and GNOME libraries. But it can also be used to document application code." +msgstr "" +"GTK-Doc એ દસ્તાવેજ C કોડ માટે વપરાયેલ છે. તે લાઇબ્રેરીઓનાં સાર્વજનિક API નાં દસ્તાવેજ માટે વપરાયેલ છે, " +"જેવું કે GTK+ અને GNOME લાઇબ્રેરીઓ. પરંતુ તે પણ દસ્તાવેજ કાર્યક્રમ કોડ માટે વપરાયેલ છે." + +#: C/gtk-doc-manual.xml:128(title) +msgid "How Does GTK-Doc Work?" +msgstr "GTK-Doc કામ કેવી રીતે કરે છે?" + +#: C/gtk-doc-manual.xml:130(para) +msgid "GTK-Doc works by using documentation of functions placed inside the source files in specially-formatted comment blocks, or documentation added to the template files which GTK-Doc uses (though note that GTK-Doc will only document functions that are declared in header files; it won't produce output for static functions)." +msgstr "" +"GTK-Doc એ વિશિષ્ટ રીતે માળખુ થયેલ ટિપ્પણી બ્લોકોમાં સ્ત્રોત ફાઇલોની અંદર સ્થિત થયેલ વિધેયોનાં દસ્તાવેજીકરણની " +"મદદથી કામ કરે છે, અથવા દસ્તાવેજીકરણ ટેમ્પલેટ ફાઇલોમાં ઉમેરાયેલ છે કે જે GTK-Doc વાપરે છે (છતાંપણ નોંધો કે GTK-Doc " +"એ પણ દસ્તાવેજ વિધેયો હશે કે જે શીર્ષક ફાઇલોમાં જાહેર થયેલ છે; તે સ્થિર વિધેયો માટે આઉટપુટ ઉત્પન્ન કરતુ નથી)." + +#: C/gtk-doc-manual.xml:137(para) +msgid "GTK-Doc consists of a number of perl scripts, each performing a different step in the process." +msgstr "GTK-Doc એ perl સ્ક્રિપ્ટોની સંખ્યાને સમાવે છે, પ્રક્રિયામાં દરેક વિવિધ પગલું કરે છે." + +#: C/gtk-doc-manual.xml:142(para) +msgid "There are 5 main steps in the process:" +msgstr "ત્યાં પ્રક્રિયામાં મુખ્ય ૫ પગલાંઓ છે:" + +#: C/gtk-doc-manual.xml:149(para) +msgid "Writing the documentation. The author fills in the source files with the documentation for each function, macro, union etc. (In the past information was entered in generated template files, which is not recommended anymore)." +msgstr "" +"દસ્તાવેજીકરણને લખી રહ્યા છે. લેખક એ દરેક વિધેયને, મેક્રો, યુનિયન વગેરે માટે " +"દસ્તાવેજીકરણ સાથે સ્ત્રોત ફાઇલોમાં ભરે છે. (ઉત્પન્ન થયેલ ટેમ્પલેટ ફાઇલમાં ભૂતકાળની જાણકારી દાખલ થયેલ હતી, " +"કે જે કોઇપણ રીતે અગ્રહણીય થયેલ નથી)" + +#: C/gtk-doc-manual.xml:159(para) +msgid "Gathering information about the code.gtkdoc-scan scans the header files of the code looking for declarations of functions, macros, enums, structs, and unions. It creates the file <module>-decl-list.txt containg a list of the declarations, placing them into sections according to which header file they are in. On the first run this file is copied to <module>-sections.txt The author can rearrange the sections, and the order of the declarations within them, to produce the final desired order. The second file it generates is <module>-decl.txt. This file contains the full declarations found by the scanner. If for some reason one would like some sybols to show up in the docs, where the full declaration cannot be found by th scanner or the declaration should appear differently, one can place enties similar to the ones in <module>-decl.txt into <module>-overrides.txt. gtkdoc-scanobj can also be used to dynamically query a library about any GtkObject subclasses it exports. It saves information about each object's position in the class hierarchy and about any GTK Args and Signals it provides." +msgstr "" +"કોડ વિશે જાણકારીને ભેગી કરી રહ્યા છે.gtkdoc-scan " +"functions, macros, enums, structs, અને unions ની જાહેરાતો માટે જોઇ રહ્યા હોય તે કોડ ની હેડર ફાઇલોને સ્કેન કરે છે. " +"તે જાહેરાતોની યાદીને સમાવતી ફાઇલ <module>-decl-list.txt ને બનાવે છે, " +"કઇ હેડર ફાઇલમાં તેઓ અંદર છે તેને અનુસાર વિભાગો માં તેઓને સ્થિત કરી રહ્યા છે. આ ફાઇલને પહેલું ચલાવવા પર " +"<module>-sections.txt માં નકલ થયેલ છે લેખક એ વિભાગોને પુન:ગોઠવી શકે છે, " +"અને છેલ્લુ ઇચ્છિત ક્રમને ઉત્પન્ન કરવા માટે તેઓમાં જાહેરાતોનો ક્રમ. બીજી ફાઇલ તે <module>-decl.txt " +"ને ઉત્પન્ન કરે છે. આ ફાઇલ સ્કેનર દ્દારા શોધેલ સંપૂર્ણ જાહેરાતોને સમાવે છે. જો અમુક કારણ માટે દસ્તાવેજોમાં દેખાવા માટે અમુક સંકેતોને પસંદ કરે છે, " +"જ્યાં સંપૂર્ણ જાહેરાત સ્કેનર દ્દારા શોધી શકાતી નથી અથવા જાહેરાત એ અલગ રીતે દેખાવી જોઇએ, " +"<module>-overrides.txt ની અંદર <module>-decl.txt માં " +"એકનાં જેવી જ સ્થિત કરી શકે છે. gtkdoc-scanobj એ કોઇપણ GtkObject ઉપવર્ગો કે જે નિકાસ કરે છે " +"તે વિશે ગતિશીલ રીતે લાઇબ્રેરી ક્વેરી માટે પણ વાપરી શકાય છે. તે વર્ગ શ્રેણીમાં દરેક ઑબ્જેક્ટનાં સ્થાન વિશે જાણકારીનો સંગ્રહ કરે છે અને " +"કોઇપણ GTK દલીલો વિશે પણ અને તે પૂરુ પાડે છે તેનો સંકેત કરે છે." + +#: C/gtk-doc-manual.xml:184(para) +msgid "Generating the \"template\" files.gtkdoc-mktmpl creates a number of files in the tmpl/ subdirectory, using the information gathered in the first step. (Note that this can be run repeatedly. It will try to ensure that no documentation is ever lost.)" +msgstr "" +"\"template\" ફાઇલોને ઉત્પન્ન કરી રહ્યા છે.gtkdoc-mktmpl " +"એ પહેલાં પગલામાં ભેગી થયેલ જાણકારીની મદદથી tmpl/ ઉપડિરેક્ટરીમાં " +"ફાઇલોની સંખ્યાને બનાવે છે. (નોંધો કે જે આ વારંવાર ચલાવી શકાય છે. તે ખાતરી કરવા માટે પ્રયત્ન કરશે કે જે દસ્તાવેજીકરણ " +"હંમેશ માટે ગુમ થઇ જતો નથી.)" + +#: C/gtk-doc-manual.xml:193(para) +msgid "Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. If you have never changed file in tmpl by hand, please remove the dir (e.g. from version control system)." +msgstr "" +"જ્યાં સુધી GTK-Doc 1.9 નાં ટેમ્પલેટને અવગણી શકાય છે ત્યાં સુધી. આપણે કોડમાં દસ્તાવેજીકરણ ને રાખવા માટે લોકોને " +"પ્રોત્સાહિત કરો. gtkdocize એ હવે " +"વિકલ્પને આધાર આપે છે કે જે makefile ને પસંદ કરે છે કે જે સંપૂર્ણપણે tmpl વપરાશને છોડી દે છે. જો તમે પોતાની જાતે " +"tmpl માં ફાઇલને કદી બદલો નહિં તો, મહેરબાની કરીને dir ને દૂર કરો (દા.ત. આવૃત્તિ નિયંત્રણ સિસ્ટમ માંથી)." + +#: C/gtk-doc-manual.xml:205(para) +msgid "Generating the SGML/XML and HTML/PDF.gtkdoc-mkdb turns the template files into SGML or XML files in the sgml/ or xml/ subdirectory. If the source code contains documentation on functions, using the special comment blocks, it gets merged in here. If there are no tmpl files used it only reads takes docs from sources and introspection data." +msgstr "" +"SGML/XML અને HTML/PDF ઉત્પન્ન કરી રહ્યા છે.gtkdoc-mkdb એ " +"sgml/ અથવા xml/ " +"ઉપડિરેક્ટરી માં SGML અથવા XML ફાઇલોમાં ટેમ્પલેટ ફાઇલોને ફેરવે છે. જો સ્ત્રોત કોડ એ વિશિષ્ટ ટિપ્પણી બ્લોકોની મદદથી વિધેયો પર દસ્તાવેજીકરણ " +"ને સમાવે છે, તે અહિંયા ભેગી થઇ જાય છે. જો તેને વાપરેલ tmpl ફાઇલો ન હોય તો ફક્ત સ્ત્રોતો અને આત્મનિરીક્ષણ માહિતી માંથી દસ્તાવેજોને લઇને વાંચે છે." + +#: C/gtk-doc-manual.xml:215(para) +msgid "gtkdoc-mkhtml turns the SGML/XML files into HTML files in the html/ subdirectory. Likewise gtkdoc-mkpdf turns the SGML/XML files into a PDF docuemnt called <package>.pdf." +msgstr "" +"gtkdoc-mkhtmlhtml/ " +"ઉપડિરેક્ટરીમાં HTML ફાઇલોની અંદર SGML/XML ફાઇલોને ફેરવે છે. જેવી રીતે gtkdoc-mkpdf " +"કહેવાતા <package>.pdf PDF દસ્તાવેજમાં SGML/XML ફાઇલોને ફેરવે છે." + +#: C/gtk-doc-manual.xml:221(para) +msgid "Files in sgml/ or xml/ and html/ directories are always overwritten. One should never edit them directly." +msgstr "" +"sgml/ અથવા xml/ " +"માં ફાઇલો અને html/ ડિરેક્ટરીઓ એ હંમેશા ઉપલ લખાયેલ છે. એક એ સીધુ જ " +"તેઓને કદી સુધારતુ હોવુ જોઇએ નહિં." + +#: C/gtk-doc-manual.xml:229(para) +msgid "Fixing up cross-references between documents. After installing the HTML files, gtkdoc-fixxref can be run to fix up any cross-references between separate documents. For example, the GTK+ documentation contains many cross-references to types documented in the GLib manual. When creating the source tarball for distribution, gtkdoc-rebase turns all external links into web-links. When installing distributed (pregenerated) docs the same application will try to turn links back to local links (where those docs are installed)." +msgstr "" + +#: C/gtk-doc-manual.xml:247(title) +msgid "Getting GTK-Doc" +msgstr "GTK-Doc ને મેળવી રહ્યા છે" + +#: C/gtk-doc-manual.xml:250(title) +msgid "Requirements" +msgstr "જરૂરિયાતો" + +#: C/gtk-doc-manual.xml:251(para) +msgid "Perl v5 - the main scripts are in Perl." +msgstr "Perl v5 - મુખ્ય સ્ક્રિપ્ટો એ Perl માં છે." + +#: C/gtk-doc-manual.xml:254(para) +msgid "DocBook DTD v3.0 - This is the DocBook SGML DTD. http://www.ora.com/davenport" +msgstr "DocBook DTD v3.0 - આ DocBook SGML DTD છે. http://www.ora.com/davenport" + +#: C/gtk-doc-manual.xml:258(para) +msgid "Jade v1.1 - This is a DSSSL processor for converting SGML to various formats. http://www.jclark.com/jade" +msgstr "Jade v1.1 - આ વિવિધ માળખાઓમાં SGML ને રૂપાંતર કરવા માટે DSSSL પ્રોસેસર છે. http://www.jclark.com/jade" + +#: C/gtk-doc-manual.xml:262(para) +msgid "Modular DocBook Stylesheets This is the DSSSL code to convert DocBook to HTML (and a few other formats). It's used together with jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to colour the program code listings/declarations, and to support global cross-reference indices in the generated HTML. http://nwalsh.com/docbook/dsssl" +msgstr "" +"Modular DocBook Stylesheets આ DocBook ને HTML માં રૂપાંતરિત કરવા માટે " +"DSSSL કોડ છે (અને થોડા બીજા બંધારણો). તે jade સાથે ભેગા વાપરેલ છે. મેં DSSSL કોડને કાર્યક્રમ કોડની યાદીઓ/ " +"જાહેરાતોને રંગ આપવા માટે, અને ઉત્પન્ન થયેલ HTML માં વૈશ્ર્વિક પ્રતિનિર્દેશ સૂચિને આધાર આપવા માટે " +"gtk-doc.dsl માં જરાક DSSSL કોડને વૈવિધ્યપૂર્ણ બનાવેલ છે. http://nwalsh.com/docbook/dsssl" + +#: C/gtk-doc-manual.xml:271(para) +msgid "docbook-to-man - if you want to create man pages from the DocBook. I've customized the 'translation spec' slightly, to capitalise section headings and add the 'GTK Library' title at the top of the pages and the revision date at the bottom. There is a link to this on http://www.ora.com/davenport NOTE: This does not work yet." +msgstr "" +"docbook-to-man - જો તમે DocBook માંથી મુખ્ય પાનાંઓને બનાવવાનું ઇચ્છતા હોય તો, " +"મેં થોડુ 'translation spec' ને વૈવિધ્યપૂર્ણ બનાવેલ છે, વિભાગનાં શીર્ષકનાં મોટા અક્ષર કરવા માટે અને પાનાંઓના ઊંચે " +"'GTK Library' શીર્ષકને ઉમેરો અને નીચે પૂનરાવર્તિત તારીખને ઉમેરો. ત્યાં " +"http://www.ora.com/davenport " +"પર આની કડી છે નોંધો: આ હજુ કામ કરતુ નથી." + +#: C/gtk-doc-manual.xml:282(title) +msgid "Installation" +msgstr "સ્થાપન" + +#: C/gtk-doc-manual.xml:283(para) +msgid "There is no standard place where the DocBook Modular Stylesheets are installed." +msgstr "ત્યાં મૂળભૂત સ્થાન નથી કે જ્યાં DocBook Modular Stylesheets એ સ્થાપિત થયેલ હોય." + +#: C/gtk-doc-manual.xml:286(para) +msgid "GTK-Doc's configure script searches these 3 directories automatically:" +msgstr "GTK-Doc ની રૂપરેખાંકિત સ્ક્રિપ્ટ એ આ 3 ડિરેક્ટરીઓને આપમેળે શોધે છે:" + +#: C/gtk-doc-manual.xml:289(para) +msgid " /usr/lib/sgml/stylesheets/nwalsh-modular (used by RedHat)" +msgstr " /usr/lib/sgml/stylesheets/nwalsh-modular (RedHat દ્દારા વપરાયેલ છે)" + +#: C/gtk-doc-manual.xml:292(para) +msgid " /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +msgstr " /usr/lib/dsssl/stylesheets/docbook (Debian દ્દારા વપરાયેલ છે)" + +#: C/gtk-doc-manual.xml:295(para) +msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +msgstr " /usr/share/sgml/docbkdsl (SuSE દ્દારા વપરાયેલ છે)" + +#: C/gtk-doc-manual.xml:298(para) +msgid "If you have the stylesheets installed somewhere else, you need to configure GTK-Doc using the option: --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +msgstr "" +"જો તમે ગમે ત્યાં સ્ટાઇલશીટો સ્થાપિત કરેલ હોય તો, તમે વિકલ્પની મદદથી GTK-Doc ને રૂપરેખાંકિત કરવા માટે " +"જરૂ છે, --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " + +#: C/gtk-doc-manual.xml:322(title) +msgid "About GTK-Doc" +msgstr "GTK-Doc વિશે" + +#: C/gtk-doc-manual.xml:324(para) C/gtk-doc-manual.xml:338(para) +msgid "(FIXME)" +msgstr "(FIXME)" + +#: C/gtk-doc-manual.xml:328(para) +msgid "(History, authors, web pages, license, future plans, comparison with other similar systems.)" +msgstr "(ઇતિહાસ, લેખકો, વેબ પાનાંઓ, લાઇસન્સ, ભવિષ્યનાં પ્લાનો, સરખી સિસ્ટમો સાથે સરખામણી.)" + +#: C/gtk-doc-manual.xml:336(title) +msgid "About this Manual" +msgstr "આ પુસ્તિકા વિશે" + +#: C/gtk-doc-manual.xml:342(para) +msgid "(who it is meant for, where you can get it, license)" +msgstr "" + +#: C/gtk-doc-manual.xml:351(title) +msgid "Setting up your project" +msgstr "તમારા પ્રોજેક્ટને સુયોજિત કરી રહ્યા છે" + +#: C/gtk-doc-manual.xml:353(para) +msgid "The next sections describe what steps to perform to integrate GTK-Doc into your project. Theses section assume we work on a project called 'meep'. This project contains a library called 'libmeep' and an end-user app called 'meeper'." +msgstr "" +"આગળનાં વિભાગો એ તમારાં પ્રોજેક્ટમાં GTK-Doc ને એકત્રિત કરવા ક્યાં પગલાઓ ચલાવવાનાં છે તેનું વર્ણન કરે છે. આ વિભાગ ધારે છે કે આપણ 'meep' તરીકે " +"કહેવાતા પ્રોજેક્ટ પર કામ કરે છે. આ પ્રોજેક્ટ એ 'libmeep' તરીકે કહેવાતી લાઇબ્રેરી અને 'meeper' તરીકે કહેવાતી અંતિમ વપરાશકર્તાનાં કાર્યક્રમને સમાવે છે." + +#: C/gtk-doc-manual.xml:361(title) +msgid "Setting up a skeleton documentation" +msgstr "સ્કેલેટન દસ્તાવેજીકરણને સુયોજિત કરી રહ્યા છે" + +#: C/gtk-doc-manual.xml:363(para) +msgid "Under your top-level project directory create folders called docs/reference (this way you can also have docs/help for end-user documentation). It is recommended to create another subdirectory with the name of the doc-package. For packages with just one library this step is not necessary." +msgstr "" + +#: C/gtk-doc-manual.xml:372(title) +msgid "Example directory structure" +msgstr "ઉદાહરણ ડિરેક્ટરી બંધારણ" + +#: C/gtk-doc-manual.xml:370(para) +msgid "This can then look as show below: " +msgstr "નીચે બતાવ્યા પ્રમાણે પછી આ જોઇ શકો છો: " + +#: C/gtk-doc-manual.xml:390(title) C/gtk-doc-manual.xml:397(title) +msgid "Integration with autoconf" +msgstr "autoconf સાથે એકત્રિકરણ" + +#: C/gtk-doc-manual.xml:392(para) +msgid "Very easy! Just add one line to your configure.ac script." +msgstr "ઘણું સરળ છે! ફક્ત તમારી configure.ac સ્ક્રિપ્ટમાં એક વાક્ય ને ઉમેરો." + +#: C/gtk-doc-manual.xml:407(para) +msgid "The first argument is used to check for the gtkdocversion at configure time. The 2nd, optional argument is used by gtkdocize. The GTK_DOC_CHECK macro also adds several configure switches:" +msgstr "" +"પહેલી દલીલ રૂપરેખાંકિત સમયે gtkdocversion માટે ચકાસવા વપરાયેલ છે. બીજી, વૈકલ્પિક દલીલ એ " +"gtkdocize દ્દારા વપરાયેલ છે. GTK_DOC_CHECK " +"મેક્રો પણ ઘણીબધા રૂપરેખાંકિત ફેરબદલોને ઉમેરે છે:" + +#: C/gtk-doc-manual.xml:413(para) +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=PATH : સ્થાપિત થયેલ દસ્તાવેજોનો પાથ" + +#: C/gtk-doc-manual.xml:414(para) +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "--enable-gtk-doc : દસ્તાવેજીકરણ ને બિલ્ડ કરવા માટે gtk-doc ને વાપરો [default=no]" + +#: C/gtk-doc-manual.xml:415(para) +msgid "--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "--enable-gtk-doc-html : html બંધારણમાં દસ્તાવેજીકરણ બિલ્ડ કરો [default=yes]" + +#: C/gtk-doc-manual.xml:416(para) +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "--enable-gtk-doc-pdf : pdf બંધારણમાં દસ્તાવેજીકરણને બિલ્ડ કરો [default=no]" + +#: C/gtk-doc-manual.xml:420(para) +msgid "GTK-Doc is disabled by default! Remember to pass the option to the next configure run. Otherwise pregenerated documentation is installed (which makes sense for users but not for developers)." +msgstr "" +"GTK-Doc એ મૂળભૂત રીતે નિષ્ક્રિય થયેલ છે! આગળનાં configure ને ચલાવવા માટે " +" ને પસાર કરવાનું યાદ રાખો. નહિં તો પહેલીથી ઉત્પન્ન થયેલ દસ્તાવેજીકરણ " +"સ્થાપિત થયેલ છે (કે જે વપરાશકર્તાઓ માટેનો અર્થ બને છે પરંતુ ડેવલપરો માટે નહિં)." + +#: C/gtk-doc-manual.xml:428(para) +msgid "Furthermore it is recommended that you have the following line inside you configure.ac script. This allows gtkdocize to automatically copy the macro definition for GTK_DOC_CHECK to your project." +msgstr "" +"આગળ વધારે તે અગ્રહણીય થયેલ છે કે જે તમારી પાસે તમારી configure.ac સ્ક્રિપ્ટની અંદર " +"નીચેનું વાક્ય છે. આ તમારા પ્રોજેક્ટમાં GTK_DOC_CHECK માટે મેક્રો વ્યાખ્યાને આપમેળે નકલ કરવા " +"માટે પરવાનગી આપે છે." + +#: C/gtk-doc-manual.xml:436(title) +msgid "Preparation for gtkdocize" +msgstr "gtkdocize માટે તૈયારી" + +#: C/gtk-doc-manual.xml:447(title) +msgid "Integration with automake" +msgstr "automake સાથે એકત્રિકરણ" + +#: C/gtk-doc-manual.xml:449(para) +msgid "First copy the Makefile.am from the examples subdirectory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). If you have multiple doc-packages repeat this for each one." +msgstr "" +"તમારા પ્રોજેક્ટની API દસ્તાવેજીકરણ ડિરેક્ટરી ( ./docs/reference/<package>) " +"માં gtkdoc-સ્ત્રોતોની ઉપડિરેક્ટરીઓનાં ઉદાહરણો માંથી Makefile.am ની પહેલી નકલ કરો. જો તમારી પાસે " +"દરેક એક માટે ઘણાબધા ફરી આવતા દસ્તાવેજ-પેકેજો છે." + +#: C/gtk-doc-manual.xml:456(para) +msgid "The next step is to edit the setting inside the Makefile.am. All the settings have a comment above that describes their purpose. Most settings are extra flags passed to the respective tools. Every tool has a variable of the form . All the tools support to list the supported parameters." +msgstr "" +"આગળનું પગલુ એ Makefile.am ની અંગર સુયોજનોને સુધારવા માટે છે. બધા " +"સુયોજનો પાસે ટિપ્પણીઓ છે કે જે તેનાં હેતુને વર્ણવે છે. મોટાભાગનાં સુયોજનો સાધનોને સંબંધી પસાર થયેલ વધારાનાં " +"ફ્લેગો છે. દરેક સાધન પાસે ફાર્મ નો ચલ છે. બધા " +"સાધનો આધારભૂત પરિમાણોની યાદી માટે ને આધાર આપે છે." + +#. FIXME: explain options ? +#: C/gtk-doc-manual.xml:467(para) +msgid "You may also want to enable GTK-Doc for the distcheckmake target. Just add then one-liner show in the next example to you top-level Makefile.am:" +msgstr "" +"તમે distcheckmake લક્ષ્ય માટે GTK-Doc ને સક્રિય કરવા માટે પણ ઇચ્છા રાખી શકો છો. ફક્ત ઉમેરો પછી એક-લાઇનર " +"એ તમને ટોચનાં સ્તર Makefile.am માટે આગળનાં ઉદાહરણમાં બતાવે છે:" + +#: C/gtk-doc-manual.xml:474(title) +msgid "Enable GTK-Doc during make distcheck" +msgstr "distcheck ને બનાવવા દરમ્યાન GTK-Doc ને સક્રિય કરો" + +#: C/gtk-doc-manual.xml:486(title) +msgid "Integration with autogen" +msgstr "autogen સાથે એકત્રિકરણ" + +#: C/gtk-doc-manual.xml:488(para) +msgid "Most projects will have an autogen.sh script to setup the build infrastructure after a checkout from version control system (such as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before autoheader, automake or autoconf." +msgstr "" +"મોટાભાગનાં પ્રોજેક્ટો પાસે આવૃત્તિ નિયંત્રણ સિસ્ટમ (જેવી કે cvs/svn/git) માંથી ચેકઆઉટ પછી ઇન્ફ્રાસ્ટ્રક્ચરને બિલ્ડ કરવાનું સુયોજિત " +"કરવા માટે autogen.sh સ્ક્રિપ્ટ હશે. GTK-Doc એ સાધન gtkdocize " +"તરીકે કહેવાતા સાધન સાથે આવે છે કે જે આવી સ્ક્રિપ્ટમાં વાપરી શકાય છે. તે autoheader, automake અથવા autoconf પહેલાં " +"ચાલવુ જોઇએ." + +#: C/gtk-doc-manual.xml:497(title) +msgid "Running gtkdocize from autogen.sh" +msgstr "autogen.sh માંથી gtkdocize ને ચલાવી રહ્યા છે" + +#: C/gtk-doc-manual.xml:506(para) +msgid "When running gtkdocize it copies gtk-doc.make to you project root (or any directory specified by the option). If also check you configure script for the GTK_DOC_CHECK invocation." +msgstr "" +"જ્યારે gtkdocize ચલાવી રહ્યા હોય ત્યારે તે તમારા પ્રોજેક્ટ રુટ માટે " +"gtk-doc.make ની નકલ કરે છે (અથવા વિકલ્પ " +"દ્દારા સ્પષ્ટ થયેલ કોઇપણ ડિરેક્ટરી). જો GTK_DOC_CHECK વિનંતી માટે " +"તમે સ્ક્રિપ્ટને રૂપરેખાંકિત કરવાનું પણ ચકાસો." + +#: C/gtk-doc-manual.xml:514(para) +msgid "Historically GTK-Doc was gerating template files where developers entered the docs. this turned out to be not so good. Since a few version GTK-Doc could also get all the information from source comments. Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. Besides adding the option directly to the command invocation, they can be added also to a environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, please remove the dir (e.g. from version control system)." +msgstr "" + +#: C/gtk-doc-manual.xml:530(title) C/gtk-doc-manual.xml:547(title) +msgid "Running the doc build" +msgstr "દસ્તાવેજ બિલ્ડને ચલાવી રહ્યા છે" + +#: C/gtk-doc-manual.xml:532(para) +msgid "After the previous steps it's time to run the build. First we need to rerun autogen.sh. If this script runs configure for you, then give it the option. Otherwise manually run configure with this option afterwards." +msgstr "" +"પહેલાનાં પગલાઓ પછી બિલ્ડ ને ચલાવવા માટે સમય થઇ ગયો છે. પહેલાં આપણે autogen.sh " +"પુન:ચલાવવાની જરૂર છે. નહિં તો પછીથી આ વિકલ્પ સાથે configure ને જાતે જ " +"ચલાવો." + +#: C/gtk-doc-manual.xml:539(para) +msgid "The first make run generates several additional files in the doc-dirs. The important ones are: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "પહેલું ચલાવવાનું બનાવવા doc-dirs માં ઘણીબધી વધારાની ફાઇલોને ઉત્પન્ન કરે છે. મહત્વનાં છે: <package>.types, <package>-docs.sgml, <package>-sections.txt." + +#: C/gtk-doc-manual.xml:556(para) +msgid "Now you can point your browser to docs/reference/<package>/index.html. Yes, it's a bit disappointing still. But hang-on, during the next chapter we tell you how to fill the pages with life." +msgstr "" +"હવે તમે docs/reference/<package>/index.html માટે તમારા બ્રાઉઝર પર આંગળી ચીંધી શકો છો. " +"હાં, તે થોડુ હજુ નિરાશ કરે તેવુ છે. પરંતુ આગળનામ વિષય માટે આપણે તને કહીએ છે કે જીદંગી સાથે પાનાંઓને કેવી રીતે ભરવા તે દરમ્યાન " +"થોડા સમય માટે અટકી જાય છે" + +#: C/gtk-doc-manual.xml:564(title) +msgid "Integration with version control systems" +msgstr "આવૃત્તિ નિયંત્રણ સિસ્ટમો સાથે એકત્રિકરણ" + +#: C/gtk-doc-manual.xml:566(para) +msgid "As a rule of the thumb, it's those files you edit, that should go under version control. For typical projects it's these files: <package>.types<package>-docs.sgml<package>-sections.txtMakefile.am" +msgstr "અંગૂઠાનાં નિયમ પ્રમાણે, તે તે ફાઇલો છે જે તમારે સુધારવાની છે, કે જે આવૃત્તિ નિયંત્રણ હેઠળ જવી જોઇએ. વિશિષ્ટ પ્રોજેક્ટો માટે તે આ ફાઇલો છે: <package>.types<package>-docs.sgml<package>-sections.txttmpl directory. This has the disadvantages that the information is often not updated and also that the file tend to cause conflicts with version control systems." +msgstr "" + +#: C/gtk-doc-manual.xml:596(para) +msgid "The avoid the aforementioned problems we suggest putting the documentation inside the sources. This manual will only describe this way of documenting code." +msgstr "" + +#: C/gtk-doc-manual.xml:606(title) +msgid "Documentation comments" +msgstr "દસ્તાવેજીકરણ ટિપ્પણીઓ" + +#: C/gtk-doc-manual.xml:611(title) +msgid "GTK-Doc comment block" +msgstr "GTK-Doc ટિપ્પણી બ્લોક" + +#: C/gtk-doc-manual.xml:608(para) +msgid "A multiline comment that starts with an additional '*' marks a documentation block that will be processed by the GTK-Doc tools. " +msgstr "" +"ઘણીબધા વાક્યની ટિપ્પણીઓ કે જે વધારાનાં '*' ચિહ્ન દસ્તાવેજીકરણ બ્લોક સાથે શરૂ થાય છે કે જે " +"GTK-Doc સાધનો દ્દારા પ્રક્રિયા થયેલ હશે. " + +#: C/gtk-doc-manual.xml:623(para) +msgid "The 'identifier' is one line with the name of the item the comment is related to. The syntax differs a little depending on the item. (TODO add table showing identifiers)" +msgstr "" + +#: C/gtk-doc-manual.xml:629(para) +msgid "The 'documentation' block is also different for each symbol type. Symbol types that get parameters such as functions or macros have the parameter description first followed by a blank line (just a '*'). Afterwards follows the detailed description. All lines (outside program- listings and CDATA sections) just containing a ' *' (blank-asterisk) are converted to paragraph breaks. If you don't want a paragraph break, change that into ' * ' (blank-asterisk-blank-blank)." +msgstr "" + +#: C/gtk-doc-manual.xml:646(para) +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "વિધેયો અથવા મેક્રોનો સંદર્ભ લેવા માટે function() ને વાપરો કે જે દલીલોને લે છે." + +#: C/gtk-doc-manual.xml:651(para) +msgid "Use @param to refer to parameters. Also use this when referring to parameters of other functions, related to the one being described." +msgstr "" +"પરિમાણોનો સંદર્ભ લેવા માટે @param ને વાપરો. બીજા વિધેયોનાં પરિમાણો માટે જ્યારે સંદર્ભ કરી રહ્યા હોય ત્યારે આને પણ વાપરો, વર્ણવવા માટે એકને " +"સંબંધિત છે." + +#: C/gtk-doc-manual.xml:657(para) +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "કૉન્સ્ટન્ટ નો સંદર્ભ લેવા માટે %constant ને વાપરો, દા.ત. %G_TRAVERSE_LEAFS." + +#: C/gtk-doc-manual.xml:662(para) +msgid "Use #symbol to refer to other types of symbol, e.g. structs and enums and macros which don't take arguments." +msgstr "સંકેતનાં બીજા પ્રકારોનો સંદર્ભ લેવા માટે #symbol ને વાપરો, દા.ત. structs અને enums અને macros કે જે દલીલો લેતુ નથી." + +#: C/gtk-doc-manual.xml:668(para) +msgid "Use #Object::signal to refer to a GObject signal" +msgstr "#Object ને વાપરો::GObject સંકેતનો સંદર્ભ લેવા માટે સંકેત" + +#: C/gtk-doc-manual.xml:673(para) +msgid "Use #Object:property to refer to a GObject property" +msgstr "#Object ને વાપરો:GObject ગુણધર્મનો સંદર્ભ લેવા માટે ગુણધર્મ" + +#: C/gtk-doc-manual.xml:678(para) +msgid "Use #Struct.field to refer to a field inside a structure." +msgstr "બંધારણની અંદર ક્ષેત્રનો સંદર્ભ લેવા માટે #Struct.field ને વાપરો." + +#: C/gtk-doc-manual.xml:640(para) +msgid "One advantage of hyper-text over plain-text is the ability to have links in the document. Writing the correct markup for a link can be tedious though. GTK-Doc comes to help by providing several useful abbreviations. " +msgstr "" + +#: C/gtk-doc-manual.xml:686(para) +msgid "If you need to use the special characters '<', '>', '()', '@', '%', or '#' in your documentation without GTK-Doc changing them you can use the XML entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" and \"&num;\" respectively or escape them with a backslash '\\'." +msgstr "" +"જો તમારે તેઓને બદલ્યા વગર GTK-Doc વગર તમારાં દસ્તાવેજીકરણમાં વિશિષ્ટ અક્ષરો '<', '>', '()', '@', '%', or '#' ને વાપરવાનું ઇચ્છતા હોય તો " +"તમે XML વસ્તુઓ \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" અને \"&num;\" " +"ને વાપરી શકો છો અથવા બેકસ્લેશ '\\' સાથે તેઓમાંથી બહાર નીકળી જાઓ." + +#: C/gtk-doc-manual.xml:695(para) +msgid "DocBook can do more that just links. One can also have lists, tables and examples. To enable the usage of SGML/XML tags inside doc-comments you need to have in the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" +"DocBook એ ફક્ત વધારે કડીઓને કરી શકે છે. એક પાસે પણ યાદીઓ, કોષ્ટકો અને ઉદાહરણો હોઇ શકે છે. " +"દસ્તાવેજ-ટિપ્પણીઓની અંદર SGML/XML ટેગનાં વપરાશને સક્રિય કરવા માટે તમારી પાસે Makefile.am " +"માં ચલ MKDB_OPTIONS માં હોવુ જરૂરી છે." + +#: C/gtk-doc-manual.xml:703(para) +msgid "As already mentioned earlier GTK-Doc is for documenting public API. Thus one cannot write documentation for static symbols. Nevertheless it is good to comment those symbols too. This helps other to understand you code. Therefore we recommend to comment these using normal comments (without the 2nd '*' in the first line). If later the function needs to be made public, all one needs to do is to add another '*' in the comment block and insert the symbol name at the right place inside the sections file." +msgstr "" +"પહેલાનાં GTK-Doc માં પહેલેથી જણાવેલ પ્રમાણે સાર્વજનિક API દસ્તાવેજીકરણ માટે છે. છતાં એક એ સ્થિર સંકેતો માટે દસ્તાવેજીકરણ ને લખી " +"શકતુ નથી. તેમ છતાં તે પેલાં સંકેતો પર ટિપ્પણી કરવા માટે સારુ છે. આ તમારાં કોડને સમજવા માટે બીજાને મદદ કરે છે. માટે આપણે સામાન્ય ટિપ્પણીઓની મદદથી " +"આ ટિપ્પણી એ અગ્રહણીય કરેલ છે (પહેલાં વાક્યમાં બીજા '*' વગર). જો પછી વિધેયને સાર્વજનિક બનાવવાની જરૂર છે, ટિપ્પણી બ્લોકમાં બીજા '*' ઉમેરવા માટે બધાને " +"કરવાની જરૂર છે અને ફાઇલ વિભાગોની અંદર જમણી જગ્યા પર સંકેત નામને દાખલ કરો." + +#: C/gtk-doc-manual.xml:717(title) +msgid "Documenting sections" +msgstr "વિભાગોનું દસ્તાવેજ કરી રહ્યા છે" + +#: C/gtk-doc-manual.xml:719(para) +msgid "Each section of the documentation contains information about one class or module. To introduce the component one can write a section block. The short description is also used inside the table of contents. All the @fields are optional." +msgstr "" +"દસ્તાવેજીકરણનો દરેક વિભાગ એ એર વર્ગ અથવા મોડ્યુલ વિશે જાણકારીને સમાવે છે. એક ઘટક એ વિભાગ બ્લોક લખી શકે છે તે " +"રજૂ કરવા માટે. ટૂંકુ વર્ણન એ સમાવિષ્ટોનાં કોષ્ટકની અંદર પણ વપરાયેલ છે. બધી @fields વૈકલ્પિક છે." + +#: C/gtk-doc-manual.xml:727(title) +msgid "Section comment block" +msgstr "વિભાગ ટિપ્પણી બ્લોક" + +#: C/gtk-doc-manual.xml:749(term) +msgid "SECTION:<name>" +msgstr "SECTION:<name>" + +#: C/gtk-doc-manual.xml:751(para) +msgid "The name links the section documentation to the respective part in the <package>-sections.txt file. The name give here should match the <FILE> tag in the <package>-sections.txt file." +msgstr "" + +#: C/gtk-doc-manual.xml:760(term) +msgid "@short_description" +msgstr "@shortdescription (_d)" + +#: C/gtk-doc-manual.xml:762(para) +msgid "A one line description of the section, that later will appear after the links in the TOC and at the top of the section page." +msgstr "વિભાગનું એક વાક્યનું વર્ણન, કે જે પછી TOC માં અને વિભાગ પાનાંની ટોચે કડીઓ પછી દેખાશે." + +#: C/gtk-doc-manual.xml:769(term) +msgid "@title" +msgstr "@title" + +#: C/gtk-doc-manual.xml:771(para) +msgid "The section title defaults to <name> from the SECTION declaration. It can be overridden with the @title field." +msgstr "વિભાગનું શીર્ષક એ SECTION રજૂઆતમાંથી <name> માટે મૂળભૂત કરેલ છે. તે @title ક્ષેત્ર સાથે અવગણી શકાય છે." + +#: C/gtk-doc-manual.xml:778(term) +msgid "@section_id" +msgstr "@sectionid (_i)" + +#: C/gtk-doc-manual.xml:780(para) +msgid "Overrides the use of title as a section identifier. For GObjects the <title> is used as a section_id and for other section it is <MODULE>-<title>." +msgstr "" + +#: C/gtk-doc-manual.xml:788(term) +msgid "@see_also" +msgstr "@seealso (_a)" + +#: C/gtk-doc-manual.xml:790(para) +msgid "A list of symbols that are related to this section.." +msgstr "સંકેતોની યાદી કે જે આ વિભાગને સંબંધિત છે.." + +#: C/gtk-doc-manual.xml:796(term) +msgid "@stability" +msgstr "@stability" + +#: C/gtk-doc-manual.xml:803(para) +msgid "Stable - The intention of a Stable interface is to enable arbitrary third parties to develop applications to these interfaces, release them, and have confidence that they will run on all minor releases of the product (after the one in which the interface was introduced, and within the same major release). Even at a major release, incompatible changes are expected to be rare, and to have strong justifications." +msgstr "" + +#: C/gtk-doc-manual.xml:815(para) +msgid "Unstable - Unstable interfaces are experimental or transitional. They are typically used to give outside developers early access to new or rapidly changing technology, or to provide an interim solution to a problem where a more general solution is anticipated. No claims are made about either source or binary compatibility from one minor release to the next." +msgstr "" + +#: C/gtk-doc-manual.xml:827(para) +msgid "Private - An interface that can be used within the GNOME stack itself, but that is not documented for end-users. Such functions should only be used in specified and documented ways." +msgstr "ખાનગી - ઇન્ટપફેસ કે જે GNOME સ્ટેક પોતામાં વાપરી શકાય છે, પરંતુ અંતિમ વપરાશકર્તાઓ માટે દસ્તાવેજ થયેલ નથી. જેવા કે વિધેયો એ સ્પષ્ટ થયેલ અને દસ્તાવેજ પ્રમાણે પમ વાપરવુ જોઇએ." + +#: C/gtk-doc-manual.xml:836(para) +msgid "Internal - An interface that is internal to a module and does not require end-user documentation. Functions that are undocumented are assumed to be Internal." +msgstr "આંતરિક - ઇન્ટરફેસ કે જે મોડ્યુલ માટે આંતરિક છે અને અંતિમ-વપરાશકર્તાનાં દસ્તાવેજીકરણની જરૂર નથી. વિધેયો કે જે દસ્તાવેજ થયેલ નથી તે આંતરિક કરવા માટે ધારેલ છે." + +#: C/gtk-doc-manual.xml:798(para) +msgid "A informal description of the stability level this API has. We recommend the use of one of these terms: " +msgstr "" + +#: C/gtk-doc-manual.xml:848(term) +msgid "@include" +msgstr "@include" + +#: C/gtk-doc-manual.xml:850(para) +msgid "The #include files to show in the section synopsis (a comma separated list), overriding the global value from the section file or command line. This item is optional." +msgstr "" + +#: C/gtk-doc-manual.xml:859(term) +msgid "@image" +msgstr "@image" + +#: C/gtk-doc-manual.xml:861(para) +msgid "The image to display at the top of the reference page for this section. This will often be some sort of a diagram to illustrate the visual appearance of a class or a diagram of its relationship to other classes. This item is optional." +msgstr "" + +#: C/gtk-doc-manual.xml:872(para) +msgid "To avoid unnecessary recompilation after doc-changes put the section docs into the c-source where possible." +msgstr "" + +#: C/gtk-doc-manual.xml:881(title) +msgid "Documenting symbols" +msgstr "સંકેતોનું દસ્તાવેજ કરી રહ્યા છે" + +#: C/gtk-doc-manual.xml:883(para) +msgid "Each symbol (function, macro, struct, enum, signal and property) is documented in a separate block. The block is best placed close to the definition of the symbols so that it is easy to keep them in sync. Thus function are usually documented in the c-source and macros, struct and enum in the header file." +msgstr "" + +#: C/gtk-doc-manual.xml:891(title) C/gtk-doc-manual.xml:920(title) +msgid "General tags" +msgstr "સામાન્ય ટેગ" + +#: C/gtk-doc-manual.xml:893(para) +msgid "You can add versioning information to all documentation elements to tell when an api was introduced, or when it was deprecated." +msgstr "" + +#: C/gtk-doc-manual.xml:898(title) +msgid "Versioning Tags" +msgstr "" + +#: C/gtk-doc-manual.xml:899(term) +msgid "Since:" +msgstr "જ્યાં સુધી:" + +#: C/gtk-doc-manual.xml:901(para) +msgid "Description since which version of the code the API is available." +msgstr "વર્ણન જ્યાં સુધી API કોડનું કઇ આવૃત્તિ ઉપલ્બધ છે." + +#: C/gtk-doc-manual.xml:906(term) +msgid "Deprecated:" +msgstr "અપ્રચલિત થયેલ:" + +#: C/gtk-doc-manual.xml:908(para) +msgid "Paragraph denoting that this function should no be used anymore. The description should point the reader to the new API." +msgstr "ફકરાને સૂચિત કરી રહ્યા છે કે જે આ વિધેયને વધારે વાપરવુ જોઇએ નહિં. વર્ણનએ નવા API માટે વાંચનારને ધ્યાન લેવુ જોઇએ." + +#: C/gtk-doc-manual.xml:916(para) +msgid "(FIXME : Stability information)" +msgstr "(FIXME : સ્થિરતા જાણકારી)" + +#: C/gtk-doc-manual.xml:943(title) C/gtk-doc-manual.xml:979(title) +msgid "Function comment block" +msgstr "વિધેય ટિપ્પણી બ્લોક" + +#: C/gtk-doc-manual.xml:949(para) +msgid "Document whether returned objects, lists, strings, etc, should be freed/unrefed/released." +msgstr "" + +#: C/gtk-doc-manual.xml:955(para) +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "દસ્તાવેજ ક્યાંતો પરિમાણો એ NULL હોઇ શકે છે, અને શું થશે જો તેઓ છે તો." + +#: C/gtk-doc-manual.xml:960(para) +msgid "Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "" + +#: C/gtk-doc-manual.xml:945(para) C/gtk-doc-manual.xml:1042(para) +msgid "Please remember to: " +msgstr "મહેરબાની કરીને યાદ રાખો: " + +#: C/gtk-doc-manual.xml:967(para) +msgid "Gtk-doc assumes all symbols (macros, functions) starting with '_' are private. They are treated like static functions." +msgstr "Gtk-doc એ '_' સાથે શરૂ થતા બધા સંકેતો (મેક્રો, વિધેયો) ને ખાનગી ધારે છે. તેઓ સ્થિર વિધેયો જેવું વર્ણતૂક કરે છે." + +#: C/gtk-doc-manual.xml:972(para) +msgid "Also, take a look at gobject introspection annotation tags: http://live.gnome.org/GObjectIntrospection/Annotations" +msgstr "" + +#: C/gtk-doc-manual.xml:1003(title) +msgid "Function tags" +msgstr "વિધેય ટૅગો" + +#: C/gtk-doc-manual.xml:1004(term) +msgid "Returns:" +msgstr "પાછુ આવે છે:" + +#: C/gtk-doc-manual.xml:1006(para) +msgid "Paragraph describing the returned result." +msgstr "ફકરો પાછુ મળેલ પરિણામને વર્ણવી રહ્યા છે." + +#: C/gtk-doc-manual.xml:1011(term) +msgid "@...:" +msgstr "@...:" + +#: C/gtk-doc-manual.xml:1013(para) +msgid "In case the function has variadic arguments, you should use this tag (@Varargs: does also work for historic reasons)." +msgstr "" + +#: C/gtk-doc-manual.xml:1023(title) C/gtk-doc-manual.xml:1025(title) +msgid "Property comment block" +msgstr "ગુણધર્મ ટિપ્પણી બ્લોક" + +#: C/gtk-doc-manual.xml:1040(title) C/gtk-doc-manual.xml:1059(title) +msgid "Signal comment block" +msgstr "સંકેત ટિપ્પણા બ્લોક" + +#: C/gtk-doc-manual.xml:1046(para) +msgid "Document when the signal is emitted and whether it is emitted before or after other signals." +msgstr "" + +#: C/gtk-doc-manual.xml:1052(para) +msgid "Document what an application might do in the signal handler." +msgstr "" + +#: C/gtk-doc-manual.xml:1079(title) C/gtk-doc-manual.xml:1080(title) +msgid "Struct comment block" +msgstr "Struct ટિપ્પણી બ્લોક" + +#: C/gtk-doc-manual.xml:1100(para) +msgid "Use /*< private >*/ before the private struct fields you want to hide. Use /*< public >*/ for the reverse behavirour." +msgstr "" + +#: C/gtk-doc-manual.xml:1108(title) C/gtk-doc-manual.xml:1109(title) +msgid "Enum comment block" +msgstr "Enum ટિપ્પણી બ્લોક" + +#: C/gtk-doc-manual.xml:1130(para) +msgid "Use /*< private >*/ before the private enum values you want to hide. Use /*< public >*/ for the reverse behavirour." +msgstr "" + +#: C/gtk-doc-manual.xml:1140(title) +msgid "Useful DocBook tags" +msgstr "ઉપયોગી DocBook ટૅગ" + +#: C/gtk-doc-manual.xml:1142(para) +msgid "Here are some DocBook tags which are most useful when documenting the code." +msgstr "અહિંયા અમુક DocBook ટૅગ છે કે જે મોટાભાગનાં ઉપયોગી છે જ્યારે કોડનું દસ્તાવેજ કરી રહ્યા છે." + +#: C/gtk-doc-manual.xml:1147(para) +msgid "To link to another section in the GTK docs: The linkend is the SGML/XML id on the top item of the page you want to link to. For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and then the page title (\"Hash Tables\"). For widgets it is just the class name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" + +#: C/gtk-doc-manual.xml:1163(para) +msgid "To refer to an external function, e.g. a standard C function: " +msgstr "બહારનાં વિધેયનો સંદર્ભ લેવા માટે, દા.ત. મૂળભૂત C વિધેય: " + +#: C/gtk-doc-manual.xml:1174(para) +msgid "To include example code: or possibly this, for very short code fragments which don't need a title: For the latter GTK-Doc also supports an abbreviation: " +msgstr "" + +#: C/gtk-doc-manual.xml:1208(para) +msgid "To include bulleted lists: " +msgstr "બુલેટ થયેલ યાદીઓને સમાવવા માટે: " + +#: C/gtk-doc-manual.xml:1230(para) +msgid "To include a note which stands out from the text: " +msgstr "" + +#: C/gtk-doc-manual.xml:1245(para) +msgid "To refer to a type: " +msgstr "પ્રકારનો સંદર્ભ લેવા માટે: " + +#: C/gtk-doc-manual.xml:1256(para) +msgid "To refer to an external structure (not one described in the GTK docs): " +msgstr "બહારનાં બંધારણનો સંદર્ભ લેવા માટે (GTK દસ્તાવેજોમાં વર્ણવેલ નથી): " + +#: C/gtk-doc-manual.xml:1267(para) +msgid "To refer to a field of a structure: " +msgstr "બંધારણનાં ક્ષેત્રનો સંદર્ભ લેવા માટે: " + +#: C/gtk-doc-manual.xml:1278(para) +msgid "To refer to a class name, we could possibly use: but you'll probably be using #GtkWidget instead (to automatically create a link to the GtkWidget page - see the abbreviations)." +msgstr "" + +#: C/gtk-doc-manual.xml:1291(para) +msgid "To emphasize text: " +msgstr "લખાણ પર ભાર મૂકવા માટે: " + +#: C/gtk-doc-manual.xml:1302(para) +msgid "For filenames use: " +msgstr "ફાઇલનામો વાપરવા માટે: " + +#: C/gtk-doc-manual.xml:1313(para) +msgid "To refer to keys use: " +msgstr "કીઓ વાપરવાનું સંદર્ભ લેવા માટે: " + +#: C/gtk-doc-manual.xml:1328(title) +msgid "Filling the extra files" +msgstr "વધારાની ફાઇલોને ભરી રહ્યા છે" + +#: C/gtk-doc-manual.xml:1330(para) +msgid "There are a couple of extra files, that need to be maintained along with the inline source code comments: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "" +"ત્યાં વધારાની ફાઇલોની જોડી છે, કે જે ઇનલાઇન સ્ત્રોત કોડ ટિપ્પણીઓની સાથે સાથે વ્યવસ્થિત રાખવા માટેની જરૂર " +"છે: <package>.types, <package>-docs.sgml, <package>-sections.txt." + +#: C/gtk-doc-manual.xml:1339(title) +msgid "Editing the types file" +msgstr "ફાઇલોનાં પ્રકારોને સુધારી રહ્યા છે" + +#: C/gtk-doc-manual.xml:1341(para) +msgid "If your library or application includes GtkObjects/GObjects, you want their signals, arguments/parameters and position in the hierarchy to be shown in the documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <package>.types file." +msgstr "" +"જો તમે લાઇબ્રેરી અથવા કાર્યક્રમ એ GtkObjects/GObjects ને સમાવે તો, તમે દસ્તાવેજીકરણમાં બતાવેલ શ્રેણીમાં " +"તેનાં સંકેતો, દલીલો/પરિમાણો અને સ્થાનને ઇચ્છો તો. <package>.types ફાઇલ " +"ની અંદર તેનાં સમાવેશ સાથે xxx_get_type વિધેયોની ભેગી યાદીમાં તમારે બધાને કરવાની " +"જરૂર છે." + +#: C/gtk-doc-manual.xml:1350(title) +msgid "Example types file snippet" +msgstr "" + +#: C/gtk-doc-manual.xml:1364(para) +msgid "Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in Makefile.am. If you use this approach you should not dist the types file nor have it under version control." +msgstr "" +"જ્યાં સુધી GTK-Doc 1.8 gtkdoc-scan એ તમારા માટે આ યાદી ઉત્પન્ન કરી શકે, " +"Makefile.am માં SCAN_OPTIONS માટે \"--rebuild-types\" ને ખાલી ઉમેરો. જો " +"તમે આ હેતુ થી વાપરો તો તમારે ફાઇલનાં પ્રકારોની યાદી કરવી જોઇએ નહિ અથવા આવૃત્તિ નિયંત્રણ હેઠળ તે હોવુ જોઇએ " +"નહિં." + +#: C/gtk-doc-manual.xml:1373(title) +msgid "Editing the master document" +msgstr "મુખ્ય દસ્તાવેજને સુધારી રહ્યા છે" + +#: C/gtk-doc-manual.xml:1375(para) +msgid "GTK-Doc produces documentation in DocBook SGML/XML. When processing the inline source comments, the GTK-Doc tools generate one documentation page per class or module as a separate file. The master document includes them and place them in a order." +msgstr "" +"GTK-Doc એ DocBook SGML/XML માં દસ્તાવેજીકરણને ઉત્પન્ન કરે છે. જ્યારે ઇનલાઇન સ્ત્રોત ટિપ્પણીઓની પ્રક્રિયા કરી રહ્યુ હોય, " +"GTK-Doc સાધનો વર્ગ પ્રતિ એક દસ્તાવેજીકરણ અથવા અલગ ફાઇલ પ્રતિ મોડ્યુવ પાનાંને ઉત્પન્ન કરે છે. મુખ્ય દસ્તાવેજ તેઓને સમાવે છે અને " +"ક્રમમાં તેમને સ્થિત કરે છે." + +#: C/gtk-doc-manual.xml:1382(para) +msgid "While GTK-Doc creates a template master document for you, later run will not touch it again. This means that one can freely structure the documentation. That includes grouping pages and adding extra pages. GTK-Doc has now a test suite, where also the master-document is recreated from scratch. Its a good idea to look at this from time to time to see if there are some new goodies introduced there." +msgstr "" + +#: C/gtk-doc-manual.xml:1392(para) +msgid "Do not create tutorials as extra documents. Just write extra chapters. The benefit of directly embedding the tutorial for your library into the API documentation is that it is easy to link for the tutorial to symbol documentation. Apart chances are higher that the tutorial gets updates along with the library." +msgstr "" + +#: C/gtk-doc-manual.xml:1401(para) +msgid "So what are the things to change inside the master document? For a start is only a little. There are some placeholders (text in square brackets) there which you should take care of." +msgstr "" + +#: C/gtk-doc-manual.xml:1408(title) +msgid "Master document header" +msgstr "મુખ્ય દસ્તાવેજ મથાળુ" + +#: C/gtk-doc-manual.xml:1430(title) +msgid "Editing the section file" +msgstr "વિભાગ ફાઇલને સુધારી રહ્યા છે" + +#: C/gtk-doc-manual.xml:1432(para) +msgid "The section file is used to organise the documentation output by GTK-Doc. Here one specifies which symbol belongs to which module or class and control the visibility (public or private)." +msgstr "" + +#: C/gtk-doc-manual.xml:1438(para) +msgid "The section file is a plain test file with xml like syntax (using tags). Blank lines are ignored and lines starting with a '#' are treated as comment lines." +msgstr "" + +#: C/gtk-doc-manual.xml:1444(para) +msgid "The <FILE> ... </FILE> tag is used to specify the file name, without any suffix. For example, using '<FILE>gnome-config</FILE>' will result in the section declarations being output in the template file tmpl/gnome-config.sgml, which will be converted into the DocBook SGML/XML file sgml/gnome-config.sgml or .DocBook XML file xml/gnome-config.xml. (The name of the html file is based on the module name and the section title, or for gobjects it is based on the gobjects class name converted to lower case)." +msgstr "" + +#: C/gtk-doc-manual.xml:1456(para) +msgid "The <TITLE> ... </TITLE> tag is used to specify the title of the section. It is only useful before the templates (if used) are initially created, since the title set in the template file overrides this. Also if one uses SECTION comment in the sources, this is obsolete." +msgstr "" + +#: C/gtk-doc-manual.xml:1463(para) +msgid "You can group items in the section by using the <SUBSECTION> tag. Currently it outputs a blank line between subsections in the synopsis section. You can also use <SUBSECTION Standard> for standard GObject declarations (e.g. the functions like g_object_get_type and macros like G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the documentation. You can also use <SUBSECTION Private> for private declarations which will not be output (It is a handy way to avoid warning messages about unused declarations.). If your library contains private types which you don't want to appear in the object hierarchy and the list of implemented or required interfaces, add them to a Private subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1479(para) +msgid "You can also use <INCLUDE> ... </INCLUDE> to specify the #include files which are shown in the synopsis sections. It contains a comma-separate list of #include files, without the angle brackets. If you set it outside of any sections, it acts for all sections until the end of the file. If you set it within a section, it only applies to that section." +msgstr "" + +#: C/gtk-doc-manual.xml:1493(title) +msgid "Controlling the result" +msgstr "પરિણામને નિયંત્રણ કરી રહ્યા છે" + +#: C/gtk-doc-manual.xml:1495(para) +msgid "A GTK-Doc run generates report files inside the documentation directory. The generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and <package>-unused.txt. All those are plain text files that can be viewed and postprocessed easily." +msgstr "" + +#: C/gtk-doc-manual.xml:1504(para) +msgid "The <package>-undocumented.txt file starts with the documentation coverage summary. Below are two sections divided by blank lines. The first section lists undocumented or incomplete symbols. The second section does the same for section docs. Incomplete entries are those, which have documentation, but where e.g. a new parameter has been added." +msgstr "" + +#: C/gtk-doc-manual.xml:1513(para) +msgid "The <package>-undeclared.txt file lists symbols given in the <package>-sections.txt but not found in the sources. Check if they have been removed or if they are misspelled." +msgstr "" +"<package>-sections.txt માં આપેલ સંકેતોને " +"<package>-undeclared.txt એ યાદી કરે છે પરંતુ સ્ત્રોતોમાં મળ્યુ નથી. " +"ચકાસો જો તેઓને દૂર કરી દેવામાં આવી રહ્યુ છે અથવા જો તેઓની જોડણી થયેલ નથી." + +#: C/gtk-doc-manual.xml:1520(para) +msgid "The <package>-unused.txt file lists symbol names, where the GTK-Doc scanner has found documentation, but does not know where to put it. This means that the symbol has not yet been added to the <package>-sections.txt file." +msgstr "" +"<package>-unused.txt ફાઇલ એ સંકેત નામોની યાદી કરે છે, જ્યાં GTK-Doc " +"સ્કેનર એ દસ્તાવેજીકરણને શોધ્યુ હતુ, પરંતુ જાણતા નથી ક્યાં તેને મૂકવાનું. આનો મતલબ એ કે સંકેતને હજુ " +"<package>-sections.txt ફાઇલ માં ઉમેરી દેવામાં આવ્યા નથી." + +#: C/gtk-doc-manual.xml:1528(para) +msgid "Enable or add the line in Makefile.am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during make check run." +msgstr "" +"સક્રિય કરો અથવા Makefile.am માં વાક્ય ને ઉમેરો. જો " +"ઓછામાં ઓછુ GTK-Doc 1.9 સ્થાપિત થયેલ હોય તો, આ make check ને ચલાવવા " +"દરમ્યાન સેનિટિ ચકાસણીને ચલાવશે." + +#: C/gtk-doc-manual.xml:1535(para) +msgid "One can also look at the files produced by the source code scanner: <package>-decl-list.txt and <package>-decl.txt. The first and can be compared with the section file if that is manualy maintained. The second lists all declarations fromt he headers If a symbol is missing one could check if this file contains it." +msgstr "" + +#: C/gtk-doc-manual.xml:1544(para) +msgid "If the project is GObject based, one can also look into the files produced by the object scanner: <package>.args.txt, <package>.hierarchy.txt, <package>.interfaces.txt, <package>.prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask gtkdoc to keep the intermedia scanner file for further analysis, but running it as GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" +"જો પ્રોજેક્ટ એ GObject આધારિત હોય તો, એક ઓબ્જેક્ટ સ્કેનર દ્દારા ઉત્પન્ન થયેલ ફાઇલોમાં પણ જોઇ શકો છો: <package>.args.txt, <package>.hierarchy.txt, <package>.interfaces.txt, <package>.prerequisites.txt અને <package>.signals.txt. જો ત્યાં પેલાનાં કોઇપણમાં ગુમ થયેલ સંકેતો છે તો, આગળ પૃથ્થકરણ માટે અંતર્માધ્યમ " +"સ્કેનર ફાઇલને રાખવા માટે એકજણ gtkdoc ને પૂછી શકે છે, પરંતુ GTK_DOC_KEEP_INTERMEDIATE=1 make " +"તરીકે તેને ચલાવી રહ્યા છે." + +#: C/gtk-doc-manual.xml:1559(title) +msgid "Frequently asked question" +msgstr "વારંવાર પૂછાતા પ્રશ્ર્ન" + +#: C/gtk-doc-manual.xml:1563(segtitle) +msgid "Question" +msgstr "પ્રશ્ર્ન" + +#: C/gtk-doc-manual.xml:1564(segtitle) +msgid "Answer" +msgstr "જવાબ" + +#: C/gtk-doc-manual.xml:1566(seg) +msgid "No class hierarchy." +msgstr "વર્ગની શ્રેણી નથી." + +#: C/gtk-doc-manual.xml:1568(function) +msgid "xxx_get_type()" +msgstr "xxx_get_type()" + +#: C/gtk-doc-manual.xml:1569(filename) +msgid "<package>.types" +msgstr "<package>.types" + +#: C/gtk-doc-manual.xml:1567(seg) +msgid "The objects function has not been entered into the file." +msgstr "ઓબ્જેક્ટો એ ફાઇલ માં દાખલ કરી દેવામાં આવ્યુ નથી " + +#: C/gtk-doc-manual.xml:1573(seg) +msgid "Still no class hierarchy." +msgstr "હજુ વર્ગ શ્રેણી નથી." + +#: C/gtk-doc-manual.xml:1575(filename) C/gtk-doc-manual.xml:1614(filename) C/gtk-doc-manual.xml:1622(filename) C/gtk-doc-manual.xml:1644(filename) +msgid "<package>-sections.txt" +msgstr "<package>-sections.txt" + +#: C/gtk-doc-manual.xml:1576(ulink) +msgid "explanation" +msgstr "વિગતવાર" + +#: C/gtk-doc-manual.xml:1574(seg) +msgid "Missing or wrong naming in file (see )." +msgstr " ફાઇલમાં ગુમ થયેલ અથવા ખોટુ નામ (જુઓ )." + +#: C/gtk-doc-manual.xml:1580(seg) +msgid "Damn, I have still no class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1582(type) C/gtk-doc-manual.xml:1623(type) +msgid "GtkWidget" +msgstr "GtkWidget" + +#: C/gtk-doc-manual.xml:1581(seg) +msgid "Is the object name (name of the instance struct, e.g. ) part of the normal section (don't put this into Standard or Private subsections)." +msgstr "" + +#: C/gtk-doc-manual.xml:1588(seg) +msgid "No symbol index." +msgstr "સંકેત અનુક્રમણિકા નથી." + +#: C/gtk-doc-manual.xml:1590(filename) C/gtk-doc-manual.xml:1605(filename) C/gtk-doc-manual.xml:1631(filename) +msgid "<package>-docs.{xml,sgml}" +msgstr "<package>-docs.{xml,sgml}" + +#: C/gtk-doc-manual.xml:1589(seg) +msgid "Does the contain a index that xi:includes the generated index?" +msgstr "" + +#: C/gtk-doc-manual.xml:1595(seg) +msgid "Symbols are not linked to their doc-section." +msgstr "સંકેતો એ તેનાં દસ્તાવેજ-વિભાગમાં કડી થયેલ નથી." + +#: C/gtk-doc-manual.xml:1596(seg) +msgid "Is the doc-comment using the correct markup (added #,% or ())? Check if the gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" + +#: C/gtk-doc-manual.xml:1602(seg) +msgid "A new class does not appear in the docs." +msgstr "નવો વર્ગ એ દસ્તાવેજોમાં દેખાતો નથી." + +#: C/gtk-doc-manual.xml:1603(seg) +msgid "Is the new page xi:included from ." +msgstr "શું તે નવુ પાનું xi છે: માંથી સમાવેલ છે." + +#: C/gtk-doc-manual.xml:1609(seg) +msgid "A new symbol does not appear in the docs." +msgstr "નવો સંકેત એ દસ્તાવેજોમાં દેખાતુ નથી." + +#: C/gtk-doc-manual.xml:1610(seg) +msgid "Is the doc-comment properly formatted. Check for spelling mistakes in the begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable xrefs. Check if the symbol is correctly listed in the in a public subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1618(seg) +msgid "A type is missing from the class hierarchy." +msgstr "પ્રકાર એ વર્ગ શ્રેણામાંથી ગુમ થયેલ છે." + +#: C/gtk-doc-manual.xml:1620(filename) +msgid "<package>.hierarchy" +msgstr "<package>.hierarchy" + +#: C/gtk-doc-manual.xml:1621(filename) +msgid "xml/tree_index.sgml" +msgstr "xml/tree_index.sgml" + +#: C/gtk-doc-manual.xml:1619(seg) +msgid "If the type is listed in but not in then double check that the type is correctly placed in the . If the type instance (e.g. ) is not listed or incidentialy makred private it will not be shown." +msgstr "" + +#: C/gtk-doc-manual.xml:1628(seg) +msgid "I get foldoc links for all gobject annotations." +msgstr "બધા gobject ઍનોટેશન માટે foldoc કડીઓ મને મળે છે." + +#: C/gtk-doc-manual.xml:1630(filename) +msgid "xml/annotation-glossary.xml" +msgstr "xml/annotation-glossary.xml" + +#: C/gtk-doc-manual.xml:1629(seg) +msgid "Check that is xi:included from ." +msgstr "ચકાસો કે જે એ xi છે: માંથી સમાવેલ છે." + +#: C/gtk-doc-manual.xml:1637(seg) +msgid "Parameter described in source code comment block but does not exist" +msgstr "સ્ત્રોત કોડ ટિપ્પણી બ્લોકમાં પરિમાણ વર્ણવેલ છે પરંતુ અસ્તિત્વ ધરાવતુ નથી" + +#: C/gtk-doc-manual.xml:1638(seg) +msgid "Check if the prototype in the header has different parameter names as in the source." +msgstr "ચકાસો જો મથાળામાં પ્રોટોટાઇપ પાસે સ્ત્રોતમાં વિવિધ પરિમાણ નામો છે." + +#: C/gtk-doc-manual.xml:1643(seg) +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "" + +#: C/gtk-doc-manual.xml:1644(seg) +msgid "Symbol XYZ appears twice in file." +msgstr "સંકેત XYZ એ ફાઇલમાં બે વાર દેખાય છે." + +#: C/gtk-doc-manual.xml:1647(seg) +msgid "Element typename in namespace '' encountered in para, but no template matches." +msgstr "" + +#: C/gtk-doc-manual.xml:12(releaseinfo) +msgid "Version 1.1, March 2000" +msgstr "Version 1.1, March 2000" + +#: C/gtk-doc-manual.xml:16(year) +msgid "2000" +msgstr "2000" + +#: C/gtk-doc-manual.xml:16(holder) +msgid "Free Software Foundation, Inc." +msgstr "Free Software Foundation, Inc." + +#: C/gtk-doc-manual.xml:19(para) +msgid "
    Free Software Foundation, Inc. 51 Franklin Street, Suite 330, Boston, MA02110-1301USA
    Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed." +msgstr "
    Free Software Foundation, Inc. 51 Franklin Street, Suite 330, Boston, MA02110-1301USA
    Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed." + +#: C/gtk-doc-manual.xml:28(title) +msgid "GNU Free Documentation License" +msgstr "GNU Free Documentation License" + +#: C/gtk-doc-manual.xml:31(title) +msgid "0. PREAMBLE" +msgstr "0. PREAMBLE" + +#: C/gtk-doc-manual.xml:32(para) +msgid "The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others." +msgstr "" + +#: C/gtk-doc-manual.xml:43(para) +msgid "This License is a kind of copyleft, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software." +msgstr "" + +#: C/gtk-doc-manual.xml:50(para) +msgid "We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference." +msgstr "" + +#: C/gtk-doc-manual.xml:62(title) +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "1. APPLICABILITY AND DEFINITIONS" + +#: C/gtk-doc-manual.xml:63(para) +msgid "This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The Document, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as you." +msgstr "" + +#: C/gtk-doc-manual.xml:72(para) +msgid "A Modified Version of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language." +msgstr "" + +#: C/gtk-doc-manual.xml:79(para) +msgid "A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them." +msgstr "" + +#: C/gtk-doc-manual.xml:94(para) +msgid "The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:103(para) +msgid "The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:111(para) +msgid "A Transparent copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not Transparent is called Opaque." +msgstr "" + +#: C/gtk-doc-manual.xml:128(para) +msgid "Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only." +msgstr "" + +#: C/gtk-doc-manual.xml:141(para) +msgid "The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, Title Page means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text." +msgstr "" + +#: C/gtk-doc-manual.xml:153(title) +msgid "2. VERBATIM COPYING" +msgstr "2. VERBATIM COPYING" + +#: C/gtk-doc-manual.xml:154(para) +msgid "You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3." +msgstr "" + +#: C/gtk-doc-manual.xml:169(para) +msgid "You may also lend copies, under the same conditions stated above, and you may publicly display copies." +msgstr "" + +#: C/gtk-doc-manual.xml:176(title) +msgid "3. COPYING IN QUANTITY" +msgstr "3. COPYING IN QUANTITY" + +#: C/gtk-doc-manual.xml:177(para) +msgid "If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:195(para) +msgid "If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages." +msgstr "" + +#: C/gtk-doc-manual.xml:202(para) +msgid "If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public." +msgstr "" + +#: C/gtk-doc-manual.xml:222(para) +msgid "It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document." +msgstr "" + +#: C/gtk-doc-manual.xml:231(title) +msgid "4. MODIFICATIONS" +msgstr "4. MODIFICATIONS" + +#: C/gtk-doc-manual.xml:232(para) +msgid "You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:" +msgstr "" + +#: C/gtk-doc-manual.xml:248(title) +msgid "A" +msgstr "A" + +#: C/gtk-doc-manual.xml:249(para) +msgid "Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission." +msgstr "" + +#: C/gtk-doc-manual.xml:264(title) +msgid "B" +msgstr "B" + +#: C/gtk-doc-manual.xml:265(para) +msgid "List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five)." +msgstr "" + +#: C/gtk-doc-manual.xml:279(title) +msgid "C" +msgstr "C" + +#: C/gtk-doc-manual.xml:280(para) +msgid "State on the Title Page the name of the publisher of the Modified Version, as the publisher." +msgstr "" + +#: C/gtk-doc-manual.xml:291(title) +msgid "D" +msgstr "D" + +#: C/gtk-doc-manual.xml:292(para) +msgid "Preserve all the copyright notices of the Document." +msgstr "દસ્તાવેજ ની કોપીરાઇટ બધી સૂચનાઓને સાચવો." + +#: C/gtk-doc-manual.xml:301(title) +msgid "E" +msgstr "E" + +#: C/gtk-doc-manual.xml:302(para) +msgid "Add an appropriate copyright notice for your modifications adjacent to the other copyright notices." +msgstr "" + +#: C/gtk-doc-manual.xml:311(title) +msgid "F" +msgstr "F" + +#: C/gtk-doc-manual.xml:312(para) +msgid "Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below." +msgstr "" + +#: C/gtk-doc-manual.xml:324(title) +msgid "G" +msgstr "G" + +#: C/gtk-doc-manual.xml:325(para) +msgid "Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:337(title) +msgid "H" +msgstr "H" + +#: C/gtk-doc-manual.xml:338(para) +msgid "Include an unaltered copy of this License." +msgstr "આ લાઇસન્સની ચેતવણી ન થયેલ નકલને સમાવો." + +#: C/gtk-doc-manual.xml:346(title) +msgid "I" +msgstr "I" + +#: C/gtk-doc-manual.xml:347(para) +msgid "Preserve the section entitled History, and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled History in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence." +msgstr "" + +#: C/gtk-doc-manual.xml:365(title) +msgid "J" +msgstr "J" + +#: C/gtk-doc-manual.xml:366(para) +msgid "Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the History section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission." +msgstr "" + +#: C/gtk-doc-manual.xml:383(title) +msgid "K" +msgstr "K" + +#: C/gtk-doc-manual.xml:384(para) +msgid "In any section entitled Acknowledgements or Dedications, preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein." +msgstr "" + +#: C/gtk-doc-manual.xml:396(title) +msgid "L" +msgstr "L" + +#: C/gtk-doc-manual.xml:397(para) +msgid "Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles." +msgstr "" + +#: C/gtk-doc-manual.xml:409(title) +msgid "M" +msgstr "M" + +#: C/gtk-doc-manual.xml:410(para) +msgid "Delete any section entitled Endorsements. Such a section may not be included in the Modified Version." +msgstr "" + +#: C/gtk-doc-manual.xml:421(title) +msgid "N" +msgstr "N" + +#: C/gtk-doc-manual.xml:422(para) +msgid "Do not retitle any existing section as Endorsements or to conflict in title with any Invariant Section." +msgstr "" + +#: C/gtk-doc-manual.xml:432(para) +msgid "If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles." +msgstr "" + +#: C/gtk-doc-manual.xml:444(para) +msgid "You may add a section entitled Endorsements, provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard." +msgstr "" + +#: C/gtk-doc-manual.xml:453(para) +msgid "You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one." +msgstr "" + +#: C/gtk-doc-manual.xml:470(para) +msgid "The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" + +#: C/gtk-doc-manual.xml:480(title) +msgid "5. COMBINING DOCUMENTS" +msgstr "5. COMBINING DOCUMENTS" + +#: C/gtk-doc-manual.xml:481(para) +msgid "You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:492(para) +msgid "The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work." +msgstr "" + +#: C/gtk-doc-manual.xml:505(para) +msgid "In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled History; likewise combine any sections entitled Acknowledgements, and any sections entitled Dedications. You must delete all sections entitled Endorsements." +msgstr "" + +#: C/gtk-doc-manual.xml:516(title) +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "6. COLLECTIONS OF DOCUMENTS" + +#: C/gtk-doc-manual.xml:517(para) +msgid "You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:527(para) +msgid "You may extract a single document from such a collection, and dispbibute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document." +msgstr "" + +#: C/gtk-doc-manual.xml:537(title) +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "7. AGGREGATION WITH INDEPENDENT WORKS" + +#: C/gtk-doc-manual.xml:538(para) +msgid "A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an aggregate, and this License does not apply to the other self-contained works thus compiled with the Document , on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate." +msgstr "" + +#: C/gtk-doc-manual.xml:561(title) +msgid "8. TRANSLATION" +msgstr "8. TRANSLATION" + +#: C/gtk-doc-manual.xml:562(para) +msgid "Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail." +msgstr "" + +#: C/gtk-doc-manual.xml:580(title) +msgid "9. TERMINATION" +msgstr "9. TERMINATION" + +#: C/gtk-doc-manual.xml:581(para) +msgid "You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document 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." +msgstr "" + +#: C/gtk-doc-manual.xml:594(title) +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "10. FUTURE REVISIONS OF THIS LICENSE" + +#: C/gtk-doc-manual.xml:595(para) +msgid "The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/." + +#: C/gtk-doc-manual.xml:606(para) +msgid "Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License or any later version applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" + +#: C/gtk-doc-manual.xml:621(title) +msgid "Addendum" +msgstr "Addendum" + +#: C/gtk-doc-manual.xml:622(para) +msgid "To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:" +msgstr "" +"તમે લખેલ છે તે દસ્તાવેજમાં આ લાઇસન્સને વાપરવા માટે, દસ્તાવેજમાં લાઇસન્સની નકલને સમાવો અને નીચેનાં કોપીરાઇટ અને " +"લાઇસન્સ સૂચનાઓને શીર્ષક પાનાં પછી મૂકો:" + +#: C/gtk-doc-manual.xml:629(para) +msgid "Copyright YEAR YOUR NAME." +msgstr "Copyright YEAR YOUR NAME." + +#: C/gtk-doc-manual.xml:632(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License." +msgstr "" + +#: C/gtk-doc-manual.xml:647(para) +msgid "If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" + +#: C/gtk-doc-manual.xml:657(para) +msgid "If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software." +msgstr "" + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 +#: C/gtk-doc-manual.xml:0(None) +msgid "translator-credits" +msgstr "શ્ર્વેતા કોઠારી " + diff --git a/help/manual/gu/gu.stamp b/help/manual/gu/gu.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/gu/gu.stamp diff --git a/help/manual/gu/index.docbook b/help/manual/gu/index.docbook new file mode 100644 index 0000000..22c0156 --- /dev/null +++ b/help/manual/gu/index.docbook @@ -0,0 +1,2763 @@ + + + + +included"> +]> + + + + GTK-Doc પુસ્તિકા + 1.24.1 + GTK-Doc વપરાશની સૂચનાઓ સાથે ડેવલપરો માટે વપરાશકર્તા પુસ્તિકા. + + + Chris + Lyttle + +
    + chris@wilddev.net +
    +
    +
    + + Dan + Mueth + +
    + d-mueth@uchicago.edu +
    +
    +
    + + Stefan + Sauer (Kost) + +
    + ensonic@users.sf.net +
    +
    +
    +
    + + GTK-Doc project +
    gtk-doc-list@gnome.org
    +
    + + 2000, 2005 + Dan Mueth and Chris Lyttle + + + 2007-2015 + Stefan Sauer (Kost) + + + + + + Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included. + Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps. + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + + 1.27 + 07 Dec 2017 + ss + fine tuning of the python port + + + 1.26 + 11 Aug 2017 + ss + port all tools from perl/bash to python + + + 1.25 + 21 March 2016 + ss + bug fixes, test cleanups + + + 1.24 + 29 May 2015 + ss + bug fix + + + 1.23 + 17 May 2015 + ss + bug fix + + + 1.22 + 07 May 2015 + ss + bug fixes, dropping deprecated features + + + 1.21 + 17 Jul 2014 + ss + bug fixes, dropping deprecated features + + + 1.20 + 16 Feb 2014 + ss + bug fixes, markdown support, style improvements + + + 1.19 + 05 Jun 2013 + ss + bug fixes + + + 1.18 + 14 Sep 2011 + ss + bug fixes, speedups, markdown support + + + 1.17 + 26 Feb 2011 + sk + urgent bug fix update + + + 1.16 + 14 Jan 2011 + sk + bugfixes, layout improvements + + + 1.15 + 21 May 2010 + sk + bug and regression fixes + + + 1.14 + 28 March 2010 + sk + bugfixes and performance improvements + + + 1.13 + 18 December 2009 + sk + broken tarball update + + + 1.12 + 18 December 2009 + sk + new tool features and bugfixes + + + 1.11 + 16 November 2008 + mal + GNOME doc-utils migration + + + +
    + + + + + પરિચય + + આ પ્રકરણ GTK-Doc ને રજૂ કરે છે અને તે શું છે અને તેને કેવી રીતે વપરાયેલ છે તેની ઝાંખી આપે છે. + + + GTK-Doc શું છે? + + GTK-Doc એ દસ્તાવેજ C કોડ માટે વપરાયેલ છે. તે લાઇબ્રેરીઓનાં સાર્વજનિક API નાં દસ્તાવેજ માટે વપરાયેલ છે, જેવું કે GTK+ અને GNOME લાઇબ્રેરીઓ. પરંતુ તે પણ દસ્તાવેજ કાર્યક્રમ કોડ માટે વપરાયેલ છે. + + + + GTK-Doc કામ કેવી રીતે કરે છે? + + GTK-Doc એ વિશિષ્ટ રીતે માળખુ થયેલ ટિપ્પણી બ્લોકોમાં સ્ત્રોત ફાઇલોની અંદર સ્થિત થયેલ વિધેયોનાં દસ્તાવેજીકરણની મદદથી કામ કરે છે, અથવા દસ્તાવેજીકરણ ટેમ્પલેટ ફાઇલોમાં ઉમેરાયેલ છે કે જે GTK-Doc વાપરે છે (છતાંપણ નોંધો કે GTK-Doc એ પણ દસ્તાવેજ વિધેયો હશે કે જે શીર્ષક ફાઇલોમાં જાહેર થયેલ છે; તે સ્થિર વિધેયો માટે આઉટપુટ ઉત્પન્ન કરતુ નથી). + + + GTK-Doc consists of a number of python scripts, each performing a different step + in the process. + + + ત્યાં પ્રક્રિયામાં મુખ્ય ૫ પગલાંઓ છે: + + + + + દસ્તાવેજીકરણને લખી રહ્યા છે. લેખક એ દરેક વિધેયને, મેક્રો, યુનિયન વગેરે માટે દસ્તાવેજીકરણ સાથે સ્ત્રોત ફાઇલોમાં ભરે છે. (ઉત્પન્ન થયેલ ટેમ્પલેટ ફાઇલમાં ભૂતકાળની જાણકારી દાખલ થયેલ હતી, કે જે કોઇપણ રીતે અગ્રહણીય થયેલ નથી) + + + + + Gathering information about the code. + + gtkdoc-scan scans the header files of the + code looking for declarations of functions, macros, enums, structs, and unions. + It creates the file <module>-decl-list.txt containing a list of the + declarations, placing them into sections according to which header file they + are in. On the first run this file is copied to <module>-sections.txt. + The author can rearrange the sections, and the order of the + declarations within them, to produce the final desired order. + The second file it generates is <module>-decl.txt. + This file contains the full declarations found by the scanner. If for + some reason one would like some symbols to show up in the docs, where + the full declaration cannot be found by the scanner or the declaration + should appear differently, one can place entities similar to the ones in + <module>-decl.txt into <module>-overrides.txt. + + + gtkdoc-scangobj can also be used to dynamically query a library about + any GObject subclasses it exports. It saves information about each + object's position in the class hierarchy and about any GObject properties + and signals it provides. + + + gtkdoc-scanobj should not be used anymore. + It was needed in the past when GObject was still GtkObject inside gtk+. + + + + + + Generating the XML and HTML/PDF. + + gtkdoc-mkdb turns the template files into + XML files in the xml/ subdirectory. + If the source code contains documentation on functions, using the + special comment blocks, it gets merged in here. If there are no tmpl files used + it only reads docs from sources and introspection data. + + + gtkdoc-mkhtml turns the XML files into HTML + files in the html/ subdirectory. + Likewise gtkdoc-mkpdf turns the XML files into a PDF + document called <package>.pdf. + + + Files in xml/ and + html/ directories are always + overwritten. One should never edit them directly. + + + + + + Fixing up cross-references between documents. + + After installing the HTML files, gtkdoc-fixxref can be run to fix up any + cross-references between separate documents. For example, the GTK+ + documentation contains many cross-references to types documented in the GLib manual. + + When creating the source tarball for distribution, gtkdoc-rebase + turns all external links into web-links. When installing distributed (pregenerated) docs + the same application will try to turn links back to local links + (where those docs are installed). + + + + + + + + GTK-Doc ને મેળવી રહ્યા છે + + + જરૂરિયાતો + + python 2/3 - the main scripts are written in python. + + + xsltproc - the xslt processor from libxslt + xmlsoft.org/XSLT/ + + + docbook-xsl - the docbook xsl stylesheets + sourceforge.net/projects/docbook/files/docbook-xsl + + + One of source-highlight, highlight or + vim - optional - used for syntax highlighting of examples + + + + + + GTK-Doc વિશે + + (FIXME) + + + (History, authors, web pages, mailing list, license, future plans, + comparison with other similar systems.) + + + + + + આ પુસ્તિકા વિશે + + (FIXME) + + + (who it is meant for, where you can get it, license) + + + + + + + + તમારા પ્રોજેક્ટને સુયોજિત કરી રહ્યા છે + + + The next sections describe what steps to perform to integrate GTK-Doc into + your project. Theses sections assume we work on a project called 'meep'. + This project contains a library called 'libmeep' and + an end-user app called 'meeper'. We also assume you will be using autoconf + and automake. In addition section plain + makefiles or other build systems will describe the basics needed to + work in a different build setup. + + + + સ્કેલેટન દસ્તાવેજીકરણને સુયોજિત કરી રહ્યા છે + + + Under your top-level project directory create folders called docs/reference + (this way you can also have docs/help for end-user documentation). + It is recommended to create another subdirectory with the name of the doc-package. + For packages with just one library this step is not necessary. + + + + This can then look as shown below: + Example directory structure + + + + + + + autoconf સાથે એકત્રિકરણ + + ઘણું સરળ છે! ફક્ત તમારી configure.ac સ્ક્રિપ્ટમાં એક વાક્ય ને ઉમેરો. + + + autoconf સાથે એકત્રિકરણ + + + + + + This will require all developers to have gtk-doc installed. If it is + okay for your project to have optional api-doc build setup, you can + solve this as below. Keep it as is, as gtkdocize is looking for + GTK_DOC_CHECK at the start of a line. + Keep gtk-doc optional + + + + + પહેલી દલીલ રૂપરેખાંકિત સમયે gtkdocversion માટે ચકાસવા વપરાયેલ છે. બીજી, વૈકલ્પિક દલીલ એ gtkdocize દ્દારા વપરાયેલ છે. GTK_DOC_CHECK મેક્રો પણ ઘણીબધા રૂપરેખાંકિત ફેરબદલોને ઉમેરે છે: + + --with-html-dir=PATH : સ્થાપિત થયેલ દસ્તાવેજોનો પાથ + --enable-gtk-doc : દસ્તાવેજીકરણ ને બિલ્ડ કરવા માટે gtk-doc ને વાપરો [default=no] + --enable-gtk-doc-html : html બંધારણમાં દસ્તાવેજીકરણ બિલ્ડ કરો [default=yes] + --enable-gtk-doc-pdf : pdf બંધારણમાં દસ્તાવેજીકરણને બિલ્ડ કરો [default=no] + + + + GTK-Doc એ મૂળભૂત રીતે નિષ્ક્રિય થયેલ છે! આગળનાં configure ને ચલાવવા માટે ને પસાર કરવાનું યાદ રાખો. નહિં તો પહેલીથી ઉત્પન્ન થયેલ દસ્તાવેજીકરણ સ્થાપિત થયેલ છે (કે જે વપરાશકર્તાઓ માટેનો અર્થ બને છે પરંતુ ડેવલપરો માટે નહિં). + + + + Furthermore it is recommended that you have the following line inside + your configure.ac script. + This allows gtkdocize to automatically copy the + macro definition for GTK_DOC_CHECK to your project. + + + + gtkdocize માટે તૈયારી + + + + + After all changes to configure.ac are made, update + the configure file. This can be done by re-running + autoreconf -i or autogen.sh. + + + + + automake સાથે એકત્રિકરણ + + + First copy the Makefile.am from the + examples sub directory of the + gtkdoc-sources + to your project's API documentation directory ( + ./docs/reference/<package>). + A local copy should be available under e.g. + /usr/share/doc/gtk-doc-tools/examples/Makefile.am. + If you have multiple doc-packages repeat this for each one. + + + + The next step is to edit the settings inside the Makefile.am. + All the settings have a comment above that describes their purpose. + Most settings are extra flags passed to the respective tools. Every tool + has a variable of the form . + All the tools support to list the supported + parameters. + + + + + + + + autogen સાથે એકત્રિકરણ + + મોટાભાગનાં પ્રોજેક્ટો પાસે આવૃત્તિ નિયંત્રણ સિસ્ટમ (જેવી કે cvs/svn/git) માંથી ચેકઆઉટ પછી ઇન્ફ્રાસ્ટ્રક્ચરને બિલ્ડ કરવાનું સુયોજિત કરવા માટે autogen.sh સ્ક્રિપ્ટ હશે. GTK-Doc એ સાધન gtkdocize તરીકે કહેવાતા સાધન સાથે આવે છે કે જે આવી સ્ક્રિપ્ટમાં વાપરી શકાય છે. તે autoheader, automake અથવા autoconf પહેલાં ચાલવુ જોઇએ. + + + autogen.sh માંથી gtkdocize ને ચલાવી રહ્યા છે + + + + + + When running gtkdocize it copies + gtk-doc.make to your project root (or any directory + specified by the option). + It also checks you configure script for the GTK_DOC_CHECK + invocation. This macro can be used to pass extra parameters to + gtkdocize. + + + + Historically GTK-Doc was generating template files where developers entered the docs. + This turned out to be not so good (e.g. the need for having generated + files under version control). + Since GTK-Doc 1.9 the tools can get all the information from source comments + and thus the templates can be avoided. We encourage people to keep + documentation in the code. gtkdocize supports now + a option that chooses a makefile that skips + tmpl usage totally. Besides adding the option directly to the command + invocation, they can be added also to an environment variable called GTKDOCIZE_FLAGS + or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. + If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, + please remove the directory (e.g. from version control system). + + + + + દસ્તાવેજ બિલ્ડને ચલાવી રહ્યા છે + + પહેલાનાં પગલાઓ પછી બિલ્ડ ને ચલાવવા માટે સમય થઇ ગયો છે. પહેલાં આપણે autogen.sh પુન:ચલાવવાની જરૂર છે. નહિં તો પછીથી આ વિકલ્પ સાથે configure ને જાતે જ ચલાવો. + + The first make run generates several additional files in the doc-directories. + The important ones are: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + દસ્તાવેજ બિલ્ડને ચલાવી રહ્યા છે + + + + હવે તમે docs/reference/<package>/index.html માટે તમારા બ્રાઉઝર પર આંગળી ચીંધી શકો છો. હાં, તે થોડુ હજુ નિરાશ કરે તેવુ છે. પરંતુ આગળનામ વિષય માટે આપણે તને કહીએ છે કે જીદંગી સાથે પાનાંઓને કેવી રીતે ભરવા તે દરમ્યાન થોડા સમય માટે અટકી જાય છે + + + + આવૃત્તિ નિયંત્રણ સિસ્ટમો સાથે એકત્રિકરણ + + + As a rule of thumb, it's the files you edit which should go under + version control. For typical projects it's these files: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt, + Makefile.am. + + + Files in the xml/ and html/ + directories should not go under version control. Neither should any of + the .stamp files. + + + + + Integration with plain makefiles or other build systems + + + In the case one does not want to use automake and therefore + gtk-doc.mak one will need to call the gtkdoc tools + in the right order in own makefiles (or other build tools). + + + + Documentation build steps + +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir= +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html +]]> + + + + + One will need to look at the Makefile.am and + gtk-doc.mak to pick the extra options needed. + + + + + Integration with CMake build systems + + + GTK-Doc now provides a GtkDocConfig.cmake module + (and the corresponding GtkDocConfigVersion.cmake + module). This provides a gtk_doc_add_module + command that you can set in your CMakeLists.txt + file. + + + + The following example shows how to use this command. + Example of using GTK-Doc from CMake + + + + + + + + કોડને દસ્તાવેજ કરી રહ્યા છે + + + GTK-Doc uses source code comment with a special syntax for code documentation. + Further it retrieves information about your project structure from other + sources. During the next section you will find all information about the + syntax of the comments. + + + + દસ્તાવેજીકરણ નિયુક્તિ + + In the past most documentation had to be filled into files residing + inside the tmpl directory. This has the + disadvantages that the information is often not updated and also that + the file tend to cause conflicts with version control systems. + + + The avoid the aforementioned problems we suggest putting the + documentation inside the sources. This manual will only describe this + way of documenting code. + + + + + The scanner can handle the majority of C headers fine. In the case of + receiving warnings from the scanner that look like a special case, one can + hint GTK-Doc to skip over them. + GTK-Doc comment block + + + + + + Limitations + + Note, that GTK-Doc's supports + #ifndef(__GTK_DOC_IGNORE__) but not + #if !defined(__GTK_DOC_IGNORE__) or other combinations. + + + + + + + દસ્તાવેજીકરણ ટિપ્પણીઓ + + + A multiline comment that starts with an additional '*' marks a + documentation block that will be processed by the GTK-Doc tools. + GTK-Doc comment block + + + + + + The 'identifier' is one line with the name of the item the comment is + related to. The syntax differs a little depending on the item. + (TODO add table showing identifiers) + + + + The 'documentation' block is also different for each symbol type. Symbol + types that get parameters such as functions or macros have the parameter + description first followed by a blank line (just a '*'). + Afterwards follows the detailed description. All lines (outside program + listings and CDATA sections) just containing a ' *' (blank-asterisk) are + converted to paragraph breaks. + If you don't want a paragraph break, change that into ' * ' + (blank-asterisk-blank-blank). This is useful in preformatted text (code + listings). + + + + + When documenting code, describe two aspects: + + + + What it is: The name for a class or function can sometimes + be misleading for people coming from a different background. + + + + + What it does: Tell about common uses. Put it in relation + with the other API. + + + + + + + + One advantage of hyper-text over plain-text is the ability to have links + in the document. Writing the correct markup for a link can be tedious + though. GTK-Doc comes to help by providing several useful abbreviations. + + + + Use function() to refer to functions or macros which take arguments. + + + + + Use @param to refer to parameters. Also use this when referring to + parameters of other functions, related to the one being described. + + + + + Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS. + + + + + Use #symbol to refer to other types of symbol, e.g. structs and + enums and macros which don't take arguments. + + + + + Use #Object::signal to refer to a GObject signal. + + + + + Use #Object:property to refer to a GObject property. + + + + + Use #Struct.field to refer to a field inside a structure and + #GObjectClass.foo_bar() to refer to a vmethod. + + + + + + + જો તમારે તેઓને બદલ્યા વગર GTK-Doc વગર તમારાં દસ્તાવેજીકરણમાં વિશિષ્ટ અક્ષરો '<', '>', '()', '@', '%', or '#' ને વાપરવાનું ઇચ્છતા હોય તો તમે XML વસ્તુઓ "&lt;", "&gt;", "&lpar;", "&rpar;", "&commat;", "&percnt;" અને "&num;" ને વાપરી શકો છો અથવા બેકસ્લેશ '\' સાથે તેઓમાંથી બહાર નીકળી જાઓ. + + + + DocBook can do more than just links. One can also have lists, + examples, headings, and images. As of version 1.20, the + preferred way is to use a subset of the basic text formatting + syntax called + Markdown. + On older GTK-Doc versions any documentation that includes + Markdown will be rendered as is. For example, list items will + appear as lines starting with a dash. + + + + While markdown is now preferred one can mix both. One limitation here is + that one can use docbook xml within markdown, but markdown within + docbook xml is not supported. + + + + In older GTK-Doc releases, if you need support for additional + formatting, you would need to enable the usage of docbook + XML tags inside doc-comments by putting + (or ) in the variable + MKDB_OPTIONS inside Makefile.am. + + + + GTK-Doc comment block using Markdown + + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ +]]> + + + + + More examples of what markdown tags are supported can be found in the + GTK+ Documentation Markdown Syntax Reference. + + + + પહેલાનાં GTK-Doc માં પહેલેથી જણાવેલ પ્રમાણે સાર્વજનિક API દસ્તાવેજીકરણ માટે છે. છતાં એક એ સ્થિર સંકેતો માટે દસ્તાવેજીકરણ ને લખી શકતુ નથી. તેમ છતાં તે પેલાં સંકેતો પર ટિપ્પણી કરવા માટે સારુ છે. આ તમારાં કોડને સમજવા માટે બીજાને મદદ કરે છે. માટે આપણે સામાન્ય ટિપ્પણીઓની મદદથી આ ટિપ્પણી એ અગ્રહણીય કરેલ છે (પહેલાં વાક્યમાં બીજા '*' વગર). જો પછી વિધેયને સાર્વજનિક બનાવવાની જરૂર છે, ટિપ્પણી બ્લોકમાં બીજા '*' ઉમેરવા માટે બધાને કરવાની જરૂર છે અને ફાઇલ વિભાગોની અંદર જમણી જગ્યા પર સંકેત નામને દાખલ કરો. + + + + + વિભાગોનું દસ્તાવેજ કરી રહ્યા છે + + દસ્તાવેજીકરણનો દરેક વિભાગ એ એર વર્ગ અથવા મોડ્યુલ વિશે જાણકારીને સમાવે છે. એક ઘટક એ વિભાગ બ્લોક લખી શકે છે તે રજૂ કરવા માટે. ટૂંકુ વર્ણન એ સમાવિષ્ટોનાં કોષ્ટકની અંદર પણ વપરાયેલ છે. બધી @fields વૈકલ્પિક છે. + + + વિભાગ ટિપ્પણી બ્લોક + + + + + + + SECTION:<name> + + + The name links the section documentation to the respective part in + the <package>-sections.txt file. The + name given here should match the <FILE> tag in the + <package>-sections.txt file. + + + + + @shortdescription (_d) + + વિભાગનું એક વાક્યનું વર્ણન, કે જે પછી TOC માં અને વિભાગ પાનાંની ટોચે કડીઓ પછી દેખાશે. + + + + @title + + વિભાગનું શીર્ષક એ SECTION રજૂઆતમાંથી <name> માટે મૂળભૂત કરેલ છે. તે @title ક્ષેત્ર સાથે અવગણી શકાય છે. + + + + @sectionid (_i) + + + Overrides the use of title as a section identifier. For GObjects + the <title> is used as a section_id and for other sections + it is <MODULE>-<title>. + + + + + @seealso (_a) + + + A list of symbols that are related to this section. + + + + + @stability + + + An informal description of the stability level this API has. + We recommend the use of one of these terms: + + + + Stable + - The intention of a Stable interface is to enable arbitrary + third parties to develop applications to these interfaces, + release them, and have confidence that they will run on all + minor releases of the product (after the one in which the + interface was introduced, and within the same major release). + Even at a major release, incompatible changes are expected + to be rare, and to have strong justifications. + + + + + Unstable + - Unstable interfaces are experimental or transitional. + They are typically used to give outside developers early + access to new or rapidly changing technology, or to provide + an interim solution to a problem where a more general + solution is anticipated. + No claims are made about either source or binary + compatibility from one minor release to the next. + + + + + Private + - An interface that can be used within the GNOME stack + itself, but that is not documented for end-users. Such + functions should only be used in specified and documented + ways. + + + + + Internal + - An interface that is internal to a module and does not + require end-user documentation. Functions that are + undocumented are assumed to be Internal. + + + + + + + + @include + + + The #include files to show in the section + synopsis (a comma separated list), overriding the global + value from the section + file or command line. This item is optional. + + + + + @image + + + The image to display at the top of the reference page for this + section. This will often be some sort of a diagram to illustrate + the visual appearance of a class or a diagram of its relationship + to other classes. This item is optional. + + + + + + + + To avoid unnecessary recompilation after doc-changes put the section + docs into the c-source where possible. + + + + + + + સંકેતોનું દસ્તાવેજ કરી રહ્યા છે + + + Each symbol (function, macro, struct, enum, signal and property) is + documented in a separate block. The block is best placed close to the + definition of the symbols so that it is easy to keep them in sync. + Thus functions are usually documented in the c-source and macros, + structs and enums in the header file. + + + સામાન્ય ટેગ + + + You can add versioning information to all documentation elements to tell + when an API was introduced, or when it was deprecated. + + + Versioning Tags + જ્યાં સુધી: + + વર્ણન જ્યાં સુધી API કોડનું કઇ આવૃત્તિ ઉપલ્બધ છે. + + + અપ્રચલિત થયેલ: + + ફકરાને સૂચિત કરી રહ્યા છે કે જે આ વિધેયને વધારે વાપરવુ જોઇએ નહિં. વર્ણનએ નવા API માટે વાંચનારને ધ્યાન લેવુ જોઇએ. + + + + + + You can also add stability information to all documentation elements + to indicate whether API stability is guaranteed for them for all + future minor releases of the project. + + + + The default stability level for all documentation elements can be set + by passing the argument to + gtkdoc-mkdb with one of the values below. + + + Stability Tags + Stability: Stable + + + Mark the element as stable. This is for public APIs which are + guaranteed to remain stable for all future minor releases of the + project. + + + + Stability: Unstable + + + Mark the element as unstable. This is for public APIs which are + released as a preview before being stabilised. + + + + Stability: Private + + + Mark the element as private. This is for interfaces which can be + used by tightly coupled modules, but not by arbitrary third + parties. + + + + + + સામાન્ય ટેગ + + + + + Annotations + + + Documentation blocks can contain annotation-tags. These tags will be + rendered with tooltips describing their meaning. The tags are used by + gobject-introspection to generate language bindings. A detailed list + of the supported tags can be found on + the wiki. + + + Annotations + + + + + વિધેય ટિપ્પણી બ્લોક + + + Please remember to: + + + + Document whether returned objects, lists, strings, etc, should be + freed/unrefed/released. + + + + + Document whether parameters can be NULL, and what happens if they are. + + + + + Mention interesting pre-conditions and post-conditions where appropriate. + + + + + + Gtk-doc એ '_' સાથે શરૂ થતા બધા સંકેતો (મેક્રો, વિધેયો) ને ખાનગી ધારે છે. તેઓ સ્થિર વિધેયો જેવું વર્ણતૂક કરે છે. + + વિધેય ટિપ્પણી બ્લોક + + + + વિધેય ટૅગો + પાછુ આવે છે: + + ફકરો પાછુ મળેલ પરિણામને વર્ણવી રહ્યા છે. + + + @...: + + + In case the function has variadic arguments, you should use this + tag (@Varargs: does also work for historic reasons). + + + + + + + + ગુણધર્મ ટિપ્પણી બ્લોક + + ગુણધર્મ ટિપ્પણી બ્લોક + + + + + + સંકેત ટિપ્પણા બ્લોક + + + Please remember to: + + + + Document when the signal is emitted and whether it is emitted before + or after other signals. + + + + + Document what an application might do in the signal handler. + + + + + + સંકેત ટિપ્પણા બ્લોક + + + + + + Struct ટિપ્પણી બ્લોક + Struct ટિપ્પણી બ્લોક + + + + + Use /*< private >*/ before the private struct fields + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + If the first field is "g_iface", "parent_instance" or "parent_class" + it will be considered private automatically and doesn't need to be + mentioned in the comment block. + + + + Struct comment blocks can also be used for GObjects and GObjectClasses. + It is usually a good idea to add a comment block for a class, if it has + vmethods (as this is how they can be documented). For the GObject + itself one can use the related section docs, having a separate block + for the instance struct would be useful if the instance has public + fields. One disadvantage here is that this creates two index entries + of the same name (the structure and the section). + + + + + Enum ટિપ્પણી બ્લોક + Enum ટિપ્પણી બ્લોક + */ + SOMETHING_COUNT +} Something; +]]> + + + + Use /*< private >*/ before the private enum values + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + + + + + Inline program documentation + + You can document programs and their commandline interface using inline + documentation. + + + + Tags + + PROGRAM + + + + Defines the start of a program documentation. + + + + + + @short_description: + + + Defines a short description of the program. (Optional) + + + + + + @synopsis: + + + Defines the arguments, or list of arguments that the program can take. + (Optional) + + + + + + @see_also: + + + See Also manual page section. (Optional) + + + + + + @arg: + + + Argument(s) passed to the program and their description. (Optional) + + + + + + Description: + + + A longer description of the program. + + + + + + પાછુ આવે છે: + + + Specificy what value(s) the program returns. (Optional) + + + + + + + + Example of program documentation. + Program documentation block + + + + + + + + ઉપયોગી DocBook ટૅગ + + અહિંયા અમુક DocBook ટૅગ છે કે જે મોટાભાગનાં ઉપયોગી છે જ્યારે કોડનું દસ્તાવેજ કરી રહ્યા છે. + + + To link to another section in the GTK docs: + + + Hash Tables +]]> + + The linkend is the SGML/XML id on the top item of the page you want to link to. + For most pages this is currently the part ("gtk", "gdk", "glib") and then + the page title ("Hash Tables"). For widgets it is just the class name. + Spaces and underscores are converted to '-' to conform to SGML/XML. + + + + To refer to an external function, e.g. a standard C function: + + ...
    +]]> + + + + + To include example code: + + + Using a GHashTable. + + ... + + +]]> + + or possibly this, for very short code fragments which don't need a title: + + + + ... + + +]]> + + For the latter GTK-Doc also supports an abbreviation: + + + + + To include bulleted lists: + + + + + ... + + + + + ... + + + +]]> + + + + + To include a note which stands out from the text: + + + + Make sure you free the data after use. + + +]]> + + + + + To refer to a type: + + unsigned char +]]> + + + + + To refer to an external structure (not one described in the GTK docs): + + XFontStruct +]]> + + + + + To refer to a field of a structure: + + len +]]> + + + + + To refer to a class name, we could possibly use: + + GtkWidget +]]> + + but you'll probably be using #GtkWidget instead (to automatically create + a link to the GtkWidget page - see the abbreviations). + + + + To emphasize text: + + This is important +]]> + + + + + For filenames use: + + /home/user/documents
    +]]> + + + + + To refer to keys use: + + ControlL +]]> + + + + + + + + વધારાની ફાઇલોને ભરી રહ્યા છે + + + There are a couple of extra files, that need to be maintained along with + the inline source code comments: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + + ફાઇલોનાં પ્રકારોને સુધારી રહ્યા છે + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Example types file snippet + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + જ્યાં સુધી GTK-Doc 1.8 gtkdoc-scan એ તમારા માટે આ યાદી ઉત્પન્ન કરી શકે, Makefile.am માં SCAN_OPTIONS માટે "--rebuild-types" ને ખાલી ઉમેરો. જો તમે આ હેતુ થી વાપરો તો તમારે ફાઇલનાં પ્રકારોની યાદી કરવી જોઇએ નહિ અથવા આવૃત્તિ નિયંત્રણ હેઠળ તે હોવુ જોઇએ નહિં. + + + + + મુખ્ય દસ્તાવેજને સુધારી રહ્યા છે + + + GTK-Doc produces documentation in DocBook SGML/XML. When processing the + inline source comments, the GTK-Doc tools generate one documentation + page per class or module as a separate file. The master document + includes them and place them in an order. + + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + + Do not create tutorials as extra documents. Just write extra chapters. + The benefit of directly embedding the tutorial for your library into + the API documentation is that it is easy to link for the tutorial to + symbol documentation. Apart chances are higher that the tutorial gets + updates along with the library. + + + + + So what are the things to change inside the master document? For a start + is only a little. There are some placeholders (text in square brackets) + there which you should take care of. + + + + મુખ્ય દસ્તાવેજ મથાળુ + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + વિભાગ ફાઇલને સુધારી રહ્યા છે + + + The section file is used to organise the documentation output by + GTK-Doc. Here one specifies which symbol belongs to which module or + class and control the visibility (public or private). + + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + + The <TITLE> ... </TITLE> tag is used to specify the title of + the section. It is only useful before the templates (if used) are + initially created, since the title set in the template file overrides + this. Also if one uses SECTION comment in the sources, this is obsolete. + + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + + You can also use <INCLUDE> ... </INCLUDE> to specify the + #include files which are shown in the synopsis sections. + It contains a comma-separate list of #include files, without the angle + brackets. If you set it outside of any sections, it acts for all + sections until the end of the file. If you set it within a section, it + only applies to that section. + + +
    + +
    + + + પરિણામને નિયંત્રણ કરી રહ્યા છે + + + A GTK-Doc run generates report files inside the documentation directory. + The generated files are named: + <package>-undocumented.txt, + <package>-undeclared.txt and + <package>-unused.txt. + All those are plain text files that can be viewed and postprocessed easily. + + + + The <package>-undocumented.txt file starts with + the documentation coverage summary. Below are two sections divided by + blank lines. The first section lists undocumented or incomplete symbols. + The second section does the same for section docs. Incomplete entries are + those, which have documentation, but where e.g. a new parameter has been + added. + + + <package>-sections.txt માં આપેલ સંકેતોને <package>-undeclared.txt એ યાદી કરે છે પરંતુ સ્ત્રોતોમાં મળ્યુ નથી. ચકાસો જો તેઓને દૂર કરી દેવામાં આવી રહ્યુ છે અથવા જો તેઓની જોડણી થયેલ નથી. + + <package>-unused.txt ફાઇલ એ સંકેત નામોની યાદી કરે છે, જ્યાં GTK-Doc સ્કેનર એ દસ્તાવેજીકરણને શોધ્યુ હતુ, પરંતુ જાણતા નથી ક્યાં તેને મૂકવાનું. આનો મતલબ એ કે સંકેતને હજુ <package>-sections.txt ફાઇલ માં ઉમેરી દેવામાં આવ્યા નથી. + + + સક્રિય કરો અથવા Makefile.am માં વાક્ય ને ઉમેરો. જો ઓછામાં ઓછુ GTK-Doc 1.9 સ્થાપિત થયેલ હોય તો, આ make check ને ચલાવવા દરમ્યાન સેનિટિ ચકાસણીને ચલાવશે. + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documenting other interfaces + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + Command line options and man pages + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + Document the tool + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + Adding the extra configure check + + + Extra configure checks + + + + + + + Adding the extra makefile rules + + + Extra configure checks + + + + + + + + DBus interfaces + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + Frequently asked questions + + + + પ્રશ્ર્ન + જવાબ + + વર્ગની શ્રેણી નથી. + + The objects xxx_get_type() function has not been + entered into the <package>.types file. + + + + હજુ વર્ગ શ્રેણી નથી. + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + Damn, I have still no class hierarchy. + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + સંકેત અનુક્રમણિકા નથી. + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + સંકેતો એ તેનાં દસ્તાવેજ-વિભાગમાં કડી થયેલ નથી. + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + નવો વર્ગ એ દસ્તાવેજોમાં દેખાતો નથી. + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + નવો સંકેત એ દસ્તાવેજોમાં દેખાતુ નથી. + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + પ્રકાર એ વર્ગ શ્રેણામાંથી ગુમ થયેલ છે. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + બધા gobject ઍનોટેશન માટે foldoc કડીઓ મને મળે છે. + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + સ્ત્રોત કોડ ટિપ્પણી બ્લોકમાં પરિમાણ વર્ણવેલ છે પરંતુ અસ્તિત્વ ધરાવતુ નથી + ચકાસો જો મથાળામાં પ્રોટોટાઇપ પાસે સ્ત્રોતમાં વિવિધ પરિમાણ નામો છે. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + Element typename in namespace '' encountered in para, but no template matches. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + Version 1.1, March 2000 + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + દસ્તાવેજ ની કોપીરાઇટ બધી સૂચનાઓને સાચવો. + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + આ લાઇસન્સની ચેતવણી ન થયેલ નકલને સમાવો. + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/. + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + તમે લખેલ છે તે દસ્તાવેજમાં આ લાઇસન્સને વાપરવા માટે, દસ્તાવેજમાં લાઇસન્સની નકલને સમાવો અને નીચેનાં કોપીરાઇટ અને લાઇસન્સ સૂચનાઓને શીર્ષક પાનાં પછી મૂકો: + +
    + Copyright YEAR YOUR NAME. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    + + + + + + + + + diff --git a/help/manual/pt_BR/fdl-appendix.xml b/help/manual/pt_BR/fdl-appendix.xml new file mode 100644 index 0000000..e59b10b --- /dev/null +++ b/help/manual/pt_BR/fdl-appendix.xml @@ -0,0 +1,233 @@ + + + + + Versão 1.1, Março de 2000 + + 2000Free Software Foundation, Inc. + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    É permitido a qualquer um copiar e distribuir cópias exatas deste documento de licença, embora não seja permitido alterá-lo.
    +
    +
    + Licença de Documentação Livre GNU + + + 0. INTRODUÇÃO + O propósito desta Licença é fazer um manual, livro-texto, ou outro documento escrito livre em seu sentido de liberdade: para garantir a todos a liberdade efetiva de copiá-lo e redistribui-lo, com ou sem modificações, tanto comercialmente como não comercialmente. Em segundo lugar, esta Licença preserva ao autor e ao editor uma forma de obter crédito pelo seu trabalho, enquanto não é considerado responsável por modificações feitas por outros. + + Esta licença é um tipo de copyleft, que significa que trabalhos derivados do documento precisam ser, por sua vez, livres no mesmo sentido. Ela complementa a Licença Pública Geral GNU (GNU General Public License), que é uma licença copyleft projetada para softwares livres. + + Nós projetamos esta Licença a fim de ser utilizada em manuais de software livre, já que softwares livres precisam de documentações livres: um programa livre deveria vir com manuais que ofereçam as mesmas liberdades que o software proporciona. Mas esta Licença não é limitada a manuais de software; ela pode ser usada para qualquer trabalho de texto, independente do assunto ou se é publicado como um livro impresso. Nós recomendamos esta Licença principalmente para trabalhos cujo propósito seja instrução ou referência. + + + 1. APLICABILIDADE E DEFINIÇÕES + Esta Licença se aplica a qualquer manual ou outro trabalho que contenha um aviso colocado pelo detentor dos direitos autorais dizendo que o documento pode ser distribuído sob os termos desta. O Documento, abaixo, refere-se a qualquer manual ou trabalho. Qualquer membro do público é um licenciado, e será referenciado como você. + + Uma Versão modificada do Documento significa qualquer trabalho contendo o Documento ou uma porção deste, seja uma cópia literal ou com modificações e/ou traduzido em outro idioma. + + Uma Seção da secundária é um apêndice com nome ou uma seção inicial do Documento que trata exclusivamente da relação dos editores ou autores do Documento com seu assunto geral (ou temas relacionados) e não contém nada que possa estar diretamente dentro do assunto geral. (Por exemplo, se o Documento é em parte um livro-texto de matemática, uma Seção Secundária não pode explicar nada de matemática). Tal relação pode ser uma questão de conexão histórica com o assunto ou com temas relacionados, ou tratar de questões legais, comerciais, filosóficas, éticas ou políticas com relação a eles. + + As Sessões invariantes são certas Sessões secundárias cujos títulos são designados como sendo de Seções Invariantes na nota que afirma que o Documento é publicado sob esta Licença. + + Os Textos de Capa são certas passagens de texto curtas que são listadas, como Textos de Capa Frontal ou Texto de Contra Capa, na nota que afirma que o Documento é publicado sob esta Licença. + + Uma cópia Transparente do Documento significa uma cópia legível por máquina, representada em um formato cuja especificação esteja disponível ao público geral e que cujo conteúdo possa ser visualizado e editado de forma clara e direta por editores de texto genéricos ou programas genéricos de desenho (para imagens compostas de pixels) ou para alguns dos editores de desenho amplamente disponíveis (para desenhos) e que seja apropriado para inclusão em formatadores de texto ou para a tradução automática em uma variedade de formatos apropriados de entrada em formatadores de texto. Uma cópia feita em outro formato de arquivo Transparente cuja marcação, ou ausência desta, tenha sido manipulada para impedir ou desencorajar modificação subsequente pelos leitores não é Transparente. Uma cópia que não é Transparente é chamada Opaco. + + Exemplos de formatos apropriados para cópias Transparentes incluem ASCII puro sem marcação, formato de entrada Texinfo, formato de entrada LaTex, SGML ou XML usando um DTD publicamente disponível, e HTML simples em conformidade padrão projetado para modificação por humanos. Formatos Opacos incluem PostScript, PDF, formatos proprietários que podem ser lidos ou editados somente por processadores de texto proprietários, SGML ou XML cujos DTD e/ou ferramenta de processamento não estão largamente disponibilizados, e o HTML gerado por máquina produzido por algum processador de texto com propósito apenas de saída. + + A Título da página significa, para um livro impresso, a própria página do título, além das páginas subsequentes necessárias para conter, de forma legível, o material que esta Licença requer que apareça na página do título. Para trabalhos em formatos que não possuem qualquer página de título semelhante, Título da página significa o texto próximo à ocorrência mais proeminente do título do trabalho, precedendo o início do corpo do texto. + + + + 2. CÓPIA ESCRITA + Você pode copiar e distribuir o Documento em qualquer meio, seja este de forma comercial ou não, desde que esta licença, as notas de direitos autorais (copyright), e a nota de licença afirmando que esta Licença se aplica ao Documento sejam reproduzidas em todas as cópias, e que você não inclua outras condições, quaisquer que sejam, às condições desta Licença. Você não pode usar de medidas técnicas para obstruir ou controlar a leitura ou cópia futura das cópias que você fizer ou distribuir. Contudo, você pode aceitar compensação em troca das cópias. Se você distribuir um número suficientemente grande de cópias, você deve também respeitar as condições descritas na seção 3. + + Você também pode emprestar cópias, sob as mesmas condições relacionadas acima, e você pode publicamente exibir cópias. + + + + 3. COPIANDO EM QUANTIDADE + Se você publicar cópias impressas do Documento, em número maior que 100, e a nota de licença do Documento exigir Textos de Capa, você deve encadernar as cópias em capas que carreguem, de forma clara e legível, todos estes Textos de Capa: Textos de Capa Frontal na capa frontal e Textos de Contracapa na contracapa. Ambas as capas devem também identificar, de forma clara e legível, você como o editor das cópias. A capa frontal deve apresentar o título completo com todas as palavras deste igualmente proeminentes e visíveis. Além disso, você pode adicionar outro material nas capas. As cópias com mudanças limitadas às capas, desde que preservem o título do Documento e satisfaçam estas condições podem ser tratadas como cópias literais em outros aspectos. + + Se os textos necessários a qualquer uma das capas forem muito volumosos para serem incluídos de forma legível, você deve colocar os primeiros textos listados (quantos couberem razoavelmente) na própria capa, e continuar o resto em páginas adjacentes. + + Se você publicar ou distribuir cópias Opaco do Documento em número maior que 100, você deve incluir uma cópia Transparente legível por máquina juntamente com cada cópia Opaca, ou dizer em (ou juntamente com) cada cópia Opaca, um endereço de rede a partir do qual o público geral de usuários possam acessar e obter de forma anônima e sob nenhum custo, usando protocolos de rede públicos padrão, uma cópia Transparente completa do Documento, livre de materiais adicionados. Se você decidir pela segunda opção, você deve seguir passos com certa prudência ao começar a distribuir as cópias Opacas em quantidade, a fim de garantir que esta cópia transparente permanecerá acessível no local indicado por pelo menos um ano após a última vez que você distribuir uma cópia Opaca (diretamente ou através de seus agentes ou distribuidores) desta edição ao público. + + É solicitado, mas não exigido, que você contate os autores do Documento muito antes de redistribuir qualquer grande número de cópias, para dar a eles uma chance de lhe fornecer uma versão atualizada do Documento. + + + + 4. MODIFICAÇÕES + Você pode copiar e distribuir uma Versão modificada do Documento sob as condições das seções 2 e 3 acima, desde que você forneça a Versão Modificada estritamente sob esta Licença, com a Versão Modificada preenchendo a função de Documento, permitindo assim a distribuição e modificação da Versão Modificada a quem quer que possua uma cópia desta. Além disso, você deve executar os seguintes procedimentos na Versão Modificada: + + + + + A + Usar na Título da página (e nas capas, se existirem) um título distinto em relação ao do Documento, e daqueles de versões anteriores (os quais devem, na existência de algum, ser listados na seção “Histórico” do Documento). Você pode usar o mesmo título de uma versão anterior se o editor original daquela versão conceder-lhe permissão. + + + + + + B + Listar na Título da página como autores, uma ou mais pessoas ou entidades responsáveis pela autoria das modificações na Versão modificada, juntamente com pelo menos cinco autores principais do Documento (todos seus autores principais, se houver menos que cinco). + + + + + + C + Declarar na Título da página o nome do editor da Versão modificada, como seu editor. + + + + + + D + Preservar todas as notas de direitos autorais (copyright) do Documento. + + + + + + E + Adicionar uma nota apropriada de direitos autorais para suas modificações, adjacente às outras notas de direitos autorais. + + + + + + F + Incluir, imediatamente após as notas de direitos autorais, uma nota de licença concedendo permissão pública para o uso da Versão modificada sob os termos desta Licença, na forma mostrada no Adendo abaixo. + + + + + + G + Preservar na referida nota de licença a lista completa de Sessões invariantes e Textos de Capa obrigatórios, dados na nota de licença do do Documento. + + + + + + H + Inclua uma cópia inalterada desta Licença. + + + + + + I + Preservar a seção intitulada Histórico, preservar seu título, e adicionar a esta um item declarando ao menos o título, o ano, novos autores, e o editor da Versão modificada conforme incluído na Título da página. Se nenhuma seção intitulada Histórico estiver presente no Documento, crie uma informando o título, o ano, os autores e o editor do Documento como evidenciado na Página de Título, em seguida adicione um item descrevendo a Versão Modificada como mencionado na sentença anterior. + + + + + + J + Preservar o endereço de rede, se existir algum, informado pelo Documento para acesso público a uma cópia Transparente deste e, da mesma maneira, os endereços de rede dados no Documento para versões anteriores nas quais este se baseia. Estes podem ser colocados na seção Histórico. Você pode omitir um endereço de rede para um trabalho que foi publicado pelo menos quatro anos antes do Documento em si, ou se o editor original da versão à qual o endereço se refere der permissão. + + + + + + K + Preservar o título da seção para qualquer seção intitulada Agradecimentos ou Dedicatórias e preservar dentro da seção toda a substância e tom de cada um dos agradecimentos e/ou dedicatórias lá mencionados. + + + + + + L + Preservar todas as Sessões invariantes do Documento, sem alterações em seus textos e títulos. Números de seção ou o equivalente não são considerados parte dos títulos das seções. + + + + + + M + Apagar qualquer seção intitulada Apoio. Tal seção não deve ser incluída na Versão modificada. + + + + + + N + Não renomear o título de qualquer seção existente como Apoio ou que resulte em conflito com o título de qualquer Seção invariante. + + + + + Se a Versão modificada incluir novas seções iniciais ou apêndices que sejam qualificados como Sessões secundárias, e não contiver material copiado do Documento, você pode, a seu critério, tornar algumas dessas ou todas essas seções em invariantes. Para fazer isso, adicione seus títulos à lista de Sessões invariantes na nota de licença da Versão Modificada. Estes títulos devem ser distintos de quaisquer outros títulos de seções. + + Você pode incluir uma seção intitulada Apoio, desde que esta contenha apenas apoios recebidos limitados a sua Versão modificada por várias fontes -- por exemplo, notas do revisor ou de que o texto foi aprovado por uma organização como a definição oficial de um padrão. + + Você pode adicionar uma passagem de até cinco palavras como Texto de Capa Frontal, e uma passagem de até 25 palavras como Texto de Contracapa, ao fim da lista de Textos de Capa na Versão modificada. Somente uma passagem de Texto de Capa Frontal e uma de Texto de Contracapa podem ser adicionados por (ou através de arranjos feitos por) uma entidade qualquer. Caso o Documento já incluir um texto de capa para a mesma capa, previamente incluído por você ou pelo arranjo feito pela mesma entidade em cujo nome você está agindo, você não poderá adicionar outro; mas você poderá substituir o antigo, com a permissão explícita do editor anterior, que o incluiu. + + O(s) autor(es) e editor(es) do Documento, por esta Licença, não concedem permissão para que seus nomes sejam usados a fins de publicidade, para defesa ou para apoio implícito de qualquer Versão modificada. + + + + 5. COMBINANDO DOCUMENTOS + Você pode combinar o Documento com outros documentos publicados sob esta Licença, sob os termos definidos na seção 4 acima para versões modificadas, desde que você inclua na combinação todas as Sessões invariantes de todos os documentos originais, sem modificações, e as liste como Seções Invariantes de seu trabalho combinado, na sua nota de licença. + + O trabalho combinado precisa conter somente uma cópia desta Licença, e várias Sessões invariantes idênticas podem ser substituídas por uma única cópia. Se existirem várias Seções Invariantes de mesmo nome, porém com conteúdos diferentes, você deve tornar o título de cada uma destas seções único, adicionando ao fim destes, entre parênteses, o nome do autor ou, se conhecido, o editor original desta seção, ou ainda um número único. Faça o mesmo ajuste nos títulos de seção na lista de Seções Invariantes na nota de licença do trabalho combinado. + + Na combinação, você deve combinar quaisquer seções intituladas Histórico nos vários documentos originais, formando uma seção intitulada Histórico; do mesmo modo, combine quaisquer seções intituladas Agradecimentos, e quaisquer seções intituladas Dedicatórias. Você deve apagar todas as seções intituladas Apoios.. + + + + 6. COLEÇÕES DE DOCUMENTOS + Você pode fazer uma coleção que consiste do Documento e outros documentos publicados sob esta Licença, e substituir as cópias individuais desta Licença, nos vários documentos, por uma única cópia a ser incluída na coleção, desde que você siga as regras desta Licença para cópias literais de cada documento em todos os outros aspectos. + + Você pode extrair um único documento desta coleção, e distribuí-lo individualmente sob esta Licença, desde que você insira uma cópia desta Licença no documento extraído, e siga esta Licença em todos os outros aspectos com relação à cópia literal do documento. + + + + 7. AGREGAÇÃO COM TRABALHOS INDEPENDENTES + Uma compilação do Documento ou seus derivados com outros documentos ou trabalhos separados e independentes, dentro de ou sob um volume de um meio de armazenamento ou distribuição, não conta como um todo para uma Versão modificada do Documento, contanto que nenhum direito autoral de compilação seja reivindicado para esta compilação. Tal compilação configura um agregação e esta Licença não se aplica aos outros trabalhos contidos na compilação do Documento, levando em conta serem compilados, caso eles mesmos não forem trabalhos derivados do Documento. Se o requisito de Capa de Texto da seção 3 é aplicável a estas cópias do Documento, e ainda se o Documento é menor do que um quarto do agregado inteiro, os Textos de Capa do Documento podem ser inseridos nas capas que envolvem somente o Documento no agregado. Caso contrário, eles devem aparecer em capas em volta do agregado como um todo. + + + + 8. TRADUÇÃO + Uma tradução é considerada como sendo um tipo de modificação, desta forma você pode distribuir traduções do Documento sob os termos da seção 4. A substituição das Sessões invariantes por traduções requer permissão especial dos detentores dos direitos autorais, embora você possa incluir traduções de algumas ou todas as Seções Invariantes juntamente às versões originais destas. Você pode incluir uma tradução desta Licença, desde que você também inclua a versão original em Inglês desta Licença. Em caso de discordância entre a tradução e a versão original desta Licença ou nota de licença, a versão original em inglês prevalecerá. + + + + 9. TÉRMINO + Você não pode copiar, modificar, sublicenciar, ou distribuir o Documento com exceção do que foi expressamente previsto sob esta Licença. Qualquer outra tentativa de cópia, modificação, sublicenciamento ou distribuição do Documento é nula, e implicará na rescisão automática de seus direitos sob esta Licença. Contudo, as partes que receberam as cópias, ou direitos, de você sob esta Licença não terão suas licenças rescindidas enquanto tais partes permanecerem em total acordo com a Licença. + + + + 10. FUTURAS REVISÕES DESTA LICENÇA + A Free Software Foundation pode publicar novas versões, revisadas, da Licença de Documentação Livre GNU de tempos em tempos. Tais versões posteriores terão ideologia similar à presente versão, embora possam diferir em detalhes a fim de abordar novos problemas ou preocupações. Consulte: http://www.gnu.org/copyleft/. + + É dado, a cada versão da Licença, um número de versão distinto. Se o Documento especificar que um número de versão em específico desta Licença ou qualquer versão posterior se aplica a ele, você tem a opção de seguir os termos e condições tanto da versão especificada quanto de qualquer versão posterior que tenha sido publicada (não como rascunho) pela Free Software Foundation. Se o documento não especificar um número de versão desta Licença, você pode escolher qualquer versão já publicada (não como rascunho) pela Free Software Foundation. + + + + Adendo + Para usar esta Licença em um documento que você escreveu, inclua uma cópia desta no documento e adicione as seguintes notas de direitos autorais e licença logo após a página de título: + +
    + Copyright ANO SEU NOME. + Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação Livre GNU (GNU Free Documentation License), Versão 1.1 ou qualquer versão mais recente publicada pela Free Software Foundation; com as Sessões invariantes, sendo LISTADO SEUS TÍTULOS, com os Textos de Capa Frontal sendo LISTADOS, e com os Textos de Contracapa sendo LISTADOS. Uma cópia da licença está inclusa na seção intitulada Licença de Documentação Livre GNU. +
    + + Se você não tiver qualquer Sessões invariantes, escreva sem Seções Invariantes ao invés de afirmar quais são invariantes. Se você não tem Textos de Capa Frontal, escreva sem Textos de Capa Frontal ao invés de Textos de Capa Frontal sendo LISTADOS; O mesmo se aplica a Textos de Contracapa. + + Se seu documento contiver exemplos não-triviais de código de programação, recomendamos publicar estes exemplos paralelamente, sob a licença de software livre que você escolher, como, por exemplo, a Licença Pública Geral GNU (GPL), para permitir seu uso em software livre. +
    +
    diff --git a/help/manual/pt_BR/index.docbook b/help/manual/pt_BR/index.docbook new file mode 100644 index 0000000..c20227c --- /dev/null +++ b/help/manual/pt_BR/index.docbook @@ -0,0 +1,1603 @@ + + + + +included"> +]> + + + + Manual do GTK-Doc + 1.24.1 + Manual de usuário para desenvolvedores com instruções do uso do GTK-Doc. + + Chris Lyttle
    chris@wilddev.net
    + Dan Mueth
    d-mueth@uchicago.edu
    + Stefan Sauer (Kost)
    ensonic@users.sf.net
    +
    + Projeto GTK-Doc
    gtk-doc-list@gnome.org
    + 2000, 2005 Dan Mueth e Chris Lyttle + 2007-2015 Stefan Sauer (Kost) + + + + + Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação Livre GNU (GNU Free Documentation License), Versão 1.1 ou qualquer versão mais recente publicada pela Free Software Foundation; sem Seções Invariantes, Textos de Capa Frontal, e sem Textos de Contracapa. Você pode encontrar uma cópia da licença está inclusa. + Muitos dos nomes usados por empresas para distinguir seus produtos e serviços são reivindicados como marcas registradas. Onde esses nomes aparecem em qualquer documentação do GNOME e os membros do Projeto de Documentação do GNOME estiverem cientes dessas marcas registradas, os nomes aparecerão impressos em letras maiúsculas ou com iniciais em maiúsculas. + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + 1.27 07 Maio 2017 ss ajustes do porte para Python + 1.26 11 Ago 2017 ss portadas todas ferramentas de perl/bash para Python + 1.25 21 Mar 2016 ss correção de erros, limpezas de testes + 1.24 29 Maio 2015 ss correção de erros + 1.23 17 Maio 2015 ss correção de erros + 1.22 07 Maio 2015 ss correção de erros, desativadas funcionalidades obsoletas + 1.21 17 Jul 2014 ss correção de erros, desativadas funcionalidades obsoletas + 1.20 14 Fev 2014 ss correção de erros, suporte a markdown, melhorias no estilo + 1.19 05 Jun 2013 ss correção de erros + 1.18 14 Set 2011 ss correção de erros, aceleração, suporte a markdown + 1.17 26 Fev 2011 sk atualização de correção de erro urgente + 1.16 14 Jan 2011 sk correção de erros, melhorias no layout + 1.15 21 Maio 2010 sk correção de erros e regressões + 1.14 28 Mar 2010 sk Correção de erro e melhorias na performance + 1.13 18 Dez 2009 sk atualização de tarball defeituoso + 1.12 18 Dez 2009 sk novas funcionalidades da ferramenta e correção de erros + 1.11 16 Nov 2008 mal migração do GNOME doc-utils + + + + + + Marcelo Rodrigues + + marcelopires@mmsantos.com.br + + + + 2010 + + Marcelo Rodrigues + + + + + Rafael Fontenelle + + rafaelff@gnome.org + + + + 2013-2018 + + Rafael Fontenelle + +
    + + + + + Introdução + + Este capítulo introduz GTK-Doc e dá um visão geral do que ele é e como ele é usado. + + + O que é GTK-Doc? + + GTK-Doc é usado para documentar código C. Ele é tipicamente usado para documentar a API pública das bibliotecas, como as bibliotecas do GTK+ e do GNOME. Mas ele também pode ser usado para documentar código de aplicativos. + + + + Como o GTK-Doc funciona? + + O GTK-Doc funciona usando a documentação de funções colocadas dentro dos arquivos fonte em blocos de comentários especialmente formatados ou documentação adicionada aos arquivos modelo que o GTK-Doc usa (apesar disso, note que o GTK-Doc vai documentar apenas funções que são declaradas em arquivos de cabeçalho; ele não irá produzir saída para funções estáticas). + + GTK-Doc consiste de um número de scripts em Python, cada um executando uma etapa diferente no processo. + + Há 5 etapas principais no processo: + + + + + Escrevendo a documentação. O autor preenche os arquivos fonte com a documentação para cada função, macro, union, etc. (Anteriormente, a informação era inserida em arquivos de modelo gerados, o que não é mais recomendado). + + + + Juntando informação sobre o código. gtkdoc-scan varre os arquivos de cabeçalho do código buscando por declarações de funções, macros, enums, structs e unions. Ele cria o arquivo <módulo>-decl-list.txt contendo uma lista de declarações, inserindo-as em seções da acordo com o arquivo de cabeçalho no qual se encontram. Na primeira execução, este arquivo é copiado para <módulo>-sections.txt. O autor pode reorganizar as seções, e a ordem das declarações dentro delas, para produzir a ordem final desejada. O segundo arquivo que ele gera é <módulo>-decl.txt. Este arquivo contém as declarações completas encontradas pela varredura. Se por algum motivo se queira que alguns apareçam nos documentos, no qual declarações completas não puderam ser encontradas pela varredura ou a declaração deveria aparecer de outra forma, pode-se colocar entidades similares aos do <módulo>-decl.txt no <módulo>-overrides.txt. + gtkdoc-scangobj também pode ser usado para consultar dinamicamente uma biblioteca sobre qualquer subclasse GObject que ele exporta. Ele salva informações sobre cada posição do objeto na hierarquia de classe e sobre quaisquer propriedades GObject e sinais que ela fornece. + gtkdoc-scanobj não deveria mais ser usada. Ele era necessário no passado, quando GObject ainda era GtkObject dentro do gtk+. + + + + Gerando o XML e HTML/PDF. gtkdoc-mkdb transforma os arquivos modelos em arquivos XML no subdiretório xml/. Se o código fonte contém documentação nas funções, usando os blocos de comentários especiais, ela é mesclada aqui. Se não há arquivos tmpl sendo usados, ele apenas lê documentos dos dados de introspecção e dos fontes. + gtkdoc-mkhtml transforma os arquivos XML em arquivos HTML no subdiretório html/. Da mesma forma, gtkdoc-mkpdf transforma os arquivos XML em um documento PDF chamado <pacote>.pdf. + Arquivos nos diretórios xml/ e html/ são sempre sobrescritos. Não devem ser editados manualmente. + + + + Consertando referências cruzadas entre documentos. Após a instalação dos arquivos HTML, gtkdoc-fixxref pode ser executado para consertar referências cruzadas entre documentos separados. Por exemplo, a documentação do GTK+ contém muitas referências cruzadas a tipos documentados no manual do GLib. Ao criar um tarball fonte para distribuição, gtkdoc-rebase transforma todos os links externos em web-links. Ao instalar documentações distribuídas (geradas previamente), o mesmo aplicativo vai tentar transformar links de volta para links locais (onde aquelas documentações estão instaladas). + + + + + + + Obtendo GTK-Doc + + + Requisitos + python 2/3 - os scripts principais são escritos em Python. + xsltproc - o processador de xslt do libxslt xmlsoft.org/XSLT/ + docbook-xsl - as folhas de estilo xsl de docbook sourceforge.net/projects/docbook/files/docbook-xsl + Um dentre source-highlight, highlight ou vim - opcional - usado para destaque de sintaxe de exemplos + + + + + Sobre GTK-Doc + + (CORRIJA-ME) + + (História, autores, páginas web, lista de discussão, licença, planos futuros, comparação com outros sistemas similares.) + + + + + Sobre este manual + + (CORRIJA-ME) + + (pra quem ele serve, onde você pode obtê-lo, licença) + + + + + + + Preparando seu projeto + + As próximas seções descrevem quais as etapas para realizar a integração do GTK-Doc em seu projeto. Estas seções consideram que nós trabalhamos em um projeto chamado “meep”. Este projeto contém uma biblioteca chamada “libmeep” e um aplicativo para usuário final chamado “meeper”. Nós também consideramos que você estará usando autoconf e automake. Além disso, a seção sobre makefiles simples ou outros sistemas de compilação vai descrever as necessidades básicas para trabalhar em uma configuração de compilação diferente. + + + Preparando o esqueleto de uma documentação + + No diretório raiz do seu projeto, crie pastas chamadas docs/reference (desta forma, você também pode ter docs/help para documentação para usuário final). É recomendado criar um outro subdiretório com o nome do pacote de documentação. Para pacotes com apenas uma biblioteca, esta etapa não é obrigatória. + + Isto pode, então, parecer como exibido abaixo: Exemplo de estrutura de diretórios + +meep/ + docs/ + reference/ + libmeep/ + meeper/ + src/ + libmeep/ + meeper/ + + + + + + Integração com autoconf + + Muito fácil! Basta adicionar uma linha ao seu script configure.ac. + + + Integração com autoconf + +# verifica por gtk-doc +GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) + + + + + Isso vai exigir que todos os desenvolvedores tenham o gtk-doc instalado. Se não houver problema para seu projeto ter uma configuração opcional de compilação de documentação de API, você pode resolver isso como mostrado abaixo. Mantenha assim, pois o gtkdocize está procurando por GTK_DOC_CHECK no começo de uma linha. Mantenha o gtk-doc como opcional + +# verifica por gtk-doc +m4_ifdef([GTK_DOC_CHECK], [ +GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) +],[ +AM_CONDITIONAL([ENABLE_GTK_DOC], false) +]) + + + + O primeiro argumento é usado para verificar a gtkdocversion em tempo de compilação. O segundo argumento é opcional, sendo usado por gtkdocize. A macro GTK_DOC_CHECK também adiciona várias opções de configuração: + + --with-html-dir=CAMINHO : caminho para as documentações instaladas + --enable-gtk-doc : usa gtk-doc para compilar documentação [padrão=no] + --enable-gtk-doc-html : compila documentação em formato html [padrão=sim] + --enable-gtk-doc-pdf : compila documentação em formato pdf [padrão=não] + + + + GTK-Doc está desabilitado por padrão! Lembre-se de passar a opção à próxima execução do configure. Do contrário, uma documentação gerada previamente é instalada (o que faz sentido para usuários, mas não para desenvolvedores). + + + Além disso, é recomendado que você tenha a seguinte linha dentro do seu script configure.ac. Ela permite que gtkdocize copie automaticamente a definição de macro para GTK_DOC_CHECK para o seu projeto. + + + Preparação para gtkdocize + +AC_CONFIG_MACRO_DIR(m4) + + + + Após todas as alterações do configure.ac serem feitas, atualize o arquivo configure. Isso pode ser feito executando novamente autoreconf -i ou autogen.sh. + + + + Integração com automake + + Primeiro copie o Makefile.am dos subdiretório do exemplo do gtkdoc-sources para o diretório de documentação da API do seu projeto ( ./docs/reference/<pacote>). Uma cópia local deveria estar disponível sob, por exemplo, /usr/share/doc/gtk-doc-tools/examples/Makefile.am. Se você tiver múltiplos pacotes de documentação, repita isso para cada um. + + A próxima etapa é editar as configurações dentro do Makefile.am. Todas as configurações tem um comentário em cima que descreve seu propósito. A maioria das configurações são opções extras passadas para as respectivas ferramentas. Cada ferramenta tem uma variável na forma . Todas as ferramentas têm suporte a pra listar os parâmetros disponíveis. + + + + + + + Integração com autogen + + A maioria dos projetos têm um script autogen.sh para configurar a infraestrutura de compilação após baixar do sistema de controle de versão (como cvs/svn/git). GTK-Doc vêm com uma ferramenta chamada gtkdocize que pode ser usada em um script assim. O gtkdocize deveria ser executado antes de autoheader, automake ou autoconf. + + + Executando gtkdocize no autogen.sh + +gtkdocize || exit 1 + + + + + Ao executar gtkdocize, ele copia gtk-doc.make para a raiz do seu projeto (ou qualquer diretório especificado pela opção ). Ele também verifica se seu script de configuração pela chamada de GTK_DOC_CHECK. Esta macro pode ser usada para passar parâmetros extras para gtkdocize. + + Historicamente, GTK-Doc estava gerando arquivos modelo (template) nos quais os desenvolvedores inseriam as documentações. Isso acabou sendo não tão bom (ex.: a necessidade de serem gerados arquivos sob controle de versão). Desde o GTK-Doc 1.9 as ferramentas podem obter todas as informações dos comentários no fonte e, portanto, os arquivos modelo podem ser evitados. Nós encorajamos as pessoas a manter a documentação no código. O gtkdocize possui agora suporte à opção que escolhe um makefile que ignora totalmente o uso de tmpl. Além de adicionar a opção diretamente à chamada do comando, elas também podem ser adicionadas a uma variável de ambiente chamada GTKDOCIZE_FLAGS ou definidas como um segundo parâmetro na macro GTK_DOC_CHECK no script configure. Se você nunca alterou um arquivo tmpl a mão e está migrando de versões antigas do gtkdoc, por favor remova o diretório (ex.: do sistema de controle de versão). + + + + Executando a compilação da documentação + + Após as etapas anteriores, é hora de executar a compilação. Primeiro, nós queremos executar novamente o autogen.sh. Se este script executa o configure para você, então forneça a este a opção . Do contrário, execute manualmente configure com esta opção em seguida. + A primeira execução do make cria vários arquivos adicionais nos diretórios de documentação. Os importantes são: <pacote>.types, <pacote>-docs.xml (no passado, .sgml), <pacote>-sections.txt. + + Executando a compilação da documentação + +./autogen.sh --enable-gtk-doc +make + + + + Agora você pode apontar seu navegador para docs/reference/<pacote>/index.html. Sim, é um pouco desapontador. Mas aguente aí, durante o próximo capítulo nós vamos dizer como você pode preencher as páginas com vida. + + + + Integração com sistemas de controle de versão + + Como uma regra de ouro, são aqueles arquivos que você edita que deveriam entrar no controle de versão. Para projetos normais, esses são os arquivos: <pacote>.types, <pacote>-docs.xml (no passado, .sgml), <pacote>-sections.txt, Makefile.am. + Arquivos nos diretórios xml/ e html/ não deveriam entrar no controle de versão. Da mesma forma, não deveriam entrar arquivos .stamp. + + + + Integração com makefiles simples ou outros sistemas de compilação + + Neste caso, não se deseja usar o automake e, portanto, gtk-doc.mak. Será necessário chamar as ferramentas do gtkdoc na ordem correta nos makefiles devidos (ou outras ferramentas de compilação). + + + Etapas de compilação da documentação + +DOC_MODULE=meep +// fontes foram alterados +gtkdoc-scan --module=$(DOC_MODULE) <source-dir=> +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<source-dir> +// arquivos xml foram alterados +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html + + + + + Será necessário olhar no Makefile.am e no gtk-doc.mak para obter as opções extras necessárias. + + + + Integração com sistemas de compilação CMake + + GTK-Doc agora fornece um módulo GtkDocConfig.cmake (e o module GtkDocConfigVersion.cmake correspondente). Ele fornece um comando gtk_doc_add_module que você pode usar em seu arquivo CMakeLists.txt. + + O exemplo a seguir mostra como usar este comando. Exemplo de uso do GTK-Doc no CMake + +find_package(GtkDoc 1.25 REQUIRED) + +# Cria o alvo doc-libmeep. +gtk_doc_add_module( + libmeep ${CMAKE_SOURCE_DIR}/libmeep + XML meep-docs.xml + LIBRARIES libmeep +) + +# Compila doc-libmeep como parte do alvo padrão. Sem isso, você precisaria +# executar explicitamente algo como `make doc-libmeep` para compilar os +# documentos. +add_custom_target(documentation ALL DEPENDS doc-libmeep) + +# Install the docs. (This assumes you're using the GNUInstallDirs CMake module +# to set the CMAKE_INSTALL_DOCDIR variable correctly). +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html + DESTINATION ${CMAKE_INSTALL_DOCDIR}) + + + + + + + Documentando o código + + GTK-Doc usa comentários do código fonte com uma sintaxe especial para documentação do código. Além disso, ele obtém informações sobre a estrutura do seu projeto a partir de outros fontes. Na próxima seção, você vai descobrir todas as informações sobre a sintaxe dos comentários. + + + Localização da documentação + Antigamente, a maioria das documentações tinha que ser preenchida em arquivos residentes dentro do diretório tmpl. Isso tem as desvantagens das informações frequentemente não serem atualizadas e também que o arquivo tende a causar conflitos com sistemas de controle de versão. + Para evitar os problemas mencionados a seguir nós sugerimos que a documentação seja colocada dentro das fontes. Este manual vai apenas descrever esta forma de documentar código. + + + A varredura sabe lidar com a maioria dos cabeçalhos de C sem problemas. Caso se receba avisos (warnings) na varredura que pareça ser um caso especial, pode-se informar ao GTK-Doc para ignorá-los. Bloco de comentário do GTK-Doc + +#ifndef __GTK_DOC_IGNORE__ +/* código não analisável arqui */ +#endif + + + + + Limitações + Note que o GTK-Doc oferece suporte a #ifndef(__GTK_DOC_IGNORE__), mas não a #if !defined(__GTK_DOC_IGNORE__) ou outras combinações. + + + + + + Comentários de documentação + + Um comentário multilinha que começa com um “*” adicional marca um bloco de documentação que será processado pelas ferramentas do GTK-Doc. Bloco de comentário do GTK-Doc + +/** + * identificador: + * documentação ... + */ + + + + O “identificador” é uma linha com o nome do item ao qual o comentário está relacionado. A sintaxe difere um pouco dependendo do item. + + O bloco “documentação” também é diferente para cada tipo de símbolo. Tipos de símbolos que levam parâmetros, como funções e macros, têm a descrição de parâmetro começando com uma linha vazia (apenas com um “*”). Posteriormente, segue com a descrição detalhada. Todas as linhas (fora das listagens do programa e seções CDATA) contendo apenas um “ *” (espaço em branco e asterisco) são convertidas para quebras de parágrafos. Se você não quiser uma quebra de parágrafo, altere isso para “ * “ (espaço, asterisco, espaço e espaço). Isso é útil em textos pré-formatados (listagens de código). + + + Ao documentar um código, descreva dois aspectos: + + O que é: O nome de uma classe ou função pode, em alguns casos, levar a um entendimento equivocado pessoas com experiências diferentes. + + + O que isso faz: Fale sobre usos comuns. Coloque em relação com a outra API. + + + + + Uma vantagem do hipertexto de texto simples é a habilidade de ter links no documento. Porém, escrever a marcação correta para cada link pode ser entediante. GTK-Doc vem para ajudar fornecendo abreviações úteis. + + Use function() para referir às funções ou macros que levam argumentos. + + + Use @param para se referir a parâmetros. Também, use isso ao se referir a parâmetros de outras funções, relacionadas àquele sendo descrito. + + + Use %constant para se referir a uma constante, ex.: %G_TRAVERSE_LEAFS. + + + Use #symbol para se referir a outros tipos de símbolos, ex.: structs, enums e macros que não levam argumentos. + + + Use #Object::signal para se referir a um sinal de GObject. + + + Use #Object:property para se referir a uma propriedade de GObject. + + + Use #Struct.field para se referir a um campo dentro de uma estrutura e #GObjectClass.foo_bar() para se referir a um vmethod. + + + + + Se você precisar usar os caracteres especiais “<”, “>”, “()”, “@”, “%” ou “#” em sua documentação sem GTK-Doc alterando-os, você pode usar as entidades XML “&lt;”, “&gt;”, “&lpar;”, “&rpar;”, “&commat;”, “&percnt;” e “&num;”, respectivamente, ou escapá-los com uma contrabarra “\”. + + + DocBook pode fazer mais do que apenas links. Ele também pode ter listas, exemplos, títulos e imagens. A partir da versão 1.20, a forma preferível é usar um subconjunto de sintaxe de formatação de texto básica chamada Markdown. Em versões mais antigas do GTK-Doc, qualquer documentação que inclui Markdown será renderizada como está. Por exemplo, itens de lista aparecerão como linhas começando com um traço. + + Enquanto markdown é agora preferível, é possível misturar ambos. Uma limitação aqui é que é possível usar docbook xml no markdown, mas não há suporte a markdown no docbook xml. + + Em versões mais antigas do GTK-Doc, se você precisasse de suporte para formatação adicional, você precisaria de habilitar o uso de tags de XML de docbook dentro de comentários de documentação colocando (ou ) na variável MKDB_OPTIONS dentro de Makefile.am. + + + Bloco de comentário do GTK-Doc usando Markdown + +/** + * identificador: + * + * parágrafo de documentação ... + * + * # Subtítulo # + * + * ## Segundo subtítulo + * + * # Subtítulo com um link âncora # {#titulo-dois} + * + * mais documentação: + * + * - item 1 da lista + * + * Parágrafo dentro de um item de lista. + * + * - item 2 da lista + * + * 1. item numerado da lista + * + * 2. outro item numerado da lista + * + * Outro parágrafo. [Um link para o site do GNOME](http://www.gnome.org/) + * + * ![uma imagem embutida](plot-result.png) + * + * [Um link para um título acima][titulo-dois] + * + * Um exemplo em linguagem C: + * |[<!-- language="C" --> + * GtkWidget *label = gtk_label_new ("Esplêndido!"); + * ]| + */ + + + + + Mais exemplos do quais tags de markdown tags tem suporte pode ser encontrado na Referência de sintaxe de markdown de documentação. + + + Como já mencionado anteriormente, GTK-Doc serve para documentar API pública. Portanto, não é possível escrever documentação para símbolos estáticos. Não obstante, é bom comentar estes símbolos também. Isso ajuda outros a entender seu código. Portanto, é recomendado comentá-los usando comentários normais (sem o segundo “*” na primeira linha). Se, posteriormente, a função precisar ser publicada, tudo que precisa ser feito é adicionar outro “*” no bloco de comentário e inserir o nome do símbolo no lugar correto do arquivo e seções. + + + + + Documentando seções + + Cada seção da documentação contém informações sobre uma classe ou um módulo. Para introduzir o componente, pode-se escrever um bloco de seção. A descrição curta também é usada dentro da tabela de conteúdo (sumário). Todos os @fields são opcionais. + + + Bloco de comentário de sessão + +/** + * SECTION:meepapp + * @short_description: A classe do aplicativo + * @title: Aplicativo Meep + * @section_id: + * @see_also: #MeepSettings + * @stability: Estável + * @include: meep/app.h + * @image: aplicativo.png + * + * A classe do aplicativo cuida de ... + */ + + + + + + + SECTION:<nome> + + O nome vincula a documentação da seção à respectiva parte do arquivo <pacote>-sections.txt. O nome informado aqui deve corresponder à tag <FILE> no arquivo <pacote>-sections.txt. + + + + @short_description + + Uma descrição de uma linha da sessão,que mais tarde aparecerá após os links no TOC (sumário) no topo da página da sessão. + + + + @title + + O padrão para título de seção é <nome> da declaração da SECTION. Ele pode ser sobrescrito com o campo @title. + + + + @section_id + + Sobrescreve o uso do título como um identificador de seção. Para GObjects, o <title> é usado como um section_id e para outras seções ele é <MÓDULO>-<title>. + + + + @see_also + + Uma lista de símbolos que estão relacionados a esta sessão. + + + + @stability + + Uma descrição informal do nível de estabilidade que esta API tem. Nós recomendamos o uso de um desses termos: + + Estável - A intenção de uma interface estável é permitir terceiros arbitrários desenvolverem aplicativos para essas interfaces, lançá-los e ter a confiança de que eles vão funcionar em todos os lançamentos menores do produto (após aquele no qual a interface foi introduzida e naquele mesmo lançamento maior). Atém mesmo em um lançamento maior, espera-se que alterações incompatíveis sejam raras e que tenham fortes justificativas. + + + Instável - Interfaces instáveis são experimentais ou transicionais. Elas são normalmente usadas para dar a desenvolvedores externos um acesso prévio a nova tecnologia ou em rápida alteração, ou para fornecer uma solução interina para um problema que uma solução mais genérica foi antecipada. Nenhuma responsabilidade é assumida pela compatbilidade dos binários ou dos fontes de uma versão menor para a próxima. + + + Privado - Uma interface que pode ser usada dentro da própria pilha do GNOME, mas que não está documentada para usuários finais. Tais funções deveriam ser usadas nas formas especificadas e documentadas. + + + Interna - Uma interface que é interna a um módulo e não requer documentação para o usuário final. Funções que não estão documentadas são presumidas como sendo “Interna”. + + + + + + @include + + Os arquivos #include a ser mostrado na sinopse da seção (uma lista separada por vírgulas), sobrescrevendo o valor global do arquivo de seção ou linha de comando. Este item é opcional. + + + + @image + + A imagem a ser exibida no topo da página de referência desta seção. Isso frequentemente será um tipo de diagrama para ilustrar a aparência visual de uma classe ou uma diagrama de suas relações a outras classes. Este item é opcional. + + + + + + Para evitar recompilação desnecessária após alterações de documentação inseridas nas documentações de seção no fonte em C onde possível. + + + + + + Documentando símbolos + + Cada símbolo (função, macro, struct, enum, signal e property) é documentado em uma bloco separado. O bloco é melhor localizado perto da definição dos símbolos, de forma que seja fácil de mantê-los em sincronia. Portanto, as funções são normalmente documentadas no fonte em C e macros, scructs e enums no arquivo de header. + + Tags gerais + + Você pode adicionar informação sobre versionamento em todos os elementos de documentação para informar quando uma API foi introduzida ou quando ela se tornou obsoleta. + + Tags de versionamento + Since: + + Descrição de desde qual versão do código a API está disponível. + + + Deprecated: + + Parágrafo denotando que esta função deveria não mais ser usada. A descrição deveria apontar o leitor para a nova API. + + + + + Você também pode adicionar informação sobre estabilidade em todos os elementos de documentação para indicar se a estabilidade de uma API é garantida para eles para futuros lançamentos menores do projeto. + + O nível de estabilidade padrão para todos os elementos de documentação pode ser definido passando o argumento para gtkdoc-mkdb com um dos balores abaixo. + + Tags de estabilidade + Stability: Stable + + Marca o elemento como estável. Isto é para APIs públicas cuja estabilidade é garantida para todos os próximos lançamentos menores do projeto. + + + Stability: Unstable + + Marca o elemento como instável. Isto é para APIs públicas que são publicados como versão de desenvolvimento antes de se tornar estável. + + + Stability: Private + + Marca o elemento como privado. Isto é para interfaces que podem ser usadas por um conjunto pequeno de módulos, mas não por terceiros. + + + + + Tags gerais + +/** + * foo_get_bar: + * @foo: Um foo + * + * Obtém o bar do @foo. + * + * Returns: bar do @foo + * + * Since: 2.6 + * Deprecated: 2.12: Use foo_baz_get_bar() no seu lugar. + */ +Bar * +foo_get_bar(Foo *foo) +{ +... + + + + + Anotações + + Blocos de documentação podem conter tags de anotação. Essas tags serão renderizadas com dicas de ferramentas descrevendo seu significados. As tags são usadas pelo gobject-introspection para garantir associações (bindings) de linguagens. Uma lista detalhada tags aceitas podem ser encontrada no wiki. + + Anotações + +/** + * foo_get_bar: (anotação) + * @foo: (anotação): algum foo + * + * Obtém bar do @foo. + * + * Returns: (anotação): bar do @foo + */ +... +/** + * foo_set_bar_using_the_frobnicator: (anotação) (outra anotação) + * (e uma outra anotação) + * @foo: (anotação) (uma outra anotação): algum foo + * + * Define bar no @foo. + */ + + + + + Bloco de comentário de função + + Por favor, lembre-se de: + + Documente se objetos, listas, strings, etc. retornados devem ser não usados/não referenciados/liberada. + + + Documente se parâmetros pode ser NULL e o que acontece se eles o forem. + + + Mencione pré-condições e pós-condições interessantes onde for apropriado. + + + + Gtk-doc presume que todos os símbolos (macros, funções) começando com “_” são privadas. Elas são tratadas como funções estáticas. + + Bloco de comentário de função + +/** + * nome_da_função: + * @par1: descrição do parâmetro 1. Esta pode se estender por mais de + * uma linha. + * @par2: descrição do parâmetro 2 + * @...: uma lista de bars terminada em %NULL + * + * A descrição da função vai aqui. Você pode usar @par1 para se referir a parâmetros + * de forma que eles ficam em destaque na saída. Você também pode usar %constant + * para constantes, nome_da_função2() para funções e #GtkWidget para links para + * outras declarações (que pode ser documentada em outro lugar). + * + * Returns: um inteiro. + * + * Since: 2.2 + * Deprecated: 2.18: Use outra_função() em seu lugar. + */ + + + + Tags de função + Returns: + + Parágrafo descrevendo o resultado retornado. + + + @...: + + No caso da função possuir argumentos variados, você deveria usar esta tag (@Varargs: também funciona por motivos de histórico). + + + + + + + Bloco de comentário de propriedade + + Bloco de comentário de propriedade + +/** + * AlgumWidget:alguma-propriedade: + * + * Aqui você pode documentar uma propriedade. + */ +g_object_propriedade_install_classe (object_classe, PROP_ALGUMA_PROPRIEDADE, ...); + + + + + + Bloco de comentário de sinal + + Por favor, lembre-se de: + + Documente quando o sinal é emitido e se ele é emitido antes ou após outros sinais. + + + Documente o que um aplicativo pode fazer no manipulador do sinal. + + + + Bloco de comentário de sinal + +/** + * FooWidget::foobarizado: + * @widget: o widget que recebeu o sinal + * @foo: algum foo + * @bar: algum bar + * + * O sinal ::foobarized é emitido cada vez que alguém tenta foobarizar @widget. + */ +foo_sinais[FOOBARIZADO] = + g_signal_novo ("foobarizado", + ... + + + + + + Bloco de comentário de struct + Bloco de comentário de struct + +/** + * FooWidget: + * @bar: algum #gboolean + * + * Este é o melhor widget, já mais visto. + */ +typedef struct _FooWidget { + GtkWidget parent_intance; + + gboolean bar; +} FooWidget; + + + + Use /*< private >*/ antes dos campos da struct privada que você deseja esconder. Use /*< public >*/ para o comportamento inverso. + + Se o primeiro campo for “g_iface”, “parent_instance” ou “parent_class”, ele será automaticamente considerado como privado e não precisará ser mencionado no bloco de comentário. + + Blocos de comentário de struct também podem ser usados para GObjects e GObjectClasses. É normalmente uma boa ideia adicionar um bloco de comentário para uma classe, se ela possui vmethods (pois assim é como elas podem ser documentadas). Para o próprio GOBject pode-se usar os documentos de seção relacionados, tendo um bloco separado para a instância do struct seria útil se a instância possui campos públicos. Uma desvantagem aqui é que isso cria duas entradas no índice do mesmo nome (a estrutura e a seção). + + + + Bloco de comentário de enum + Bloco de comentário de enum + +/** + * Alguma coisa: + * @ALGUMACOISA_FOO: alguma coisa foo + * @ALGUMCAOISA_BAR: alguma coisa bar + * + * Valores de enum usados para a coisa, para especificar a coisa. + */ +typedef enum { + ALGUMACOISA_FOO, + ALGUMACOISA_BAR, + /*< private >*/ + ALGUMACOISA_CONTAGEM +} Alguma coisa; + + + + Use /*< private >*/ antes de valores privados de enum que você deseja ocultar. Use /*< public >*/ para o comportamento inverso. + + + + + + + Documentação de programa em-linha + Você pode documentar programas e sua interface de linha de comando usando documentação em-linha. + + + Tags + + PROGRAM + + + Define o início da documentação de um programa. + + + + + @short_description: + + Define uma descrição breve do programa. (Opcional) + + + + + @synopsis: + + Define os argumentos, ou lista de argumentos, que o programa pode receber. (Opcional) + + + + + @see_also: + + A seção “Veja Também” (See Also) de páginas de manual. (Opcional) + + + + + @arg: + + Argumento(s) passado(s) para o programa e sua descrição. (Opcional) + + + + + Description: + + Um descrição mais longa do programa. + + + + + Returns: + + Especifique quais valor(es) o programa retorna. (Opcional) + + + + + + + Exemplo de documentação de programa. + Bloco de documentação de programa + +/** + * PROGRAM:programa-teste + * @short_description: Um programa teste + * @synopsis: programa-teste [*OPÇÕES*...] --arg1 *arg* *ARQUIVO* + * @see_also: teste(1) + * @--arg1 *arg*: define arg1 para *arg* + * @--arg2 *arg*: define arg2 para *arg* + * @-v, --version: Exibe o número da versão + * @-h, --help: Exibe a mensagem de ajuda + * + * Descrição longa do programa. + * + * Returns: Zero no caso de sucesso, não-zero no caso de falha + */ +int main(int argc, char *argv[]) +{ + return 0; +} + + + + + + + + Tags úteis do DocBook + + Aqui estão algumas tags de DocBook que são muito úteis quando se está documentado o código. + + Para vincular a outra seção nas documentações do GTK: + +<link linkend="glib-Hash-Tables">Tabela de hashes</link> + + O fim do link é o ID do SGML/XML no item superior da página a qual você deseja vincular. Para a maioria das páginas isto é atualmente a parte (“gtk”, “gdk”, “glib”) e, então, o título da página (“Hash Tables”). Para os widgets isso é apenas o nome da classe. Espaços e sublinhados são convertidos em '-' para estar em conformidade com SGML/XML. + + Para se referir a uma função externa, como, por exemplo, uma função padrão do C: + +<function>...</function> + + + + Para incluir um código de exemplo: + +<example> + <title>Usando uma GHashTable.</title> + <programlisting> + ... + </programlisting> +</example> + + ou possivelmente este, para fragmentos de código bem curtos que não precisam de um título: + +<informalexample> + <programlisting> + ... + </programlisting> +</informalexample> + + Para este último, GTK-Doc também possui suporte a uma abreviação: |[ ... ]| + + Para incluir listas com marcadores: + +<itemizedlist> + <listitem> + <para> + ... + </para> + </listitem> + <listitem> + <para> + ... + </para> + </listitem> +</itemizedlist> + + + + Para incluir uma nota que fique fora do texto: + +<note> + <para> + Certifique-se de que você liberou os dados após usá-los. + </para> +</note> + + + + Para se referir a um tipo: + +<type>unsigned char</type> + + + + Para se referir a uma estrutura externa (não uma descrita nos documentos do GTK): + +<structname>XFontStruct</structname> + + + + Para se referir a um campo de uma estrutura: + +<structfield>len</structfield> + + + + Para se referir a um nome de classe, nós possivelmente poderíamos usar: + +<classname>GtkWidget</classname> + + mas você provavelmente vai estar usando #GtkWidget em vez disso (para criar automaticamente um link para a página do GtkWidget - veja as abreviações). + + Para enfatizar um texto: + +<emphasis>Isso é importante</emphasis> + + + + Para nome de arquivos use: + +<filename>/home/usuario/documentos</filename> + + + + Para se referir a chaves use: + +<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo> + + + + + + + + Preenchendo os arquivos extras + + Há alguns poucos arquivos extras, que precisam ser mantidos junto com os comentários inseridos no código fonte: <pacote>.types, <pacote>-docs.xml (no passado, .sgml), <pacote>-sections.txt. + + + Editando o arquivo de tipos + + Se sua biblioteca ou aplicativo inclui GObjects, você deseja que seus sinais, argumentos/parâmetros e posição na hierarquia sejam mostrados na documentação. Tudo que você precisa fazer é listar as funções xxx_get_type junto com seus include dentro do arquivo <pacote>.types. + + + Trecho de exemplo de arquivo de tipos + +#include <gtk/gtk.h> + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type + + + + + Desde o GTK-Doc 1.8, o gtkdoc-scan pode gerar esta lista para você. Basta adicionar “--rebuild-types” a SCAN_OPTIONS no Makefile.am. Se você usar esta abordagem, você não deveria distribuir o arquivo de tipos nem tê-lo sob um controle de versão. + + + + + Editando o documento mestre + + O Gtk-Doc produz documentação em DocBook SGML/XML. Ao processar os comentários inseridos nos fontes, as ferramentas do GTK-Doc geram uma página de documentação por classe ou módulo como um arquivo separado. O documento mestre os inclui e os coloca em uma ordem. + + Enquanto o Gtk-Doc cria um modelo de documento mestre para você, execuções posteriores não vão tocá-lo novamente. Isso significa que se pode estruturar a documentação livremente. Isso inclui agrupamento de páginas e adição de páginas extras. O Gtk-Doc agora possui uma suíte de teste, na qual também o documento mestre é recriado do zero. É uma boa ideia verificar isso de tempo em tempo para ver se há itens a serem introduzidos lá. + + + Não crie tutoriais como documentos extras. Apenas escreva capítulos extras. O benefício de embutir diretamente o tutorial para sua biblioteca na documentação da API é que é mais fácil vincular o tutorial a um símbolo da documentação. Além disso, as chances são mais altas que o tutorial obtenha atualizações junto com a biblioteca. + + + Então, quais são as coisas para se alterar dentro do documento mestre? Para começar é apenas um pouco. Existem alguns mantedores de espaço (texto em colchetes) que você deve cuidar. + + + Cabeçalho do documento mestre + +<bookinfo> + <title>Manual de referência do NOMEDOMÓDULO</title> + <releaseinfo> + for NOMEDOMÓDULO [VERSÃO] + A última versão desta documentação também pode ser encontrada on-line em + <ulink role="online-location" url="http://[SERVIDOR]/NOMEDOMÓDULO/index.html">http://[SERVIDOR]/NOMEDOMÓDULO/</ulink>. + </releaseinfo> +</bookinfo> + +<chapter> + <title>[Insira o título aqui]</title> + + + + + Além disso, alguns elementos de opção são criados na forma comentada. Você pode revisá-los e habilitá-los como preferir. + + + Parte opcional do documento mestre + + <!-- habilite isso se você usa anotações do gobject introspection + <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> + --> + + + + + Finalmente você precisa adicionar nova seção sempre que você a introduzir. A ferramenta gtkdoc-check vai lembrar você de arquivos xml recentemente gerados que ainda não foram incluídos na documentação. + + + Incluindo seções geradas + + <chapter> + <title>minha biblioteca</title> + <xi:include href="xml/object.xml"/> + ... + + + + + + + + Editando o arquivo de seção + + O arquivo de seção é usado para organizar a saída da documentação pelo GTK-Doc. Aqui pode-se especificar qual símbolo pertence a qual módulo ou classe e controla a visibilidade (pública ou privada). + + O arquivo de seção é uma arquivo texto simples com seções delimitadas por tags. Linhas em branco são ignoradas e linhas começando com um “#” são tratadas como linhas de comentários. + + + Enquanto as tags fazem o arquivo se parecer xml, ele não é. Por favor, não feche tags como <SUBSECTION>. + + + + Incluindo seções geradas + +<INCLUDE>libmeep/meep.h</INCLUDE> + +<SECTION> +<FILE>meepapp</FILE> +<TITLE>MeepApp</TITLE> +MeepApp +<SUBSECTION Standard> +MEEP_APP +... +MeepAppClass +meep_app_get_type +</SECTION> + + + + + A tag <FILE> ... </FILE> é usada para especificar o nome de arquivo, sem qualquer sufixo. Por exemplo, ao usar “<FILE>gnome-config</FILE>” resultará nas declarações da seção serem retornadas no arquivo modelo tmpl/gnome-config.sgml, o qual será convertido no arquivo DocBook XML xml/gnome-config.sgml ou no arquivo DocBook XML xml/gnome-config.xml. (O nome do arquivo HTML é baseado no nome do módulo e no título da seção ou, para GObjects, é baseado no nome da classe GObjects convertidos os caracteres para minúsculos). + + A tag <TITLE> ... </TITLE> é usada para especificar o título da seção. Ela é usada apenas antes do modelo (se usado) ser criado inicialmente, já que o título definido no arquivo de modelo sobrescreve este. Também, se for usado o comentário SECTION nos fontes, isso está obsoleto. + + Você pode agrupar itens na seção usando a tag <SUBSECTION>. Atualmente, ela retorna uma linha em branco entre as subseções na seção de sinopse. Você também pode usar <SUBSECTION Standard> para declarações padrão do GObject (ex.: as funções como g_object_get_type e macros como G_OBJECT(), G_IS_OBJECT() etc.). Atualmente, estas são deixadas fora da documentação. Você também pode usar <SUBSECTION Private> para declarações privadas que não serão retornadas (é uma forma prática de evitar mensagens de aviso sobre declarações não usadas). Se sua biblioteca contém tipos privados que você não deseja que apareçam na hierarquia do objeto e a linha de classes implementadas ou exigidas, adicione-as a uma subseção privada. Se você colocaria o GObject e GObjectClass como structs numa seção padrão ou pública depende se há entradas públicas (variáveis, vmethods). + + Você também pode usar <INCLUDE> ... </INCLUDE> para especificar os arquivos #include que são mostrados nas seções de sinopse. Ela contém uma lista separada por vírgula de arquivos #include, sem os sinais de maior que e menor que. Se você define-a fora de quaisquer seções, ela age para todas as seções até o fim do arquivo. Se você define-a em uma seção, ela só vai se aplicar àquela seção. + + + + + + + Controlando o resultado + + Uma execução do GTK-Doc gera arquivos de relatórios dentro do diretório de documentação. Os arquivos gerados são chamados: <pacote>-undocumented.txt, <pacote>-undeclared.txt e <pacote>-unused.txt. Todos eles são arquivos texto simples que podem ser facilmente visualizados e pós-processados. + + O arquivo <pacote>-undocumented.txt começa com um sumário de cobertura da documentação. Abaixo estão duas seções divididas por linhas brancas. A primeira seção lista símbolos não documentados e incompletos. A segunda seção faz o mesmo para os documentos de seção. Entradas incompletas são aquelas que foram documentadas, mas nas quais, por exemplo, um novo parâmetro foi adicionado. + + O arquivo <pacote>-undeclared.txt lista símbolos dados no <pacote>-sections.txt, mas não encontrados nos fontes. Verifique se eles foram removidos ou se eles foram escritos incorretamente. + + O arquivo <pacote>-unused.txt lista nomes de símbolo cuja documentação foi localizada na varredura do GTK-Doc, mas que não sabe onde colocá-los. Isso significa que o símbolo não foi adicionado ainda ao arquivo <pacote>-sections.txt. + + + Habilite ou adicione a linha no Makefile.am. Se pelo menos GTK-Doc 1.9 estiver instalado, isso vai executar verificações de sanidade durante a execução de make check. + + + Também pode-se buscar nos arquivos produzidos pela varredura do código aberto: <pacote>-decl-list.txt e <pacote>-decl.txt. O primeiro pode ser comparado com o arquivo de seção, se ele for mantido manualmente. O segundo lista todas as declarações de cabeçalhos. Se um símbolo está faltando, pode-se verificar se este arquivo o contém. + + Se o projeto é baseado em GObject, pode-se também procurar nos arquivos produzidos pela varredura de objetos: <pacote>.args.txt, <pacote>.hierarchy.txt, <pacote>.interfaces.txt, <pacote>.prerequisites.txt e <pacote>.signals.txt. Se há símbolos faltando em qualquer um deles, pode-se exigir que o GTK-Doc mantenha o arquivo intermediário de varredura para análise posterior, executando GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + Modernizando a documentação + + GTK-Doc está por aí já faz um tempo. Nesta seção, nós listamos novas funcionalidades juntamente da versão desde a qual está disponível. + + + GTK-Doc 1.9 + + Ao usar xml em vez de sgml, na verdade, é possível nomear o documento mestre <pacote>-docs.xml. + + Essa versão provê suporte em Makefile.am. Quando esta opção está habilitada, o <package>-sections.txt é auto-gerado e pode ser removido a partir do VCS. Isso só funciona corretamente para projetos que têm uma estrutura muito regular (ex.: cada par .{c,h} vai criar uma nova seção). Se uma pessoa organiza um projeto próximo a isso atualizando um arquivo de seção mantido manualmente pode ser tão simples quanto executando meld <package>-decl-list.txt <package>-sections.txt. + + A versão 1.8 já introduziu a sintaxe para documentação seções nos fontes em vez dos arquivos separados sob tmpl. Essa versão adiciona opções para alternar todo o módulo de documentação para não usar a etapa de compilação extra do tmpl, usando no configure.ac. Se você não possui um tmpl no seu sistema de controle de versão e ainda não trocou, basta adicionar uma opção ao configure.ac e está resolvido. + + + + GTK-Doc 1.10 + + Essa versão provê suporte no Makefile.am. Quando isso está habilitado, o <package>.types é auto-gerado e pode ser removido do VCS. Quando usando essa funcionalidade é importante também configurar o IGNORE_HFILES no Makefile.am para código que é compilado condicionalmente. + + + + GTK-Doc 1.16 + + Essa versão inclui uma nova ferramenta chamada gtkdoc-check. Essa ferramenta pode executar um conjunto de verificações de sanidade na sua documentação. Ela é habilitada adicionando essas linhas ao final do Makefile.am. Habilitar gtkdoc-check + +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +TESTS = $(GTKDOC_CHECK) +endif + + + + + + GTK-Doc 1.20 + + A versão 1.18 trouxe algum suporte inicial a markdown. O uso de markdown em comentários de documentação é menos intrusiva do que escrever xml de docbook. Essa versão melhora em muito nisso e adiciona muito mais estilos. A seção que explica a sintaxe de comentário tem todos os detalhes. + + + + GTK-Doc 1.25 + + Os makefiles fornecidos com esta versão geram um arquivo de entidade em xml/gtkdocentities.ent, contendo entidades para, por exemplo, nome-pacote e versão-pacote. Você pode usar isto, por exemplo, no arquivo xml principal para evitar ter que inserir diretamente o número de versão. Logo abaixo encontra-se um exemplo que mostra como o arquivo de entidade é incluído e como as entidades são usadas. As entidades também podem ser usadas em todos arquivos gerados, GTK-Doc usará o mesmo cabeçalho xml nos arquivos xml gerados. Usando entradas geradas previamente + +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" +[ + <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> + <!ENTITY % gtkdocentities SYSTEM "xml/gtkdocentities.ent"> + %gtkdocentities; +]> +<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude"> + <bookinfo> + <title>Manual de referência do &nome-pacote;</title> + <releaseinfo> + para &versão-pacote;. + A última versão desta documentação pode ser encontra on-line em + <ulink role="online-location" url="http://[SERVIDOR]/&nome-pacote;/index.html">http://[SERVIDOR]/&nome-pacote;/</ulink>. + </releaseinfo> + </bookinfo> + + + + + + + Documentando outras interfaces + + Até agora nós temos usado o GTK-Doc para documentar a API de um código. As próximas sessões contêm sugestões de como as ferramentas podem ser usadas para documentar outras interfaces, também. + + + Opções de linha de comando e de páginas man + + Já que também é possível gerar páginas man para um refentry do docbook, soa como uma boa ideia usá-lo para este propósito. Desta forma, a interface é parte da referência e é possível obter a página man de graça. + + + Documentar a ferramenta + + Crie um arquivo refentry por ferramenta. Segundo nosso exemplo nós chamaríamos ele de meep/docs/reference/meeper/meep.xml. Para as tags xml que devem ser usadas e podem parecer no arquivo gerado no subdiretório xml assim como exemplos, por exemplo, em glib. + + + + Adicionando a verificação extra ao configure + + + Verificações extra no configure + +AC_ARG_ENABLE(man, + [AC_HELP_STRING([--enable-man], + [regenerate man pages from Docbook [default=no]])],enable_man=yes, + enable_man=no) + +AC_PATH_PROG([XSLTPROC], [xsltproc]) +AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno) + + + + + + + Adicionando as regras extras ao makefile + + + Verificações extra no configure + +man_MANS = \ + meeper.1 + +if ENABLE_GTK_DOC +if ENABLE_MAN + +%.1 : %.xml + @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< + +endif +endif + +BUILT_EXTRA_DIST = $(man_MANS) +EXTRA_DIST += meep.xml + + + + + + + + Interfaces DBus + + (CORRIJA-ME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + Perguntas frequentes + + + + Questão + Resposta + + Sem hierarquia de classe. + A função de objetos xxx_get_type() não foi inserida no arquivo <pacote>.types. + + + Ainda sem hierarquia. + Nomenclatura faltando ou incorreta no arquivo <pacote>-sections.txt (veja a explicação). + + + Droga. Eu ainda não tenho hierarquia de classes. + Por acaso o nome do objeto (nome da struct da instância, ex. GtkWidget) faz parte da seção normal (não coloque isso em subseções Standard ou Private)? + + + Nenhum símbolo de índice. + O <pacote>-docs.{xml,sgml} contém um índice que “xi:inclui” o índice gerado? + + + Símbolos não estão vinculados ao seus doc-section. + O doc-comment está usando a marcação correta (adicionado #,% or ())? Verifique se o gtkdoc-fixxref avisa sobre xrefs não resolvidos. + + + Uma nova classe não aparece nos documentos. + A nova página foi “xi:incluída” do <pacote>-docs.{xml,sgml}? + + + Um novo símbolo não aparece nos documentos. + O doc-comment está formatado adequadamente? Verifique erros de escrita no começo do comentário. Verifique se o gtkdoc-fixxref avisa sobre xrefs não resolvíveis. Verifique se o símbolo está listado corretamente no <pacote>-sections.txt em uma subseção pública. + + + Um tipo está faltando da hierarquia de classe. + Se o tipo está listado no <pacote>.hierarchy, mas não em xml/tree_index.sgml, então certifique-se de que o tipo está colocado corretamente no <pacote>-sections.txt. Se a instância do tipo (ex.: GtkWidget) não está listada ou incidentalmente marcada como privada, ela não será mostrada. + + + Obtenho links de seguimento de documentos para todas as anotações gobject. + Verifique se xml/annotation-glossary.xml está “xi:incluído” de <pacote>-docs.{xml,sgml}. + + + + + Parâmetro descrito no bloco de comentário do código fonte não existe + Verifique se o protótipo no cabeçalho tem nomes de parâmetros diferentes da fonte. + + + + + múltiplos “IDs” para restrições do fim do link XYZ + O símbolo XYZ aparece duas vezes no arquivo <pacote>-sections.txt. + + + Elemento typename no espaço de nome '' encontrado em para, mas nenhum modelo correspondeu. + + + + + + + Ferramentas relacionadas ao gtk-doc + + GtkDocPlugin - um plug-in de integração com Trac GTK-Doc, que adiciona documentos de API a um site trac e integra com a pesquisa do trac. + Gtkdoc-depscan - uma ferramenta (parte do gtk-doc) para verificar APIs usadas, a partir de suas tags, para determinar a versão mínima necessária. + + + + + + + + + Versão 1.1, Março de 2000 + 2000Free Software Foundation, Inc. + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    É permitido a qualquer um copiar e distribuir cópias exatas deste documento de licença, embora não seja permitido alterá-lo.
    +
    +
    + Licença de Documentação Livre GNU + + + 0. INTRODUÇÃO + O propósito desta Licença é fazer um manual, livro-texto, ou outro documento escrito livre em seu sentido de liberdade: para garantir a todos a liberdade efetiva de copiá-lo e redistribui-lo, com ou sem modificações, tanto comercialmente como não comercialmente. Em segundo lugar, esta Licença preserva ao autor e ao editor uma forma de obter crédito pelo seu trabalho, enquanto não é considerado responsável por modificações feitas por outros. + + Esta licença é um tipo de copyleft, que significa que trabalhos derivados do documento precisam ser, por sua vez, livres no mesmo sentido. Ela complementa a Licença Pública Geral GNU (GNU General Public License), que é uma licença copyleft projetada para softwares livres. + + Nós projetamos esta Licença a fim de ser utilizada em manuais de software livre, já que softwares livres precisam de documentações livres: um programa livre deveria vir com manuais que ofereçam as mesmas liberdades que o software proporciona. Mas esta Licença não é limitada a manuais de software; ela pode ser usada para qualquer trabalho de texto, independente do assunto ou se é publicado como um livro impresso. Nós recomendamos esta Licença principalmente para trabalhos cujo propósito seja instrução ou referência. + + + 1. APLICABILIDADE E DEFINIÇÕES + Esta Licença se aplica a qualquer manual ou outro trabalho que contenha um aviso colocado pelo detentor dos direitos autorais dizendo que o documento pode ser distribuído sob os termos desta. O Documento, abaixo, refere-se a qualquer manual ou trabalho. Qualquer membro do público é um licenciado, e será referenciado como você. + + Uma Versão Modificada do Documento significa qualquer trabalho contendo o Documento ou uma porção deste, seja uma cópia literal ou com modificações e/ou traduzido em outro idioma. + + Uma Seção Secundária é um apêndice com nome ou uma seção inicial do Documento que trata exclusivamente da relação dos editores ou autores do Documento com seu assunto geral (ou temas relacionados) e não contém nada que possa estar diretamente dentro do assunto geral. (Por exemplo, se o Documento é em parte um livro-texto de matemática, uma Seção Secundária não pode explicar nada de matemática). Tal relação pode ser uma questão de conexão histórica com o assunto ou com temas relacionados, ou tratar de questões legais, comerciais, filosóficas, éticas ou políticas com relação a eles. + + As Seções Invariantes são certas Seções Secundárias cujos títulos são designados como sendo de Seções Invariantes na nota que afirma que o Documento é publicado sob esta Licença. + + Os Textos de Capa são certas passagens de texto curtas que são listadas, como Textos de Capa Frontal ou Texto de Contra Capa, na nota que afirma que o Documento é publicado sob esta Licença. + + Uma cópia Transparente do Documento significa uma cópia legível por máquina, representada em um formato cuja especificação esteja disponível ao público geral e que cujo conteúdo possa ser visualizado e editado de forma clara e direta por editores de texto genéricos ou programas genéricos de desenho (para imagens compostas de pixels) ou para alguns dos editores de desenho amplamente disponíveis (para desenhos) e que seja apropriado para inclusão em formatadores de texto ou para a tradução automática em uma variedade de formatos apropriados de entrada em formatadores de texto. Uma cópia feita em outro formato de arquivo Transparente cuja marcação, ou ausência desta, tenha sido manipulada para impedir ou desencorajar modificação subsequente pelos leitores não é Transparente. Uma cópia que não é Transparente é chamada Opaca. + + Exemplos de formatos apropriados para cópias Transparentes incluem ASCII puro sem marcação, formato de entrada Texinfo, formato de entrada LaTex, SGML ou XML usando um DTD publicamente disponível, e HTML simples em conformidade padrão projetado para modificação por humanos. Formatos Opacos incluem PostScript, PDF, formatos proprietários que podem ser lidos ou editados somente por processadores de texto proprietários, SGML ou XML cujos DTD e/ou ferramenta de processamento não estão largamente disponibilizados, e o HTML gerado por máquina produzido por algum processador de texto com propósito apenas de saída. + + A Página de Título significa, para um livro impresso, a própria página do título, além das páginas subsequentes necessárias para conter, de forma legível, o material que esta Licença requer que apareça na página do título. Para trabalhos em formatos que não possuem qualquer página de título semelhante, Página de Título significa o texto próximo à ocorrência mais proeminente do título do trabalho, precedendo o início do corpo do texto. + + + + 2. CÓPIA ESCRITA + Você pode copiar e distribuir o Documento em qualquer meio, seja este de forma comercial ou não, desde que esta licença, as notas de direitos autorais (copyright), e a nota de licença afirmando que esta Licença se aplica ao Documento sejam reproduzidas em todas as cópias, e que você não inclua outras condições, quaisquer que sejam, às condições desta Licença. Você não pode usar de medidas técnicas para obstruir ou controlar a leitura ou cópia futura das cópias que você fizer ou distribuir. Contudo, você pode aceitar compensação em troca das cópias. Se você distribuir um número suficientemente grande de cópias, você deve também respeitar as condições descritas na seção 3. + + Você também pode emprestar cópias, sob as mesmas condições relacionadas acima, e você pode publicamente exibir cópias. + + + + 3. COPIANDO EM QUANTIDADE + Se você publicar cópias impressas do Documento, em número maior que 100, e a nota de licença do Documento exigir Textos de Capa, você deve encadernar as cópias em capas que carreguem, de forma clara e legível, todos estes Textos de Capa: Textos de Capa Frontal na capa frontal e Textos de Contracapa na contracapa. Ambas as capas devem também identificar, de forma clara e legível, você como o editor das cópias. A capa frontal deve apresentar o título completo com todas as palavras deste igualmente proeminentes e visíveis. Além disso, você pode adicionar outro material nas capas. As cópias com mudanças limitadas às capas, desde que preservem o título do Documento e satisfaçam estas condições podem ser tratadas como cópias literais em outros aspectos. + + Se os textos necessários a qualquer uma das capas forem muito volumosos para serem incluídos de forma legível, você deve colocar os primeiros textos listados (quantos couberem razoavelmente) na própria capa, e continuar o resto em páginas adjacentes. + + Se você publicar ou distribuir cópias Opacas do Documento em número maior que 100, você deve incluir uma cópia Transparente legível por máquina juntamente com cada cópia Opaca, ou dizer em (ou juntamente com) cada cópia Opaca, um endereço de rede a partir do qual o público geral de usuários possam acessar e obter de forma anônima e sob nenhum custo, usando protocolos de rede públicos padrão, uma cópia Transparente completa do Documento, livre de materiais adicionados. Se você decidir pela segunda opção, você deve seguir passos com certa prudência ao começar a distribuir as cópias Opacas em quantidade, a fim de garantir que esta cópia transparente permanecerá acessível no local indicado por pelo menos um ano após a última vez que você distribuir uma cópia Opaca (diretamente ou através de seus agentes ou distribuidores) desta edição ao público. + + É solicitado, mas não exigido, que você contate os autores do Documento muito antes de redistribuir qualquer grande número de cópias, para dar a eles uma chance de lhe fornecer uma versão atualizada do Documento. + + + + 4. MODIFICAÇÕES + Você pode copiar e distribuir uma Versão Modificada do Documento sob as condições das seções 2 e 3 acima, desde que você forneça a Versão Modificada estritamente sob esta Licença, com a Versão Modificada preenchendo a função de Documento, permitindo assim a distribuição e modificação da Versão Modificada a quem quer que possua uma cópia desta. Além disso, você deve executar os seguintes procedimentos na Versão Modificada: + + + + + A + Usar na Página de Título (e nas capas, se existirem) um título distinto em relação ao do Documento, e daqueles de versões anteriores (os quais devem, na existência de algum, ser listados na seção “Histórico” do Documento). Você pode usar o mesmo título de uma versão anterior se o editor original daquela versão conceder-lhe permissão. + + + + + + B + Listar na Página de Título como autores, uma ou mais pessoas ou entidades responsáveis pela autoria das modificações na Versão Modificada, juntamente com pelo menos cinco autores principais do Documento (todos seus autores principais, se houver menos que cinco). + + + + + + C + Declarar na Página de Título o nome do editor da Versão Modificada, como seu editor. + + + + + + D + Preservar todas as notas de direitos autorais (copyright) do Documento. + + + + + + E + Adicionar uma nota apropriada de direitos autorais para suas modificações, adjacente às outras notas de direitos autorais. + + + + + + F + Incluir, imediatamente após as notas de direitos autorais, uma nota de licença concedendo permissão pública para o uso da Versão Modificada sob os termos desta Licença, na forma mostrada no Adendo abaixo. + + + + + + G + Preservar na referida nota de licença a lista completa de Seções Invariantes e Textos de Capa obrigatórios, dados na nota de licença do Documento. + + + + + + H + Inclua uma cópia inalterada desta Licença. + + + + + + I + Preservar a seção intitulada Histórico, preservar seu título, e adicionar a esta um item declarando ao menos o título, o ano, novos autores, e o editor da Versão Modificada conforme incluído na Página de Título. Se nenhuma seção intitulada Histórico estiver presente no Documento, crie uma informando o título, o ano, os autores e o editor do Documento como evidenciado na Página de Título, em seguida adicione um item descrevendo a Versão Modificada como mencionado na sentença anterior. + + + + + + J + Preservar o endereço de rede, se existir algum, informado pelo Documento para acesso público a uma cópia Transparente deste e, da mesma maneira, os endereços de rede dados no Documento para versões anteriores nas quais este se baseia. Estes podem ser colocados na seção Histórico. Você pode omitir um endereço de rede para um trabalho que foi publicado pelo menos quatro anos antes do Documento em si, ou se o editor original da versão à qual o endereço se refere der permissão. + + + + + + K + Preservar o título da seção para qualquer seção intitulada Agradecimentos ou Dedicatórias e preservar dentro da seção toda a substância e tom de cada um dos agradecimentos e/ou dedicatórias lá mencionados. + + + + + + L + Preservar todas as Seções Invariantes do Documento, sem alterações em seus textos e títulos. Números de seção ou o equivalente não são considerados parte dos títulos das seções. + + + + + + M + Apagar qualquer seção intitulada Apoio. Tal seção não deve ser incluída na Versão Modificada. + + + + + + N + Não renomear o título de qualquer seção existente como Apoio ou que resulte em conflito com o título de qualquer Seção Invariante. + + + + + Se a Versão Modificada incluir novas seções iniciais ou apêndices que sejam qualificados como Seções Secundárias, e não contiver material copiado do Documento, você pode, a seu critério, tornar algumas dessas ou todas essas seções em invariantes. Para fazer isso, adicione seus títulos à lista de Seções Invariantes na nota de licença da Versão Modificada. Estes títulos devem ser distintos de quaisquer outros títulos de seções. + + Você pode incluir uma seção intitulada Apoio, desde que esta contenha apenas apoios recebidos limitados a sua Versão Modificada por várias fontes -- por exemplo, notas do revisor ou de que o texto foi aprovado por uma organização como a definição oficial de um padrão. + + Você pode adicionar uma passagem de até cinco palavras como Texto de Capa Frontal, e uma passagem de até 25 palavras como Texto de Contracapa, ao fim da lista de Textos de Capa na Versão Modificada. Somente uma passagem de Texto de Capa Frontal e uma de Texto de Contracapa podem ser adicionados por (ou através de arranjos feitos por) uma entidade qualquer. Caso o Documento já incluir um texto de capa para a mesma capa, previamente incluído por você ou pelo arranjo feito pela mesma entidade em cujo nome você está agindo, você não poderá adicionar outro; mas você poderá substituir o antigo, com a permissão explícita do editor anterior, que o incluiu. + + O(s) autor(es) e editor(es) do Documento, por esta Licença, não concedem permissão para que seus nomes sejam usados a fins de publicidade, para defesa ou para apoio implícito de qualquer Versão Modificada. + + + + 5. COMBINANDO DOCUMENTOS + Você pode combinar o Documento com outros documentos publicados sob esta Licença, sob os termos definidos na seção 4 acima para versões modificadas, desde que você inclua na combinação todas as Seções Invariantes de todos os documentos originais, sem modificações, e as liste como Seções Invariantes de seu trabalho combinado, na sua nota de licença. + + O trabalho combinado precisa conter somente uma cópia desta Licença, e várias Seções Invariantes idênticas podem ser substituídas por uma única cópia. Se existirem várias Seções Invariantes de mesmo nome, porém com conteúdos diferentes, você deve tornar o título de cada uma destas seções único, adicionando ao fim destes, entre parênteses, o nome do autor ou, se conhecido, o editor original desta seção, ou ainda um número único. Faça o mesmo ajuste nos títulos de seção na lista de Seções Invariantes na nota de licença do trabalho combinado. + + Na combinação, você deve combinar quaisquer seções intituladas Histórico nos vários documentos originais, formando uma seção intitulada Histórico; do mesmo modo, combine quaisquer seções intituladas Agradecimentos, e quaisquer seções intituladas Dedicatórias. Você deve apagar todas as seções intituladas Apoio. + + + + 6. COLEÇÕES DE DOCUMENTOS + Você pode fazer uma coleção que consiste do Documento e outros documentos publicados sob esta Licença, e substituir as cópias individuais desta Licença, nos vários documentos, por uma única cópia a ser incluída na coleção, desde que você siga as regras desta Licença para cópias literais de cada documento em todos os outros aspectos. + + Você pode extrair um único documento desta coleção, e distribuí-lo individualmente sob esta Licença, desde que você insira uma cópia desta Licença no documento extraído, e siga esta Licença em todos os outros aspectos com relação à cópia literal do documento. + + + + 7. AGREGAÇÃO COM TRABALHOS INDEPENDENTES + Uma compilação do Documento ou seus derivados com outros documentos ou trabalhos separados e independentes, dentro de ou sob um volume de um meio de armazenamento ou distribuição, não conta como um todo para uma Versão Modificada do Documento, contanto que nenhum direito autoral de compilação seja reivindicado para esta compilação. Tal compilação configura um agregado e esta Licença não se aplica aos outros trabalhos contidos na compilação do Documento, levando em conta serem compilados, caso eles mesmos não forem trabalhos derivados do Documento. Se o requisito de Texto da Capa da seção 3 é aplicável a estas cópias do Documento, e ainda se o Documento é menor do que um quarto do agregado inteiro, os Textos de Capa do Documento podem ser inseridos nas capas que envolvem somente o Documento no agregado. Caso contrário, eles devem aparecer em capas em volta do agregado como um todo. + + + + 8. TRADUÇÃO + Uma tradução é considerada como sendo um tipo de modificação, desta forma você pode distribuir traduções do Documento sob os termos da seção 4. A substituição das Seções Invariantes por traduções requer permissão especial dos detentores dos direitos autorais, embora você possa incluir traduções de algumas ou todas as Seções Invariantes juntamente às versões originais destas. Você pode incluir uma tradução desta Licença, desde que você também inclua a versão original em Inglês desta Licença. Em caso de discordância entre a tradução e a versão original desta Licença ou nota de licença, a versão original em inglês prevalecerá. + + + + 9. TÉRMINO + Você não pode copiar, modificar, sublicenciar, ou distribuir o Documento com exceção do que foi expressamente previsto sob esta Licença. Qualquer outra tentativa de cópia, modificação, sublicenciamento ou distribuição do Documento é nula, e implicará na rescisão automática de seus direitos sob esta Licença. Contudo, as partes que receberam as cópias, ou direitos, de você sob esta Licença não terão suas licenças rescindidas enquanto tais partes permanecerem em total acordo com a Licença. + + + + 10. FUTURAS REVISÕES DESTA LICENÇA + A Free Software Foundation pode publicar novas versões, revisadas, da Licença de Documentação Livre GNU de tempos em tempos. Tais versões posteriores terão ideologia similar à presente versão, embora possam diferir em detalhes a fim de abordar novos problemas ou preocupações. Consulte: http://www.gnu.org/copyleft/. + + É dado, a cada versão da Licença, um número de versão distinto. Se o Documento especificar que um número de versão em específico desta Licença ou qualquer versão posterior se aplica a ele, você tem a opção de seguir os termos e condições tanto da versão especificada quanto de qualquer versão posterior que tenha sido publicada (não como rascunho) pela Free Software Foundation. Se o documento não especificar um número de versão desta Licença, você pode escolher qualquer versão já publicada (não como rascunho) pela Free Software Foundation. + + + + Adendo + Para usar esta Licença em um documento que você escreveu, inclua uma cópia desta no documento e adicione as seguintes notas de direitos autorais e licença logo após a página de título: + +
    + Copyright ANO SEU NOME. + Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação Livre GNU (GNU Free Documentation License), Versão 1.1 ou qualquer versão mais recente publicada pela Free Software Foundation; com as Seções Invariantes, sendo LISTADO SEUS TÍTULOS, com os Textos de Capa Frontal sendo LISTADOS, e com os Textos de Contracapa sendo LISTADOS. Uma cópia da licença está inclusa na seção entitulada Licença de Documentação Livre GNU (GNU Free Documentation License). +
    + + Se você não tiver qualquer Seção Invariante, escreva sem Seções Invariantes ao invés de afirmar quais são invariantes. Se você não tem Textos de Capa Frontal, escreva sem Textos de Capa Frontal ao invés de Textos de Capa Frontal sendo LISTADOS; O mesmo se aplica a Textos de Contracapa. + + Se seu documento contiver exemplos não-triviais de código de programação, recomendamos publicar estes exemplos paralelamente, sob a licença de software livre que você escolher, como por exemplo a Licença Pública Geral GNU (GNU General Public License), para permitir seu uso em software livre. +
    +
    + + + + + + + + +
    diff --git a/help/manual/pt_BR/pt_BR.po b/help/manual/pt_BR/pt_BR.po new file mode 100644 index 0000000..f8b7167 --- /dev/null +++ b/help/manual/pt_BR/pt_BR.po @@ -0,0 +1,6099 @@ +# Brazilian Portuguese translation for gtk-doc help. +# Copyright (C) 2018 gtk-doc's COPYRIGHT HOLDER +# This file is distributed under the same license as the gtk-doc package. +# Marcelo Rodrigues , 2010. +# Rafael Fontenelle , 2013-2018. +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc help\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk-" +"doc&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-28 10:31+0000\n" +"PO-Revision-Date: 2018-01-23 11:16-0200\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Project-Style: gnome\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "" +"Marcelo Rodrigues , 2010\n" +"Rafael Fontenelle , 2013-2018" + +#. (itstool) path: bookinfo/title +#: C/index.docbook:12 +msgid "GTK-Doc Manual" +msgstr "Manual do GTK-Doc" + +#. (itstool) path: bookinfo/edition +#: C/index.docbook:13 +msgid "1.24.1" +msgstr "1.24.1" + +#. (itstool) path: abstract/para +#: C/index.docbook:14 +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "" +"Manual de usuário para desenvolvedores com instruções do uso do GTK-Doc." + +#. (itstool) path: authorgroup/author +#: C/index.docbook:16 +msgid "" +"Chris Lyttle " +"
    chris@wilddev.net
    " +msgstr "" +"Chris Lyttle " +"
    chris@wilddev.net
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:25 +msgid "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " +msgstr "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:34 +msgid "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " +msgstr "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " + +#. (itstool) path: publisher/publishername +#: C/index.docbook:45 +msgid "GTK-Doc project" +msgstr "Projeto GTK-Doc" + +#. (itstool) path: bookinfo/publisher +#: C/index.docbook:44 +msgid "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " +msgstr "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:48 +msgid "2000, 2005 Dan Mueth and Chris Lyttle" +msgstr "2000, 2005 Dan Mueth e Chris Lyttle" + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:52 +msgid "2007-2015 Stefan Sauer (Kost)" +msgstr "2007-2015 Stefan Sauer (Kost)" + +#. (itstool) path: legalnotice/para +#: C/index.docbook:65 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, " +"Version 1.1 or any later version published by the Free Software Foundation " +"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A " +"copy of the license is included." +msgstr "" +"Permissão concedida para copiar, distribuir e/ou modificar este documento " +"sob os termos da Licença de Documentação Livre GNU " +"(GNU Free Documentation License), Versão 1.1 ou qualquer versão mais recente " +"publicada pela Free Software Foundation; sem Seções Invariantes, Textos de " +"Capa Frontal, e sem Textos de Contracapa. Você pode encontrar uma cópia da " +"licença está inclusa." + +#. (itstool) path: legalnotice/para +#: C/index.docbook:73 +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and those trademarks are made aware to the members of the " +"GNOME Documentation Project, the names have been printed in caps or initial " +"caps." +msgstr "" +"Muitos dos nomes usados por empresas para distinguir seus produtos e " +"serviços são reivindicados como marcas registradas. Onde esses nomes " +"aparecem em qualquer documentação do GNOME e os membros do Projeto de " +"Documentação do GNOME estiverem cientes dessas marcas registradas, os nomes " +"aparecerão impressos em letras maiúsculas ou com iniciais em maiúsculas." + +#. (itstool) path: revhistory/revision +#: C/index.docbook:83 +#| msgid "" +#| "1.26.1 11 Aug 2017 " +#| "ss development" +msgid "" +"1.27.1 07 Dec 2017 ss development" +msgstr "" +"1.27.1 07 Dez 2017 " +"ss desenvolvimento" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:89 +msgid "" +"1.27 07 Dec 2017 ss fine tuning of the python port" +msgstr "" +"1.27 07 Maio 2017 " +"ss ajustes do porte para " +"Python" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:95 +msgid "" +"1.26 11 Aug 2017 ss port all tools from perl/bash to python" +msgstr "" +"1.26 11 Ago 2017 " +"ss portadas todas ferramentas de " +"perl/bash para Python" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:101 +msgid "" +"1.25 21 March 2016 ss bug fixes, test cleanups" +msgstr "" +"1.25 21 Mar 2016 " +"ss correção de erros, limpezas " +"de testes" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:107 +msgid "" +"1.24 29 May 2015 ss bug fix" +msgstr "" +"1.24 29 Maio 2015 ss correção de erros" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:113 +msgid "" +"1.23 17 May 2015 ss bug fix" +msgstr "" +"1.23 17 Maio 2015 ss correção de erros" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:119 +msgid "" +"1.22 07 May 2015 ss bug fixes, dropping deprecated features" +msgstr "" +"1.22 07 Maio 2015 ss correção de erros, desativadas funcionalidades " +"obsoletas" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:125 +msgid "" +"1.21 17 Jul 2014 ss bug fixes, dropping deprecated features" +msgstr "" +"1.21 17 Jul 2014 ss correção de erros, desativadas funcionalidades " +"obsoletas" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:131 +msgid "" +"1.20 16 Feb 2014 ss bug fixes, markdown support, style improvements" +msgstr "" +"1.20 14 Fev 2014 ss correção de erros, suporte a markdown, melhorias " +"no estilo" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:137 +msgid "" +"1.19 05 Jun 2013 ss bug fixes" +msgstr "" +"1.19 05 Jun 2013 ss correção de erros" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:143 +msgid "" +"1.18 14 Sep 2011 ss bug fixes, speedups, markdown support" +msgstr "" +"1.18 14 Set 2011 ss correção de erros, aceleração, suporte a " +"markdown" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:149 +msgid "" +"1.17 26 Feb 2011 sk urgent bug fix update" +msgstr "" +"1.17 26 Fev 2011 sk atualização de correção de erro urgente" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:155 +msgid "" +"1.16 14 Jan 2011 sk bugfixes, layout improvements" +msgstr "" +"1.16 14 Jan 2011 sk correção de erros, melhorias no layout" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:161 +msgid "" +"1.15 21 May 2010 sk bug and regression fixes" +msgstr "" +"1.15 21 Maio 2010 sk correção de erros e regressões" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:167 +msgid "" +"1.14 28 March 2010 sk bugfixes and performance improvements" +msgstr "" +"1.14 28 Mar 2010 sk Correção de erro e melhorias na performance" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:173 +msgid "" +"1.13 18 December 2009 " +"sk broken tarball update" +msgstr "" +"1.13 18 Dez 2009 sk atualização de tarball defeituoso" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:179 +msgid "" +"1.12 18 December 2009 " +"sk new tool features and " +"bugfixes" +msgstr "" +"1.12 18 Dez 2009 sk novas funcionalidades da ferramenta e correção de " +"erros" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:185 +msgid "" +"1.11 16 November 2008 " +"mal GNOME doc-utils migration" +msgstr "" +"1.11 16 Nov 2008 mal migração do GNOME doc-utils" + +#. (itstool) path: chapter/title +#: C/index.docbook:198 +msgid "Introduction" +msgstr "Introdução" + +#. (itstool) path: chapter/para +#: C/index.docbook:200 +msgid "" +"This chapter introduces GTK-Doc and gives an overview of what it is and how " +"it is used." +msgstr "" +"Este capítulo introduz GTK-Doc e dá um visão geral do que ele é e como ele é " +"usado." + +#. (itstool) path: sect1/title +#: C/index.docbook:206 +msgid "What is GTK-Doc?" +msgstr "O que é GTK-Doc?" + +#. (itstool) path: sect1/para +#: C/index.docbook:208 +msgid "" +"GTK-Doc is used to document C code. It is typically used to document the " +"public API of libraries, such as the GTK+ and GNOME libraries. But it can " +"also be used to document application code." +msgstr "" +"GTK-Doc é usado para documentar código C. Ele é tipicamente usado para " +"documentar a API pública das bibliotecas, como as bibliotecas do GTK+ e do " +"GNOME. Mas ele também pode ser usado para documentar código de aplicativos." + +#. (itstool) path: sect1/title +#: C/index.docbook:216 +msgid "How Does GTK-Doc Work?" +msgstr "Como o GTK-Doc funciona?" + +#. (itstool) path: sect1/para +#: C/index.docbook:218 +msgid "" +"GTK-Doc works by using documentation of functions placed inside the source " +"files in specially-formatted comment blocks, or documentation added to the " +"template files which GTK-Doc uses (though note that GTK-Doc will only " +"document functions that are declared in header files; it won't produce " +"output for static functions)." +msgstr "" +"O GTK-Doc funciona usando a documentação de funções colocadas dentro dos " +"arquivos fonte em blocos de comentários especialmente formatados ou " +"documentação adicionada aos arquivos modelo que o GTK-Doc usa (apesar disso, " +"note que o GTK-Doc vai documentar apenas funções que são declaradas em " +"arquivos de cabeçalho; ele não irá produzir saída para funções estáticas)." + +#. (itstool) path: sect1/para +#: C/index.docbook:225 +msgid "" +"GTK-Doc consists of a number of python scripts, each performing a different " +"step in the process." +msgstr "" +"GTK-Doc consiste de um número de scripts em Python, cada um executando uma " +"etapa diferente no processo." + +#. (itstool) path: sect1/para +#: C/index.docbook:230 +msgid "There are 5 main steps in the process:" +msgstr "Há 5 etapas principais no processo:" + +#. (itstool) path: listitem/para +#: C/index.docbook:237 +msgid "" +"Writing the documentation. The author fills in the " +"source files with the documentation for each function, macro, union etc. (In " +"the past information was entered in generated template files, which is not " +"recommended anymore)." +msgstr "" +"Escrevendo a documentação. O autor preenche os arquivos " +"fonte com a documentação para cada função, macro, union, etc. " +"(Anteriormente, a informação era inserida em arquivos de modelo gerados, o " +"que não é mais recomendado)." + +#. (itstool) path: listitem/para +#: C/index.docbook:247 +msgid "" +"Gathering information about the code. " +"gtkdoc-scan scans the header files of the code " +"looking for declarations of functions, macros, enums, structs, and unions. " +"It creates the file <module>-decl-list.txt " +"containing a list of the declarations, placing them into sections according " +"to which header file they are in. On the first run this file is copied to " +"<module>-sections.txt. The author can rearrange " +"the sections, and the order of the declarations within them, to produce the " +"final desired order. The second file it generates is <" +"module>-decl.txt. This file contains the full declarations " +"found by the scanner. If for some reason one would like some symbols to show " +"up in the docs, where the full declaration cannot be found by the scanner or " +"the declaration should appear differently, one can place entities similar to " +"the ones in <module>-decl.txt into <" +"module>-overrides.txt." +msgstr "" +"Juntando informação sobre o código. gtkdoc-" +"scan varre os arquivos de cabeçalho do código buscando por " +"declarações de funções, macros, enums, structs e unions. Ele cria o arquivo " +"<módulo>-decl-list.txt contendo uma lista de " +"declarações, inserindo-as em seções da acordo com o arquivo de cabeçalho no " +"qual se encontram. Na primeira execução, este arquivo é copiado para " +"<módulo>-sections.txt. O autor pode reorganizar " +"as seções, e a ordem das declarações dentro delas, para produzir a ordem " +"final desejada. O segundo arquivo que ele gera é <módulo>-" +"decl.txt. Este arquivo contém as declarações completas " +"encontradas pela varredura. Se por algum motivo se queira que alguns " +"apareçam nos documentos, no qual declarações completas não puderam ser " +"encontradas pela varredura ou a declaração deveria aparecer de outra forma, " +"pode-se colocar entidades similares aos do <módulo>-decl." +"txt no <módulo>-overrides.txt." + +#. (itstool) path: listitem/para +#: C/index.docbook:264 +msgid "" +"gtkdoc-scangobj can also be used to dynamically " +"query a library about any GObject subclasses it exports. It saves " +"information about each object's position in the class hierarchy and about " +"any GObject properties and signals it provides." +msgstr "" +"gtkdoc-scangobj também pode ser usado para " +"consultar dinamicamente uma biblioteca sobre qualquer subclasse GObject que " +"ele exporta. Ele salva informações sobre cada posição do objeto na " +"hierarquia de classe e sobre quaisquer propriedades GObject e sinais que ela " +"fornece." + +#. (itstool) path: listitem/para +#: C/index.docbook:270 +msgid "" +"gtkdoc-scanobj should not be used anymore. It was " +"needed in the past when GObject was still GtkObject inside gtk+." +msgstr "" +"gtkdoc-scanobj não deveria mais ser usada. Ele " +"era necessário no passado, quando GObject ainda era GtkObject dentro do gtk+." + +#. (itstool) path: listitem/para +#: C/index.docbook:277 +msgid "" +"Generating the XML and HTML/PDF. gtkdoc-" +"mkdb turns the template files into XML files in the xml/ subdirectory. If the source code " +"contains documentation on functions, using the special comment blocks, it " +"gets merged in here. If there are no tmpl files used it only reads docs from " +"sources and introspection data." +msgstr "" +"Gerando o XML e HTML/PDF. gtkdoc-mkdb transforma os arquivos modelos em arquivos XML no subdiretório " +"xml/. Se o código fonte contém " +"documentação nas funções, usando os blocos de comentários especiais, ela é " +"mesclada aqui. Se não há arquivos tmpl sendo usados, ele apenas lê " +"documentos dos dados de introspecção e dos fontes." + +#. (itstool) path: listitem/para +#: C/index.docbook:286 +msgid "" +"gtkdoc-mkhtml turns the XML files into HTML files " +"in the html/ subdirectory. Likewise " +"gtkdoc-mkpdf turns the XML files into a PDF " +"document called <package>.pdf." +msgstr "" +"gtkdoc-mkhtml transforma os arquivos XML em " +"arquivos HTML no subdiretório html/. Da mesma forma, gtkdoc-mkpdf " +"transforma os arquivos XML em um documento PDF chamado <" +"pacote>.pdf." + +#. (itstool) path: listitem/para +#: C/index.docbook:292 +msgid "" +"Files in xml/ and html/ directories are always overwritten. One " +"should never edit them directly." +msgstr "" +"Arquivos nos diretórios xml/ e " +"html/ são sempre sobrescritos. Não " +"devem ser editados manualmente." + +#. (itstool) path: listitem/para +#: C/index.docbook:300 +msgid "" +"Fixing up cross-references between documents. After " +"installing the HTML files, gtkdoc-fixxref can be " +"run to fix up any cross-references between separate documents. For example, " +"the GTK+ documentation contains many cross-references to types documented in " +"the GLib manual. When creating the source tarball for distribution, " +"gtkdoc-rebase turns all external links into web-" +"links. When installing distributed (pregenerated) docs the same application " +"will try to turn links back to local links (where those docs are installed)." +msgstr "" +"Consertando referências cruzadas entre documentos. Após " +"a instalação dos arquivos HTML, gtkdoc-fixxref " +"pode ser executado para consertar referências cruzadas entre documentos " +"separados. Por exemplo, a documentação do GTK+ contém muitas referências " +"cruzadas a tipos documentados no manual do GLib. Ao criar um tarball fonte " +"para distribuição, gtkdoc-rebase transforma todos " +"os links externos em web-links. Ao instalar documentações distribuídas " +"(geradas previamente), o mesmo aplicativo vai tentar transformar links de " +"volta para links locais (onde aquelas documentações estão instaladas)." + +#. (itstool) path: sect1/title +#: C/index.docbook:318 +msgid "Getting GTK-Doc" +msgstr "Obtendo GTK-Doc" + +#. (itstool) path: sect2/title +#: C/index.docbook:321 +msgid "Requirements" +msgstr "Requisitos" + +#. (itstool) path: sect2/para +#: C/index.docbook:322 +msgid "" +"python 2/3 - the main scripts are written in python." +msgstr "" +"python 2/3 - os scripts principais são escritos em " +"Python." + +#. (itstool) path: sect2/para +#: C/index.docbook:325 +msgid "" +"xsltproc - the xslt processor from libxslt xmlsoft.org/XSLT/" +msgstr "" +"xsltproc - o processador de xslt do libxslt xmlsoft.org/XSLT/" + +#. (itstool) path: sect2/para +#: C/index.docbook:329 +msgid "" +"docbook-xsl - the docbook xsl stylesheets sourceforge.net/projects/docbook/files/docbook-xsl" +msgstr "" +"docbook-xsl - as folhas de estilo xsl de docbook sourceforge.net/projects/docbook/files/docbook-xsl" + +#. (itstool) path: sect2/para +#: C/index.docbook:333 +msgid "" +"One of source-highlight, highlight " +"or vim - optional - used for syntax highlighting of " +"examples" +msgstr "" +"Um dentre source-highlight, highlight ou vim - opcional - usado para destaque de " +"sintaxe de exemplos" + +#. (itstool) path: sect1/title +#: C/index.docbook:341 +msgid "About GTK-Doc" +msgstr "Sobre GTK-Doc" + +#. (itstool) path: sect1/para +#: C/index.docbook:343 C/index.docbook:357 +msgid "(FIXME)" +msgstr "(CORRIJA-ME)" + +#. (itstool) path: sect1/para +#: C/index.docbook:347 +msgid "" +"(History, authors, web pages, mailing list, license, future plans, " +"comparison with other similar systems.)" +msgstr "" +"(História, autores, páginas web, lista de discussão, licença, planos " +"futuros, comparação com outros sistemas similares.)" + +#. (itstool) path: sect1/title +#: C/index.docbook:355 +msgid "About this Manual" +msgstr "Sobre este manual" + +#. (itstool) path: sect1/para +#: C/index.docbook:361 +msgid "(who it is meant for, where you can get it, license)" +msgstr "(pra quem ele serve, onde você pode obtê-lo, licença)" + +#. (itstool) path: chapter/title +#: C/index.docbook:370 +msgid "Setting up your project" +msgstr "Preparando seu projeto" + +#. (itstool) path: chapter/para +#: C/index.docbook:372 +msgid "" +"The next sections describe what steps to perform to integrate GTK-Doc into " +"your project. Theses sections assume we work on a project called 'meep'. " +"This project contains a library called 'libmeep' and an end-user app called " +"'meeper'. We also assume you will be using autoconf and automake. In " +"addition section plain makefiles or other " +"build systems will describe the basics needed to work in a different " +"build setup." +msgstr "" +"As próximas seções descrevem quais as etapas para realizar a integração do " +"GTK-Doc em seu projeto. Estas seções consideram que nós trabalhamos em um " +"projeto chamado “meep”. Este projeto contém uma biblioteca chamada “libmeep” " +"e um aplicativo para usuário final chamado “meeper”. Nós também consideramos " +"que você estará usando autoconf e automake. Além disso, a seção sobre makefiles simples ou outros sistemas de " +"compilação vai descrever as necessidades básicas para trabalhar em " +"uma configuração de compilação diferente." + +#. (itstool) path: sect1/title +#: C/index.docbook:383 +msgid "Setting up a skeleton documentation" +msgstr "Preparando o esqueleto de uma documentação" + +#. (itstool) path: sect1/para +#: C/index.docbook:385 +msgid "" +"Under your top-level project directory create folders called docs/reference " +"(this way you can also have docs/help for end-user documentation). It is " +"recommended to create another subdirectory with the name of the doc-package. " +"For packages with just one library this step is not necessary." +msgstr "" +"No diretório raiz do seu projeto, crie pastas chamadas docs/reference (desta " +"forma, você também pode ter docs/help para documentação para usuário final). " +"É recomendado criar um outro subdiretório com o nome do pacote de " +"documentação. Para pacotes com apenas uma biblioteca, esta etapa não é " +"obrigatória." + +#. (itstool) path: example/title +#: C/index.docbook:394 +msgid "Example directory structure" +msgstr "Exemplo de estrutura de diretórios" + +#. (itstool) path: example/programlisting +#: C/index.docbook:395 +#, no-wrap +msgid "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +msgstr "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:392 +msgid "This can then look as shown below: <_:example-1/>" +msgstr "Isto pode, então, parecer como exibido abaixo: <_:example-1/>" + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:410 C/index.docbook:417 +msgid "Integration with autoconf" +msgstr "Integração com autoconf" + +#. (itstool) path: sect1/para +#: C/index.docbook:412 +msgid "" +"Very easy! Just add one line to your configure.ac " +"script." +msgstr "" +"Muito fácil! Basta adicionar uma linha ao seu script configure.ac." + +#. (itstool) path: example/programlisting +#: C/index.docbook:418 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +msgstr "" +"\n" +"# verifica por gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" + +#. (itstool) path: example/title +#: C/index.docbook:430 +msgid "Keep gtk-doc optional" +msgstr "Mantenha o gtk-doc como opcional" + +#. (itstool) path: example/programlisting +#: C/index.docbook:431 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +msgstr "" +"\n" +"# verifica por gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:425 +msgid "" +"This will require all developers to have gtk-doc installed. If it is okay " +"for your project to have optional api-doc build setup, you can solve this as " +"below. Keep it as is, as gtkdocize is looking for GTK_DOC_CHECK at the start of a line. <_:example-1/>" +msgstr "" +"Isso vai exigir que todos os desenvolvedores tenham o gtk-doc instalado. Se " +"não houver problema para seu projeto ter uma configuração opcional de " +"compilação de documentação de API, você pode resolver isso como mostrado " +"abaixo. Mantenha assim, pois o gtkdocize está procurando por " +"GTK_DOC_CHECK no começo de uma linha. <_:example-1/>" + +#. (itstool) path: sect1/para +#: C/index.docbook:442 +msgid "" +"The first argument is used to check for the gtkdocversion at configure time. " +"The 2nd, optional argument is used by gtkdocize. " +"The GTK_DOC_CHECK macro also adds several configure " +"switches:" +msgstr "" +"O primeiro argumento é usado para verificar a gtkdocversion em tempo de " +"compilação. O segundo argumento é opcional, sendo usado por " +"gtkdocize. A macro GTK_DOC_CHECK " +"também adiciona várias opções de configuração:" + +#. (itstool) path: listitem/para +#: C/index.docbook:448 +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=CAMINHO : caminho para as documentações instaladas" + +#. (itstool) path: listitem/para +#: C/index.docbook:449 +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "--enable-gtk-doc : usa gtk-doc para compilar documentação [padrão=no]" + +#. (itstool) path: listitem/para +#: C/index.docbook:450 +msgid "" +"--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "" +"--enable-gtk-doc-html : compila documentação em formato html [padrão=sim]" + +#. (itstool) path: listitem/para +#: C/index.docbook:451 +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "" +"--enable-gtk-doc-pdf : compila documentação em formato pdf [padrão=não]" + +#. (itstool) path: important/para +#: C/index.docbook:455 +msgid "" +"GTK-Doc is disabled by default! Remember to pass the option to the next configure run. " +"Otherwise pregenerated documentation is installed (which makes sense for " +"users but not for developers)." +msgstr "" +"GTK-Doc está desabilitado por padrão! Lembre-se de passar a opção à próxima execução do configure. Do contrário, uma documentação gerada previamente é instalada (o " +"que faz sentido para usuários, mas não para desenvolvedores)." + +#. (itstool) path: sect1/para +#: C/index.docbook:463 +msgid "" +"Furthermore it is recommended that you have the following line inside your " +"configure.ac script. This allows " +"gtkdocize to automatically copy the macro " +"definition for GTK_DOC_CHECK to your project." +msgstr "" +"Além disso, é recomendado que você tenha a seguinte linha dentro do seu " +"script configure.ac. Ela permite que " +"gtkdocize copie automaticamente a definição de " +"macro para GTK_DOC_CHECK para o seu projeto." + +#. (itstool) path: example/title +#: C/index.docbook:471 +msgid "Preparation for gtkdocize" +msgstr "Preparação para gtkdocize" + +#. (itstool) path: example/programlisting +#: C/index.docbook:472 +#, no-wrap +msgid "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +msgstr "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:477 +msgid "" +"After all changes to configure.ac are made, update the " +"configure file. This can be done by re-running " +"autoreconf -i or autogen.sh." +msgstr "" +"Após todas as alterações do configure.ac serem feitas, " +"atualize o arquivo configure. Isso pode ser feito " +"executando novamente autoreconf -i ou autogen.sh." + +#. (itstool) path: sect1/title +#: C/index.docbook:485 +msgid "Integration with automake" +msgstr "Integração com automake" + +#. (itstool) path: sect1/para +#: C/index.docbook:487 +msgid "" +"First copy the Makefile.am from the examples sub directory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). A local copy " +"should be available under e.g. /usr/share/doc/gtk-doc-tools/" +"examples/Makefile.am. If you have multiple doc-packages repeat " +"this for each one." +msgstr "" +"Primeiro copie o Makefile.am dos subdiretório do " +"exemplo do gtkdoc-sources " +"para o diretório de documentação da API do seu projeto ( ./docs/reference/<pacote>). Uma cópia local " +"deveria estar disponível sob, por exemplo, /usr/share/doc/gtk-doc-" +"tools/examples/Makefile.am. Se você tiver múltiplos pacotes de " +"documentação, repita isso para cada um." + +#. (itstool) path: sect1/para +#: C/index.docbook:498 +msgid "" +"The next step is to edit the settings inside the Makefile.am. All the settings have a comment above that describes their " +"purpose. Most settings are extra flags passed to the respective tools. Every " +"tool has a variable of the form . " +"All the tools support to list the supported " +"parameters." +msgstr "" +"A próxima etapa é editar as configurações dentro do Makefile.am. Todas as configurações tem um comentário em cima que descreve seu " +"propósito. A maioria das configurações são opções extras passadas para as " +"respectivas ferramentas. Cada ferramenta tem uma variável na forma " +". Todas as ferramentas têm " +"suporte a pra listar os parâmetros disponíveis." + +#. (itstool) path: sect1/title +#: C/index.docbook:512 +msgid "Integration with autogen" +msgstr "Integração com autogen" + +#. (itstool) path: sect1/para +#: C/index.docbook:514 +msgid "" +"Most projects will have an autogen.sh script to setup " +"the build infrastructure after a checkout from version control system (such " +"as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before " +"autoheader, automake or autoconf." +msgstr "" +"A maioria dos projetos têm um script autogen.sh para " +"configurar a infraestrutura de compilação após baixar do sistema de controle " +"de versão (como cvs/svn/git). GTK-Doc vêm com uma ferramenta chamada " +"gtkdocize que pode ser usada em um script assim. " +"O gtkdocize deveria ser executado antes de autoheader, automake ou autoconf." + +#. (itstool) path: example/title +#: C/index.docbook:523 +msgid "Running gtkdocize from autogen.sh" +msgstr "Executando gtkdocize no autogen.sh" + +#. (itstool) path: example/programlisting +#: C/index.docbook:524 +#, no-wrap +msgid "" +"\n" +"gtkdocize || exit 1\n" +msgstr "" +"\n" +"gtkdocize || exit 1\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:530 +msgid "" +"When running gtkdocize it copies gtk-" +"doc.make to your project root (or any directory specified by the " +" option). It also checks you configure script for " +"the GTK_DOC_CHECK invocation. This macro can be used to " +"pass extra parameters to gtkdocize." +msgstr "" +"Ao executar gtkdocize, ele copia gtk-" +"doc.make para a raiz do seu projeto (ou qualquer diretório " +"especificado pela opção ). Ele também verifica se " +"seu script de configuração pela chamada de GTK_DOC_CHECK. Esta macro pode ser usada para passar parâmetros extras para " +"gtkdocize." + +#. (itstool) path: sect1/para +#: C/index.docbook:539 +msgid "" +"Historically GTK-Doc was generating template files where developers entered " +"the docs. This turned out to be not so good (e.g. the need for having " +"generated files under version control). Since GTK-Doc 1.9 the tools can get " +"all the information from source comments and thus the templates can be " +"avoided. We encourage people to keep documentation in the code. " +"gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. " +"Besides adding the option directly to the command invocation, they can be " +"added also to an environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in " +"the configure script. If you have never changed file in tmpl by hand and " +"migrating from older gtkdoc versions, please remove the directory (e.g. from " +"version control system)." +msgstr "" +"Historicamente, GTK-Doc estava gerando arquivos modelo (template) nos quais " +"os desenvolvedores inseriam as documentações. Isso acabou sendo não tão bom " +"(ex.: a necessidade de serem gerados arquivos sob controle de versão). Desde " +"o GTK-Doc 1.9 as ferramentas podem obter todas as informações dos " +"comentários no fonte e, portanto, os arquivos modelo podem ser evitados. Nós " +"encorajamos as pessoas a manter a documentação no código. O " +"gtkdocize possui agora suporte à opção que escolhe um makefile que ignora totalmente o uso " +"de tmpl. Além de adicionar a opção diretamente à chamada do comando, elas " +"também podem ser adicionadas a uma variável de ambiente chamada " +"GTKDOCIZE_FLAGS ou definidas como um segundo parâmetro na " +"macro GTK_DOC_CHECK no script configure. Se você nunca " +"alterou um arquivo tmpl a mão e está migrando de versões antigas do gtkdoc, " +"por favor remova o diretório (ex.: do sistema de controle de versão)." + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:556 C/index.docbook:573 +msgid "Running the doc build" +msgstr "Executando a compilação da documentação" + +#. (itstool) path: sect1/para +#: C/index.docbook:558 +msgid "" +"After the previous steps it's time to run the build. First we need to rerun " +"autogen.sh. If this script runs configure for you, then " +"give it the option. Otherwise manually run " +"configure with this option afterwards." +msgstr "" +"Após as etapas anteriores, é hora de executar a compilação. Primeiro, nós " +"queremos executar novamente o autogen.sh. Se este " +"script executa o configure para você, então forneça a este a opção . Do contrário, execute manualmente " +"configure com esta opção em seguida." + +#. (itstool) path: sect1/para +#: C/index.docbook:565 +msgid "" +"The first make run generates several additional files in the doc-" +"directories. The important ones are: <package>.types, <package>-docs.xml (in the past ." +"sgml), <package>-sections.txt." +msgstr "" +"A primeira execução do make cria vários arquivos adicionais nos diretórios " +"de documentação. Os importantes são: <pacote>.types, <pacote>-docs.xml (no passado, .sgml), " +"<pacote>-sections.txt." + +#. (itstool) path: example/programlisting +#: C/index.docbook:574 +#, no-wrap +msgid "" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" +msgstr "" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:580 +msgid "" +"Now you can point your browser to docs/reference/<package>/" +"index.html. Yes, it's a bit disappointing still. But hang-on, " +"during the next chapter we tell you how to fill the pages with life." +msgstr "" +"Agora você pode apontar seu navegador para docs/reference/<" +"pacote>/index.html. Sim, é um pouco desapontador. Mas aguente " +"aí, durante o próximo capítulo nós vamos dizer como você pode preencher as " +"páginas com vida." + +#. (itstool) path: sect1/title +#: C/index.docbook:588 +msgid "Integration with version control systems" +msgstr "Integração com sistemas de controle de versão" + +#. (itstool) path: sect1/para +#: C/index.docbook:590 +msgid "" +"As a rule of thumb, it's the files you edit which should go under version " +"control. For typical projects it's these files: <package>." +"types, <package>-docs.xml (in the " +"past .sgml), <package>-sections.txt, " +"Makefile.am." +msgstr "" +"Como uma regra de ouro, são aqueles arquivos que você edita que deveriam " +"entrar no controle de versão. Para projetos normais, esses são os arquivos: " +"<pacote>.types, <pacote>-docs." +"xml (no passado, .sgml), <pacote>-sections.txt, Makefile.am." + +#. (itstool) path: sect1/para +#: C/index.docbook:598 +msgid "" +"Files in the xml/ and html/ " +"directories should not go under version control. Neither should any of the " +".stamp files." +msgstr "" +"Arquivos nos diretórios xml/ e html/ não deveriam entrar no controle de versão. Da mesma forma, não " +"deveriam entrar arquivos .stamp." + +#. (itstool) path: sect1/title +#: C/index.docbook:606 +msgid "Integration with plain makefiles or other build systems" +msgstr "Integração com makefiles simples ou outros sistemas de compilação" + +#. (itstool) path: sect1/para +#: C/index.docbook:608 +msgid "" +"In the case one does not want to use automake and therefore gtk-" +"doc.mak one will need to call the gtkdoc tools in the right order " +"in own makefiles (or other build tools)." +msgstr "" +"Neste caso, não se deseja usar o automake e, portanto, gtk-doc." +"mak. Será necessário chamar as ferramentas do gtkdoc na ordem " +"correta nos makefiles devidos (ou outras ferramentas de compilação)." + +#. (itstool) path: example/title +#: C/index.docbook:615 +msgid "Documentation build steps" +msgstr "Etapas de compilação da documentação" + +#. (itstool) path: example/programlisting +#: C/index.docbook:616 +#, no-wrap +msgid "" +"\n" +"DOC_MODULE=meep\n" +"// sources have changed\n" +"gtkdoc-scan --module=$(DOC_MODULE) <source-dir>\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<source-dir>\n" +"// xml files have changed\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" +msgstr "" +"\n" +"DOC_MODULE=meep\n" +"// fontes foram alterados\n" +"gtkdoc-scan --module=$(DOC_MODULE) <source-dir=>\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<source-dir>\n" +"// arquivos xml foram alterados \n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:630 +msgid "" +"One will need to look at the Makefile.am and " +"gtk-doc.mak to pick the extra options needed." +msgstr "" +"Será necessário olhar no Makefile.am e no gtk-" +"doc.mak para obter as opções extras necessárias." + +#. (itstool) path: sect1/title +#: C/index.docbook:637 +msgid "Integration with CMake build systems" +msgstr "Integração com sistemas de compilação CMake" + +#. (itstool) path: sect1/para +#: C/index.docbook:639 +msgid "" +"GTK-Doc now provides a GtkDocConfig.cmake module (and " +"the corresponding GtkDocConfigVersion.cmake module). " +"This provides a gtk_doc_add_module command that you can " +"set in your CMakeLists.txt file." +msgstr "" +"GTK-Doc agora fornece um módulo GtkDocConfig.cmake (e o " +"module GtkDocConfigVersion.cmake correspondente). Ele " +"fornece um comando gtk_doc_add_module que você pode usar " +"em seu arquivo CMakeLists.txt." + +#. (itstool) path: example/title +#: C/index.docbook:649 +msgid "Example of using GTK-Doc from CMake" +msgstr "Exemplo de uso do GTK-Doc no CMake" + +#. (itstool) path: example/programlisting +#: C/index.docbook:650 +#, no-wrap +msgid "" +"\n" +"find_package(GtkDoc 1.25 REQUIRED)\n" +"\n" +"# Create the doc-libmeep target.\n" +"gtk_doc_add_module(\n" +" libmeep ${CMAKE_SOURCE_DIR}/libmeep\n" +" XML meep-docs.xml\n" +" LIBRARIES libmeep\n" +")\n" +"\n" +"# Build doc-libmeep as part of the default target. Without this, you would\n" +"# have to explicitly run something like `make doc-libmeep` to build the docs.\n" +"add_custom_target(documentation ALL DEPENDS doc-libmeep)\n" +"\n" +"# Install the docs. (This assumes you're using the GNUInstallDirs CMake module\n" +"# to set the CMAKE_INSTALL_DOCDIR variable correctly).\n" +"install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html\n" +" DESTINATION ${CMAKE_INSTALL_DOCDIR})\n" +msgstr "" +"\n" +"find_package(GtkDoc 1.25 REQUIRED)\n" +"\n" +"# Cria o alvo doc-libmeep.\n" +"gtk_doc_add_module(\n" +" libmeep ${CMAKE_SOURCE_DIR}/libmeep\n" +" XML meep-docs.xml\n" +" LIBRARIES libmeep\n" +")\n" +"\n" +"# Compila doc-libmeep como parte do alvo padrão. Sem isso, você precisaria\n" +"# executar explicitamente algo como `make doc-libmeep` para compilar os\n" +"# documentos.\n" +"add_custom_target(documentation ALL DEPENDS doc-libmeep)\n" +"\n" +"# Install the docs. (This assumes you're using the GNUInstallDirs CMake module\n" +"# to set the CMAKE_INSTALL_DOCDIR variable correctly).\n" +"install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html\n" +" DESTINATION ${CMAKE_INSTALL_DOCDIR})\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:647 +msgid "The following example shows how to use this command. <_:example-1/>" +msgstr "O exemplo a seguir mostra como usar este comando. <_:example-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:675 +msgid "Documenting the code" +msgstr "Documentando o código" + +#. (itstool) path: chapter/para +#: C/index.docbook:677 +msgid "" +"GTK-Doc uses source code comment with a special syntax for code " +"documentation. Further it retrieves information about your project structure " +"from other sources. During the next section you will find all information " +"about the syntax of the comments." +msgstr "" +"GTK-Doc usa comentários do código fonte com uma sintaxe especial para " +"documentação do código. Além disso, ele obtém informações sobre a estrutura " +"do seu projeto a partir de outros fontes. Na próxima seção, você vai " +"descobrir todas as informações sobre a sintaxe dos comentários." + +#. (itstool) path: note/title +#: C/index.docbook:685 +msgid "Documentation placement" +msgstr "Localização da documentação" + +#. (itstool) path: note/para +#: C/index.docbook:686 +msgid "" +"In the past most documentation had to be filled into files residing inside " +"the tmpl directory. This has the disadvantages that the " +"information is often not updated and also that the file tend to cause " +"conflicts with version control systems." +msgstr "" +"Antigamente, a maioria das documentações tinha que ser preenchida em " +"arquivos residentes dentro do diretório tmpl. Isso tem " +"as desvantagens das informações frequentemente não serem atualizadas e " +"também que o arquivo tende a causar conflitos com sistemas de controle de " +"versão." + +#. (itstool) path: note/para +#: C/index.docbook:692 +msgid "" +"The avoid the aforementioned problems we suggest putting the documentation " +"inside the sources. This manual will only describe this way of documenting " +"code." +msgstr "" +"Para evitar os problemas mencionados a seguir nós sugerimos que a " +"documentação seja colocada dentro das fontes. Este manual vai apenas " +"descrever esta forma de documentar código." + +#. (itstool) path: example/title +#: C/index.docbook:703 C/index.docbook:729 +msgid "GTK-Doc comment block" +msgstr "Bloco de comentário do GTK-Doc" + +#. (itstool) path: example/programlisting +#: C/index.docbook:704 +#, no-wrap +msgid "" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" +msgstr "" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* código não analisável arqui */\n" +"#endif\n" + +#. (itstool) path: chapter/para +#: C/index.docbook:699 +msgid "" +"The scanner can handle the majority of C headers fine. In the case of " +"receiving warnings from the scanner that look like a special case, one can " +"hint GTK-Doc to skip over them. <_:example-1/>" +msgstr "" +"A varredura sabe lidar com a maioria dos cabeçalhos de C sem problemas. Caso " +"se receba avisos (warnings) na varredura que pareça ser um caso especial, " +"pode-se informar ao GTK-Doc para ignorá-los. <_:example-1/>" + +#. (itstool) path: note/title +#: C/index.docbook:713 +msgid "Limitations" +msgstr "Limitações" + +#. (itstool) path: note/para +#: C/index.docbook:714 +msgid "" +"Note, that GTK-Doc's supports #ifndef(__GTK_DOC_IGNORE__) but " +"not #if !defined(__GTK_DOC_IGNORE__) or other combinations." +msgstr "" +"Note que o GTK-Doc oferece suporte a #ifndef(__GTK_DOC_IGNORE__), mas não a #if !defined(__GTK_DOC_IGNORE__) ou outras " +"combinações." + +#. (itstool) path: sect1/title +#: C/index.docbook:724 +msgid "Documentation comments" +msgstr "Comentários de documentação" + +#. (itstool) path: example/programlisting +#: C/index.docbook:730 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * identificador:\n" +" * documentação ...\n" +" */\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:726 +msgid "" +"A multiline comment that starts with an additional '*' marks a documentation " +"block that will be processed by the GTK-Doc tools. <_:example-1/>" +msgstr "" +"Um comentário multilinha que começa com um “*” adicional marca um bloco de " +"documentação que será processado pelas ferramentas do GTK-Doc. <_:example-1/>" + +# Ocultei o TODO da tradução. Para que server? :/ +#. (itstool) path: sect1/para +#: C/index.docbook:739 +msgid "" +"The 'identifier' is one line with the name of the item the comment is " +"related to. The syntax differs a little depending on the item. (TODO add " +"table showing identifiers)" +msgstr "" +"O “identificador” é uma linha com o nome do item ao qual o comentário está " +"relacionado. A sintaxe difere um pouco dependendo do item." + +#. (itstool) path: sect1/para +#: C/index.docbook:745 +msgid "" +"The 'documentation' block is also different for each symbol type. Symbol " +"types that get parameters such as functions or macros have the parameter " +"description first followed by a blank line (just a '*'). Afterwards follows " +"the detailed description. All lines (outside program listings and CDATA " +"sections) just containing a ' *' (blank-asterisk) are converted to paragraph " +"breaks. If you don't want a paragraph break, change that into ' * ' (blank-" +"asterisk-blank-blank). This is useful in preformatted text (code listings)." +msgstr "" +"O bloco “documentação” também é diferente para cada tipo de símbolo. Tipos " +"de símbolos que levam parâmetros, como funções e macros, têm a descrição de " +"parâmetro começando com uma linha vazia (apenas com um “*”). Posteriormente, " +"segue com a descrição detalhada. Todas as linhas (fora das listagens do " +"programa e seções CDATA) contendo apenas um “ *” (espaço em branco e " +"asterisco) são convertidas para quebras de parágrafos. Se você não quiser " +"uma quebra de parágrafo, altere isso para “ * “ (espaço, asterisco, espaço e " +"espaço). Isso é útil em textos pré-formatados (listagens de código)." + +#. (itstool) path: listitem/para +#: C/index.docbook:762 +msgid "" +"What it is: The name for a class or function can sometimes be misleading for " +"people coming from a different background." +msgstr "" +"O que é: O nome de uma classe ou função pode, em alguns casos, levar a um " +"entendimento equivocado pessoas com experiências diferentes." + +#. (itstool) path: listitem/para +#: C/index.docbook:768 +msgid "" +"What it does: Tell about common uses. Put it in relation with the other API." +msgstr "" +"O que isso faz: Fale sobre usos comuns. Coloque em relação com a outra API." + +#. (itstool) path: tip/para +#: C/index.docbook:758 +msgid "When documenting code, describe two aspects: <_:itemizedlist-1/>" +msgstr "Ao documentar um código, descreva dois aspectos: <_:itemizedlist-1/>" + +#. (itstool) path: listitem/para +#: C/index.docbook:783 +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "Use function() para referir às funções ou macros que levam argumentos." + +#. (itstool) path: listitem/para +#: C/index.docbook:788 +msgid "" +"Use @param to refer to parameters. Also use this when referring to " +"parameters of other functions, related to the one being described." +msgstr "" +"Use @param para se referir a parâmetros. Também, use isso ao se referir a " +"parâmetros de outras funções, relacionadas àquele sendo descrito." + +#. (itstool) path: listitem/para +#: C/index.docbook:794 +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "Use %constant para se referir a uma constante, ex.: %G_TRAVERSE_LEAFS." + +#. (itstool) path: listitem/para +#: C/index.docbook:799 +msgid "" +"Use #symbol to refer to other types of symbol, e.g. structs and enums and " +"macros which don't take arguments." +msgstr "" +"Use #symbol para se referir a outros tipos de símbolos, ex.: structs, enums " +"e macros que não levam argumentos." + +#. (itstool) path: listitem/para +#: C/index.docbook:805 +msgid "Use #Object::signal to refer to a GObject signal." +msgstr "Use #Object::signal para se referir a um sinal de GObject." + +#. (itstool) path: listitem/para +#: C/index.docbook:810 +msgid "Use #Object:property to refer to a GObject property." +msgstr "Use #Object:property para se referir a uma propriedade de GObject." + +#. (itstool) path: listitem/para +#: C/index.docbook:815 +msgid "" +"Use #Struct.field to refer to a field inside a structure and #GObjectClass." +"foo_bar() to refer to a vmethod." +msgstr "" +"Use #Struct.field para se referir a um campo dentro de uma estrutura e " +"#GObjectClass.foo_bar() para se referir a um vmethod." + +#. (itstool) path: sect1/para +#: C/index.docbook:777 +msgid "" +"One advantage of hyper-text over plain-text is the ability to have links in " +"the document. Writing the correct markup for a link can be tedious though. " +"GTK-Doc comes to help by providing several useful abbreviations. <_:" +"itemizedlist-1/>" +msgstr "" +"Uma vantagem do hipertexto de texto simples é a habilidade de ter links no " +"documento. Porém, escrever a marcação correta para cada link pode ser " +"entediante. GTK-Doc vem para ajudar fornecendo abreviações úteis. <_:" +"itemizedlist-1/>" + +#. (itstool) path: tip/para +#: C/index.docbook:824 +msgid "" +"If you need to use the special characters '<', '>', '()', '@', '%', or " +"'#' in your documentation without GTK-Doc changing them you can use the XML " +"entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&" +"commat;\", \"&percnt;\" and \"&num;\" respectively or escape them " +"with a backslash '\\'." +msgstr "" +"Se você precisar usar os caracteres especiais “<”, “>”, “()”, “@”, “%” " +"ou “#” em sua documentação sem GTK-Doc alterando-os, você pode usar as " +"entidades XML “&lt;”, “&gt;”, “&lpar;”, “&rpar;”, “&" +"commat;”, “&percnt;” e “&num;”, respectivamente, ou escapá-los com " +"uma contrabarra “\\”." + +#. (itstool) path: sect1/para +#: C/index.docbook:833 +msgid "" +"DocBook can do more than just links. One can also have lists, examples, " +"headings, and images. As of version 1.20, the preferred way is to use a " +"subset of the basic text formatting syntax called Markdown. On older GTK-Doc " +"versions any documentation that includes Markdown will be rendered as is. " +"For example, list items will appear as lines starting with a dash." +msgstr "" +"DocBook pode fazer mais do que apenas links. Ele também pode ter listas, " +"exemplos, títulos e imagens. A partir da versão 1.20, a forma preferível é " +"usar um subconjunto de sintaxe de formatação de texto básica chamada Markdown. Em " +"versões mais antigas do GTK-Doc, qualquer documentação que inclui Markdown " +"será renderizada como está. Por exemplo, itens de lista aparecerão como " +"linhas começando com um traço." + +#. (itstool) path: sect1/para +#: C/index.docbook:844 +msgid "" +"While markdown is now preferred one can mix both. One limitation here is " +"that one can use docbook xml within markdown, but markdown within docbook " +"xml is not supported." +msgstr "" +"Enquanto markdown é agora preferível, é possível misturar ambos. Uma " +"limitação aqui é que é possível usar docbook xml no markdown, mas não há " +"suporte a markdown no docbook xml." + +#. (itstool) path: sect1/para +#: C/index.docbook:850 +msgid "" +"In older GTK-Doc releases, if you need support for additional formatting, " +"you would need to enable the usage of docbook XML tags inside doc-comments " +"by putting (or ) in " +"the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" +"Em versões mais antigas do GTK-Doc, se você precisasse de suporte para " +"formatação adicional, você precisaria de habilitar o uso de tags de XML de " +"docbook dentro de comentários de documentação colocando ) na variável MKDB_OPTIONS dentro de Makefile.am." + +#. (itstool) path: example/title +#: C/index.docbook:859 +msgid "GTK-Doc comment block using Markdown" +msgstr "Bloco de comentário do GTK-Doc usando Markdown" + +#. (itstool) path: example/programlisting +#: C/index.docbook:860 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * identifier:\n" +" *\n" +" * documentation paragraph ...\n" +" *\n" +" * # Sub Heading #\n" +" *\n" +" * ## Second Sub Heading\n" +" *\n" +" * # Sub Heading With a Link Anchor # {#heading-two}\n" +" *\n" +" * more documentation:\n" +" *\n" +" * - list item 1\n" +" *\n" +" * Paragraph inside a list item.\n" +" *\n" +" * - list item 2\n" +" *\n" +" * 1. numbered list item\n" +" *\n" +" * 2. another numbered list item\n" +" *\n" +" * Another paragraph. [A Link to the GNOME Website](http://www.gnome.org/)\n" +" *\n" +" * ![an inline image](plot-result.png)\n" +" *\n" +" * [A link to the heading anchor above][heading-two]\n" +" *\n" +" * A C-language example:\n" +" * |[<!-- language=\"C\" -->\n" +" * GtkWidget *label = gtk_label_new (\"Gorgeous!\");\n" +" * ]|\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * identificador:\n" +" *\n" +" * parágrafo de documentação ...\n" +" *\n" +" * # Subtítulo #\n" +" *\n" +" * ## Segundo subtítulo\n" +" *\n" +" * # Subtítulo com um link âncora # {#titulo-dois}\n" +" *\n" +" * mais documentação:\n" +" *\n" +" * - item 1 da lista\n" +" *\n" +" * Parágrafo dentro de um item de lista.\n" +" *\n" +" * - item 2 da lista\n" +" *\n" +" * 1. item numerado da lista\n" +" *\n" +" * 2. outro item numerado da lista\n" +" *\n" +" * Outro parágrafo. [Um link para o site do GNOME](http://www.gnome.org/)\n" +" *\n" +" * ![uma imagem embutida](plot-result.png)\n" +" *\n" +" * [Um link para um título acima][titulo-dois]\n" +" *\n" +" * Um exemplo em linguagem C:\n" +" * |[<!-- language=\"C\" -->\n" +" * GtkWidget *label = gtk_label_new (\"Esplêndido!\");\n" +" * ]|\n" +" */\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:899 +msgid "" +"More examples of what markdown tags are supported can be found in the GTK+ Documentation Markdown Syntax Reference." +msgstr "" +"Mais exemplos do quais tags de markdown tags tem suporte pode ser encontrado " +"na Referência de sintaxe de markdown de documentação." + +#. (itstool) path: tip/para +#: C/index.docbook:905 +msgid "" +"As already mentioned earlier GTK-Doc is for documenting public API. Thus one " +"cannot write documentation for static symbols. Nevertheless it is good to " +"comment those symbols too. This helps other to understand you code. " +"Therefore we recommend to comment these using normal comments (without the " +"2nd '*' in the first line). If later the function needs to be made public, " +"all one needs to do is to add another '*' in the comment block and insert " +"the symbol name at the right place inside the sections file." +msgstr "" +"Como já mencionado anteriormente, GTK-Doc serve para documentar API pública. " +"Portanto, não é possível escrever documentação para símbolos estáticos. Não " +"obstante, é bom comentar estes símbolos também. Isso ajuda outros a entender " +"seu código. Portanto, é recomendado comentá-los usando comentários normais " +"(sem o segundo “*” na primeira linha). Se, posteriormente, a função precisar " +"ser publicada, tudo que precisa ser feito é adicionar outro “*” no bloco de " +"comentário e inserir o nome do símbolo no lugar correto do arquivo e seções." + +#. (itstool) path: sect1/title +#: C/index.docbook:919 +msgid "Documenting sections" +msgstr "Documentando seções" + +#. (itstool) path: sect1/para +#: C/index.docbook:921 +msgid "" +"Each section of the documentation contains information about one class or " +"module. To introduce the component one can write a section block. The short " +"description is also used inside the table of contents. All the @fields are " +"optional." +msgstr "" +"Cada seção da documentação contém informações sobre uma classe ou um módulo. " +"Para introduzir o componente, pode-se escrever um bloco de seção. A " +"descrição curta também é usada dentro da tabela de conteúdo (sumário). Todos " +"os @fields são opcionais." + +#. (itstool) path: example/title +#: C/index.docbook:929 +msgid "Section comment block" +msgstr "Bloco de comentário de sessão" + +#. (itstool) path: example/programlisting +#: C/index.docbook:930 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: the application class\n" +" * @title: Meep application\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * The application class handles ...\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: A classe do aplicativo\n" +" * @title: Aplicativo Meep\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Estável\n" +" * @include: meep/app.h\n" +" * @image: aplicativo.png\n" +" *\n" +" * A classe do aplicativo cuida de ...\n" +" */\n" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:949 +msgid "SECTION:<name>" +msgstr "SECTION:<nome>" + +#. (itstool) path: listitem/para +#: C/index.docbook:951 +msgid "" +"The name links the section documentation to the respective part in the " +"<package>-sections.txt file. The name given here " +"should match the <FILE> tag in the <package>-sections." +"txt file." +msgstr "" +"O nome vincula a documentação da seção à respectiva parte do arquivo " +"<pacote>-sections.txt. O nome informado aqui deve " +"corresponder à tag <FILE> no arquivo <pacote>-sections." +"txt." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:960 +msgid "@short_description" +msgstr "@short_description" + +#. (itstool) path: listitem/para +#: C/index.docbook:962 +msgid "" +"A one line description of the section, that later will appear after the " +"links in the TOC and at the top of the section page." +msgstr "" +"Uma descrição de uma linha da sessão,que mais tarde aparecerá após os links " +"no TOC (sumário) no topo da página da sessão." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:969 +msgid "@title" +msgstr "@title" + +#. (itstool) path: listitem/para +#: C/index.docbook:971 +msgid "" +"The section title defaults to <name> from the SECTION declaration. It " +"can be overridden with the @title field." +msgstr "" +"O padrão para título de seção é <nome> da declaração da SECTION. Ele " +"pode ser sobrescrito com o campo @title." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:978 +msgid "@section_id" +msgstr "@section_id" + +#. (itstool) path: listitem/para +#: C/index.docbook:980 +msgid "" +"Overrides the use of title as a section identifier. For GObjects the <" +"title> is used as a section_id and for other sections it is <" +"MODULE>-<title>." +msgstr "" +"Sobrescreve o uso do título como um identificador de seção. Para GObjects, o " +"<title> é usado como um section_id e para outras seções ele é <" +"MÓDULO>-<title>." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:988 +msgid "@see_also" +msgstr "@see_also" + +#. (itstool) path: listitem/para +#: C/index.docbook:990 +msgid "A list of symbols that are related to this section." +msgstr "Uma lista de símbolos que estão relacionados a esta sessão." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:996 +msgid "@stability" +msgstr "@stability" + +#. (itstool) path: listitem/para +#: C/index.docbook:1003 +msgid "" +"Stable - The intention of a Stable interface is to enable arbitrary third " +"parties to develop applications to these interfaces, release them, and have " +"confidence that they will run on all minor releases of the product (after " +"the one in which the interface was introduced, and within the same major " +"release). Even at a major release, incompatible changes are expected to be " +"rare, and to have strong justifications." +msgstr "" +"Estável - A intenção de uma interface estável é permitir terceiros " +"arbitrários desenvolverem aplicativos para essas interfaces, lançá-los e ter " +"a confiança de que eles vão funcionar em todos os lançamentos menores do " +"produto (após aquele no qual a interface foi introduzida e naquele mesmo " +"lançamento maior). Atém mesmo em um lançamento maior, espera-se que " +"alterações incompatíveis sejam raras e que tenham fortes justificativas." + +#. (itstool) path: listitem/para +#: C/index.docbook:1015 +msgid "" +"Unstable - Unstable interfaces are experimental or transitional. They are " +"typically used to give outside developers early access to new or rapidly " +"changing technology, or to provide an interim solution to a problem where a " +"more general solution is anticipated. No claims are made about either source " +"or binary compatibility from one minor release to the next." +msgstr "" +"Instável - Interfaces instáveis são experimentais ou transicionais. Elas são " +"normalmente usadas para dar a desenvolvedores externos um acesso prévio a " +"nova tecnologia ou em rápida alteração, ou para fornecer uma solução " +"interina para um problema que uma solução mais genérica foi antecipada. " +"Nenhuma responsabilidade é assumida pela compatbilidade dos binários ou dos " +"fontes de uma versão menor para a próxima." + +#. (itstool) path: listitem/para +#: C/index.docbook:1027 +msgid "" +"Private - An interface that can be used within the GNOME stack itself, but " +"that is not documented for end-users. Such functions should only be used in " +"specified and documented ways." +msgstr "" +"Privado - Uma interface que pode ser usada dentro da própria pilha do GNOME, " +"mas que não está documentada para usuários finais. Tais funções deveriam ser " +"usadas nas formas especificadas e documentadas." + +#. (itstool) path: listitem/para +#: C/index.docbook:1036 +msgid "" +"Internal - An interface that is internal to a module and does not require " +"end-user documentation. Functions that are undocumented are assumed to be " +"Internal." +msgstr "" +"Interna - Uma interface que é interna a um módulo e não requer documentação " +"para o usuário final. Funções que não estão documentadas são presumidas como " +"sendo “Interna”." + +#. (itstool) path: listitem/para +#: C/index.docbook:998 +msgid "" +"An informal description of the stability level this API has. We recommend " +"the use of one of these terms: <_:itemizedlist-1/>" +msgstr "" +"Uma descrição informal do nível de estabilidade que esta API tem. Nós " +"recomendamos o uso de um desses termos: <_:itemizedlist-1/>" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1048 +msgid "@include" +msgstr "@include" + +#. (itstool) path: listitem/para +#: C/index.docbook:1050 +msgid "" +"The #include files to show in the section synopsis (a " +"comma separated list), overriding the global value from the section file or command line. This item is " +"optional." +msgstr "" +"Os arquivos #include a ser mostrado na sinopse da seção " +"(uma lista separada por vírgulas), sobrescrevendo o valor global do arquivo de seção ou linha de comando. " +"Este item é opcional." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1059 +msgid "@image" +msgstr "@image" + +#. (itstool) path: listitem/para +#: C/index.docbook:1061 +msgid "" +"The image to display at the top of the reference page for this section. This " +"will often be some sort of a diagram to illustrate the visual appearance of " +"a class or a diagram of its relationship to other classes. This item is " +"optional." +msgstr "" +"A imagem a ser exibida no topo da página de referência desta seção. Isso " +"frequentemente será um tipo de diagrama para ilustrar a aparência visual de " +"uma classe ou uma diagrama de suas relações a outras classes. Este item é " +"opcional." + +#. (itstool) path: tip/para +#: C/index.docbook:1072 +msgid "" +"To avoid unnecessary recompilation after doc-changes put the section docs " +"into the c-source where possible." +msgstr "" +"Para evitar recompilação desnecessária após alterações de documentação " +"inseridas nas documentações de seção no fonte em C onde possível." + +#. (itstool) path: sect1/title +#: C/index.docbook:1081 +msgid "Documenting symbols" +msgstr "Documentando símbolos" + +#. (itstool) path: sect1/para +#: C/index.docbook:1083 +msgid "" +"Each symbol (function, macro, struct, enum, signal and property) is " +"documented in a separate block. The block is best placed close to the " +"definition of the symbols so that it is easy to keep them in sync. Thus " +"functions are usually documented in the c-source and macros, structs and " +"enums in the header file." +msgstr "" +"Cada símbolo (função, macro, struct, enum, signal e property) é documentado " +"em uma bloco separado. O bloco é melhor localizado perto da definição dos " +"símbolos, de forma que seja fácil de mantê-los em sincronia. Portanto, as " +"funções são normalmente documentadas no fonte em C e macros, scructs e enums " +"no arquivo de header." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1091 C/index.docbook:1157 +msgid "General tags" +msgstr "Tags gerais" + +#. (itstool) path: sect2/para +#: C/index.docbook:1093 +msgid "" +"You can add versioning information to all documentation elements to tell " +"when an API was introduced, or when it was deprecated." +msgstr "" +"Você pode adicionar informação sobre versionamento em todos os elementos de " +"documentação para informar quando uma API foi introduzida ou quando ela se " +"tornou obsoleta." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1098 +msgid "Versioning Tags" +msgstr "Tags de versionamento" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1099 +msgid "Since:" +msgstr "Since:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1101 +msgid "Description since which version of the code the API is available." +msgstr "Descrição de desde qual versão do código a API está disponível." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1106 +msgid "Deprecated:" +msgstr "Deprecated:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1108 +msgid "" +"Paragraph denoting that this function should no be used anymore. The " +"description should point the reader to the new API." +msgstr "" +"Parágrafo denotando que esta função deveria não mais ser usada. A descrição " +"deveria apontar o leitor para a nova API." + +#. (itstool) path: sect2/para +#: C/index.docbook:1116 +msgid "" +"You can also add stability information to all documentation elements to " +"indicate whether API stability is guaranteed for them for all future minor " +"releases of the project." +msgstr "" +"Você também pode adicionar informação sobre estabilidade em todos os " +"elementos de documentação para indicar se a estabilidade de uma API é " +"garantida para eles para futuros lançamentos menores do projeto." + +#. (itstool) path: sect2/para +#: C/index.docbook:1122 +msgid "" +"The default stability level for all documentation elements can be set by " +"passing the argument to " +"gtkdoc-mkdb with one of the values below." +msgstr "" +"O nível de estabilidade padrão para todos os elementos de documentação pode " +"ser definido passando o argumento para " +"gtkdoc-mkdb com um dos balores abaixo." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1128 +msgid "Stability Tags" +msgstr "Tags de estabilidade" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1129 +msgid "Stability: Stable" +msgstr "Stability: Stable" + +#. (itstool) path: listitem/para +#: C/index.docbook:1131 +msgid "" +"Mark the element as stable. This is for public APIs which are guaranteed to " +"remain stable for all future minor releases of the project." +msgstr "" +"Marca o elemento como estável. Isto é para APIs públicas cuja estabilidade é " +"garantida para todos os próximos lançamentos menores do projeto." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1138 +msgid "Stability: Unstable" +msgstr "Stability: Unstable" + +#. (itstool) path: listitem/para +#: C/index.docbook:1140 +msgid "" +"Mark the element as unstable. This is for public APIs which are released as " +"a preview before being stabilised." +msgstr "" +"Marca o elemento como instável. Isto é para APIs públicas que são publicados " +"como versão de desenvolvimento antes de se tornar estável." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1146 +msgid "Stability: Private" +msgstr "Stability: Private" + +#. (itstool) path: listitem/para +#: C/index.docbook:1148 +msgid "" +"Mark the element as private. This is for interfaces which can be used by " +"tightly coupled modules, but not by arbitrary third parties." +msgstr "" +"Marca o elemento como privado. Isto é para interfaces que podem ser usadas " +"por um conjunto pequeno de módulos, mas não por terceiros." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1158 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: @foo's bar\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Use foo_baz_get_bar() instead.\n" +" */\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" +msgstr "" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: Um foo\n" +" *\n" +" * Obtém o bar do @foo.\n" +" *\n" +" * Returns: bar do @foo\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Use foo_baz_get_bar() no seu lugar.\n" +" */\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1178 C/index.docbook:1188 +msgid "Annotations" +msgstr "Anotações" + +#. (itstool) path: sect2/para +#: C/index.docbook:1180 +msgid "" +"Documentation blocks can contain annotation-tags. These tags will be " +"rendered with tooltips describing their meaning. The tags are used by " +"gobject-introspection to generate language bindings. A detailed list of the " +"supported tags can be found on the wiki." +msgstr "" +"Blocos de documentação podem conter tags de anotação. Essas tags serão " +"renderizadas com dicas de ferramentas descrevendo seu significados. As tags " +"são usadas pelo gobject-introspection para garantir associações (bindings) " +"de linguagens. Uma lista detalhada tags aceitas podem ser encontrada no wiki." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1189 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * foo_get_bar: (annotation)\n" +" * @foo: (annotation): some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: (annotation): @foo's bar\n" +" */\n" +"...\n" +"/**\n" +" * foo_set_bar_using_the_frobnicator: (annotation) (another annotation)\n" +" * (and another annotation)\n" +" * @foo: (annotation) (another annotation): some foo\n" +" *\n" +" * Sets bar on @foo.\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * foo_get_bar: (anotação)\n" +" * @foo: (anotação): algum foo\n" +" *\n" +" * Obtém bar do @foo.\n" +" *\n" +" * Returns: (anotação): bar do @foo\n" +" */\n" +"...\n" +"/**\n" +" * foo_set_bar_using_the_frobnicator: (anotação) (outra anotação)\n" +" * (e uma outra anotação)\n" +" * @foo: (anotação) (uma outra anotação): algum foo\n" +" *\n" +" * Define bar no @foo.\n" +" */\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1210 C/index.docbook:1239 +msgid "Function comment block" +msgstr "Bloco de comentário de função" + +#. (itstool) path: listitem/para +#: C/index.docbook:1216 +msgid "" +"Document whether returned objects, lists, strings, etc, should be freed/" +"unrefed/released." +msgstr "" +"Documente se objetos, listas, strings, etc. retornados devem ser não usados/" +"não referenciados/liberada." + +#. (itstool) path: listitem/para +#: C/index.docbook:1222 +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "" +"Documente se parâmetros pode ser NULL e o que acontece se eles o forem." + +#. (itstool) path: listitem/para +#: C/index.docbook:1227 +msgid "" +"Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "" +"Mencione pré-condições e pós-condições interessantes onde for apropriado." + +#. (itstool) path: sect2/para +#: C/index.docbook:1212 C/index.docbook:1298 +msgid "Please remember to: <_:itemizedlist-1/>" +msgstr "Por favor, lembre-se de: <_:itemizedlist-1/>" + +#. (itstool) path: sect2/para +#: C/index.docbook:1234 +msgid "" +"Gtk-doc assumes all symbols (macros, functions) starting with '_' are " +"private. They are treated like static functions." +msgstr "" +"Gtk-doc presume que todos os símbolos (macros, funções) começando com “_” " +"são privadas. Elas são tratadas como funções estáticas." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1240 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * function_name:\n" +" * @par1: description of parameter 1. These can extend over more than\n" +" * one line.\n" +" * @par2: description of parameter 2\n" +" * @...: a %NULL-terminated list of bars\n" +" *\n" +" * The function description goes here. You can use @par1 to refer to parameters\n" +" * so that they are highlighted in the output. You can also use %constant\n" +" * for constants, function_name2() for functions and #GtkWidget for links to\n" +" * other declarations (which may be documented elsewhere).\n" +" *\n" +" * Returns: an integer.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Use other_function() instead.\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * nome_da_função:\n" +" * @par1: descrição do parâmetro 1. Esta pode se estender por mais de\n" +" * uma linha.\n" +" * @par2: descrição do parâmetro 2\n" +" * @...: uma lista de bars terminada em %NULL\n" +" *\n" +" * A descrição da função vai aqui. Você pode usar @par1 para se referir a parâmetros\n" +" * de forma que eles ficam em destaque na saída. Você também pode usar %constant\n" +" * para constantes, nome_da_função2() para funções e #GtkWidget para links para\n" +" * outras declarações (que pode ser documentada em outro lugar).\n" +" *\n" +" * Returns: um inteiro.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Use outra_função() em seu lugar.\n" +" */\n" + +#. (itstool) path: variablelist/title +#: C/index.docbook:1261 +msgid "Function tags" +msgstr "Tags de função" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1262 C/index.docbook:1469 +msgid "Returns:" +msgstr "Returns:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1264 +msgid "Paragraph describing the returned result." +msgstr "Parágrafo descrevendo o resultado retornado." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1269 +msgid "@...:" +msgstr "@...:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1271 +msgid "" +"In case the function has variadic arguments, you should use this tag " +"(@Varargs: does also work for historic reasons)." +msgstr "" +"No caso da função possuir argumentos variados, você deveria usar esta tag " +"(@Varargs: também funciona por motivos de histórico)." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1281 C/index.docbook:1283 +msgid "Property comment block" +msgstr "Bloco de comentário de propriedade" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1284 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * SomeWidget:some-property:\n" +" *\n" +" * Here you can document a property.\n" +" */\n" +"g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);\n" +msgstr "" +"\n" +"/**\n" +" * AlgumWidget:alguma-propriedade:\n" +" *\n" +" * Aqui você pode documentar uma propriedade.\n" +" */\n" +"g_object_propriedade_install_classe (object_classe, PROP_ALGUMA_PROPRIEDADE, ...);\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1296 C/index.docbook:1315 +msgid "Signal comment block" +msgstr "Bloco de comentário de sinal" + +#. (itstool) path: listitem/para +#: C/index.docbook:1302 +msgid "" +"Document when the signal is emitted and whether it is emitted before or " +"after other signals." +msgstr "" +"Documente quando o sinal é emitido e se ele é emitido antes ou após outros " +"sinais." + +#. (itstool) path: listitem/para +#: C/index.docbook:1308 +msgid "Document what an application might do in the signal handler." +msgstr "Documente o que um aplicativo pode fazer no manipulador do sinal." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1316 +#, no-wrap +#| msgid "" +#| "\n" +#| "/**\n" +#| " * FooWidget::foobarized:\n" +#| " * @widget: the widget that received the signal\n" +#| " * @foo: some foo\n" +#| " * @bar: some bar\n" +#| " *\n" +#| " * The ::foobarized signal is emitted each time someone tries to foobarize @widget.\n" +#| " */\n" +#| "foo_signals[FOOBARIZE] =\n" +#| " g_signal_new (\"foobarize\",\n" +#| " ...\n" +msgid "" +"\n" +"/**\n" +" * FooWidget::foobarized:\n" +" * @widget: the widget that received the signal\n" +" * @foo: some foo\n" +" * @bar: some bar\n" +" *\n" +" * The ::foobarized signal is emitted each time someone tries to foobarize @widget.\n" +" */\n" +"foo_signals[FOOBARIZED] =\n" +" g_signal_new (\"foobarized\",\n" +" ...\n" +msgstr "" +"\n" +"/**\n" +" * FooWidget::foobarizado:\n" +" * @widget: o widget que recebeu o sinal\n" +" * @foo: algum foo\n" +" * @bar: algum bar\n" +" *\n" +" * O sinal ::foobarized é emitido cada vez que alguém tenta foobarizar " +"@widget.\n" +" */\n" +"foo_sinais[FOOBARIZADO] =\n" +" g_signal_novo (\"foobarizado\",\n" +" ...\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1333 C/index.docbook:1334 +msgid "Struct comment block" +msgstr "Bloco de comentário de struct" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1335 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: some #gboolean\n" +" *\n" +" * This is the best widget, ever.\n" +" */\n" +"typedef struct _FooWidget {\n" +" GtkWidget parent_instance;\n" +"\n" +" gboolean bar;\n" +"} FooWidget;\n" +msgstr "" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: algum #gboolean\n" +" *\n" +" * Este é o melhor widget, já mais visto.\n" +" */\n" +"typedef struct _FooWidget {\n" +" GtkWidget parent_intance;\n" +"\n" +" gboolean bar;\n" +"} FooWidget;\n" + +#. (itstool) path: sect2/para +#: C/index.docbook:1350 +msgid "" +"Use /*< private >*/ before the private struct fields you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"Use /*< private >*/ antes dos campos da struct privada " +"que você deseja esconder. Use /*< public >*/ para o " +"comportamento inverso." + +#. (itstool) path: sect2/para +#: C/index.docbook:1356 +msgid "" +"If the first field is \"g_iface\", \"parent_instance\" or \"parent_class\" " +"it will be considered private automatically and doesn't need to be mentioned " +"in the comment block." +msgstr "" +"Se o primeiro campo for “g_iface”, “parent_instance” ou “parent_class”, ele " +"será automaticamente considerado como privado e não precisará ser mencionado " +"no bloco de comentário." + +#. (itstool) path: sect2/para +#: C/index.docbook:1362 +msgid "" +"Struct comment blocks can also be used for GObjects and GObjectClasses. It " +"is usually a good idea to add a comment block for a class, if it has " +"vmethods (as this is how they can be documented). For the GObject itself one " +"can use the related section docs, having a separate block for the instance " +"struct would be useful if the instance has public fields. One disadvantage " +"here is that this creates two index entries of the same name (the structure " +"and the section)." +msgstr "" +"Blocos de comentário de struct também podem ser usados para GObjects e " +"GObjectClasses. É normalmente uma boa ideia adicionar um bloco de comentário " +"para uma classe, se ela possui vmethods (pois assim é como elas podem ser " +"documentadas). Para o próprio GOBject pode-se usar os documentos de seção " +"relacionados, tendo um bloco separado para a instância do struct seria útil " +"se a instância possui campos públicos. Uma desvantagem aqui é que isso cria " +"duas entradas no índice do mesmo nome (a estrutura e a seção)." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1374 C/index.docbook:1375 +msgid "Enum comment block" +msgstr "Bloco de comentário de enum" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1376 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: something foo\n" +" * @SOMETHING_BAR: something bar\n" +" *\n" +" * Enum values used for the thing, to specify the thing.\n" +" */\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" +msgstr "" +"\n" +"/**\n" +" * Alguma coisa:\n" +" * @ALGUMACOISA_FOO: alguma coisa foo\n" +" * @ALGUMCAOISA_BAR: alguma coisa bar\n" +" *\n" +" * Valores de enum usados para a coisa, para especificar a coisa.\n" +" */\n" +"typedef enum {\n" +" ALGUMACOISA_FOO,\n" +" ALGUMACOISA_BAR,\n" +" /*< private >*/\n" +" ALGUMACOISA_CONTAGEM\n" +"} Alguma coisa;\n" + +#. (itstool) path: sect2/para +#: C/index.docbook:1393 +msgid "" +"Use /*< private >*/ before the private enum values you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"Use /*< private >*/ antes de valores privados de enum que " +"você deseja ocultar. Use /*< public >*/ para o " +"comportamento inverso." + +#. (itstool) path: sect1/title +#: C/index.docbook:1404 +msgid "Inline program documentation" +msgstr "Documentação de programa em-linha" + +#. (itstool) path: sect1/para +#: C/index.docbook:1405 +msgid "" +"You can document programs and their commandline interface using inline " +"documentation." +msgstr "" +"Você pode documentar programas e sua interface de linha de comando usando " +"documentação em-linha." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1411 +msgid "Tags" +msgstr "Tags" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1413 +msgid "PROGRAM" +msgstr "PROGRAM" + +#. (itstool) path: listitem/para +#: C/index.docbook:1416 +msgid "Defines the start of a program documentation." +msgstr "Define o início da documentação de um programa." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1423 +msgid "@short_description:" +msgstr "@short_description:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1425 +msgid "Defines a short description of the program. (Optional)" +msgstr "Define uma descrição breve do programa. (Opcional)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1432 +msgid "@synopsis:" +msgstr "@synopsis:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1434 +msgid "" +"Defines the arguments, or list of arguments that the program can take. " +"(Optional)" +msgstr "" +"Define os argumentos, ou lista de argumentos, que o programa pode receber. " +"(Opcional)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1442 +msgid "@see_also:" +msgstr "@see_also:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1444 +msgid "See Also manual page section. (Optional)" +msgstr "A seção “Veja Também” (See Also) de páginas de manual. (Opcional)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1451 +msgid "@arg:" +msgstr "@arg:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1453 +msgid "Argument(s) passed to the program and their description. (Optional)" +msgstr "Argumento(s) passado(s) para o programa e sua descrição. (Opcional)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1460 +msgid "Description:" +msgstr "Description:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1462 +msgid "A longer description of the program." +msgstr "Um descrição mais longa do programa." + +#. (itstool) path: listitem/para +#: C/index.docbook:1471 +msgid "Specificy what value(s) the program returns. (Optional)" +msgstr "Especifique quais valor(es) o programa retorna. (Opcional)" + +#. (itstool) path: sect2/title +#: C/index.docbook:1480 +msgid "Example of program documentation." +msgstr "Exemplo de documentação de programa." + +#. (itstool) path: example/title +#: C/index.docbook:1481 +msgid "Program documentation block" +msgstr "Bloco de documentação de programa" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1482 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * PROGRAM:test-program\n" +" * @short_description: A test program\n" +" * @synopsis: test-program [*OPTIONS*...] --arg1 *arg* *FILE*\n" +" * @see_also: test(1)\n" +" * @--arg1 *arg*: set arg1 to *arg*\n" +" * @--arg2 *arg*: set arg2 to *arg*\n" +" * @-v, --version: Print the version number\n" +" * @-h, --help: Print the help message\n" +" *\n" +" * Long description of program.\n" +" *\n" +" * Returns: Zero on success, non-zero on failure\n" +" */\n" +"int main(int argc, char *argv[])\n" +"{\n" +"\treturn 0;\n" +"}\n" +msgstr "" +"\n" +"/**\n" +" * PROGRAM:programa-teste\n" +" * @short_description: Um programa teste\n" +" * @synopsis: programa-teste [*OPÇÕES*...] --arg1 *arg* *ARQUIVO*\n" +" * @see_also: teste(1)\n" +" * @--arg1 *arg*: define arg1 para *arg*\n" +" * @--arg2 *arg*: define arg2 para *arg*\n" +" * @-v, --version: Exibe o número da versão\n" +" * @-h, --help: Exibe a mensagem de ajuda\n" +" *\n" +" * Descrição longa do programa.\n" +" *\n" +" * Returns: Zero no caso de sucesso, não-zero no caso de falha\n" +" */\n" +"int main(int argc, char *argv[])\n" +"{\n" +"\treturn 0;\n" +"}\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:1508 +msgid "Useful DocBook tags" +msgstr "Tags úteis do DocBook" + +#. (itstool) path: sect1/para +#: C/index.docbook:1510 +msgid "" +"Here are some DocBook tags which are most useful when documenting the code." +msgstr "" +"Aqui estão algumas tags de DocBook que são muito úteis quando se está " +"documentado o código." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1519 +#, no-wrap +msgid "" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hash Tables</link>\n" +msgstr "" +"\n" +"<link linkend=\"glib-Hash-Tables\">Tabela de hashes</link>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1515 +msgid "" +"To link to another section in the GTK docs: <_:informalexample-1/> The " +"linkend is the SGML/XML id on the top item of the page you want to link to. " +"For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and " +"then the page title (\"Hash Tables\"). For widgets it is just the class " +"name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" +"Para vincular a outra seção nas documentações do GTK: <_:informalexample-1/> " +"O fim do link é o ID do SGML/XML no item superior da página a qual você " +"deseja vincular. Para a maioria das páginas isto é atualmente a parte " +"(“gtk”, “gdk”, “glib”) e, então, o título da página (“Hash Tables”). Para os " +"widgets isso é apenas o nome da classe. Espaços e sublinhados são " +"convertidos em '-' para estar em conformidade com SGML/XML." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1532 +#, no-wrap +msgid "" +"\n" +"<function>...</function>\n" +msgstr "" +"\n" +"<function>...</function>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1529 +msgid "" +"To refer to an external function, e.g. a standard C function: <_:" +"informalexample-1/>" +msgstr "" +"Para se referir a uma função externa, como, por exemplo, uma função padrão " +"do C: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1541 +#, no-wrap +msgid "" +"\n" +"<example>\n" +" <title>Using a GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" +msgstr "" +"\n" +"<example>\n" +" <title>Usando uma GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1552 +#, no-wrap +msgid "" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" +msgstr "" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1538 +msgid "" +"To include example code: <_:informalexample-1/> or possibly this, for very " +"short code fragments which don't need a title: <_:informalexample-2/> For " +"the latter GTK-Doc also supports an abbreviation: |[ ... ]|" +msgstr "" +"Para incluir um código de exemplo: <_:informalexample-1/> ou possivelmente " +"este, para fragmentos de código bem curtos que não precisam de um título: <_:" +"informalexample-2/> Para este último, GTK-Doc também possui suporte a uma " +"abreviação: |[ ... ]|" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1571 +#, no-wrap +msgid "" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" +msgstr "" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1568 +msgid "To include bulleted lists: <_:informalexample-1/>" +msgstr "Para incluir listas com marcadores: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1591 +#, no-wrap +msgid "" +"\n" +"<note>\n" +" <para>\n" +" Make sure you free the data after use.\n" +" </para>\n" +"</note>\n" +msgstr "" +"\n" +"<note>\n" +" <para>\n" +" Certifique-se de que você liberou os dados após usá-los.\n" +" </para>\n" +"</note>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1588 +msgid "" +"To include a note which stands out from the text: <_:informalexample-1/>" +msgstr "Para incluir uma nota que fique fora do texto: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1604 +#, no-wrap +msgid "" +"\n" +"<type>unsigned char</type>\n" +msgstr "" +"\n" +"<type>unsigned char</type>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1601 +msgid "To refer to a type: <_:informalexample-1/>" +msgstr "Para se referir a um tipo: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1613 +#, no-wrap +msgid "" +"\n" +"<structname>XFontStruct</structname>\n" +msgstr "" +"\n" +"<structname>XFontStruct</structname>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1610 +msgid "" +"To refer to an external structure (not one described in the GTK docs): <_:" +"informalexample-1/>" +msgstr "" +"Para se referir a uma estrutura externa (não uma descrita nos documentos do " +"GTK): <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1622 +#, no-wrap +msgid "" +"\n" +"<structfield>len</structfield>\n" +msgstr "" +"\n" +"<structfield>len</structfield>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1619 +msgid "To refer to a field of a structure: <_:informalexample-1/>" +msgstr "Para se referir a um campo de uma estrutura: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1631 +#, no-wrap +msgid "" +"\n" +"<classname>GtkWidget</classname>\n" +msgstr "" +"\n" +"<classname>GtkWidget</classname>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1628 +msgid "" +"To refer to a class name, we could possibly use: <_:informalexample-1/> but " +"you'll probably be using #GtkWidget instead (to automatically create a link " +"to the GtkWidget page - see the " +"abbreviations)." +msgstr "" +"Para se referir a um nome de classe, nós possivelmente poderíamos usar: <_:" +"informalexample-1/> mas você provavelmente vai estar usando #GtkWidget em " +"vez disso (para criar automaticamente um link para a página do GtkWidget - " +"veja as abreviações)." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1642 +#, no-wrap +msgid "" +"\n" +"<emphasis>This is important</emphasis>\n" +msgstr "" +"\n" +"<emphasis>Isso é importante</emphasis>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1639 +msgid "To emphasize text: <_:informalexample-1/>" +msgstr "Para enfatizar um texto: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1651 +#, no-wrap +msgid "" +"\n" +"<filename>/home/user/documents</filename>\n" +msgstr "" +"\n" +"<filename>/home/usuario/documentos</filename>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1648 +msgid "For filenames use: <_:informalexample-1/>" +msgstr "Para nome de arquivos use: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1660 +#, no-wrap +msgid "" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" +msgstr "" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1657 +msgid "To refer to keys use: <_:informalexample-1/>" +msgstr "Para se referir a chaves use: <_:informalexample-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:1670 +msgid "Filling the extra files" +msgstr "Preenchendo os arquivos extras" + +#. (itstool) path: chapter/para +#: C/index.docbook:1672 +msgid "" +"There are a couple of extra files, that need to be maintained along with the " +"inline source code comments: <package>.types, " +"<package>-docs.xml (in the past .sgml), " +"<package>-sections.txt." +msgstr "" +"Há alguns poucos arquivos extras, que precisam ser mantidos junto com os " +"comentários inseridos no código fonte: <pacote>.types, <pacote>-docs.xml (no passado, .sgml), " +"<pacote>-sections.txt." + +#. (itstool) path: sect1/title +#: C/index.docbook:1681 +msgid "Editing the types file" +msgstr "Editando o arquivo de tipos" + +#. (itstool) path: sect1/para +#: C/index.docbook:1683 +msgid "" +"If your library or application includes GObjects, you want their signals, " +"arguments/parameters and position in the hierarchy to be shown in the " +"documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <" +"package>.types file." +msgstr "" +"Se sua biblioteca ou aplicativo inclui GObjects, você deseja que seus " +"sinais, argumentos/parâmetros e posição na hierarquia sejam mostrados na " +"documentação. Tudo que você precisa fazer é listar as funções " +"xxx_get_type junto com seus include dentro do arquivo " +"<pacote>.types." + +#. (itstool) path: example/title +#: C/index.docbook:1692 +msgid "Example types file snippet" +msgstr "Trecho de exemplo de arquivo de tipos" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1693 +#, no-wrap +msgid "" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" +msgstr "" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1704 +msgid "" +"Since GTK-Doc 1.8 gtkdoc-scan can generate this " +"list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in " +"Makefile.am. If you use this approach you should not " +"dist the types file nor have it under version control." +msgstr "" +"Desde o GTK-Doc 1.8, o gtkdoc-scan pode gerar " +"esta lista para você. Basta adicionar “--rebuild-types” a SCAN_OPTIONS no " +"Makefile.am. Se você usar esta abordagem, você não " +"deveria distribuir o arquivo de tipos nem tê-lo sob um controle de versão." + +#. (itstool) path: sect1/title +#: C/index.docbook:1713 +msgid "Editing the master document" +msgstr "Editando o documento mestre" + +#. (itstool) path: sect1/para +#: C/index.docbook:1715 +msgid "" +"GTK-Doc produces documentation in DocBook SGML/XML. When processing the " +"inline source comments, the GTK-Doc tools generate one documentation page " +"per class or module as a separate file. The master document includes them " +"and place them in an order." +msgstr "" +"O Gtk-Doc produz documentação em DocBook SGML/XML. Ao processar os " +"comentários inseridos nos fontes, as ferramentas do GTK-Doc geram uma página " +"de documentação por classe ou módulo como um arquivo separado. O documento " +"mestre os inclui e os coloca em uma ordem." + +#. (itstool) path: sect1/para +#: C/index.docbook:1722 +msgid "" +"While GTK-Doc creates a template master document for you, later runs will " +"not touch it again. This means that one can freely structure the " +"documentation. That includes grouping pages and adding extra pages. GTK-Doc " +"has now a test suite, where also the master-document is recreated from " +"scratch. Its a good idea to look at this from time to time to see if there " +"are some new goodies introduced there." +msgstr "" +"Enquanto o Gtk-Doc cria um modelo de documento mestre para você, execuções " +"posteriores não vão tocá-lo novamente. Isso significa que se pode estruturar " +"a documentação livremente. Isso inclui agrupamento de páginas e adição de " +"páginas extras. O Gtk-Doc agora possui uma suíte de teste, na qual também o " +"documento mestre é recriado do zero. É uma boa ideia verificar isso de tempo " +"em tempo para ver se há itens a serem introduzidos lá." + +#. (itstool) path: tip/para +#: C/index.docbook:1732 +msgid "" +"Do not create tutorials as extra documents. Just write extra chapters. The " +"benefit of directly embedding the tutorial for your library into the API " +"documentation is that it is easy to link for the tutorial to symbol " +"documentation. Apart chances are higher that the tutorial gets updates along " +"with the library." +msgstr "" +"Não crie tutoriais como documentos extras. Apenas escreva capítulos extras. " +"O benefício de embutir diretamente o tutorial para sua biblioteca na " +"documentação da API é que é mais fácil vincular o tutorial a um símbolo da " +"documentação. Além disso, as chances são mais altas que o tutorial obtenha " +"atualizações junto com a biblioteca." + +#. (itstool) path: sect1/para +#: C/index.docbook:1741 +msgid "" +"So what are the things to change inside the master document? For a start is " +"only a little. There are some placeholders (text in square brackets) there " +"which you should take care of." +msgstr "" +"Então, quais são as coisas para se alterar dentro do documento mestre? Para " +"começar é apenas um pouco. Existem alguns mantedores de espaço (texto em " +"colchetes) que você deve cuidar." + +#. (itstool) path: example/title +#: C/index.docbook:1748 +msgid "Master document header" +msgstr "Cabeçalho do documento mestre" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1749 +#, no-wrap +msgid "" +"\n" +"<bookinfo>\n" +" <title>MODULENAME Reference Manual</title>\n" +" <releaseinfo>\n" +" for MODULENAME [VERSION]\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULENAME/index.html\">http://[SERVER]/MODULENAME/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insert title here]</title>\n" +msgstr "" +"\n" +"<bookinfo>\n" +" <title>Manual de referência do NOMEDOMÓDULO</title>\n" +" <releaseinfo>\n" +" for NOMEDOMÓDULO [VERSÃO]\n" +" A última versão desta documentação também pode ser encontrada on-line em\n" +" <ulink role=\"online-location\" url=\"http://[SERVIDOR]/NOMEDOMÓDULO/index.html\">http://[SERVIDOR]/NOMEDOMÓDULO/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insira o título aqui]</title>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1765 +msgid "" +"In addition a few option elements are created in commented form. You can " +"review these and enable them as you like." +msgstr "" +"Além disso, alguns elementos de opção são criados na forma comentada. Você " +"pode revisá-los e habilitá-los como preferir." + +#. (itstool) path: example/title +#: C/index.docbook:1771 +msgid "Optional part in the master document" +msgstr "Parte opcional do documento mestre" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1772 +#, no-wrap +msgid "" +"\n" +" <!-- enable this when you use gobject introspection annotations\n" +" <xi:include href=\"xml/annotation-glossary.xml\"><xi:fallback /></xi:include>\n" +" -->\n" +msgstr "" +"\n" +" <!-- habilite isso se você usa anotações do gobject introspection\n" +" <xi:include href=\"xml/annotation-glossary.xml\"><xi:fallback /></xi:include>\n" +" -->\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1780 +msgid "" +"Finally you need to add new section whenever you introduce one. The gtkdoc-check tool will remind " +"you of newly generated xml files that are not yet included into the doc." +msgstr "" +"Finalmente você precisa adicionar nova seção sempre que você a introduzir. A " +"ferramenta gtkdoc-check " +"vai lembrar você de arquivos xml recentemente gerados que ainda não foram " +"incluídos na documentação." + +#. (itstool) path: example/title +#: C/index.docbook:1788 C/index.docbook:1823 +msgid "Including generated sections" +msgstr "Incluindo seções geradas" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1789 +#, no-wrap +msgid "" +"\n" +" <chapter>\n" +" <title>my library</title>\n" +" <xi:include href=\"xml/object.xml\"/>\n" +" ...\n" +msgstr "" +"\n" +" <chapter>\n" +" <title>minha biblioteca</title>\n" +" <xi:include href=\"xml/object.xml\"/>\n" +" ...\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:1801 +msgid "Editing the section file" +msgstr "Editando o arquivo de seção" + +#. (itstool) path: sect1/para +#: C/index.docbook:1803 +msgid "" +"The section file is used to organise the documentation output by GTK-Doc. " +"Here one specifies which symbol belongs to which module or class and control " +"the visibility (public or private)." +msgstr "" +"O arquivo de seção é usado para organizar a saída da documentação pelo GTK-" +"Doc. Aqui pode-se especificar qual símbolo pertence a qual módulo ou classe " +"e controla a visibilidade (pública ou privada)." + +#. (itstool) path: sect1/para +#: C/index.docbook:1809 +msgid "" +"The section file is a plain text file with tags delimiting sections. Blank " +"lines are ignored and lines starting with a '#' are treated as comment lines." +msgstr "" +"O arquivo de seção é uma arquivo texto simples com seções delimitadas por " +"tags. Linhas em branco são ignoradas e linhas começando com um “#” são " +"tratadas como linhas de comentários." + +#. (itstool) path: note/para +#: C/index.docbook:1816 +msgid "" +"While the tags make the file look like xml, it is not. Please do not close " +"tags like <SUBSECTION>." +msgstr "" +"Enquanto as tags fazem o arquivo se parecer xml, ele não é. Por favor, não " +"feche tags como <SUBSECTION>." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1824 +#, no-wrap +msgid "" +"\n" +"<INCLUDE>libmeep/meep.h</INCLUDE>\n" +"\n" +"<SECTION>\n" +"<FILE>meepapp</FILE>\n" +"<TITLE>MeepApp</TITLE>\n" +"MeepApp\n" +"<SUBSECTION Standard>\n" +"MEEP_APP\n" +"...\n" +"MeepAppClass\n" +"meep_app_get_type\n" +"</SECTION>\n" +msgstr "" +"\n" +"<INCLUDE>libmeep/meep.h</INCLUDE>\n" +"\n" +"<SECTION>\n" +"<FILE>meepapp</FILE>\n" +"<TITLE>MeepApp</TITLE>\n" +"MeepApp\n" +"<SUBSECTION Standard>\n" +"MEEP_APP\n" +"...\n" +"MeepAppClass\n" +"meep_app_get_type\n" +"</SECTION>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1841 +msgid "" +"The <FILE> ... </FILE> tag is used to specify the file name, " +"without any suffix. For example, using '<FILE>gnome-config</" +"FILE>' will result in the section declarations being output in the " +"template file tmpl/gnome-config.sgml, which will be " +"converted into the DocBook XML file xml/gnome-config.sgml or the DocBook XML file xml/gnome-config.xml. " +"(The name of the HTML file is based on the module name and the section " +"title, or for GObjects it is based on the GObjects class name converted to " +"lower case)." +msgstr "" +"A tag <FILE> ... </FILE> é usada para especificar o nome de " +"arquivo, sem qualquer sufixo. Por exemplo, ao usar “<FILE>gnome-" +"config</FILE>” resultará nas declarações da seção serem retornadas no " +"arquivo modelo tmpl/gnome-config.sgml, o qual será " +"convertido no arquivo DocBook XML xml/gnome-config.sgml " +"ou no arquivo DocBook XML xml/gnome-config.xml. (O nome " +"do arquivo HTML é baseado no nome do módulo e no título da seção ou, para " +"GObjects, é baseado no nome da classe GObjects convertidos os caracteres " +"para minúsculos)." + +#. (itstool) path: sect1/para +#: C/index.docbook:1853 +msgid "" +"The <TITLE> ... </TITLE> tag is used to specify the title of the " +"section. It is only useful before the templates (if used) are initially " +"created, since the title set in the template file overrides this. Also if " +"one uses SECTION comment in the sources, this is obsolete." +msgstr "" +"A tag <TITLE> ... </TITLE> é usada para especificar o título da " +"seção. Ela é usada apenas antes do modelo (se usado) ser criado " +"inicialmente, já que o título definido no arquivo de modelo sobrescreve " +"este. Também, se for usado o comentário SECTION nos fontes, isso está " +"obsoleto." + +#. (itstool) path: sect1/para +#: C/index.docbook:1860 +msgid "" +"You can group items in the section by using the <SUBSECTION> tag. " +"Currently it outputs a blank line between subsections in the synopsis " +"section. You can also use <SUBSECTION Standard> for standard GObject " +"declarations (e.g. the functions like g_object_get_type and macros like " +"G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the " +"documentation. You can also use <SUBSECTION Private> for private " +"declarations which will not be output (it is a handy way to avoid warning " +"messages about unused declarations). If your library contains private types " +"which you don't want to appear in the object hierarchy and the list of " +"implemented or required interfaces, add them to a Private subsection. " +"Whether you would place GObject and GObjectClass like structs in public or " +"Standard section depends if they have public entries (variables, vmethods)." +msgstr "" +"Você pode agrupar itens na seção usando a tag <SUBSECTION>. " +"Atualmente, ela retorna uma linha em branco entre as subseções na seção de " +"sinopse. Você também pode usar <SUBSECTION Standard> para declarações " +"padrão do GObject (ex.: as funções como g_object_get_type e macros como " +"G_OBJECT(), G_IS_OBJECT() etc.). Atualmente, estas são deixadas fora da " +"documentação. Você também pode usar <SUBSECTION Private> para " +"declarações privadas que não serão retornadas (é uma forma prática de evitar " +"mensagens de aviso sobre declarações não usadas). Se sua biblioteca contém " +"tipos privados que você não deseja que apareçam na hierarquia do objeto e a " +"linha de classes implementadas ou exigidas, adicione-as a uma subseção " +"privada. Se você colocaria o GObject e GObjectClass como structs numa seção " +"padrão ou pública depende se há entradas públicas (variáveis, vmethods)." + +#. (itstool) path: sect1/para +#: C/index.docbook:1879 +msgid "" +"You can also use <INCLUDE> ... </INCLUDE> to specify the " +"#include files which are shown in the synopsis sections. It contains a comma-" +"separate list of #include files, without the angle brackets. If you set it " +"outside of any sections, it acts for all sections until the end of the file. " +"If you set it within a section, it only applies to that section." +msgstr "" +"Você também pode usar <INCLUDE> ... </INCLUDE> para especificar " +"os arquivos #include que são mostrados nas seções de sinopse. Ela contém uma " +"lista separada por vírgula de arquivos #include, sem os sinais de maior que " +"e menor que. Se você define-a fora de quaisquer seções, ela age para todas " +"as seções até o fim do arquivo. Se você define-a em uma seção, ela só vai se " +"aplicar àquela seção." + +#. (itstool) path: chapter/title +#: C/index.docbook:1893 +msgid "Controlling the result" +msgstr "Controlando o resultado" + +#. (itstool) path: chapter/para +#: C/index.docbook:1895 +msgid "" +"A GTK-Doc run generates report files inside the documentation directory. The " +"generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and " +"<package>-unused.txt. All those are plain text " +"files that can be viewed and postprocessed easily." +msgstr "" +"Uma execução do GTK-Doc gera arquivos de relatórios dentro do diretório de " +"documentação. Os arquivos gerados são chamados: <pacote>-" +"undocumented.txt, <pacote>-undeclared.txt e <pacote>-unused.txt. Todos eles são " +"arquivos texto simples que podem ser facilmente visualizados e pós-" +"processados." + +#. (itstool) path: chapter/para +#: C/index.docbook:1904 +msgid "" +"The <package>-undocumented.txt file starts with " +"the documentation coverage summary. Below are two sections divided by blank " +"lines. The first section lists undocumented or incomplete symbols. The " +"second section does the same for section docs. Incomplete entries are those, " +"which have documentation, but where e.g. a new parameter has been added." +msgstr "" +"O arquivo <pacote>-undocumented.txt começa com um " +"sumário de cobertura da documentação. Abaixo estão duas seções divididas por " +"linhas brancas. A primeira seção lista símbolos não documentados e " +"incompletos. A segunda seção faz o mesmo para os documentos de seção. " +"Entradas incompletas são aquelas que foram documentadas, mas nas quais, por " +"exemplo, um novo parâmetro foi adicionado." + +#. (itstool) path: chapter/para +#: C/index.docbook:1913 +msgid "" +"The <package>-undeclared.txt file lists symbols " +"given in the <package>-sections.txt but not found " +"in the sources. Check if they have been removed or if they are misspelled." +msgstr "" +"O arquivo <pacote>-undeclared.txt lista símbolos " +"dados no <pacote>-sections.txt, mas não " +"encontrados nos fontes. Verifique se eles foram removidos ou se eles foram " +"escritos incorretamente." + +#. (itstool) path: chapter/para +#: C/index.docbook:1920 +msgid "" +"The <package>-unused.txt file lists symbol names, " +"where the GTK-Doc scanner has found documentation, but does not know where " +"to put it. This means that the symbol has not yet been added to the " +"<package>-sections.txt file." +msgstr "" +"O arquivo <pacote>-unused.txt lista nomes de " +"símbolo cuja documentação foi localizada na varredura do GTK-Doc, mas que " +"não sabe onde colocá-los. Isso significa que o símbolo não foi adicionado " +"ainda ao arquivo <pacote>-sections.txt." + +#. (itstool) path: tip/para +#: C/index.docbook:1928 +msgid "" +"Enable or add the line in Makefile." +"am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during " +"make check run." +msgstr "" +"Habilite ou adicione a linha no " +"Makefile.am. Se pelo menos GTK-Doc 1.9 estiver instalado, isso vai executar " +"verificações de sanidade durante a execução de make check." + +#. (itstool) path: chapter/para +#: C/index.docbook:1935 +msgid "" +"One can also look at the files produced by the source code scanner: " +"<package>-decl-list.txt and <" +"package>-decl.txt. The first one can be compared with the " +"section file if that is manually maintained. The second lists all " +"declarations from the headers. If a symbol is missing one could check if " +"this file contains it." +msgstr "" +"Também pode-se buscar nos arquivos produzidos pela varredura do código " +"aberto: <pacote>-decl-list.txt e <" +"pacote>-decl.txt. O primeiro pode ser comparado com o arquivo " +"de seção, se ele for mantido manualmente. O segundo lista todas as " +"declarações de cabeçalhos. Se um símbolo está faltando, pode-se verificar se " +"este arquivo o contém." + +#. (itstool) path: chapter/para +#: C/index.docbook:1944 +msgid "" +"If the project is GObject based, one can also look into the files produced " +"by the object scanner: <package>.args.txt, " +"<package>.hierarchy.txt, <" +"package>.interfaces.txt, <package>." +"prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask GTK-Doc " +"to keep the intermediate scanner file for further analysis, by running it as " +"GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" +"Se o projeto é baseado em GObject, pode-se também procurar nos arquivos " +"produzidos pela varredura de objetos: <pacote>.args.txt, <pacote>.hierarchy.txt, <" +"pacote>.interfaces.txt, <pacote>.prerequisites." +"txt e <pacote>.signals.txt. Se há " +"símbolos faltando em qualquer um deles, pode-se exigir que o GTK-Doc " +"mantenha o arquivo intermediário de varredura para análise posterior, " +"executando GTK_DOC_KEEP_INTERMEDIATE=1 make." + +#. (itstool) path: chapter/title +#: C/index.docbook:1959 +msgid "Modernizing the documentation" +msgstr "Modernizando a documentação" + +#. (itstool) path: chapter/para +#: C/index.docbook:1961 +msgid "" +"GTK-Doc has been around for quite some time. In this section we list new " +"features together with the version since when it is available." +msgstr "" +"GTK-Doc está por aí já faz um tempo. Nesta seção, nós listamos novas " +"funcionalidades juntamente da versão desde a qual está disponível." + +#. (itstool) path: sect1/title +#: C/index.docbook:1967 +msgid "GTK-Doc 1.9" +msgstr "GTK-Doc 1.9" + +#. (itstool) path: sect1/para +#: C/index.docbook:1969 +msgid "" +"When using xml instead of sgml, one can actually name the master document " +"<package>-docs.xml." +msgstr "" +"Ao usar xml em vez de sgml, na verdade, é possível nomear o documento mestre " +"<pacote>-docs.xml." + +#. (itstool) path: sect1/para +#: C/index.docbook:1974 +msgid "" +"This version supports in " +"Makefile.am. When this is enabled, the <" +"package>-sections.txt is autogenerated and can be removed from " +"the vcs. This only works nicely for projects that have a very regular " +"structure (e.g. each .{c,h} pair will create new section). If one organize a " +"project close to that updating a manually maintained section file can be as " +"simple as running meld <package>-decl-list.txt <package>-" +"sections.txt." +msgstr "" +"Essa versão provê suporte " +"em Makefile.am. Quando esta opção está habilitada, o " +"<package>-sections.txt é auto-gerado e pode ser " +"removido a partir do VCS. Isso só funciona corretamente para projetos que " +"têm uma estrutura muito regular (ex.: cada par .{c,h} vai criar uma nova " +"seção). Se uma pessoa organiza um projeto próximo a isso atualizando um " +"arquivo de seção mantido manualmente pode ser tão simples quanto executando " +"meld <package>-decl-list.txt <package>-sections.txt." + +#. (itstool) path: sect1/para +#: C/index.docbook:1985 +msgid "" +"Version 1.8 already introduced the syntax for documenting sections in the " +"sources instead of the separate files under tmpl. This version adds options to switch the whole doc module " +"to not use the extra tmpl build step at all, by using in configure.ac. If you don't have a " +"tmpl checked into your source " +"control system and haven't yet switched, just add the flag to " +"configure.ac and you are done." +msgstr "" +"A versão 1.8 já introduziu a sintaxe para documentação seções nos fontes em " +"vez dos arquivos separados sob tmpl. Essa versão adiciona opções para alternar todo o módulo de " +"documentação para não usar a etapa de compilação extra do tmpl, usando " +" no configure.ac. Se " +"você não possui um tmpl no seu " +"sistema de controle de versão e ainda não trocou, basta adicionar uma opção " +"ao configure.ac e está resolvido." + +#. (itstool) path: sect1/title +#: C/index.docbook:1997 +msgid "GTK-Doc 1.10" +msgstr "GTK-Doc 1.10" + +#. (itstool) path: sect1/para +#: C/index.docbook:1999 +msgid "" +"This version supports in " +"Makefile.am. When this is enabled, the <" +"package>.types is autogenerated and can be removed from the " +"vcs. When using this feature it is important to also setup the " +"IGNORE_HFILES in Makefile.am for " +"code that is build conditionally." +msgstr "" +"Essa versão provê suporte no " +"Makefile.am. Quando isso está habilitado, o " +"<package>.types é auto-gerado e pode ser removido " +"do VCS. Quando usando essa funcionalidade é importante também configurar o " +"IGNORE_HFILES no Makefile.am para " +"código que é compilado condicionalmente." + +#. (itstool) path: sect1/title +#: C/index.docbook:2010 +msgid "GTK-Doc 1.16" +msgstr "GTK-Doc 1.16" + +#. (itstool) path: example/title +#: C/index.docbook:2016 +msgid "Enable gtkdoc-check" +msgstr "Habilitar gtkdoc-check" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2017 +#, no-wrap +msgid "" +"\n" +"if ENABLE_GTK_DOC\n" +"TESTS_ENVIRONMENT = \\\n" +" DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \\\n" +" SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)\n" +"TESTS = $(GTKDOC_CHECK)\n" +"endif\n" +msgstr "" +"\n" +"if ENABLE_GTK_DOC\n" +"TESTS_ENVIRONMENT = \\\n" +" DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \\\n" +" SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)\n" +"TESTS = $(GTKDOC_CHECK)\n" +"endif\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:2012 +msgid "" +"This version includes a new tool called gtkdoc-check. This tool can run a " +"set of sanity checks on your documentation. It is enabled by adding these " +"lines to the end of Makefile.am. <_:example-1/>" +msgstr "" +"Essa versão inclui uma nova ferramenta chamada gtkdoc-check. Essa ferramenta " +"pode executar um conjunto de verificações de sanidade na sua documentação. " +"Ela é habilitada adicionando essas linhas ao final do Makefile.am. <_:example-1/>" + +#. (itstool) path: sect1/title +#: C/index.docbook:2030 +msgid "GTK-Doc 1.20" +msgstr "GTK-Doc 1.20" + +#. (itstool) path: sect1/para +#: C/index.docbook:2032 +msgid "" +"Version 1.18 brought some initial markdown support. Using markdown in doc " +"comments is less intrusive than writing docbook xml. This version improves a " +"lot on this and add a lot more styles. The section that explains the comment syntax has all the details." +msgstr "" +"A versão 1.18 trouxe algum suporte inicial a markdown. O uso de markdown em " +"comentários de documentação é menos intrusiva do que escrever xml de " +"docbook. Essa versão melhora em muito nisso e adiciona muito mais estilos. A " +"seção que explica a sintaxe de " +"comentário tem todos os detalhes." + +#. (itstool) path: sect1/title +#: C/index.docbook:2042 +msgid "GTK-Doc 1.25" +msgstr "GTK-Doc 1.25" + +#. (itstool) path: example/title +#: C/index.docbook:2052 +msgid "Use pre-generated entities" +msgstr "Usando entradas geradas previamente" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2053 +#, no-wrap +msgid "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.3//EN\"\n" +" \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"\n" +"[\n" +" <!ENTITY % local.common.attrib \"xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'\">\n" +" <!ENTITY % gtkdocentities SYSTEM \"xml/gtkdocentities.ent\">\n" +" %gtkdocentities;\n" +"]>\n" +"<book id=\"index\" xmlns:xi=\"http://www.w3.org/2003/XInclude\">\n" +" <bookinfo>\n" +" <title>&package_name; Reference Manual</title>\n" +" <releaseinfo>\n" +" for &package_string;.\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/&package_name;/index.html\">http://[SERVER]/&package_name;/</ulink>.\n" +" </releaseinfo>\n" +" </bookinfo>\n" +msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.3//EN\"\n" +" \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"\n" +"[\n" +" <!ENTITY % local.common.attrib \"xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'\">\n" +" <!ENTITY % gtkdocentities SYSTEM \"xml/gtkdocentities.ent\">\n" +" %gtkdocentities;\n" +"]>\n" +"<book id=\"index\" xmlns:xi=\"http://www.w3.org/2003/XInclude\">\n" +" <bookinfo>\n" +" <title>Manual de referência do &nome-pacote;</title>\n" +" <releaseinfo>\n" +" para &versão-pacote;.\n" +" A última versão desta documentação pode ser encontra on-line em\n" +" <ulink role=\"online-location\" url=\"http://[SERVIDOR]/&nome-pacote;/index.html\">http://[SERVIDOR]/&nome-pacote;/</ulink>.\n" +" </releaseinfo>\n" +" </bookinfo>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:2044 +msgid "" +"The makefiles shipped with this version generate an entity file at " +"xml/gtkdocentities.ent, containing entities for e.g. " +"package_name and package_version. You can use this e.g. in the main xml file " +"to avoid hardcoding the version number. Below is an example that shows how " +"the entity file is included and how the entities are used. The entities can " +"also be used in all generated files, GTK-Doc will use the same xml header in " +"generated xml files. <_:example-1/>" +msgstr "" +"Os makefiles fornecidos com esta versão geram um arquivo de entidade em " +"xml/gtkdocentities.ent, contendo entidades para, por " +"exemplo, nome-pacote e versão-pacote. Você pode usar isto, por exemplo, no " +"arquivo xml principal para evitar ter que inserir diretamente o número de " +"versão. Logo abaixo encontra-se um exemplo que mostra como o arquivo de " +"entidade é incluído e como as entidades são usadas. As entidades também " +"podem ser usadas em todos arquivos gerados, GTK-Doc usará o mesmo cabeçalho " +"xml nos arquivos xml gerados. <_:example-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:2078 +msgid "Documenting other interfaces" +msgstr "Documentando outras interfaces" + +#. (itstool) path: chapter/para +#: C/index.docbook:2080 +msgid "" +"So far we have been using GTK-Doc to document the API of code. The next " +"sections contain suggestions how the tools can be used to document other " +"interfaces too." +msgstr "" +"Até agora nós temos usado o GTK-Doc para documentar a API de um código. As " +"próximas sessões contêm sugestões de como as ferramentas podem ser usadas " +"para documentar outras interfaces, também." + +#. (itstool) path: sect1/title +#: C/index.docbook:2087 +msgid "Command line options and man pages" +msgstr "Opções de linha de comando e de páginas man" + +# RefEntry é uma página de referência do DocBook (http://www.docbook.org/tdg/en/html/refentry.html) +#. (itstool) path: sect1/para +#: C/index.docbook:2089 +msgid "" +"As one can generate man pages for a docbook refentry as well, it sounds like " +"a good idea to use it for that purpose. This way the interface is part of " +"the reference and one gets the man-page for free." +msgstr "" +"Já que também é possível gerar páginas man para um refentry do docbook, soa " +"como uma boa ideia usá-lo para este propósito. Desta forma, a interface é " +"parte da referência e é possível obter a página man de graça." + +#. (itstool) path: sect2/title +#: C/index.docbook:2096 +msgid "Document the tool" +msgstr "Documentar a ferramenta" + +#. (itstool) path: sect2/para +#: C/index.docbook:2098 +msgid "" +"Create one refentry file per tool. Following our example we would call it meep/" +"docs/reference/meeper/meep.xml. For the xml tags that should be " +"used and can look at generated file in the xml subdirectory as well as " +"examples e.g. in glib." +msgstr "" +"Crie um arquivo refentry por ferramenta. Segundo nosso exemplo nós chamaríamos ele de " +"meep/docs/reference/meeper/meep.xml. Para as tags xml " +"que devem ser usadas e podem parecer no arquivo gerado no subdiretório xml " +"assim como exemplos, por exemplo, em glib." + +#. (itstool) path: sect2/title +#: C/index.docbook:2108 +msgid "Adding the extra configure check" +msgstr "Adicionando a verificação extra ao configure" + +#. (itstool) path: example/title +#: C/index.docbook:2111 C/index.docbook:2129 +msgid "Extra configure checks" +msgstr "Verificações extra no configure" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2112 +#, no-wrap +msgid "" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [regenerate man pages from Docbook [default=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" +msgstr "" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [regenerate man pages from Docbook [default=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" + +#. (itstool) path: sect2/title +#: C/index.docbook:2126 +msgid "Adding the extra makefile rules" +msgstr "Adicionando as regras extras ao makefile" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2130 +#, no-wrap +msgid "" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" +msgstr "" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:2152 +msgid "DBus interfaces" +msgstr "Interfaces DBus" + +#. (itstool) path: sect1/para +#: C/index.docbook:2154 +msgid "" +"(FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://" +"cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" +msgstr "" +"(CORRIJA-ME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, " +"http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" + +#. (itstool) path: chapter/title +#: C/index.docbook:2163 +msgid "Frequently asked questions" +msgstr "Perguntas frequentes" + +#. (itstool) path: segmentedlist/segtitle +#: C/index.docbook:2167 +msgid "Question" +msgstr "Questão" + +#. (itstool) path: segmentedlist/segtitle +#: C/index.docbook:2168 +msgid "Answer" +msgstr "Resposta" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2170 +msgid "No class hierarchy." +msgstr "Sem hierarquia de classe." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2171 +msgid "" +"The objects xxx_get_type() function has not been " +"entered into the <package>.types file." +msgstr "" +"A função de objetos xxx_get_type() não foi inserida no " +"arquivo <pacote>.types." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2177 +msgid "Still no class hierarchy." +msgstr "Ainda sem hierarquia." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2178 +msgid "" +"Missing or wrong naming in <package>-sections.txt " +"file (see explanation)." +msgstr "" +"Nomenclatura faltando ou incorreta no arquivo <pacote>-" +"sections.txt (veja a explicação)." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2184 +msgid "Damn, I have still no class hierarchy." +msgstr "Droga. Eu ainda não tenho hierarquia de classes." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2185 +msgid "" +"Is the object name (name of the instance struct, e.g. GtkWidget) part of the normal section (don't put this into Standard or Private " +"subsections)." +msgstr "" +"Por acaso o nome do objeto (nome da struct da instância, ex. " +"GtkWidget) faz parte da seção normal (não coloque isso em " +"subseções Standard ou Private)?" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2192 +msgid "No symbol index." +msgstr "Nenhum símbolo de índice." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2193 +msgid "" +"Does the <package>-docs.{xml,sgml} contain a " +"index that xi:includes the generated index?" +msgstr "" +"O <pacote>-docs.{xml,sgml} contém um índice que " +"“xi:inclui” o índice gerado?" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2199 +msgid "Symbols are not linked to their doc-section." +msgstr "Símbolos não estão vinculados ao seus doc-section." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2200 +msgid "" +"Is the doc-comment using the correct markup (added #,% or ())? Check if the " +"gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" +"O doc-comment está usando a marcação correta (adicionado #,% or ())? " +"Verifique se o gtkdoc-fixxref avisa sobre xrefs não resolvidos." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2206 +msgid "A new class does not appear in the docs." +msgstr "Uma nova classe não aparece nos documentos." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2207 +msgid "" +"Is the new page xi:included from <package>-docs.{xml,sgml}." +msgstr "" +"A nova página foi “xi:incluída” do <pacote>-docs.{xml,sgml}?" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2213 +msgid "A new symbol does not appear in the docs." +msgstr "Um novo símbolo não aparece nos documentos." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2214 +msgid "" +"Is the doc-comment properly formatted. Check for spelling mistakes in the " +"begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable " +"xrefs. Check if the symbol is correctly listed in the <" +"package>-sections.txt in a public subsection." +msgstr "" +"O doc-comment está formatado adequadamente? Verifique erros de escrita no " +"começo do comentário. Verifique se o gtkdoc-fixxref avisa sobre xrefs não " +"resolvíveis. Verifique se o símbolo está listado corretamente no " +"<pacote>-sections.txt em uma subseção pública." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2222 +msgid "A type is missing from the class hierarchy." +msgstr "Um tipo está faltando da hierarquia de classe." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2223 +msgid "" +"If the type is listed in <package>.hierarchy but " +"not in xml/tree_index.sgml then double check that the " +"type is correctly placed in the <package>-sections.txt. If the type instance (e.g. GtkWidget) is not listed " +"or incidentally marked private it will not be shown." +msgstr "" +"Se o tipo está listado no <pacote>.hierarchy, mas " +"não em xml/tree_index.sgml, então certifique-se de que " +"o tipo está colocado corretamente no <pacote>-sections.txt. Se a instância do tipo (ex.: GtkWidget) não está " +"listada ou incidentalmente marcada como privada, ela não será mostrada." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2232 +msgid "I get foldoc links for all gobject annotations." +msgstr "" +"Obtenho links de seguimento de documentos para todas as anotações gobject." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2233 +msgid "" +"Check that xml/annotation-glossary.xml is xi:included " +"from <package>-docs.{xml,sgml}." +msgstr "" +"Verifique se xml/annotation-glossary.xml está “xi:" +"incluído” de <pacote>-docs.{xml,sgml}." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2241 +msgid "Parameter described in source code comment block but does not exist" +msgstr "Parâmetro descrito no bloco de comentário do código fonte não existe" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2242 +msgid "" +"Check if the prototype in the header has different parameter names as in the " +"source." +msgstr "" +"Verifique se o protótipo no cabeçalho tem nomes de parâmetros diferentes da " +"fonte." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2247 +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "múltiplos “IDs” para restrições do fim do link XYZ" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2248 +msgid "" +"Symbol XYZ appears twice in <package>-sections.txt file." +msgstr "" +"O símbolo XYZ aparece duas vezes no arquivo <pacote>-" +"sections.txt." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2251 +msgid "" +"Element typename in namespace '' encountered in para, but no template " +"matches." +msgstr "" +"Elemento typename no espaço de nome '' encontrado em para, mas nenhum modelo " +"correspondeu." + +#. (itstool) path: chapter/title +#: C/index.docbook:2258 +msgid "Tools related to gtk-doc" +msgstr "Ferramentas relacionadas ao gtk-doc" + +#. (itstool) path: chapter/para +#: C/index.docbook:2260 +msgid "" +"GtkDocPlugin - a Trac " +"GTK-Doc integration plugin, that adds API docs to a trac site and " +"integrates with the trac search." +msgstr "" +"GtkDocPlugin - um plug-in de integração com Trac GTK-Doc, que adiciona documentos de API " +"a um site trac e integra com a pesquisa do trac." + +#. (itstool) path: chapter/para +#: C/index.docbook:2265 +msgid "" +"Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since " +"tags in the API to determine the minimum required version." +msgstr "" +"Gtkdoc-depscan - uma ferramenta (parte do gtk-doc) para verificar APIs " +"usadas, a partir de suas tags, para determinar a versão mínima necessária." + +#. (itstool) path: appendixinfo/releaseinfo +#: C/index.docbook:12 C/fdl-appendix.xml:12 +msgid "Version 1.1, March 2000" +msgstr "Versão 1.1, Março de 2000" + +#. (itstool) path: appendixinfo/copyright +#: C/index.docbook:15 +msgid "2000Free Software Foundation, Inc." +msgstr "2000Free Software Foundation, Inc." + +#. (itstool) path: para/address +#: C/index.docbook:20 +#, no-wrap +msgid "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" +msgstr "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" + +#. (itstool) path: legalnotice/para +#: C/index.docbook:19 C/fdl-appendix.xml:19 +msgid "" +"<_:address-1/> Everyone is permitted to copy and distribute verbatim copies " +"of this license document, but changing it is not allowed." +msgstr "" +"<_:address-1/> É permitido a qualquer um copiar e distribuir cópias exatas " +"deste documento de licença, embora não seja permitido alterá-lo." + +#. (itstool) path: appendix/title +#. (itstool) path: para/quote +#: C/index.docbook:28 C/fdl-appendix.xml:28 C/fdl-appendix.xml:642 +msgid "GNU Free Documentation License" +msgstr "Licença de Documentação Livre GNU" + +#. (itstool) path: sect1/title +#: C/index.docbook:31 C/fdl-appendix.xml:31 +msgid "0. PREAMBLE" +msgstr "0. INTRODUÇÃO" + +#. (itstool) path: sect1/para +#: C/index.docbook:32 +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document free in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" +"O propósito desta Licença é fazer um manual, livro-texto, ou outro documento " +"escrito livre em seu sentido de liberdade: para garantir a " +"todos a liberdade efetiva de copiá-lo e redistribui-lo, com ou sem " +"modificações, tanto comercialmente como não comercialmente. Em segundo " +"lugar, esta Licença preserva ao autor e ao editor uma forma de obter crédito " +"pelo seu trabalho, enquanto não é considerado responsável por modificações " +"feitas por outros." + +#. (itstool) path: sect1/para +#: C/index.docbook:43 +msgid "" +"This License is a kind of copyleft, which means that " +"derivative works of the document must themselves be free in the same sense. " +"It complements the GNU General Public License, which is a copyleft license " +"designed for free software." +msgstr "" +"Esta licença é um tipo de copyleft, que significa que " +"trabalhos derivados do documento precisam ser, por sua vez, livres no mesmo " +"sentido. Ela complementa a Licença Pública Geral GNU (GNU General Public " +"License), que é uma licença copyleft projetada para softwares livres." + +#. (itstool) path: sect1/para +#: C/index.docbook:50 C/fdl-appendix.xml:50 +msgid "" +"We have designed this License in order to use it for manuals for free " +"software, because free software needs free documentation: a free program " +"should come with manuals providing the same freedoms that the software does. " +"But this License is not limited to software manuals; it can be used for any " +"textual work, regardless of subject matter or whether it is published as a " +"printed book. We recommend this License principally for works whose purpose " +"is instruction or reference." +msgstr "" +"Nós projetamos esta Licença a fim de ser utilizada em manuais de software " +"livre, já que softwares livres precisam de documentações livres: um programa " +"livre deveria vir com manuais que ofereçam as mesmas liberdades que o " +"software proporciona. Mas esta Licença não é limitada a manuais de software; " +"ela pode ser usada para qualquer trabalho de texto, independente do assunto " +"ou se é publicado como um livro impresso. Nós recomendamos esta Licença " +"principalmente para trabalhos cujo propósito seja instrução ou referência." + +#. (itstool) path: sect1/title +#: C/index.docbook:62 C/fdl-appendix.xml:62 +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "1. APLICABILIDADE E DEFINIÇÕES" + +#. (itstool) path: sect1/para +#: C/index.docbook:63 +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The Document, below, refers to any such " +"manual or work. Any member of the public is a licensee, and is addressed as " +"you." +msgstr "" +"Esta Licença se aplica a qualquer manual ou outro trabalho que contenha um " +"aviso colocado pelo detentor dos direitos autorais dizendo que o documento " +"pode ser distribuído sob os termos desta. O Documento, " +"abaixo, refere-se a qualquer manual ou trabalho. Qualquer membro do público " +"é um licenciado, e será referenciado como você." + +#. (itstool) path: sect1/para +#: C/index.docbook:72 +msgid "" +"A Modified Version of the Document means any work containing " +"the Document or a portion of it, either copied verbatim, or with " +"modifications and/or translated into another language." +msgstr "" +"Uma Versão Modificada do Documento significa qualquer " +"trabalho contendo o Documento ou uma porção deste, seja uma cópia literal ou " +"com modificações e/ou traduzido em outro idioma." + +#. (itstool) path: sect1/para +#: C/index.docbook:79 +msgid "" +"A Secondary Section is a named appendix or a front-matter " +"section of the Document that deals " +"exclusively with the relationship of the publishers or authors of the " +"Document to the Document's overall subject (or to related matters) and " +"contains nothing that could fall directly within that overall subject. (For " +"example, if the Document is in part a textbook of mathematics, a Secondary " +"Section may not explain any mathematics.) The relationship could be a matter " +"of historical connection with the subject or with related matters, or of " +"legal, commercial, philosophical, ethical or political position regarding " +"them." +msgstr "" +"Uma Seção Secundária é um apêndice com nome ou uma seção " +"inicial do Documento que trata " +"exclusivamente da relação dos editores ou autores do Documento com seu " +"assunto geral (ou temas relacionados) e não contém nada que possa estar " +"diretamente dentro do assunto geral. (Por exemplo, se o Documento é em parte " +"um livro-texto de matemática, uma Seção Secundária não pode explicar nada de " +"matemática). Tal relação pode ser uma questão de conexão histórica com o " +"assunto ou com temas relacionados, ou tratar de questões legais, comerciais, " +"filosóficas, éticas ou políticas com relação a eles." + +#. (itstool) path: sect1/para +#: C/index.docbook:94 +msgid "" +"The Invariant Sections are certain Secondary Sections whose titles are designated, as being " +"those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" +"As Seções Invariantes são certas Seções Secundárias cujos títulos são designados como sendo de " +"Seções Invariantes na nota que afirma que o Documento é publicado sob esta Licença." + +#. (itstool) path: sect1/para +#: C/index.docbook:103 +msgid "" +"The Cover Texts are certain short passages of text that are " +"listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says " +"that the Document is released under " +"this License." +msgstr "" +"Os Textos de Capa são certas passagens de texto curtas que " +"são listadas, como Textos de Capa Frontal ou Texto de Contra Capa, na nota " +"que afirma que o Documento é publicado " +"sob esta Licença." + +#. (itstool) path: sect1/para +#: C/index.docbook:111 +msgid "" +"A Transparent copy of the " +"Document means a machine-readable copy, represented in a format whose " +"specification is available to the general public, whose contents can be " +"viewed and edited directly and straightforwardly with generic text editors " +"or (for images composed of pixels) generic paint programs or (for drawings) " +"some widely available drawing editor, and that is suitable for input to text " +"formatters or for automatic translation to a variety of formats suitable for " +"input to text formatters. A copy made in an otherwise Transparent file " +"format whose markup has been designed to thwart or discourage subsequent " +"modification by readers is not Transparent. A copy that is not " +"Transparent is called Opaque." +msgstr "" +"Uma cópia Transparente do Documento significa uma cópia legível por máquina, representada em " +"um formato cuja especificação esteja disponível ao público geral e que cujo " +"conteúdo possa ser visualizado e editado de forma clara e direta por " +"editores de texto genéricos ou programas genéricos de desenho (para imagens " +"compostas de pixels) ou para alguns dos editores de desenho amplamente " +"disponíveis (para desenhos) e que seja apropriado para inclusão em " +"formatadores de texto ou para a tradução automática em uma variedade de " +"formatos apropriados de entrada em formatadores de texto. Uma cópia feita em " +"outro formato de arquivo Transparente cuja marcação, ou ausência desta, " +"tenha sido manipulada para impedir ou desencorajar modificação subsequente " +"pelos leitores não é Transparente. Uma cópia que não é Transparente é chamada Opaca." + +#. (itstool) path: sect1/para +#: C/index.docbook:128 C/fdl-appendix.xml:128 +msgid "" +"Examples of suitable formats for Transparent copies include plain ASCII " +"without markup, Texinfo input format, LaTeX input format, SGML or XML using " +"a publicly available DTD, and standard-conforming simple HTML designed for " +"human modification. Opaque formats include PostScript, PDF, proprietary " +"formats that can be read and edited only by proprietary word processors, " +"SGML or XML for which the DTD and/or processing tools are not generally " +"available, and the machine-generated HTML produced by some word processors " +"for output purposes only." +msgstr "" +"Exemplos de formatos apropriados para cópias Transparentes incluem ASCII " +"puro sem marcação, formato de entrada Texinfo, formato de entrada LaTex, " +"SGML ou XML usando um DTD publicamente disponível, e HTML simples em " +"conformidade padrão projetado para modificação por humanos. Formatos Opacos " +"incluem PostScript, PDF, formatos proprietários que podem ser lidos ou " +"editados somente por processadores de texto proprietários, SGML ou XML cujos " +"DTD e/ou ferramenta de processamento não estão largamente disponibilizados, " +"e o HTML gerado por máquina produzido por algum processador de texto com " +"propósito apenas de saída." + +#. (itstool) path: sect1/para +#: C/index.docbook:141 +msgid "" +"The Title Page means, for a printed book, the title page " +"itself, plus such following pages as are needed to hold, legibly, the " +"material this License requires to appear in the title page. For works in " +"formats which do not have any title page as such, Title Page " +"means the text near the most prominent appearance of the work's title, " +"preceding the beginning of the body of the text." +msgstr "" +"A Página de Título significa, para um livro impresso, a " +"própria página do título, além das páginas subsequentes necessárias para " +"conter, de forma legível, o material que esta Licença requer que apareça na " +"página do título. Para trabalhos em formatos que não possuem qualquer página " +"de título semelhante, Página de Título significa o texto " +"próximo à ocorrência mais proeminente do título do trabalho, precedendo o " +"início do corpo do texto." + +#. (itstool) path: sect1/title +#: C/index.docbook:153 C/fdl-appendix.xml:153 +msgid "2. VERBATIM COPYING" +msgstr "2. CÓPIA ESCRITA" + +#. (itstool) path: sect1/para +#: C/index.docbook:154 +msgid "" +"You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that " +"this License, the copyright notices, and the license notice saying this " +"License applies to the Document are reproduced in all copies, and that you " +"add no other conditions whatsoever to those of this License. You may not use " +"technical measures to obstruct or control the reading or further copying of " +"the copies you make or distribute. However, you may accept compensation in " +"exchange for copies. If you distribute a large enough number of copies you " +"must also follow the conditions in section 3." +msgstr "" +"Você pode copiar e distribuir o Documento em qualquer meio, seja este de forma comercial ou não, desde que esta " +"licença, as notas de direitos autorais (copyright), e a nota de licença " +"afirmando que esta Licença se aplica ao Documento sejam reproduzidas em " +"todas as cópias, e que você não inclua outras condições, quaisquer que " +"sejam, às condições desta Licença. Você não pode usar de medidas técnicas " +"para obstruir ou controlar a leitura ou cópia futura das cópias que você " +"fizer ou distribuir. Contudo, você pode aceitar compensação em troca das " +"cópias. Se você distribuir um número suficientemente grande de cópias, você " +"deve também respeitar as condições descritas na seção 3." + +#. (itstool) path: sect1/para +#: C/index.docbook:169 C/fdl-appendix.xml:169 +msgid "" +"You may also lend copies, under the same conditions stated above, and you " +"may publicly display copies." +msgstr "" +"Você também pode emprestar cópias, sob as mesmas condições relacionadas " +"acima, e você pode publicamente exibir cópias." + +#. (itstool) path: sect1/title +#: C/index.docbook:176 C/fdl-appendix.xml:176 +msgid "3. COPYING IN QUANTITY" +msgstr "3. COPIANDO EM QUANTIDADE" + +#. (itstool) path: sect1/para +#: C/index.docbook:177 +msgid "" +"If you publish printed copies of the Document numbering more than 100, and the Document's license " +"notice requires Cover Texts, you " +"must enclose the copies in covers that carry, clearly and legibly, all these " +"Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on " +"the back cover. Both covers must also clearly and legibly identify you as " +"the publisher of these copies. The front cover must present the full title " +"with all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as " +"verbatim copying in other respects." +msgstr "" +"Se você publicar cópias impressas do Documento, em número maior que 100, e a nota de licença do " +"Documento exigir Textos de Capa, " +"você deve encadernar as cópias em capas que carreguem, de forma clara e " +"legível, todos estes Textos de Capa: Textos de Capa Frontal na capa frontal " +"e Textos de Contracapa na contracapa. Ambas as capas devem também " +"identificar, de forma clara e legível, você como o editor das cópias. A capa " +"frontal deve apresentar o título completo com todas as palavras deste " +"igualmente proeminentes e visíveis. Além disso, você pode adicionar outro " +"material nas capas. As cópias com mudanças limitadas às capas, desde que " +"preservem o título do Documento e " +"satisfaçam estas condições podem ser tratadas como cópias literais em outros " +"aspectos." + +#. (itstool) path: sect1/para +#: C/index.docbook:195 C/fdl-appendix.xml:195 +msgid "" +"If the required texts for either cover are too voluminous to fit legibly, " +"you should put the first ones listed (as many as fit reasonably) on the " +"actual cover, and continue the rest onto adjacent pages." +msgstr "" +"Se os textos necessários a qualquer uma das capas forem muito volumosos para " +"serem incluídos de forma legível, você deve colocar os primeiros textos " +"listados (quantos couberem razoavelmente) na própria capa, e continuar o " +"resto em páginas adjacentes." + +#. (itstool) path: sect1/para +#: C/index.docbook:202 +msgid "" +"If you publish or distribute Opaque " +"copies of the Document numbering more " +"than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state " +"in or with each Opaque copy a publicly-accessible computer-network location " +"containing a complete Transparent copy of the Document, free of added " +"material, which the general network-using public has access to download " +"anonymously at no charge using public-standard network protocols. If you use " +"the latter option, you must take reasonably prudent steps, when you begin " +"distribution of Opaque copies in quantity, to ensure that this Transparent " +"copy will remain thus accessible at the stated location until at least one " +"year after the last time you distribute an Opaque copy (directly or through " +"your agents or retailers) of that edition to the public." +msgstr "" +"Se você publicar ou distribuir cópias Opacas do Documento em " +"número maior que 100, você deve incluir uma cópia Transparente legível por máquina juntamente com cada " +"cópia Opaca, ou dizer em (ou juntamente com) cada cópia Opaca, um endereço " +"de rede a partir do qual o público geral de usuários possam acessar e obter " +"de forma anônima e sob nenhum custo, usando protocolos de rede públicos " +"padrão, uma cópia Transparente completa do Documento, livre de materiais " +"adicionados. Se você decidir pela segunda opção, você deve seguir passos com " +"certa prudência ao começar a distribuir as cópias Opacas em quantidade, a " +"fim de garantir que esta cópia transparente permanecerá acessível no local " +"indicado por pelo menos um ano após a última vez que você distribuir uma " +"cópia Opaca (diretamente ou através de seus agentes ou distribuidores) desta " +"edição ao público." + +#. (itstool) path: sect1/para +#: C/index.docbook:222 +msgid "" +"It is requested, but not required, that you contact the authors of the Document well before redistributing any " +"large number of copies, to give them a chance to provide you with an updated " +"version of the Document." +msgstr "" +"É solicitado, mas não exigido, que você contate os autores do Documento muito antes de redistribuir qualquer " +"grande número de cópias, para dar a eles uma chance de lhe fornecer uma " +"versão atualizada do Documento." + +#. (itstool) path: sect1/title +#: C/index.docbook:231 C/fdl-appendix.xml:231 +msgid "4. MODIFICATIONS" +msgstr "4. MODIFICAÇÕES" + +#. (itstool) path: sect1/para +#: C/index.docbook:232 +msgid "" +"You may copy and distribute a Modified " +"Version of the Document under " +"the conditions of sections 2 and 3 above, provided that you release the " +"Modified Version under precisely this License, with the Modified Version " +"filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" +"Você pode copiar e distribuir uma Versão " +"Modificada do Documento sob as " +"condições das seções 2 e 3 acima, desde que você forneça a Versão Modificada " +"estritamente sob esta Licença, com a Versão Modificada preenchendo a função " +"de Documento, permitindo assim a distribuição e modificação da Versão " +"Modificada a quem quer que possua uma cópia desta. Além disso, você deve " +"executar os seguintes procedimentos na Versão Modificada:" + +#. (itstool) path: formalpara/title +#: C/index.docbook:248 C/fdl-appendix.xml:248 +msgid "A" +msgstr "A" + +#. (itstool) path: formalpara/para +#: C/index.docbook:249 +msgid "" +"Use in the Title Page (and on the " +"covers, if any) a title distinct from that of the Document, and from those of previous versions (which " +"should, if there were any, be listed in the History section of the " +"Document). You may use the same title as a previous version if the original " +"publisher of that version gives permission." +msgstr "" +"Usar na Página de Título (e nas " +"capas, se existirem) um título distinto em relação ao do Documento, e daqueles de versões anteriores (os quais " +"devem, na existência de algum, ser listados na seção “Histórico” do " +"Documento). Você pode usar o mesmo título de uma versão anterior se o editor " +"original daquela versão conceder-lhe permissão." + +#. (itstool) path: formalpara/title +#: C/index.docbook:264 C/fdl-appendix.xml:264 +msgid "B" +msgstr "B" + +#. (itstool) path: formalpara/para +#: C/index.docbook:265 +msgid "" +"List on the Title Page, as authors, " +"one or more persons or entities responsible for authorship of the " +"modifications in the Modified Version, " +"together with at least five of the principal authors of the Document (all of its principal authors, if it has " +"less than five)." +msgstr "" +"Listar na Página de Título como " +"autores, uma ou mais pessoas ou entidades responsáveis pela autoria das " +"modificações na Versão Modificada, " +"juntamente com pelo menos cinco autores principais do Documento (todos seus autores principais, se houver menos " +"que cinco)." + +#. (itstool) path: formalpara/title +#: C/index.docbook:279 C/fdl-appendix.xml:279 +msgid "C" +msgstr "C" + +#. (itstool) path: formalpara/para +#: C/index.docbook:280 +msgid "" +"State on the Title Page the name of " +"the publisher of the Modified Version, " +"as the publisher." +msgstr "" +"Declarar na Página de Título o nome " +"do editor da Versão Modificada, como " +"seu editor." + +#. (itstool) path: formalpara/title +#: C/index.docbook:291 C/fdl-appendix.xml:291 +msgid "D" +msgstr "D" + +#. (itstool) path: formalpara/para +#: C/index.docbook:292 +msgid "" +"Preserve all the copyright notices of the Document." +msgstr "" +"Preservar todas as notas de direitos autorais (copyright) do Documento." + +#. (itstool) path: formalpara/title +#: C/index.docbook:301 C/fdl-appendix.xml:301 +msgid "E" +msgstr "E" + +#. (itstool) path: formalpara/para +#: C/index.docbook:302 C/fdl-appendix.xml:302 +msgid "" +"Add an appropriate copyright notice for your modifications adjacent to the " +"other copyright notices." +msgstr "" +"Adicionar uma nota apropriada de direitos autorais para suas modificações, " +"adjacente às outras notas de direitos autorais." + +#. (itstool) path: formalpara/title +#: C/index.docbook:311 C/fdl-appendix.xml:311 +msgid "F" +msgstr "F" + +#. (itstool) path: formalpara/para +#: C/index.docbook:312 +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the Modified " +"Version under the terms of this License, in the form shown in the " +"Addendum below." +msgstr "" +"Incluir, imediatamente após as notas de direitos autorais, uma nota de " +"licença concedendo permissão pública para o uso da Versão Modificada sob os termos desta Licença, na forma " +"mostrada no Adendo abaixo." + +#. (itstool) path: formalpara/title +#: C/index.docbook:324 C/fdl-appendix.xml:324 +msgid "G" +msgstr "G" + +#. (itstool) path: formalpara/para +#: C/index.docbook:325 +msgid "" +"Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" +"Preservar na referida nota de licença a lista completa de Seções Invariantes e Textos de Capa obrigatórios, dados na nota de licença do Documento." + +#. (itstool) path: formalpara/title +#: C/index.docbook:337 C/fdl-appendix.xml:337 +msgid "H" +msgstr "H" + +#. (itstool) path: formalpara/para +#: C/index.docbook:338 C/fdl-appendix.xml:338 +msgid "Include an unaltered copy of this License." +msgstr "Inclua uma cópia inalterada desta Licença." + +#. (itstool) path: formalpara/title +#: C/index.docbook:346 C/fdl-appendix.xml:346 +msgid "I" +msgstr "I" + +#. (itstool) path: formalpara/para +#: C/index.docbook:347 +msgid "" +"Preserve the section entitled History, and its title, and add " +"to it an item stating at least the title, year, new authors, and publisher " +"of the Modified Version as given on " +"the Title Page. If there is no " +"section entitled History in the Document, create one stating the title, year, authors, and " +"publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" +"Preservar a seção intitulada Histórico, preservar seu título, " +"e adicionar a esta um item declarando ao menos o título, o ano, novos " +"autores, e o editor da Versão Modificada conforme incluído na Página de " +"Título. Se nenhuma seção intitulada Histórico estiver " +"presente no Documento, crie uma " +"informando o título, o ano, os autores e o editor do Documento como " +"evidenciado na Página de Título, em seguida adicione um item descrevendo a " +"Versão Modificada como mencionado na sentença anterior." + +#. (itstool) path: formalpara/title +#: C/index.docbook:365 C/fdl-appendix.xml:365 +msgid "J" +msgstr "J" + +#. (itstool) path: formalpara/para +#: C/index.docbook:366 +msgid "" +"Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the " +"network locations given in the Document for previous versions it was based " +"on. These may be placed in the History section. You may omit " +"a network location for a work that was published at least four years before " +"the Document itself, or if the original publisher of the version it refers " +"to gives permission." +msgstr "" +"Preservar o endereço de rede, se existir algum, informado pelo Documento para acesso público a uma cópia Transparente deste e, da mesma maneira, " +"os endereços de rede dados no Documento para versões anteriores nas quais " +"este se baseia. Estes podem ser colocados na seção Histórico. " +"Você pode omitir um endereço de rede para um trabalho que foi publicado pelo " +"menos quatro anos antes do Documento em si, ou se o editor original da " +"versão à qual o endereço se refere der permissão." + +#. (itstool) path: formalpara/title +#: C/index.docbook:383 C/fdl-appendix.xml:383 +msgid "K" +msgstr "K" + +#. (itstool) path: formalpara/para +#: C/index.docbook:384 +msgid "" +"In any section entitled Acknowledgements or " +"Dedications, preserve the section's title, and preserve in " +"the section all the substance and tone of each of the contributor " +"acknowledgements and/or dedications given therein." +msgstr "" +"Preservar o título da seção para qualquer seção intitulada " +"Agradecimentos ou Dedicatórias e preservar " +"dentro da seção toda a substância e tom de cada um dos agradecimentos e/ou " +"dedicatórias lá mencionados." + +#. (itstool) path: formalpara/title +#: C/index.docbook:396 C/fdl-appendix.xml:396 +msgid "L" +msgstr "L" + +#. (itstool) path: formalpara/para +#: C/index.docbook:397 +msgid "" +"Preserve all the Invariant Sections " +"of the Document, unaltered in their " +"text and in their titles. Section numbers or the equivalent are not " +"considered part of the section titles." +msgstr "" +"Preservar todas as Seções Invariantes " +"do Documento, sem alterações em seus " +"textos e títulos. Números de seção ou o equivalente não são considerados " +"parte dos títulos das seções." + +#. (itstool) path: formalpara/title +#: C/index.docbook:409 C/fdl-appendix.xml:409 +msgid "M" +msgstr "M" + +#. (itstool) path: formalpara/para +#: C/index.docbook:410 +msgid "" +"Delete any section entitled Endorsements. Such a section may " +"not be included in the Modified Version." +msgstr "" +"Apagar qualquer seção intitulada Apoio. Tal seção não deve " +"ser incluída na Versão Modificada." + +#. (itstool) path: formalpara/title +#: C/index.docbook:421 C/fdl-appendix.xml:421 +msgid "N" +msgstr "N" + +#. (itstool) path: formalpara/para +#: C/index.docbook:422 +msgid "" +"Do not retitle any existing section as Endorsements or to " +"conflict in title with any Invariant " +"Section." +msgstr "" +"Não renomear o título de qualquer seção existente como Apoio " +"ou que resulte em conflito com o título de qualquer Seção Invariante." + +#. (itstool) path: sect1/para +#: C/index.docbook:432 +msgid "" +"If the Modified Version includes new " +"front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from " +"the Document, you may at your option designate some or all of these sections " +"as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's " +"license notice. These titles must be distinct from any other section titles." +msgstr "" +"Se a Versão Modificada incluir novas " +"seções iniciais ou apêndices que sejam qualificados como Seções Secundárias, e não contiver material copiado do " +"Documento, você pode, a seu critério, tornar algumas dessas ou todas essas " +"seções em invariantes. Para fazer isso, adicione seus títulos à lista de " +"Seções Invariantes na nota de licença " +"da Versão Modificada. Estes títulos devem ser distintos de quaisquer outros " +"títulos de seções." + +#. (itstool) path: sect1/para +#: C/index.docbook:444 +msgid "" +"You may add a section entitled Endorsements, provided it " +"contains nothing but endorsements of your Modified Version by various parties--for example, statements of " +"peer review or that the text has been approved by an organization as the " +"authoritative definition of a standard." +msgstr "" +"Você pode incluir uma seção intitulada Apoio, desde que esta " +"contenha apenas apoios recebidos limitados a sua Versão Modificada por várias fontes -- por exemplo, notas do " +"revisor ou de que o texto foi aprovado por uma organização como a definição " +"oficial de um padrão." + +#. (itstool) path: sect1/para +#: C/index.docbook:453 +msgid "" +"You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list " +"of Cover Texts in the Modified Version. Only one passage of Front-Cover " +"Text and one of Back-Cover Text may be added by (or through arrangements " +"made by) any one entity. If the Document already includes a cover text for the same cover, previously added by " +"you or by arrangement made by the same entity you are acting on behalf of, " +"you may not add another; but you may replace the old one, on explicit " +"permission from the previous publisher that added the old one." +msgstr "" +"Você pode adicionar uma passagem de até cinco palavras como Texto de Capa Frontal, e uma passagem de até 25 " +"palavras como Texto de Contracapa, " +"ao fim da lista de Textos de Capa " +"na Versão Modificada. Somente uma " +"passagem de Texto de Capa Frontal e uma de Texto de Contracapa podem ser " +"adicionados por (ou através de arranjos feitos por) uma entidade qualquer. " +"Caso o Documento já incluir um texto " +"de capa para a mesma capa, previamente incluído por você ou pelo arranjo " +"feito pela mesma entidade em cujo nome você está agindo, você não poderá " +"adicionar outro; mas você poderá substituir o antigo, com a permissão " +"explícita do editor anterior, que o incluiu." + +#. (itstool) path: sect1/para +#: C/index.docbook:470 +msgid "" +"The author(s) and publisher(s) of the Document do not by this License give permission to use their names " +"for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" +"O(s) autor(es) e editor(es) do Documento, por esta Licença, não concedem permissão para que seus nomes sejam " +"usados a fins de publicidade, para defesa ou para apoio implícito de " +"qualquer Versão Modificada." + +#. (itstool) path: sect1/title +#: C/index.docbook:480 C/fdl-appendix.xml:480 +msgid "5. COMBINING DOCUMENTS" +msgstr "5. COMBINANDO DOCUMENTOS" + +#. (itstool) path: sect1/para +#: C/index.docbook:481 +msgid "" +"You may combine the Document with " +"other documents released under this License, under the terms defined in " +"section 4 above for modified versions, " +"provided that you include in the combination all of the Invariant Sections of all of the original documents, " +"unmodified, and list them all as Invariant Sections of your combined work in " +"its license notice." +msgstr "" +"Você pode combinar o Documento com " +"outros documentos publicados sob esta Licença, sob os termos definidos na " +"seção 4 acima para versões " +"modificadas, desde que você inclua na combinação todas as Seções Invariantes de todos os documentos " +"originais, sem modificações, e as liste como Seções Invariantes de seu " +"trabalho combinado, na sua nota de licença." + +#. (itstool) path: sect1/para +#: C/index.docbook:492 +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical Invariant Sections may be " +"replaced with a single copy. If there are multiple Invariant Sections with " +"the same name but different contents, make the title of each such section " +"unique by adding at the end of it, in parentheses, the name of the original " +"author or publisher of that section if known, or else a unique number. Make " +"the same adjustment to the section titles in the list of Invariant Sections " +"in the license notice of the combined work." +msgstr "" +"O trabalho combinado precisa conter somente uma cópia desta Licença, e " +"várias Seções Invariantes idênticas " +"podem ser substituídas por uma única cópia. Se existirem várias Seções " +"Invariantes de mesmo nome, porém com conteúdos diferentes, você deve tornar " +"o título de cada uma destas seções único, adicionando ao fim destes, entre " +"parênteses, o nome do autor ou, se conhecido, o editor original desta seção, " +"ou ainda um número único. Faça o mesmo ajuste nos títulos de seção na lista " +"de Seções Invariantes na nota de licença do trabalho combinado." + +#. (itstool) path: sect1/para +#: C/index.docbook:505 +msgid "" +"In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled " +"History; likewise combine any sections entitled " +"Acknowledgements, and any sections entitled " +"Dedications. You must delete all sections entitled " +"Endorsements." +msgstr "" +"Na combinação, você deve combinar quaisquer seções intituladas " +"Histórico nos vários documentos originais, formando uma seção " +"intitulada Histórico; do mesmo modo, combine quaisquer seções " +"intituladas Agradecimentos, e quaisquer seções intituladas " +"Dedicatórias. Você deve apagar todas as seções intituladas " +"Apoio." + +#. (itstool) path: sect1/title +#: C/index.docbook:516 C/fdl-appendix.xml:516 +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "6. COLEÇÕES DE DOCUMENTOS" + +#. (itstool) path: sect1/para +#: C/index.docbook:517 +msgid "" +"You may make a collection consisting of the Document and other documents released under this License, and " +"replace the individual copies of this License in the various documents with " +"a single copy that is included in the collection, provided that you follow " +"the rules of this License for verbatim copying of each of the documents in " +"all other respects." +msgstr "" +"Você pode fazer uma coleção que consiste do Documento e outros documentos publicados sob esta Licença, e " +"substituir as cópias individuais desta Licença, nos vários documentos, por " +"uma única cópia a ser incluída na coleção, desde que você siga as regras " +"desta Licença para cópias literais de cada documento em todos os outros " +"aspectos." + +#. (itstool) path: sect1/para +#: C/index.docbook:527 C/fdl-appendix.xml:527 +msgid "" +"You may extract a single document from such a collection, and distribute it " +"individually under this License, provided you insert a copy of this License " +"into the extracted document, and follow this License in all other respects " +"regarding verbatim copying of that document." +msgstr "" +"Você pode extrair um único documento desta coleção, e distribuí-lo " +"individualmente sob esta Licença, desde que você insira uma cópia desta " +"Licença no documento extraído, e siga esta Licença em todos os outros " +"aspectos com relação à cópia literal do documento." + +#. (itstool) path: sect1/title +#: C/index.docbook:537 C/fdl-appendix.xml:537 +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "7. AGREGAÇÃO COM TRABALHOS INDEPENDENTES" + +#. (itstool) path: sect1/para +#: C/index.docbook:538 +msgid "" +"A compilation of the Document or its " +"derivatives with other separate and independent documents or works, in or on " +"a volume of a storage or distribution medium, does not as a whole count as a " +"Modified Version of the Document, " +"provided no compilation copyright is claimed for the compilation. Such a " +"compilation is called an aggregate, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the Cover Text requirement of section 3 is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" +"Uma compilação do Documento ou seus " +"derivados com outros documentos ou trabalhos separados e independentes, " +"dentro de ou sob um volume de um meio de armazenamento ou distribuição, não " +"conta como um todo para uma Versão " +"Modificada do Documento, contanto que nenhum direito autoral de " +"compilação seja reivindicado para esta compilação. Tal compilação configura " +"um agregado e esta Licença não se aplica aos outros trabalhos " +"contidos na compilação do Documento, levando em conta serem compilados, caso " +"eles mesmos não forem trabalhos derivados do Documento. Se o requisito de " +"Texto da Capa da seção 3 é aplicável a estas cópias do Documento, e " +"ainda se o Documento é menor do que um quarto do agregado inteiro, os Textos " +"de Capa do Documento podem ser inseridos nas capas que envolvem somente o " +"Documento no agregado. Caso contrário, eles devem aparecer em capas em volta " +"do agregado como um todo." + +#. (itstool) path: sect1/title +#: C/index.docbook:561 C/fdl-appendix.xml:561 +msgid "8. TRANSLATION" +msgstr "8. TRADUÇÃO" + +#. (itstool) path: sect1/para +#: C/index.docbook:562 +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the Document under the " +"terms of section 4. Replacing Invariant Sections with translations " +"requires special permission from their copyright holders, but you may " +"include translations of some or all Invariant Sections in addition to the " +"original versions of these Invariant Sections. You may include a translation " +"of this License provided that you also include the original English version " +"of this License. In case of a disagreement between the translation and the " +"original English version of this License, the original English version will " +"prevail." +msgstr "" +"Uma tradução é considerada como sendo um tipo de modificação, desta forma " +"você pode distribuir traduções do Documento sob os termos da seção 4. A " +"substituição das Seções Invariantes " +"por traduções requer permissão especial dos detentores dos direitos " +"autorais, embora você possa incluir traduções de algumas ou todas as Seções " +"Invariantes juntamente às versões originais destas. Você pode incluir uma " +"tradução desta Licença, desde que você também inclua a versão original em " +"Inglês desta Licença. Em caso de discordância entre a tradução e a versão " +"original desta Licença ou nota de licença, a versão original em inglês " +"prevalecerá." + +#. (itstool) path: sect1/title +#: C/index.docbook:580 C/fdl-appendix.xml:580 +msgid "9. TERMINATION" +msgstr "9. TÉRMINO" + +#. (itstool) path: sect1/para +#: C/index.docbook:581 +msgid "" +"You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this " +"License. Any other attempt to copy, modify, sublicense or distribute the " +"Document 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." +msgstr "" +"Você não pode copiar, modificar, sublicenciar, ou distribuir o Documento com exceção do que foi expressamente " +"previsto sob esta Licença. Qualquer outra tentativa de cópia, modificação, " +"sublicenciamento ou distribuição do Documento é nula, e implicará na " +"rescisão automática de seus direitos sob esta Licença. Contudo, as partes " +"que receberam as cópias, ou direitos, de você sob esta Licença não terão " +"suas licenças rescindidas enquanto tais partes permanecerem em total acordo " +"com a Licença." + +#. (itstool) path: sect1/title +#: C/index.docbook:594 C/fdl-appendix.xml:594 +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "10. FUTURAS REVISÕES DESTA LICENÇA" + +#. (itstool) path: sect1/para +#: C/index.docbook:595 +msgid "" +"The Free " +"Software Foundation may publish new, revised versions of the GNU " +"Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" +"A Free Software " +"Foundation pode publicar novas versões, revisadas, da Licença de " +"Documentação Livre GNU de tempos em tempos. Tais versões posteriores terão " +"ideologia similar à presente versão, embora possam diferir em detalhes a fim " +"de abordar novos problemas ou preocupações. Consulte: http://www.gnu.org/copyleft/." + +#. (itstool) path: sect1/para +#: C/index.docbook:606 +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"Document specifies that a particular " +"numbered version of this License or any later version applies " +"to it, you have the option of following the terms and conditions either of " +"that specified version or of any later version that has been published (not " +"as a draft) by the Free Software Foundation. If the Document does not " +"specify a version number of this License, you may choose any version ever " +"published (not as a draft) by the Free Software Foundation." +msgstr "" +"É dado, a cada versão da Licença, um número de versão distinto. Se o Documento especificar que um número de " +"versão em específico desta Licença ou qualquer versão posterior se aplica a ele, você tem a opção de seguir os termos e condições " +"tanto da versão especificada quanto de qualquer versão posterior que tenha " +"sido publicada (não como rascunho) pela Free Software Foundation. Se o " +"documento não especificar um número de versão desta Licença, você pode " +"escolher qualquer versão já publicada (não como rascunho) pela Free Software " +"Foundation." + +#. (itstool) path: sect1/title +#: C/index.docbook:621 C/fdl-appendix.xml:621 +msgid "Addendum" +msgstr "Adendo" + +#. (itstool) path: sect1/para +#: C/index.docbook:622 C/fdl-appendix.xml:622 +msgid "" +"To use this License in a document you have written, include a copy of the " +"License in the document and put the following copyright and license notices " +"just after the title page:" +msgstr "" +"Para usar esta Licença em um documento que você escreveu, inclua uma cópia " +"desta no documento e adicione as seguintes notas de direitos autorais e " +"licença logo após a página de título:" + +#. (itstool) path: blockquote/para +#: C/index.docbook:629 C/fdl-appendix.xml:629 +msgid "Copyright YEAR YOUR NAME." +msgstr "Copyright ANO SEU NOME." + +#. (itstool) path: blockquote/para +#: C/index.docbook:632 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with " +"the Front-Cover Texts being LIST, " +"and with the Back-Cover Texts being " +"LIST. A copy of the license is included in the section entitled GNU " +"Free Documentation License." +msgstr "" +"Permissão concedida para copiar, distribuir e/ou modificar este documento " +"sob os termos da Licença de Documentação Livre GNU (GNU Free Documentation " +"License), Versão 1.1 ou qualquer versão mais recente publicada pela Free " +"Software Foundation; com as Seções " +"Invariantes, sendo LISTADO SEUS TÍTULOS, com os Textos de Capa Frontal sendo LISTADOS, e com os Textos de Contracapa sendo LISTADOS. Uma " +"cópia da licença está inclusa na seção entitulada Licença de " +"Documentação Livre GNU (GNU Free Documentation License)." + +#. (itstool) path: sect1/para +#: C/index.docbook:647 +msgid "" +"If you have no Invariant Sections, " +"write with no Invariant Sections instead of saying which ones " +"are invariant. If you have no Front-Cover " +"Texts, write no Front-Cover Texts instead of " +"Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" +"Se você não tiver qualquer Seção Invariante, escreva sem Seções Invariantes ao invés de afirmar " +"quais são invariantes. Se você não tem Textos de Capa Frontal, escreva sem Textos de Capa Frontal ao invés de Textos de Capa Frontal sendo LISTADOS; O " +"mesmo se aplica a Textos de Contracapa." + +#. (itstool) path: sect1/para +#: C/index.docbook:657 +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the GNU General Public License, to permit their use in free " +"software." +msgstr "" +"Se seu documento contiver exemplos não-triviais de código de programação, " +"recomendamos publicar estes exemplos paralelamente, sob a licença de " +"software livre que você escolher, como por exemplo a Licença Pública Geral GNU (GNU General Public License), para permitir seu uso em software livre." + +#. (itstool) path: copyright/year +#: C/fdl-appendix.xml:16 +msgid "2000" +msgstr "2000" + +#. (itstool) path: copyright/holder +#: C/fdl-appendix.xml:16 +msgid "Free Software Foundation, Inc." +msgstr "Free Software Foundation, Inc." + +#. (itstool) path: address/street +#: C/fdl-appendix.xml:20 +msgid "51 Franklin Street, Suite 330" +msgstr "51 Franklin Street, Suite 330" + +#. (itstool) path: address/city +#: C/fdl-appendix.xml:21 +msgid "Boston" +msgstr "Boston" + +#. (itstool) path: address/state +#: C/fdl-appendix.xml:21 +msgid "MA" +msgstr "MA" + +#. (itstool) path: address/postcode +#: C/fdl-appendix.xml:22 +msgid "02110-1301" +msgstr "02110-1301" + +#. (itstool) path: address/country +#: C/fdl-appendix.xml:22 +msgid "USA" +msgstr "USA" + +#. (itstool) path: para/address +#: C/fdl-appendix.xml:20 +msgid "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" +msgstr "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:34 +msgid "free" +msgstr "livre" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:32 +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document <_:quote-1/> in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" +"O propósito desta Licença é fazer um manual, livro-texto, ou outro documento " +"escrito <_:quote-1/> em seu sentido de liberdade: para garantir a todos a " +"liberdade efetiva de copiá-lo e redistribui-lo, com ou sem modificações, " +"tanto comercialmente como não comercialmente. Em segundo lugar, esta Licença " +"preserva ao autor e ao editor uma forma de obter crédito pelo seu trabalho, " +"enquanto não é considerado responsável por modificações feitas por outros." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:44 +msgid "copyleft" +msgstr "copyleft" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:43 +msgid "" +"This License is a kind of <_:quote-1/>, which means that derivative works of " +"the document must themselves be free in the same sense. It complements the " +"GNU General Public License, which is a copyleft license designed for free " +"software." +msgstr "" +"Esta licença é um tipo de <_:quote-1/>, que significa que trabalhos " +"derivados do documento precisam ser, por sua vez, livres no mesmo sentido. " +"Ela complementa a Licença Pública Geral GNU (GNU General Public License), " +"que é uma licença copyleft projetada para softwares livres." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:67 C/fdl-appendix.xml:82 C/fdl-appendix.xml:99 +#: C/fdl-appendix.xml:107 C/fdl-appendix.xml:113 C/fdl-appendix.xml:156 +#: C/fdl-appendix.xml:179 C/fdl-appendix.xml:190 C/fdl-appendix.xml:205 +#: C/fdl-appendix.xml:224 C/fdl-appendix.xml:235 C/fdl-appendix.xml:253 +#: C/fdl-appendix.xml:271 C/fdl-appendix.xml:294 C/fdl-appendix.xml:354 +#: C/fdl-appendix.xml:368 C/fdl-appendix.xml:400 C/fdl-appendix.xml:462 +#: C/fdl-appendix.xml:472 C/fdl-appendix.xml:482 C/fdl-appendix.xml:519 +#: C/fdl-appendix.xml:540 C/fdl-appendix.xml:565 C/fdl-appendix.xml:583 +#: C/fdl-appendix.xml:608 +msgid "Document" +msgstr "Documento" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:69 +msgid "you" +msgstr "você" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:63 +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The <_:quote-1/>, below, refers to any such manual or work. " +"Any member of the public is a licensee, and is addressed as <_:quote-2/>." +msgstr "" +"Esta Licença se aplica a qualquer manual ou outro trabalho que contenha um " +"aviso colocado pelo detentor dos direitos autorais dizendo que o documento " +"pode ser distribuído sob os termos desta. O <_:quote-1/>, abaixo, refere-se " +"a qualquer manual ou trabalho. Qualquer membro do público é um licenciado, e " +"será referenciado como <_:quote-2/>." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:73 C/fdl-appendix.xml:234 C/fdl-appendix.xml:269 +#: C/fdl-appendix.xml:283 C/fdl-appendix.xml:315 C/fdl-appendix.xml:351 +#: C/fdl-appendix.xml:413 C/fdl-appendix.xml:433 C/fdl-appendix.xml:447 +#: C/fdl-appendix.xml:459 C/fdl-appendix.xml:475 C/fdl-appendix.xml:543 +msgid "Modified Version" +msgstr "Versão modificada" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:72 +msgid "" +"A <_:quote-1/> of the Document means any work containing the Document or a " +"portion of it, either copied verbatim, or with modifications and/or " +"translated into another language." +msgstr "" +"Uma <_:quote-1/> do Documento significa qualquer trabalho contendo o " +"Documento ou uma porção deste, seja uma cópia literal ou com modificações e/" +"ou traduzido em outro idioma." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:80 +msgid "Secondary Section" +msgstr "Seção da secundária" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:79 +msgid "" +"A <_:quote-1/> is a named appendix or a front-matter section of the <_:" +"link-2/> that deals exclusively with the relationship of the publishers or " +"authors of the Document to the Document's overall subject (or to related " +"matters) and contains nothing that could fall directly within that overall " +"subject. (For example, if the Document is in part a textbook of mathematics, " +"a Secondary Section may not explain any mathematics.) The relationship could " +"be a matter of historical connection with the subject or with related " +"matters, or of legal, commercial, philosophical, ethical or political " +"position regarding them." +msgstr "" +"Uma <_:quote-1/> é um apêndice com nome ou uma seção inicial do <_:link-2/> " +"que trata exclusivamente da relação dos editores ou autores do Documento com " +"seu assunto geral (ou temas relacionados) e não contém nada que possa estar " +"diretamente dentro do assunto geral. (Por exemplo, se o Documento é em parte " +"um livro-texto de matemática, uma Seção Secundária não pode explicar nada de " +"matemática). Tal relação pode ser uma questão de conexão histórica com o " +"assunto ou com temas relacionados, ou tratar de questões legais, comerciais, " +"filosóficas, éticas ou políticas com relação a eles." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:95 C/fdl-appendix.xml:327 C/fdl-appendix.xml:398 +#: C/fdl-appendix.xml:439 C/fdl-appendix.xml:486 C/fdl-appendix.xml:494 +#: C/fdl-appendix.xml:567 C/fdl-appendix.xml:637 C/fdl-appendix.xml:648 +msgid "Invariant Sections" +msgstr "Sessões invariantes" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:96 C/fdl-appendix.xml:435 +msgid "Secondary Sections" +msgstr "Sessões secundárias" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:94 +msgid "" +"The <_:quote-1/> are certain <_:link-2/> whose titles are designated, as " +"being those of Invariant Sections, in the notice that says that the <_:" +"link-3/> is released under this License." +msgstr "" +"As <_:quote-1/> são certas <_:link-2/> cujos títulos são designados como " +"sendo de Seções Invariantes na nota que afirma que o <_:link-3/> é publicado " +"sob esta Licença." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:104 C/fdl-appendix.xml:181 C/fdl-appendix.xml:328 +#: C/fdl-appendix.xml:458 +msgid "Cover Texts" +msgstr "Textos de Capa" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:103 +msgid "" +"The <_:quote-1/> are certain short passages of text that are listed, as " +"Front-Cover Texts or Back-Cover Texts, in the notice that says that the <_:" +"link-2/> is released under this License." +msgstr "" +"Os <_:quote-1/> são certas passagens de texto curtas que são listadas, como " +"Textos de Capa Frontal ou Texto de Contra Capa, na nota que afirma que o <_:" +"link-2/> é publicado sob esta Licença." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:112 C/fdl-appendix.xml:124 C/fdl-appendix.xml:207 +#: C/fdl-appendix.xml:369 +msgid "Transparent" +msgstr "Transparente" + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:125 C/fdl-appendix.xml:204 +msgid "Opaque" +msgstr "Opaco" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:111 +msgid "" +"A <_:quote-1/> copy of the <_:link-2/> means a machine-readable copy, " +"represented in a format whose specification is available to the general " +"public, whose contents can be viewed and edited directly and " +"straightforwardly with generic text editors or (for images composed of " +"pixels) generic paint programs or (for drawings) some widely available " +"drawing editor, and that is suitable for input to text formatters or for " +"automatic translation to a variety of formats suitable for input to text " +"formatters. A copy made in an otherwise Transparent file format whose markup " +"has been designed to thwart or discourage subsequent modification by readers " +"is not Transparent. A copy that is not <_:quote-3/> is called <_:quote-4/>." +msgstr "" +"Uma cópia <_:quote-1/> do <_:link-2/> significa uma cópia legível por " +"máquina, representada em um formato cuja especificação esteja disponível ao " +"público geral e que cujo conteúdo possa ser visualizado e editado de forma " +"clara e direta por editores de texto genéricos ou programas genéricos de " +"desenho (para imagens compostas de pixels) ou para alguns dos editores de " +"desenho amplamente disponíveis (para desenhos) e que seja apropriado para " +"inclusão em formatadores de texto ou para a tradução automática em uma " +"variedade de formatos apropriados de entrada em formatadores de texto. Uma " +"cópia feita em outro formato de arquivo Transparente cuja marcação, ou " +"ausência desta, tenha sido manipulada para impedir ou desencorajar " +"modificação subsequente pelos leitores não é Transparente. Uma cópia que não " +"é <_:quote-3/> é chamada <_:quote-4/>." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:142 C/fdl-appendix.xml:146 C/fdl-appendix.xml:250 +#: C/fdl-appendix.xml:266 C/fdl-appendix.xml:281 C/fdl-appendix.xml:352 +msgid "Title Page" +msgstr "Título da página" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:141 +msgid "" +"The <_:quote-1/> means, for a printed book, the title page itself, plus such " +"following pages as are needed to hold, legibly, the material this License " +"requires to appear in the title page. For works in formats which do not have " +"any title page as such, <_:quote-2/> means the text near the most prominent " +"appearance of the work's title, preceding the beginning of the body of the " +"text." +msgstr "" +"A <_:quote-1/> significa, para um livro impresso, a própria página do " +"título, além das páginas subsequentes necessárias para conter, de forma " +"legível, o material que esta Licença requer que apareça na página do título. " +"Para trabalhos em formatos que não possuem qualquer página de título " +"semelhante, <_:quote-2/> significa o texto próximo à ocorrência mais " +"proeminente do título do trabalho, precedendo o início do corpo do texto." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:166 C/fdl-appendix.xml:551 +msgid "section 3" +msgstr "seção 3" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:154 +msgid "" +"You may copy and distribute the <_:link-1/> in any medium, either " +"commercially or noncommercially, provided that this License, the copyright " +"notices, and the license notice saying this License applies to the Document " +"are reproduced in all copies, and that you add no other conditions " +"whatsoever to those of this License. You may not use technical measures to " +"obstruct or control the reading or further copying of the copies you make or " +"distribute. However, you may accept compensation in exchange for copies. If " +"you distribute a large enough number of copies you must also follow the " +"conditions in <_:link-2/>." +msgstr "" +"Você pode copiar e distribuir o <_:link-1/> em qualquer meio, seja este de " +"forma comercial ou não, desde que esta licença, as notas de direitos " +"autorais (copyright), e a nota de licença afirmando que esta Licença se " +"aplica ao Documento sejam reproduzidas em todas as cópias, e que você não " +"inclua outras condições, quaisquer que sejam, às condições desta Licença. " +"Você não pode usar de medidas técnicas para obstruir ou controlar a leitura " +"ou cópia futura das cópias que você fizer ou distribuir. Contudo, você pode " +"aceitar compensação em troca das cópias. Se você distribuir um número " +"suficientemente grande de cópias, você deve também respeitar as condições " +"descritas na <_:link-2/>." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:177 +msgid "" +"If you publish printed copies of the <_:link-1/> numbering more than 100, " +"and the Document's license notice requires <_:link-2/>, you must enclose the " +"copies in covers that carry, clearly and legibly, all these Cover Texts: " +"Front-Cover Texts on the front cover, and Back-Cover Texts on the back " +"cover. Both covers must also clearly and legibly identify you as the " +"publisher of these copies. The front cover must present the full title with " +"all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the <_:link-3/> and satisfy " +"these conditions, can be treated as verbatim copying in other respects." +msgstr "" +"Se você publicar cópias impressas do <_:link-1/>, em número maior que 100, e " +"a nota de licença do Documento exigir <_:link-2/>, você deve encadernar as " +"cópias em capas que carreguem, de forma clara e legível, todos estes Textos " +"de Capa: Textos de Capa Frontal na capa frontal e Textos de Contracapa na " +"contracapa. Ambas as capas devem também identificar, de forma clara e " +"legível, você como o editor das cópias. A capa frontal deve apresentar o " +"título completo com todas as palavras deste igualmente proeminentes e " +"visíveis. Além disso, você pode adicionar outro material nas capas. As " +"cópias com mudanças limitadas às capas, desde que preservem o título do <_:" +"link-3/> e satisfaçam estas condições podem ser tratadas como cópias " +"literais em outros aspectos." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:202 +msgid "" +"If you publish or distribute <_:link-1/> copies of the <_:link-2/> numbering " +"more than 100, you must either include a machine-readable <_:link-3/> copy " +"along with each Opaque copy, or state in or with each Opaque copy a publicly-" +"accessible computer-network location containing a complete Transparent copy " +"of the Document, free of added material, which the general network-using " +"public has access to download anonymously at no charge using public-standard " +"network protocols. If you use the latter option, you must take reasonably " +"prudent steps, when you begin distribution of Opaque copies in quantity, to " +"ensure that this Transparent copy will remain thus accessible at the stated " +"location until at least one year after the last time you distribute an " +"Opaque copy (directly or through your agents or retailers) of that edition " +"to the public." +msgstr "" +"Se você publicar ou distribuir cópias <_:link-1/> do <_:link-2/> em número " +"maior que 100, você deve incluir uma cópia <_:link-3/> legível por máquina " +"juntamente com cada cópia Opaca, ou dizer em (ou juntamente com) cada cópia " +"Opaca, um endereço de rede a partir do qual o público geral de usuários " +"possam acessar e obter de forma anônima e sob nenhum custo, usando " +"protocolos de rede públicos padrão, uma cópia Transparente completa do " +"Documento, livre de materiais adicionados. Se você decidir pela segunda " +"opção, você deve seguir passos com certa prudência ao começar a distribuir " +"as cópias Opacas em quantidade, a fim de garantir que esta cópia " +"transparente permanecerá acessível no local indicado por pelo menos um ano " +"após a última vez que você distribuir uma cópia Opaca (diretamente ou " +"através de seus agentes ou distribuidores) desta edição ao público." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:222 +msgid "" +"It is requested, but not required, that you contact the authors of the <_:" +"link-1/> well before redistributing any large number of copies, to give them " +"a chance to provide you with an updated version of the Document." +msgstr "" +"É solicitado, mas não exigido, que você contate os autores do <_:link-1/> " +"muito antes de redistribuir qualquer grande número de cópias, para dar a " +"eles uma chance de lhe fornecer uma versão atualizada do Documento." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:236 +msgid "2" +msgstr "2" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:237 +msgid "3" +msgstr "3" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:232 +msgid "" +"You may copy and distribute a <_:link-1/> of the <_:link-2/> under the " +"conditions of sections <_:link-3/> and <_:link-4/> above, provided that you " +"release the Modified Version under precisely this License, with the Modified " +"Version filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" +"Você pode copiar e distribuir uma <_:link-1/> do <_:link-2/> sob as " +"condições das seções <_:link-3/> e <_:link-4/> acima, desde que você forneça " +"a Versão Modificada estritamente sob esta Licença, com a Versão Modificada " +"preenchendo a função de Documento, permitindo assim a distribuição e " +"modificação da Versão Modificada a quem quer que possua uma cópia desta. " +"Além disso, você deve executar os seguintes procedimentos na Versão " +"Modificada:" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:249 +msgid "" +"Use in the <_:link-1/> (and on the covers, if any) a title distinct from " +"that of the <_:link-2/>, and from those of previous versions (which should, " +"if there were any, be listed in the History section of the Document). You " +"may use the same title as a previous version if the original publisher of " +"that version gives permission." +msgstr "" +"Usar na <_:link-1/> (e nas capas, se existirem) um título distinto em " +"relação ao do <_:link-2/>, e daqueles de versões anteriores (os quais devem, " +"na existência de algum, ser listados na seção “Histórico” do Documento). " +"Você pode usar o mesmo título de uma versão anterior se o editor original " +"daquela versão conceder-lhe permissão." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:265 +msgid "" +"List on the <_:link-1/>, as authors, one or more persons or entities " +"responsible for authorship of the modifications in the <_:link-2/>, together " +"with at least five of the principal authors of the <_:link-3/> (all of its " +"principal authors, if it has less than five)." +msgstr "" +"Listar na <_:link-1/> como autores, uma ou mais pessoas ou entidades " +"responsáveis pela autoria das modificações na <_:link-2/>, juntamente com " +"pelo menos cinco autores principais do <_:link-3/> (todos seus autores " +"principais, se houver menos que cinco)." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:280 +msgid "" +"State on the <_:link-1/> the name of the publisher of the <_:link-2/>, as " +"the publisher." +msgstr "" +"Declarar na <_:link-1/> o nome do editor da <_:link-2/>, como seu editor." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:292 +msgid "Preserve all the copyright notices of the <_:link-1/>." +msgstr "" +"Preservar todas as notas de direitos autorais (copyright) do <_:link-1/>." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:312 +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the <_:link-1/> under the terms of this " +"License, in the form shown in the Addendum below." +msgstr "" +"Incluir, imediatamente após as notas de direitos autorais, uma nota de " +"licença concedendo permissão pública para o uso da <_:link-1/> sob os termos " +"desta Licença, na forma mostrada no Adendo abaixo." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:330 +msgid "Document's" +msgstr "do Documento" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:325 +msgid "" +"Preserve in that license notice the full lists of <_:link-1/> and required " +"<_:link-2/> given in the <_:link-3/> license notice." +msgstr "" +"Preservar na referida nota de licença a lista completa de <_:link-1/> e <_:" +"link-2/> obrigatórios, dados na nota de licença do <_:link-3/>." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:348 C/fdl-appendix.xml:353 C/fdl-appendix.xml:372 +#: C/fdl-appendix.xml:507 C/fdl-appendix.xml:508 +msgid "History" +msgstr "Histórico" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:347 +msgid "" +"Preserve the section entitled <_:quote-1/>, and its title, and add to it an " +"item stating at least the title, year, new authors, and publisher of the <_:" +"link-2/> as given on the <_:link-3/>. If there is no section entitled <_:" +"quote-4/> in the <_:link-5/>, create one stating the title, year, authors, " +"and publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" +"Preservar a seção intitulada <_:quote-1/>, preservar seu título, e adicionar " +"a esta um item declarando ao menos o título, o ano, novos autores, e o " +"editor da <_:link-2/> conforme incluído na <_:link-3/>. Se nenhuma seção " +"intitulada <_:quote-4/> estiver presente no <_:link-5/>, crie uma informando " +"o título, o ano, os autores e o editor do Documento como evidenciado na " +"Página de Título, em seguida adicione um item descrevendo a Versão " +"Modificada como mencionado na sentença anterior." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:366 +msgid "" +"Preserve the network location, if any, given in the <_:link-1/> for public " +"access to a <_:link-2/> copy of the Document, and likewise the network " +"locations given in the Document for previous versions it was based on. These " +"may be placed in the <_:quote-3/> section. You may omit a network location " +"for a work that was published at least four years before the Document " +"itself, or if the original publisher of the version it refers to gives " +"permission." +msgstr "" +"Preservar o endereço de rede, se existir algum, informado pelo <_:link-1/> " +"para acesso público a uma cópia <_:link-2/> deste e, da mesma maneira, os " +"endereços de rede dados no Documento para versões anteriores nas quais este " +"se baseia. Estes podem ser colocados na seção <_:quote-3/>. Você pode omitir " +"um endereço de rede para um trabalho que foi publicado pelo menos quatro " +"anos antes do Documento em si, ou se o editor original da versão à qual o " +"endereço se refere der permissão." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:385 C/fdl-appendix.xml:509 +msgid "Acknowledgements" +msgstr "Agradecimentos" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:386 C/fdl-appendix.xml:510 +msgid "Dedications" +msgstr "Dedicatórias" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:384 +msgid "" +"In any section entitled <_:quote-1/> or <_:quote-2/>, preserve the section's " +"title, and preserve in the section all the substance and tone of each of the " +"contributor acknowledgements and/or dedications given therein." +msgstr "" +"Preservar o título da seção para qualquer seção intitulada <_:quote-1/> ou " +"<_:quote-2/> e preservar dentro da seção toda a substância e tom de cada um " +"dos agradecimentos e/ou dedicatórias lá mencionados." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:397 +msgid "" +"Preserve all the <_:link-1/> of the <_:link-2/>, unaltered in their text and " +"in their titles. Section numbers or the equivalent are not considered part " +"of the section titles." +msgstr "" +"Preservar todas as <_:link-1/> do <_:link-2/>, sem alterações em seus textos " +"e títulos. Números de seção ou o equivalente não são considerados parte dos " +"títulos das seções." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:412 C/fdl-appendix.xml:424 C/fdl-appendix.xml:445 +msgid "Endorsements" +msgstr "Apoio" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:410 +msgid "" +"Delete any section entitled <_:quote-1/>. Such a section may not be included " +"in the <_:link-2/>." +msgstr "" +"Apagar qualquer seção intitulada <_:quote-1/>. Tal seção não deve ser " +"incluída na <_:link-2/>." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:425 +msgid "Invariant Section" +msgstr "Seção invariante" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:422 +msgid "" +"Do not retitle any existing section as <_:quote-1/> or to conflict in title " +"with any <_:link-2/>." +msgstr "" +"Não renomear o título de qualquer seção existente como <_:quote-1/> ou que " +"resulte em conflito com o título de qualquer <_:link-2/>." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:432 +msgid "" +"If the <_:link-1/> includes new front-matter sections or appendices that " +"qualify as <_:link-2/> and contain no material copied from the Document, you " +"may at your option designate some or all of these sections as invariant. To " +"do this, add their titles to the list of <_:link-3/> in the Modified " +"Version's license notice. These titles must be distinct from any other " +"section titles." +msgstr "" +"Se a <_:link-1/> incluir novas seções iniciais ou apêndices que sejam " +"qualificados como <_:link-2/>, e não contiver material copiado do Documento, " +"você pode, a seu critério, tornar algumas dessas ou todas essas seções em " +"invariantes. Para fazer isso, adicione seus títulos à lista de <_:link-3/> " +"na nota de licença da Versão Modificada. Estes títulos devem ser distintos " +"de quaisquer outros títulos de seções." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:444 +msgid "" +"You may add a section entitled <_:quote-1/>, provided it contains nothing " +"but endorsements of your <_:link-2/> by various parties--for example, " +"statements of peer review or that the text has been approved by an " +"organization as the authoritative definition of a standard." +msgstr "" +"Você pode incluir uma seção intitulada <_:quote-1/>, desde que esta contenha " +"apenas apoios recebidos limitados a sua <_:link-2/> por várias fontes -- por " +"exemplo, notas do revisor ou de que o texto foi aprovado por uma organização " +"como a definição oficial de um padrão." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:455 +msgid "Front-Cover Text" +msgstr "Texto de Capa Frontal" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:457 +msgid "Back-Cover Text" +msgstr "Texto de Contracapa" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:453 +msgid "" +"You may add a passage of up to five words as a <_:link-1/>, and a passage of " +"up to 25 words as a <_:link-2/>, to the end of the list of <_:link-3/> in " +"the <_:link-4/>. Only one passage of Front-Cover Text and one of Back-Cover " +"Text may be added by (or through arrangements made by) any one entity. If " +"the <_:link-5/> already includes a cover text for the same cover, previously " +"added by you or by arrangement made by the same entity you are acting on " +"behalf of, you may not add another; but you may replace the old one, on " +"explicit permission from the previous publisher that added the old one." +msgstr "" +"Você pode adicionar uma passagem de até cinco palavras como <_:link-1/>, e " +"uma passagem de até 25 palavras como <_:link-2/>, ao fim da lista de <_:" +"link-3/> na <_:link-4/>. Somente uma passagem de Texto de Capa Frontal e uma " +"de Texto de Contracapa podem ser adicionados por (ou através de arranjos " +"feitos por) uma entidade qualquer. Caso o <_:link-5/> já incluir um texto de " +"capa para a mesma capa, previamente incluído por você ou pelo arranjo feito " +"pela mesma entidade em cujo nome você está agindo, você não poderá adicionar " +"outro; mas você poderá substituir o antigo, com a permissão explícita do " +"editor anterior, que o incluiu." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:470 +msgid "" +"The author(s) and publisher(s) of the <_:link-1/> do not by this License " +"give permission to use their names for publicity for or to assert or imply " +"endorsement of any <_:link-2/>." +msgstr "" +"O(s) autor(es) e editor(es) do <_:link-1/>, por esta Licença, não concedem " +"permissão para que seus nomes sejam usados a fins de publicidade, para " +"defesa ou para apoio implícito de qualquer <_:link-2/>." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:484 C/fdl-appendix.xml:566 +msgid "section 4" +msgstr "seção 4" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:481 +msgid "" +"You may combine the <_:link-1/> with other documents released under this " +"License, under the terms defined in <_:link-2/> above for modified versions, " +"provided that you include in the combination all of the <_:link-3/> of all " +"of the original documents, unmodified, and list them all as Invariant " +"Sections of your combined work in its license notice." +msgstr "" +"Você pode combinar o <_:link-1/> com outros documentos publicados sob esta " +"Licença, sob os termos definidos na <_:link-2/> acima para versões " +"modificadas, desde que você inclua na combinação todas as <_:link-3/> de " +"todos os documentos originais, sem modificações, e as liste como Seções " +"Invariantes de seu trabalho combinado, na sua nota de licença." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:492 +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical <_:link-1/> may be replaced with a single copy. If there are " +"multiple Invariant Sections with the same name but different contents, make " +"the title of each such section unique by adding at the end of it, in " +"parentheses, the name of the original author or publisher of that section if " +"known, or else a unique number. Make the same adjustment to the section " +"titles in the list of Invariant Sections in the license notice of the " +"combined work." +msgstr "" +"O trabalho combinado precisa conter somente uma cópia desta Licença, e " +"várias <_:link-1/> idênticas podem ser substituídas por uma única cópia. Se " +"existirem várias Seções Invariantes de mesmo nome, porém com conteúdos " +"diferentes, você deve tornar o título de cada uma destas seções único, " +"adicionando ao fim destes, entre parênteses, o nome do autor ou, se " +"conhecido, o editor original desta seção, ou ainda um número único. Faça o " +"mesmo ajuste nos títulos de seção na lista de Seções Invariantes na nota de " +"licença do trabalho combinado." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:511 +msgid "Endorsements." +msgstr "Apoios." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:505 +msgid "" +"In the combination, you must combine any sections entitled <_:quote-1/> in " +"the various original documents, forming one section entitled <_:quote-2/>; " +"likewise combine any sections entitled <_:quote-3/>, and any sections " +"entitled <_:quote-4/>. You must delete all sections entitled <_:quote-5/>" +msgstr "" +"Na combinação, você deve combinar quaisquer seções intituladas <_:quote-1/> " +"nos vários documentos originais, formando uma seção intitulada <_:quote-2/>; " +"do mesmo modo, combine quaisquer seções intituladas <_:quote-3/>, e " +"quaisquer seções intituladas <_:quote-4/>. Você deve apagar todas as seções " +"intituladas <_:quote-5/>." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:517 +msgid "" +"You may make a collection consisting of the <_:link-1/> and other documents " +"released under this License, and replace the individual copies of this " +"License in the various documents with a single copy that is included in the " +"collection, provided that you follow the rules of this License for verbatim " +"copying of each of the documents in all other respects." +msgstr "" +"Você pode fazer uma coleção que consiste do <_:link-1/> e outros documentos " +"publicados sob esta Licença, e substituir as cópias individuais desta " +"Licença, nos vários documentos, por uma única cópia a ser incluída na " +"coleção, desde que você siga as regras desta Licença para cópias literais de " +"cada documento em todos os outros aspectos." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:546 +msgid "aggregate" +msgstr "agregação" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:550 +msgid "Cover Text" +msgstr "Capa de Texto" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:538 +msgid "" +"A compilation of the <_:link-1/> or its derivatives with other separate and " +"independent documents or works, in or on a volume of a storage or " +"distribution medium, does not as a whole count as a <_:link-2/> of the " +"Document, provided no compilation copyright is claimed for the compilation. " +"Such a compilation is called an <_:quote-3/>, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the <_:link-4/> requirement of <_:link-5/> is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" +"Uma compilação do <_:link-1/> ou seus derivados com outros documentos ou " +"trabalhos separados e independentes, dentro de ou sob um volume de um meio " +"de armazenamento ou distribuição, não conta como um todo para uma <_:link-2/" +"> do Documento, contanto que nenhum direito autoral de compilação seja " +"reivindicado para esta compilação. Tal compilação configura um <_:quote-3/> " +"e esta Licença não se aplica aos outros trabalhos contidos na compilação do " +"Documento, levando em conta serem compilados, caso eles mesmos não forem " +"trabalhos derivados do Documento. Se o requisito de <_:link-4/> da <_:link-5/" +"> é aplicável a estas cópias do Documento, e ainda se o Documento é menor do " +"que um quarto do agregado inteiro, os Textos de Capa do Documento podem ser " +"inseridos nas capas que envolvem somente o Documento no agregado. Caso " +"contrário, eles devem aparecer em capas em volta do agregado como um todo." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:562 +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the <_:link-1/> under the terms of <_:link-2/>. Replacing <_:" +"link-3/> with translations requires special permission from their copyright " +"holders, but you may include translations of some or all Invariant Sections " +"in addition to the original versions of these Invariant Sections. You may " +"include a translation of this License provided that you also include the " +"original English version of this License. In case of a disagreement between " +"the translation and the original English version of this License, the " +"original English version will prevail." +msgstr "" +"Uma tradução é considerada como sendo um tipo de modificação, desta forma " +"você pode distribuir traduções do <_:link-1/> sob os termos da <_:link-2/>. " +"A substituição das <_:link-3/> por traduções requer permissão especial dos " +"detentores dos direitos autorais, embora você possa incluir traduções de " +"algumas ou todas as Seções Invariantes juntamente às versões originais " +"destas. Você pode incluir uma tradução desta Licença, desde que você também " +"inclua a versão original em Inglês desta Licença. Em caso de discordância " +"entre a tradução e a versão original desta Licença ou nota de licença, a " +"versão original em inglês prevalecerá." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:581 +msgid "" +"You may not copy, modify, sublicense, or distribute the <_:link-1/> except " +"as expressly provided for under this License. Any other attempt to copy, " +"modify, sublicense or distribute the Document 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." +msgstr "" +"Você não pode copiar, modificar, sublicenciar, ou distribuir o <_:link-1/> " +"com exceção do que foi expressamente previsto sob esta Licença. Qualquer " +"outra tentativa de cópia, modificação, sublicenciamento ou distribuição do " +"Documento é nula, e implicará na rescisão automática de seus direitos sob " +"esta Licença. Contudo, as partes que receberam as cópias, ou direitos, de " +"você sob esta Licença não terão suas licenças rescindidas enquanto tais " +"partes permanecerem em total acordo com a Licença." + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:597 +msgid "Free Software Foundation" +msgstr "Free Software Foundation" + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:603 +msgid "http://www.gnu.org/copyleft/" +msgstr "http://www.gnu.org/copyleft/" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:595 +msgid "" +"The <_:ulink-1/> may publish new, revised versions of the GNU Free " +"Documentation 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. See <_:ulink-2/>." +msgstr "" +"A <_:ulink-1/> pode publicar novas versões, revisadas, da Licença de " +"Documentação Livre GNU de tempos em tempos. Tais versões posteriores terão " +"ideologia similar à presente versão, embora possam diferir em detalhes a fim " +"de abordar novos problemas ou preocupações. Consulte: <_:ulink-2/>." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:610 +msgid "or any later version" +msgstr "ou qualquer versão posterior" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:606 +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"<_:link-1/> specifies that a particular numbered version of this License <_:" +"quote-2/> applies to it, you have the option of following the terms and " +"conditions either of that specified version or of any later version that has " +"been published (not as a draft) by the Free Software Foundation. If the " +"Document does not specify a version number of this License, you may choose " +"any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" +"É dado, a cada versão da Licença, um número de versão distinto. Se o <_:" +"link-1/> especificar que um número de versão em específico desta Licença <_:" +"quote-2/> se aplica a ele, você tem a opção de seguir os termos e condições " +"tanto da versão especificada quanto de qualquer versão posterior que tenha " +"sido publicada (não como rascunho) pela Free Software Foundation. Se o " +"documento não especificar um número de versão desta Licença, você pode " +"escolher qualquer versão já publicada (não como rascunho) pela Free Software " +"Foundation." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:639 C/fdl-appendix.xml:651 +msgid "Front-Cover Texts" +msgstr "Textos de Capa Frontal" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:640 C/fdl-appendix.xml:654 +msgid "Back-Cover Texts" +msgstr "Textos de Contracapa" + +#. (itstool) path: blockquote/para +#: C/fdl-appendix.xml:632 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the <_:link-1/> " +"being LIST THEIR TITLES, with the <_:link-2/> being LIST, and with the <_:" +"link-3/> being LIST. A copy of the license is included in the section " +"entitled <_:quote-4/>." +msgstr "" +"Permissão concedida para copiar, distribuir e/ou modificar este documento " +"sob os termos da Licença de Documentação Livre GNU (GNU Free Documentation " +"License), Versão 1.1 ou qualquer versão mais recente publicada pela Free " +"Software Foundation; com as <_:link-1/>, sendo LISTADO SEUS TÍTULOS, com os " +"<_:link-2/> sendo LISTADOS, e com os <_:link-3/> sendo LISTADOS. Uma cópia " +"da licença está inclusa na seção intitulada <_:quote-4/>." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:649 +msgid "with no Invariant Sections" +msgstr "sem Seções Invariantes" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:652 +msgid "no Front-Cover Texts" +msgstr "sem Textos de Capa Frontal" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:653 +msgid "Front-Cover Texts being LIST" +msgstr "Textos de Capa Frontal sendo LISTADOS" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:647 +msgid "" +"If you have no <_:link-1/>, write <_:quote-2/> instead of saying which ones " +"are invariant. If you have no <_:link-3/>, write <_:quote-4/> instead of <_:" +"quote-5/>; likewise for <_:link-6/>." +msgstr "" +"Se você não tiver qualquer <_:link-1/>, escreva <_:quote-2/> ao invés de " +"afirmar quais são invariantes. Se você não tem <_:link-3/>, escreva <_:" +"quote-4/> ao invés de <_:quote-5/>; O mesmo se aplica a <_:link-6/>." + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:661 +msgid "GNU General Public License" +msgstr "Licença Pública Geral GNU (GPL)" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:657 +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the <_:ulink-1/>, to permit their use in free software." +msgstr "" +"Se seu documento contiver exemplos não-triviais de código de programação, " +"recomendamos publicar estes exemplos paralelamente, sob a licença de " +"software livre que você escolher, como, por exemplo, a <_:ulink-1/>, para " +"permitir seu uso em software livre." + +#~ msgid "Python - optional - for gtkdoc-depscan" +#~ msgstr "Python - opcional - para gtkdoc-depscan" + +#~ msgid "" +#~ "Generating the \"template\" files. " +#~ "gtkdoc-mktmpl creates a number of files in the " +#~ "tmpl/ subdirectory, using the " +#~ "information gathered in the first step. (Note that this can be run " +#~ "repeatedly. It will try to ensure that no documentation is ever lost.)" +#~ msgstr "" +#~ "Gerando os arquivos \"template\". " +#~ "gtkdoc-mktmpl cria uma quantidade de arquivos " +#~ "no subdiretório tmpl/, usando a " +#~ "informação coletada na primeira etapa. (Note que ele pode ser executado " +#~ "repetidas vezes e vai tentar garantir que nenhuma documentação será " +#~ "perdida, jamais.)" + +#~ msgid "" +#~ "Since GTK-Doc 1.9 the templates can be avoided. We encourage people to " +#~ "keep documentation in the code. gtkdocize " +#~ "supports now a option that chooses a " +#~ "makefile that skips tmpl usage totally. If you have never changed file in " +#~ "tmpl by hand, please remove the directory (e.g. from version control " +#~ "system)." +#~ msgstr "" +#~ "Desde o GTK-Doc 1.9, os modelos (\"templates\") podem ser evitados. Nós " +#~ "encorajamos as pessoas a manter a documentação no código. " +#~ "gtkdocize possui suporte a uma opção que escolhe um makefile que ignora totalmente o " +#~ "uso de tmpl. Se você nunca alterou o arquivo em tmpl manualmente, por " +#~ "favor remova o diretório (ex.: do sistema de controle de versão)." + +#~ msgid "1.20" +#~ msgstr "1.20" + +#~ msgid "(FIXME : Stability information)" +#~ msgstr "(CORRIJA-ME : Informação sobre estabilidade)" + +#~ msgid "" +#~ "Also, take a look at GObject Introspection annotation tags: http://live." +#~ "gnome.org/GObjectIntrospection/Annotations" +#~ msgstr "" +#~ "Também, dê uma olhada nas tags de anotação do GObject Introspection: " +#~ "http://live.gnome.org/GObjectIntrospection/Annotations" + +#~ msgid "1.18.1" +#~ msgstr "1.18.1" + +#~ msgid "" +#~ "DocBook DTD v3.0 - This is the DocBook SGML DTD. " +#~ "http://www.ora." +#~ "com/davenport" +#~ msgstr "" +#~ "DocBook DTD v3.0 - Este é o DocBook SGML DTD. http://www.ora.com/" +#~ "davenport" + +#~ msgid "" +#~ "Jade v1.1 - This is a DSSSL processor for converting " +#~ "SGML to various formats. http://www.jclark.com/jade" +#~ msgstr "" +#~ "Jade v1.1 - Este é um processador de DSSSL para " +#~ "conversão de SGML para vários formatos. http://www.jclark.com/jade" + +#~ msgid "" +#~ "Modular DocBook Stylesheets This is the DSSSL code " +#~ "to convert DocBook to HTML (and a few other formats). It's used together " +#~ "with jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to " +#~ "colour the program code listings/declarations, and to support global " +#~ "cross-reference indices in the generated HTML. http://nwalsh.com/docbook/dsssl" +#~ msgstr "" +#~ "Folhas de estilo modulares do DocBook Este é o " +#~ "código DSSSL para converter DocBook para HTML (e alguns outros formatos). " +#~ "É usado junto com jade. Eu personalizei um pouco o código DSSSL, em gtk-" +#~ "doc.dsl, para colorir as listagens/declarações do código do programa e " +#~ "para dar suporte a índices de referências cruzadas globais nos HTML " +#~ "gerados. http://nwalsh.com/docbook/dsssl" + +#~ msgid "" +#~ "docbook-to-man - if you want to create man pages " +#~ "from the DocBook. I've customized the 'translation spec' slightly, to " +#~ "capitalise section headings and add the 'GTK Library' title at the top of " +#~ "the pages and the revision date at the bottom. There is a link to this on " +#~ "http://www.ora." +#~ "com/davenport NOTE: This does not work yet." +#~ msgstr "" +#~ "docbook-to-man - se você deseja criar páginas man a " +#~ "partir do DocBook. Eu personalizei um pouco a \"especificação de tradução" +#~ "\", para deixar o título em caixa alta e adicionar o título \"GTK Library" +#~ "\" no topo das páginas e a data de revisão no canto inferior. Há também " +#~ "um link para isso em http://www.ora.com/davenport. NOTA: isso não funciona " +#~ "ainda." + +#~ msgid "" +#~ "There is no standard place where the DocBook Modular Stylesheets are " +#~ "installed." +#~ msgstr "" +#~ "Não há um lugar padrão onde as folhas de estilos modulares de DocBook são " +#~ "instaladas." + +#~ msgid "" +#~ "GTK-Doc's configure script searches these 3 directories automatically:" +#~ msgstr "" +#~ "O script de configuração do GTK-DOC pesquisa por esses três diretórios " +#~ "automaticamente:" + +#~ msgid "" +#~ " /usr/lib/sgml/stylesheets/nwalsh-modular (used by " +#~ "RedHat)" +#~ msgstr "" +#~ " /usr/lib/sgml/stylesheets/nwalsh-modular (usado " +#~ "pelo RedHat)" + +#~ msgid "" +#~ " /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +#~ msgstr "" +#~ " /usr/lib/dsssl/stylesheets/docbook (usado pelo " +#~ "Debian)" + +#~ msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +#~ msgstr " /usr/share/sgml/docbkdsl (usado pelo SuSE)" + +#~ msgid "" +#~ "If you have the stylesheets installed somewhere else, you need to " +#~ "configure GTK-Doc using the option: --with-dsssl-dir=<" +#~ "PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +#~ msgstr "" +#~ "Se você tiver as folhas de estilos instaladas em algum lugar, você " +#~ "precisa configurar o Gtk-Doc usando a opção: --with-dsssl-" +#~ "dir=<CAMINHO_PARA_DIRETÓRIO_RAIZ_DAS_FOLHAS_DE_ESTILO> " + +#~ msgid "" +#~ "You may also want to enable GTK-Doc for the distcheck make target. Just " +#~ "add the one line shown in the next example to your top-level " +#~ "Makefile.am:" +#~ msgstr "" +#~ "Você pode querer habilitar o GTK-Doc para o distcheck make target. Basta " +#~ "adicionar a linha mostrada no exemplo abaixo ao Makefile.am do seu diretório raiz:" + +#~ msgid "Enable GTK-Doc during make distcheck" +#~ msgstr "Habilita GTK-Doc durante make distcheck" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc\n" +#~ "\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc\n" +#~ "\n" +#~ " " + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "/**\n" +#~ " * identifier:\n" +#~ " *\n" +#~ " * documentation ...\n" +#~ " *\n" +#~ " * # Sub heading #\n" +#~ " *\n" +#~ " * more documentation:\n" +#~ " * - list item 1\n" +#~ " * - list item 2\n" +#~ " *\n" +#~ " * Even more docs.\n" +#~ " */\n" +#~ "\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "/**\n" +#~ " * identificador:\n" +#~ " *\n" +#~ " * documentação ...\n" +#~ " *\n" +#~ " * # Subtítulo #\n" +#~ " *\n" +#~ " * mais documentação:\n" +#~ " * - item de lista 1\n" +#~ " * - item de lista 2\n" +#~ " *\n" +#~ " * Mais documentação.\n" +#~ " */\n" +#~ "\n" +#~ " " + +#~ msgid "" +#~ "Since GTK-Doc-1.18 the tool supports a subset or the markdown language. One " +#~ "can use it for sub-headings and simple itemized lists. On older GTK-Doc " +#~ "versions the content will be rendered as it (the list items will appear " +#~ "in one line separated by dashes). <_:example-1/>" +#~ msgstr "" +#~ "Desde o GTK-Doc-1.18, a ferramenta tem suporte a um subconjunto ou a " +#~ "linguagem " +#~ "markdown. É possível usá-la em subtítulos e listas simples " +#~ "itemizadas. Em versões mais antigas GTK-Doc, o conteúdo será processado " +#~ "com está (os itens da lista vai aparecer em uma linha separada por " +#~ "traços). <_:example-1/>" + +#~ msgid "1.15" +#~ msgstr "1.15" + +#~ msgid "Chris" +#~ msgstr "Chris" + +#~ msgid "Lyttle" +#~ msgstr "Lyttle" + +#~ msgid "chris@wilddev.net" +#~ msgstr "chris@wilddev.net" + +#~ msgid "Dan" +#~ msgstr "Dan" + +#~ msgid "Mueth" +#~ msgstr "Mueth" + +#~ msgid "d-mueth@uchicago.edu" +#~ msgstr "d-mueth@uchicago.edu" + +#~ msgid "Stefan" +#~ msgstr "Stefan" + +#~ msgid "Kost" +#~ msgstr "Kost" + +#~ msgid "ensonic@users.sf.net" +#~ msgstr "ensonic@users.sf.net" + +#~ msgid "gtk-doc-list@gnome.org" +#~ msgstr "gtk-doc-list@gnome.org" + +#~ msgid "2000, 2005, 2007-2009" +#~ msgstr "2000, 2005, 2007-2009" + +#~ msgid "Dan Mueth and Chris Lyttle and Stefan Kost" +#~ msgstr "Dan Mueth e Chris Lyttle e Stefan Kost" + +#~ msgid "development version" +#~ msgstr "versão de desenvolvimento" + +#~ msgid "bug and regression fixes" +#~ msgstr "correções de falhas e regressão" + +#~ msgid "bugfixes and performance improvements" +#~ msgstr "correção de falhas e melhoramento de performance" + +#~ msgid "broken tarball update" +#~ msgstr "atualização de arquivo tarball quebrado" + +#~ msgid "new tool features and bugfixes" +#~ msgstr "novas funcionalidades da ferramenta e correções de falhas" + +#~ msgid "GNOME doc-utils migration" +#~ msgstr "migração do GNOME doc-utils" + +#~ msgid "explanation" +#~ msgstr "explicação" + +#~ msgid "" +#~ "Missing or wrong naming in file (see )." +#~ msgstr " " diff --git a/help/manual/pt_BR/pt_BR.stamp b/help/manual/pt_BR/pt_BR.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/pt_BR/pt_BR.stamp diff --git a/help/manual/sl/fdl-appendix.xml b/help/manual/sl/fdl-appendix.xml new file mode 100644 index 0000000..8589225 --- /dev/null +++ b/help/manual/sl/fdl-appendix.xml @@ -0,0 +1,621 @@ + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    diff --git a/help/manual/sl/index.docbook b/help/manual/sl/index.docbook new file mode 100644 index 0000000..2fd8f4b --- /dev/null +++ b/help/manual/sl/index.docbook @@ -0,0 +1,2902 @@ + + + + +included"> +]> + + + + GTK-Doc Manual + 1.24.1 + User manual for developers with instructions of GTK-Doc usage. + + + Chris + Lyttle + +
    + chris@wilddev.net +
    +
    +
    + + Dan + Mueth + +
    + d-mueth@uchicago.edu +
    +
    +
    + + Stefan + Sauer (Kost) + +
    + ensonic@users.sf.net +
    +
    +
    +
    + + GTK-Doc project +
    gtk-doc-list@gnome.org
    +
    + + 2000, 2005 + Dan Mueth and Chris Lyttle + + + 2007-2015 + Stefan Sauer (Kost) + + + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published + by the Free Software Foundation with no Invariant Sections, no + Front-Cover Texts, and no Back-Cover Texts. A copy of the license + is included. + + + Many of the names used by companies to distinguish their products and + services are claimed as trademarks. Where those names appear in any + GNOME documentation, and those trademarks are made aware to the members + of the GNOME Documentation Project, the names have been printed in caps + or initial caps. + + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + + 1.27 + 07 Dec 2017 + ss + fine tuning of the python port + + + 1.26 + 11 Aug 2017 + ss + port all tools from perl/bash to python + + + 1.25 + 21 March 2016 + ss + bug fixes, test cleanups + + + 1.24 + 29 May 2015 + ss + bug fix + + + 1.23 + 17 May 2015 + ss + bug fix + + + 1.22 + 07 May 2015 + ss + bug fixes, dropping deprecated features + + + 1.21 + 17 Jul 2014 + ss + bug fixes, dropping deprecated features + + + 1.20 + 16 Feb 2014 + ss + bug fixes, markdown support, style improvements + + + 1.19 + 05 Jun 2013 + ss + bug fixes + + + 1.18 + 14 Sep 2011 + ss + bug fixes, speedups, markdown support + + + 1.17 + 26 Feb 2011 + sk + urgent bug fix update + + + 1.16 + 14 Jan 2011 + sk + bugfixes, layout improvements + + + 1.15 + 21 May 2010 + sk + bug and regression fixes + + + 1.14 + 28 March 2010 + sk + bugfixes and performance improvements + + + 1.13 + 18 December 2009 + sk + broken tarball update + + + 1.12 + 18 December 2009 + sk + new tool features and bugfixes + + + 1.11 + 16 November 2008 + mal + GNOME doc-utils migration + + + +
    + + + + + Uvod + + + This chapter introduces GTK-Doc and gives an overview of what it is and + how it is used. + + + + What is GTK-Doc? + + + GTK-Doc is used to document C code. It is typically used to document the public + API of libraries, such as the GTK+ and GNOME libraries. But it can also be + used to document application code. + + + + + How Does GTK-Doc Work? + + + GTK-Doc works by using documentation of functions placed inside the source files in + specially-formatted comment blocks, or documentation added to the template files + which GTK-Doc uses (though note that GTK-Doc will only document functions that + are declared in header files; it won't produce output for static functions). + + + + GTK-Doc consists of a number of python scripts, each performing a different step + in the process. + + + + There are 5 main steps in the process: + + + + + + + Writing the documentation. + + The author fills in the source files with the documentation for each + function, macro, union etc. (In the past information was entered in + generated template files, which is not recommended anymore). + + + + + + Gathering information about the code. + + gtkdoc-scan scans the header files of the + code looking for declarations of functions, macros, enums, structs, and unions. + It creates the file <module>-decl-list.txt containing a list of the + declarations, placing them into sections according to which header file they + are in. On the first run this file is copied to <module>-sections.txt. + The author can rearrange the sections, and the order of the + declarations within them, to produce the final desired order. + The second file it generates is <module>-decl.txt. + This file contains the full declarations found by the scanner. If for + some reason one would like some symbols to show up in the docs, where + the full declaration cannot be found by the scanner or the declaration + should appear differently, one can place entities similar to the ones in + <module>-decl.txt into <module>-overrides.txt. + + + gtkdoc-scangobj can also be used to dynamically query a library about + any GObject subclasses it exports. It saves information about each + object's position in the class hierarchy and about any GObject properties + and signals it provides. + + + gtkdoc-scanobj should not be used anymore. + It was needed in the past when GObject was still GtkObject inside gtk+. + + + + + + Generating the XML and HTML/PDF. + + gtkdoc-mkdb turns the template files into + XML files in the xml/ subdirectory. + If the source code contains documentation on functions, using the + special comment blocks, it gets merged in here. If there are no tmpl files used + it only reads docs from sources and introspection data. + + + gtkdoc-mkhtml turns the XML files into HTML + files in the html/ subdirectory. + Likewise gtkdoc-mkpdf turns the XML files into a PDF + document called <package>.pdf. + + + Files in xml/ and + html/ directories are always + overwritten. One should never edit them directly. + + + + + + Fixing up cross-references between documents. + + After installing the HTML files, gtkdoc-fixxref can be run to fix up any + cross-references between separate documents. For example, the GTK+ + documentation contains many cross-references to types documented in the GLib manual. + + When creating the source tarball for distribution, gtkdoc-rebase + turns all external links into web-links. When installing distributed (pregenerated) docs + the same application will try to turn links back to local links + (where those docs are installed). + + + + + + + + Getting GTK-Doc + + + Requirements + + python 2/3 - the main scripts are written in python. + + + xsltproc - the xslt processor from libxslt + xmlsoft.org/XSLT/ + + + docbook-xsl - the docbook xsl stylesheets + sourceforge.net/projects/docbook/files/docbook-xsl + + + One of source-highlight, highlight or + vim - optional - used for syntax highlighting of examples + + + + + + About GTK-Doc + + + (FIXME) + + + + (History, authors, web pages, mailing list, license, future plans, + comparison with other similar systems.) + + + + + + About this Manual + + + (FIXME) + + + + (who it is meant for, where you can get it, license) + + + + + + + + Setting up your project + + + The next sections describe what steps to perform to integrate GTK-Doc into + your project. Theses sections assume we work on a project called 'meep'. + This project contains a library called 'libmeep' and + an end-user app called 'meeper'. We also assume you will be using autoconf + and automake. In addition section plain + makefiles or other build systems will describe the basics needed to + work in a different build setup. + + + + Setting up a skeleton documentation + + + Under your top-level project directory create folders called docs/reference + (this way you can also have docs/help for end-user documentation). + It is recommended to create another subdirectory with the name of the doc-package. + For packages with just one library this step is not necessary. + + + + This can then look as shown below: + Example directory structure + + + + + + + Integration with autoconf + + + Very easy! Just add one line to your configure.ac script. + + + + Integration with autoconf + + + + + + This will require all developers to have gtk-doc installed. If it is + okay for your project to have optional api-doc build setup, you can + solve this as below. Keep it as is, as gtkdocize is looking for + GTK_DOC_CHECK at the start of a line. + Keep gtk-doc optional + + + + + + The first argument is used to check for the gtkdocversion at configure time. + The 2nd, optional argument is used by gtkdocize. + The GTK_DOC_CHECK macro also adds several configure switches: + + + --with-html-dir=PATH : path to installed docs + --enable-gtk-doc : use gtk-doc to build documentation [default=no] + --enable-gtk-doc-html : build documentation in html format [default=yes] + --enable-gtk-doc-pdf : build documentation in pdf format [default=no] + + + + + GTK-Doc is disabled by default! Remember to pass the option + to the next + configure run. Otherwise pregenerated documentation is installed + (which makes sense for users but not for developers). + + + + + Furthermore it is recommended that you have the following line inside + your configure.ac script. + This allows gtkdocize to automatically copy the + macro definition for GTK_DOC_CHECK to your project. + + + + Preparation for gtkdocize + + + + + After all changes to configure.ac are made, update + the configure file. This can be done by re-running + autoreconf -i or autogen.sh. + + + + + Integration with automake + + + First copy the Makefile.am from the + examples sub directory of the + gtkdoc-sources + to your project's API documentation directory ( + ./docs/reference/<package>). + A local copy should be available under e.g. + /usr/share/doc/gtk-doc-tools/examples/Makefile.am. + If you have multiple doc-packages repeat this for each one. + + + + The next step is to edit the settings inside the Makefile.am. + All the settings have a comment above that describes their purpose. + Most settings are extra flags passed to the respective tools. Every tool + has a variable of the form . + All the tools support to list the supported + parameters. + + + + + + + + Integration with autogen + + + Most projects will have an autogen.sh script to + setup the build infrastructure after a checkout from version control + system (such as cvs/svn/git). GTK-Doc comes with a tool called + gtkdocize which can be used in such a script. + It should be run before autoheader, automake or autoconf. + + + + Running gtkdocize from autogen.sh + + + + + + When running gtkdocize it copies + gtk-doc.make to your project root (or any directory + specified by the option). + It also checks you configure script for the GTK_DOC_CHECK + invocation. This macro can be used to pass extra parameters to + gtkdocize. + + + + Historically GTK-Doc was generating template files where developers entered the docs. + This turned out to be not so good (e.g. the need for having generated + files under version control). + Since GTK-Doc 1.9 the tools can get all the information from source comments + and thus the templates can be avoided. We encourage people to keep + documentation in the code. gtkdocize supports now + a option that chooses a makefile that skips + tmpl usage totally. Besides adding the option directly to the command + invocation, they can be added also to an environment variable called GTKDOCIZE_FLAGS + or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. + If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, + please remove the directory (e.g. from version control system). + + + + + Running the doc build + + + After the previous steps it's time to run the build. First we need to + rerun autogen.sh. If this script runs configure for + you, then give it the option. + Otherwise manually run configure with this option + afterwards. + + + The first make run generates several additional files in the doc-directories. + The important ones are: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + Running the doc build + + + + + Now you can point your browser to docs/reference/<package>/index.html. + Yes, it's a bit disappointing still. But hang-on, during the next chapter we + tell you how to fill the pages with life. + + + + + Integration with version control systems + + + As a rule of thumb, it's the files you edit which should go under + version control. For typical projects it's these files: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt, + Makefile.am. + + + Files in the xml/ and html/ + directories should not go under version control. Neither should any of + the .stamp files. + + + + + Integration with plain makefiles or other build systems + + + In the case one does not want to use automake and therefore + gtk-doc.mak one will need to call the gtkdoc tools + in the right order in own makefiles (or other build tools). + + + + Documentation build steps + +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir= +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html +]]> + + + + + One will need to look at the Makefile.am and + gtk-doc.mak to pick the extra options needed. + + + + + Integration with CMake build systems + + + GTK-Doc now provides a GtkDocConfig.cmake module + (and the corresponding GtkDocConfigVersion.cmake + module). This provides a gtk_doc_add_module + command that you can set in your CMakeLists.txt + file. + + + + The following example shows how to use this command. + Example of using GTK-Doc from CMake + + + + + + + + Documenting the code + + + GTK-Doc uses source code comment with a special syntax for code documentation. + Further it retrieves information about your project structure from other + sources. During the next section you will find all information about the + syntax of the comments. + + + + Documentation placement + + In the past most documentation had to be filled into files residing + inside the tmpl directory. This has the + disadvantages that the information is often not updated and also that + the file tend to cause conflicts with version control systems. + + + The avoid the aforementioned problems we suggest putting the + documentation inside the sources. This manual will only describe this + way of documenting code. + + + + + The scanner can handle the majority of C headers fine. In the case of + receiving warnings from the scanner that look like a special case, one can + hint GTK-Doc to skip over them. + GTK-Doc comment block + + + + + + Limitations + + Note, that GTK-Doc's supports + #ifndef(__GTK_DOC_IGNORE__) but not + #if !defined(__GTK_DOC_IGNORE__) or other combinations. + + + + + + + Documentation comments + + + A multiline comment that starts with an additional '*' marks a + documentation block that will be processed by the GTK-Doc tools. + GTK-Doc comment block + + + + + + The 'identifier' is one line with the name of the item the comment is + related to. The syntax differs a little depending on the item. + (TODO add table showing identifiers) + + + + The 'documentation' block is also different for each symbol type. Symbol + types that get parameters such as functions or macros have the parameter + description first followed by a blank line (just a '*'). + Afterwards follows the detailed description. All lines (outside program + listings and CDATA sections) just containing a ' *' (blank-asterisk) are + converted to paragraph breaks. + If you don't want a paragraph break, change that into ' * ' + (blank-asterisk-blank-blank). This is useful in preformatted text (code + listings). + + + + + When documenting code, describe two aspects: + + + + What it is: The name for a class or function can sometimes + be misleading for people coming from a different background. + + + + + What it does: Tell about common uses. Put it in relation + with the other API. + + + + + + + + One advantage of hyper-text over plain-text is the ability to have links + in the document. Writing the correct markup for a link can be tedious + though. GTK-Doc comes to help by providing several useful abbreviations. + + + + Use function() to refer to functions or macros which take arguments. + + + + + Use @param to refer to parameters. Also use this when referring to + parameters of other functions, related to the one being described. + + + + + Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS. + + + + + Use #symbol to refer to other types of symbol, e.g. structs and + enums and macros which don't take arguments. + + + + + Use #Object::signal to refer to a GObject signal. + + + + + Use #Object:property to refer to a GObject property. + + + + + Use #Struct.field to refer to a field inside a structure and + #GObjectClass.foo_bar() to refer to a vmethod. + + + + + + + + If you need to use the special characters '<', '>', '()', '@', + '%', or '#' in your documentation without GTK-Doc changing them you + can use the XML entities "&lt;", "&gt;", "&lpar;", + "&rpar;", "&commat;", "&percnt;" and "&num;" + respectively or escape them with a backslash '\'. + + + + + DocBook can do more than just links. One can also have lists, + examples, headings, and images. As of version 1.20, the + preferred way is to use a subset of the basic text formatting + syntax called + Markdown. + On older GTK-Doc versions any documentation that includes + Markdown will be rendered as is. For example, list items will + appear as lines starting with a dash. + + + + While markdown is now preferred one can mix both. One limitation here is + that one can use docbook xml within markdown, but markdown within + docbook xml is not supported. + + + + In older GTK-Doc releases, if you need support for additional + formatting, you would need to enable the usage of docbook + XML tags inside doc-comments by putting + (or ) in the variable + MKDB_OPTIONS inside Makefile.am. + + + + GTK-Doc comment block using Markdown + + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ +]]> + + + + + More examples of what markdown tags are supported can be found in the + GTK+ Documentation Markdown Syntax Reference. + + + + + As already mentioned earlier GTK-Doc is for documenting public API. Thus + one cannot write documentation for static symbols. Nevertheless it is good + to comment those symbols too. This helps other to understand you code. + Therefore we recommend to comment these using normal comments (without the + 2nd '*' in the first line). + If later the function needs to be made public, all one needs to do is to + add another '*' in the comment block and insert the symbol name at the + right place inside the sections file. + + + + + + Documenting sections + + + Each section of the documentation contains information about one class + or module. To introduce the component one can write a section block. + The short description is also used inside the table of contents. + All the @fields are optional. + + + + Section comment block + + + + + + + SECTION:<name> + + + The name links the section documentation to the respective part in + the <package>-sections.txt file. The + name given here should match the <FILE> tag in the + <package>-sections.txt file. + + + + + @short_description + + + A one line description of the section, that later will appear after + the links in the TOC and at the top of the section page. + + + + + @title + + + The section title defaults to <name> from the SECTION + declaration. It can be overridden with the @title field. + + + + + @section_id + + + Overrides the use of title as a section identifier. For GObjects + the <title> is used as a section_id and for other sections + it is <MODULE>-<title>. + + + + + @see_also + + + A list of symbols that are related to this section. + + + + + @stability + + + An informal description of the stability level this API has. + We recommend the use of one of these terms: + + + + Stable + - The intention of a Stable interface is to enable arbitrary + third parties to develop applications to these interfaces, + release them, and have confidence that they will run on all + minor releases of the product (after the one in which the + interface was introduced, and within the same major release). + Even at a major release, incompatible changes are expected + to be rare, and to have strong justifications. + + + + + Unstable + - Unstable interfaces are experimental or transitional. + They are typically used to give outside developers early + access to new or rapidly changing technology, or to provide + an interim solution to a problem where a more general + solution is anticipated. + No claims are made about either source or binary + compatibility from one minor release to the next. + + + + + Private + - An interface that can be used within the GNOME stack + itself, but that is not documented for end-users. Such + functions should only be used in specified and documented + ways. + + + + + Internal + - An interface that is internal to a module and does not + require end-user documentation. Functions that are + undocumented are assumed to be Internal. + + + + + + + + @include + + + The #include files to show in the section + synopsis (a comma separated list), overriding the global + value from the section + file or command line. This item is optional. + + + + + @image + + + The image to display at the top of the reference page for this + section. This will often be some sort of a diagram to illustrate + the visual appearance of a class or a diagram of its relationship + to other classes. This item is optional. + + + + + + + + To avoid unnecessary recompilation after doc-changes put the section + docs into the c-source where possible. + + + + + + + Documenting symbols + + + Each symbol (function, macro, struct, enum, signal and property) is + documented in a separate block. The block is best placed close to the + definition of the symbols so that it is easy to keep them in sync. + Thus functions are usually documented in the c-source and macros, + structs and enums in the header file. + + + General tags + + + You can add versioning information to all documentation elements to tell + when an API was introduced, or when it was deprecated. + + + Versioning Tags + Since: + + + Description since which version of the code the API is available. + + + + Deprecated: + + + Paragraph denoting that this function should no be used anymore. + The description should point the reader to the new API. + + + + + + + You can also add stability information to all documentation elements + to indicate whether API stability is guaranteed for them for all + future minor releases of the project. + + + + The default stability level for all documentation elements can be set + by passing the argument to + gtkdoc-mkdb with one of the values below. + + + Stability Tags + Stability: Stable + + + Mark the element as stable. This is for public APIs which are + guaranteed to remain stable for all future minor releases of the + project. + + + + Stability: Unstable + + + Mark the element as unstable. This is for public APIs which are + released as a preview before being stabilised. + + + + Stability: Private + + + Mark the element as private. This is for interfaces which can be + used by tightly coupled modules, but not by arbitrary third + parties. + + + + + + General tags + + + + + Annotations + + + Documentation blocks can contain annotation-tags. These tags will be + rendered with tooltips describing their meaning. The tags are used by + gobject-introspection to generate language bindings. A detailed list + of the supported tags can be found on + the wiki. + + + Annotations + + + + + Function comment block + + + Please remember to: + + + + Document whether returned objects, lists, strings, etc, should be + freed/unrefed/released. + + + + + Document whether parameters can be NULL, and what happens if they are. + + + + + Mention interesting pre-conditions and post-conditions where appropriate. + + + + + + + Gtk-doc assumes all symbols (macros, functions) starting with '_' are + private. They are treated like static functions. + + + Function comment block + + + + Function tags + Returns: + + + Paragraph describing the returned result. + + + + @...: + + + In case the function has variadic arguments, you should use this + tag (@Varargs: does also work for historic reasons). + + + + + + + + Property comment block + + Property comment block + + + + + + Signal comment block + + + Please remember to: + + + + Document when the signal is emitted and whether it is emitted before + or after other signals. + + + + + Document what an application might do in the signal handler. + + + + + + Signal comment block + + + + + + Struct comment block + Struct comment block + + + + + Use /*< private >*/ before the private struct fields + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + If the first field is "g_iface", "parent_instance" or "parent_class" + it will be considered private automatically and doesn't need to be + mentioned in the comment block. + + + + Struct comment blocks can also be used for GObjects and GObjectClasses. + It is usually a good idea to add a comment block for a class, if it has + vmethods (as this is how they can be documented). For the GObject + itself one can use the related section docs, having a separate block + for the instance struct would be useful if the instance has public + fields. One disadvantage here is that this creates two index entries + of the same name (the structure and the section). + + + + + Enum comment block + Enum comment block + */ + SOMETHING_COUNT +} Something; +]]> + + + + Use /*< private >*/ before the private enum values + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + + + + + Inline program documentation + + You can document programs and their commandline interface using inline + documentation. + + + + Tags + + PROGRAM + + + + Defines the start of a program documentation. + + + + + + @short_description: + + + Defines a short description of the program. (Optional) + + + + + + @synopsis: + + + Defines the arguments, or list of arguments that the program can take. + (Optional) + + + + + + @see_also: + + + See Also manual page section. (Optional) + + + + + + @arg: + + + Argument(s) passed to the program and their description. (Optional) + + + + + + Description: + + + A longer description of the program. + + + + + + Returns: + + + Specificy what value(s) the program returns. (Optional) + + + + + + + + Example of program documentation. + Program documentation block + + + + + + + + Useful DocBook tags + + + Here are some DocBook tags which are most useful when documenting the + code. + + + + To link to another section in the GTK docs: + + + Hash Tables +]]> + + The linkend is the SGML/XML id on the top item of the page you want to link to. + For most pages this is currently the part ("gtk", "gdk", "glib") and then + the page title ("Hash Tables"). For widgets it is just the class name. + Spaces and underscores are converted to '-' to conform to SGML/XML. + + + + To refer to an external function, e.g. a standard C function: + + ...
    +]]> + + + + + To include example code: + + + Using a GHashTable. + + ... + + +]]> + + or possibly this, for very short code fragments which don't need a title: + + + + ... + + +]]> + + For the latter GTK-Doc also supports an abbreviation: + + + + + To include bulleted lists: + + + + + ... + + + + + ... + + + +]]> + + + + + To include a note which stands out from the text: + + + + Make sure you free the data after use. + + +]]> + + + + + To refer to a type: + + unsigned char +]]> + + + + + To refer to an external structure (not one described in the GTK docs): + + XFontStruct +]]> + + + + + To refer to a field of a structure: + + len +]]> + + + + + To refer to a class name, we could possibly use: + + GtkWidget +]]> + + but you'll probably be using #GtkWidget instead (to automatically create + a link to the GtkWidget page - see the abbreviations). + + + + To emphasize text: + + This is important +]]> + + + + + For filenames use: + + /home/user/documents
    +]]> + + + + + To refer to keys use: + + ControlL +]]> + + + + + + + + Filling the extra files + + + There are a couple of extra files, that need to be maintained along with + the inline source code comments: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + + Editing the types file + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Example types file snippet + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + + Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. + Just add "--rebuild-types" to SCAN_OPTIONS in Makefile.am. If you + use this approach you should not dist the types file nor have it under version control. + + + + + + Editing the master document + + + GTK-Doc produces documentation in DocBook SGML/XML. When processing the + inline source comments, the GTK-Doc tools generate one documentation + page per class or module as a separate file. The master document + includes them and place them in an order. + + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + + Do not create tutorials as extra documents. Just write extra chapters. + The benefit of directly embedding the tutorial for your library into + the API documentation is that it is easy to link for the tutorial to + symbol documentation. Apart chances are higher that the tutorial gets + updates along with the library. + + + + + So what are the things to change inside the master document? For a start + is only a little. There are some placeholders (text in square brackets) + there which you should take care of. + + + + Master document header + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + Editing the section file + + + The section file is used to organise the documentation output by + GTK-Doc. Here one specifies which symbol belongs to which module or + class and control the visibility (public or private). + + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + + The <TITLE> ... </TITLE> tag is used to specify the title of + the section. It is only useful before the templates (if used) are + initially created, since the title set in the template file overrides + this. Also if one uses SECTION comment in the sources, this is obsolete. + + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + + You can also use <INCLUDE> ... </INCLUDE> to specify the + #include files which are shown in the synopsis sections. + It contains a comma-separate list of #include files, without the angle + brackets. If you set it outside of any sections, it acts for all + sections until the end of the file. If you set it within a section, it + only applies to that section. + + +
    + +
    + + + Controlling the result + + + A GTK-Doc run generates report files inside the documentation directory. + The generated files are named: + <package>-undocumented.txt, + <package>-undeclared.txt and + <package>-unused.txt. + All those are plain text files that can be viewed and postprocessed easily. + + + + The <package>-undocumented.txt file starts with + the documentation coverage summary. Below are two sections divided by + blank lines. The first section lists undocumented or incomplete symbols. + The second section does the same for section docs. Incomplete entries are + those, which have documentation, but where e.g. a new parameter has been + added. + + + + The <package>-undeclared.txt file lists symbols + given in the <package>-sections.txt but not + found in the sources. Check if they have been removed or if they are + misspelled. + + + + The <package>-unused.txt file lists symbol + names, where the GTK-Doc scanner has found documentation, but does not + know where to put it. This means that the symbol has not yet been added to + the <package>-sections.txt file. + + + + + Enable or add the line in Makefile.am. + If at least GTK-Doc 1.9 is installed, this will run sanity checks during + make check run. + + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documenting other interfaces + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + Command line options and man pages + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + Document the tool + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + Adding the extra configure check + + + Extra configure checks + + + + + + + Adding the extra makefile rules + + + Extra configure checks + + + + + + + + DBus interfaces + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + Frequently asked questions + + + + Vprašanje + Odgovor + + No class hierarchy. + + The objects xxx_get_type() function has not been + entered into the <package>.types file. + + + + Still no class hierarchy. + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + Damn, I have still no class hierarchy. + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + No symbol index. + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + Symbols are not linked to their doc-section. + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + A new class does not appear in the docs. + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + A new symbol does not appear in the docs. + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + A type is missing from the class hierarchy. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + I get foldoc links for all gobject annotations. + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + Parameter described in source code comment block but does not exist + Check if the prototype in the header has different parameter names as in the source. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + Element typename in namespace '' encountered in para, but no template matches. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    + + + + + + + + + diff --git a/help/manual/sl/sl.po b/help/manual/sl/sl.po new file mode 100644 index 0000000..0cf745d --- /dev/null +++ b/help/manual/sl/sl.po @@ -0,0 +1,1460 @@ +# Slovenian translation for gtk-doc. +# Copyright (C) 2010 gtk-doc's COPYRIGHT HOLDER +# This file is distributed under the same license as the gtk-doc package. +# +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc help master\n" +"POT-Creation-Date: 2010-10-16 21:38+0000\n" +"PO-Revision-Date: 2010-10-17 21:03+0100\n" +"Last-Translator: Matej Urbančič \n" +"Language-Team: Slovenian GNOME Translation Team \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-Country: SLOVENIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: C/gtk-doc-manual.xml:12(title) +msgid "GTK-Doc Manual" +msgstr "" + +#: C/gtk-doc-manual.xml:13(edition) +#: C/gtk-doc-manual.xml:86(revnumber) +msgid "1.15" +msgstr "1.15" + +#: C/gtk-doc-manual.xml:14(para) +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "" + +#: C/gtk-doc-manual.xml:17(firstname) +msgid "Chris" +msgstr "Chris" + +#: C/gtk-doc-manual.xml:18(surname) +msgid "Lyttle" +msgstr "Lyttle" + +#: C/gtk-doc-manual.xml:21(email) +msgid "chris@wilddev.net" +msgstr "chris@wilddev.net" + +#: C/gtk-doc-manual.xml:26(firstname) +msgid "Dan" +msgstr "Dan" + +#: C/gtk-doc-manual.xml:27(surname) +msgid "Mueth" +msgstr "Mueth" + +#: C/gtk-doc-manual.xml:30(email) +msgid "d-mueth@uchicago.edu" +msgstr "d-mueth@uchicago.edu" + +#: C/gtk-doc-manual.xml:35(firstname) +msgid "Stefan" +msgstr "Stefan" + +#: C/gtk-doc-manual.xml:36(surname) +msgid "Kost" +msgstr "Kost" + +#: C/gtk-doc-manual.xml:39(email) +msgid "ensonic@users.sf.net" +msgstr "ensonic@users.sf.net" + +#: C/gtk-doc-manual.xml:45(publishername) +msgid "GTK-Doc project" +msgstr "" + +#: C/gtk-doc-manual.xml:46(email) +msgid "gtk-doc-list@gnome.org" +msgstr "" + +#: C/gtk-doc-manual.xml:49(year) +msgid "2000, 2005, 2007-2009" +msgstr "" + +#: C/gtk-doc-manual.xml:50(holder) +msgid "Dan Mueth and Chris Lyttle and Stefan Kost" +msgstr "" + +#: C/gtk-doc-manual.xml:61(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included." +msgstr "" + +#: C/gtk-doc-manual.xml:69(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps." +msgstr "" + +#: C/gtk-doc-manual.xml:80(revnumber) +msgid "1.15.1" +msgstr "1.15.1" + +#: C/gtk-doc-manual.xml:81(date) +msgid "24 May 2010" +msgstr "" + +#: C/gtk-doc-manual.xml:82(authorinitials) +#: C/gtk-doc-manual.xml:88(authorinitials) +#: C/gtk-doc-manual.xml:94(authorinitials) +#: C/gtk-doc-manual.xml:100(authorinitials) +#: C/gtk-doc-manual.xml:106(authorinitials) +msgid "sk" +msgstr "sk" + +#: C/gtk-doc-manual.xml:83(revremark) +msgid "development version" +msgstr "" + +#: C/gtk-doc-manual.xml:87(date) +msgid "21 May 2010" +msgstr "" + +#: C/gtk-doc-manual.xml:89(revremark) +msgid "bug and regression fixes" +msgstr "" + +#: C/gtk-doc-manual.xml:92(revnumber) +msgid "1.14" +msgstr "1.14" + +#: C/gtk-doc-manual.xml:93(date) +msgid "28 March 2010" +msgstr "" + +#: C/gtk-doc-manual.xml:95(revremark) +msgid "bugfixes and performance improvements" +msgstr "" + +#: C/gtk-doc-manual.xml:98(revnumber) +msgid "1.13" +msgstr "1.13" + +#: C/gtk-doc-manual.xml:99(date) +#: C/gtk-doc-manual.xml:105(date) +msgid "18 December 2009" +msgstr "" + +#: C/gtk-doc-manual.xml:101(revremark) +msgid "broken tarball update" +msgstr "" + +#: C/gtk-doc-manual.xml:104(revnumber) +msgid "1.12" +msgstr "1.12" + +#: C/gtk-doc-manual.xml:107(revremark) +msgid "new tool features and bugfixes" +msgstr "" + +#: C/gtk-doc-manual.xml:110(revnumber) +msgid "1.11" +msgstr "1.11" + +#: C/gtk-doc-manual.xml:111(date) +msgid "16 Novemebr 2008" +msgstr "" + +#: C/gtk-doc-manual.xml:112(authorinitials) +msgid "mal" +msgstr "" + +#: C/gtk-doc-manual.xml:113(revremark) +msgid "GNOME doc-utils migration" +msgstr "" + +#: C/gtk-doc-manual.xml:122(title) +msgid "Introduction" +msgstr "Uvod" + +#: C/gtk-doc-manual.xml:124(para) +msgid "This chapter introduces GTK-Doc and gives an overview of what it is and how it is used." +msgstr "" + +#: C/gtk-doc-manual.xml:130(title) +msgid "What is GTK-Doc?" +msgstr "" + +#: C/gtk-doc-manual.xml:132(para) +msgid "GTK-Doc is used to document C code. It is typically used to document the public API of libraries, such as the GTK+ and GNOME libraries. But it can also be used to document application code." +msgstr "" + +#: C/gtk-doc-manual.xml:140(title) +msgid "How Does GTK-Doc Work?" +msgstr "" + +#: C/gtk-doc-manual.xml:142(para) +msgid "GTK-Doc works by using documentation of functions placed inside the source files in specially-formatted comment blocks, or documentation added to the template files which GTK-Doc uses (though note that GTK-Doc will only document functions that are declared in header files; it won't produce output for static functions)." +msgstr "" + +#: C/gtk-doc-manual.xml:149(para) +msgid "GTK-Doc consists of a number of perl scripts, each performing a different step in the process." +msgstr "" + +#: C/gtk-doc-manual.xml:154(para) +msgid "There are 5 main steps in the process:" +msgstr "" + +#: C/gtk-doc-manual.xml:161(para) +msgid "Writing the documentation. The author fills in the source files with the documentation for each function, macro, union etc. (In the past information was entered in generated template files, which is not recommended anymore)." +msgstr "" + +#: C/gtk-doc-manual.xml:171(para) +msgid "Gathering information about the code.gtkdoc-scan scans the header files of the code looking for declarations of functions, macros, enums, structs, and unions. It creates the file <module>-decl-list.txt containg a list of the declarations, placing them into sections according to which header file they are in. On the first run this file is copied to <module>-sections.txt. The author can rearrange the sections, and the order of the declarations within them, to produce the final desired order. The second file it generates is <module>-decl.txt. This file contains the full declarations found by the scanner. If for some reason one would like some symbols to show up in the docs, where the full declaration cannot be found by the scanner or the declaration should appear differently, one can place enties similar to the ones in <module>-decl.txt into <module>-overrides.txt. gtkdoc-scanobj can also be used to dynamically query a library about any GtkObject subclasses it exports. It saves information about each object's position in the class hierarchy and about any GTK Args and Signals it provides." +msgstr "" + +#: C/gtk-doc-manual.xml:196(para) +msgid "Generating the \"template\" files.gtkdoc-mktmpl creates a number of files in the tmpl/ subdirectory, using the information gathered in the first step. (Note that this can be run repeatedly. It will try to ensure that no documentation is ever lost.)" +msgstr "" + +#: C/gtk-doc-manual.xml:205(para) +msgid "Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. If you have never changed file in tmpl by hand, please remove the dir (e.g. from version control system)." +msgstr "" + +#: C/gtk-doc-manual.xml:217(para) +msgid "Generating the SGML/XML and HTML/PDF.gtkdoc-mkdb turns the template files into SGML or XML files in the sgml/ or xml/ subdirectory. If the source code contains documentation on functions, using the special comment blocks, it gets merged in here. If there are no tmpl files used it only reads docs from sources and introspection data. We recommend to use Docbook XML." +msgstr "" + +#: C/gtk-doc-manual.xml:228(para) +msgid "gtkdoc-mkhtml turns the SGML/XML files into HTML files in the html/ subdirectory. Likewise gtkdoc-mkpdf turns the SGML/XML files into a PDF document called <package>.pdf." +msgstr "" + +#: C/gtk-doc-manual.xml:234(para) +msgid "Files in sgml/ or xml/ and html/ directories are always overwritten. One should never edit them directly." +msgstr "" + +#: C/gtk-doc-manual.xml:242(para) +msgid "Fixing up cross-references between documents. After installing the HTML files, gtkdoc-fixxref can be run to fix up any cross-references between separate documents. For example, the GTK+ documentation contains many cross-references to types documented in the GLib manual. When creating the source tarball for distribution, gtkdoc-rebase turns all external links into web-links. When installing distributed (pregenerated) docs the same application will try to turn links back to local links (where those docs are installed)." +msgstr "" + +#: C/gtk-doc-manual.xml:260(title) +msgid "Getting GTK-Doc" +msgstr "" + +#: C/gtk-doc-manual.xml:263(title) +msgid "Requirements" +msgstr "" + +#: C/gtk-doc-manual.xml:264(para) +msgid "Perl v5 - the main scripts are in Perl." +msgstr "" + +#: C/gtk-doc-manual.xml:267(para) +msgid "DocBook DTD v3.0 - This is the DocBook SGML DTD. http://www.ora.com/davenport" +msgstr "" + +#: C/gtk-doc-manual.xml:271(para) +msgid "Jade v1.1 - This is a DSSSL processor for converting SGML to various formats. http://www.jclark.com/jade" +msgstr "" + +#: C/gtk-doc-manual.xml:275(para) +msgid "Modular DocBook Stylesheets This is the DSSSL code to convert DocBook to HTML (and a few other formats). It's used together with jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to colour the program code listings/declarations, and to support global cross-reference indices in the generated HTML. http://nwalsh.com/docbook/dsssl" +msgstr "" + +#: C/gtk-doc-manual.xml:284(para) +msgid "docbook-to-man - if you want to create man pages from the DocBook. I've customized the 'translation spec' slightly, to capitalise section headings and add the 'GTK Library' title at the top of the pages and the revision date at the bottom. There is a link to this on http://www.ora.com/davenport NOTE: This does not work yet." +msgstr "" + +#: C/gtk-doc-manual.xml:295(title) +msgid "Installation" +msgstr "" + +#: C/gtk-doc-manual.xml:296(para) +msgid "There is no standard place where the DocBook Modular Stylesheets are installed." +msgstr "" + +#: C/gtk-doc-manual.xml:299(para) +msgid "GTK-Doc's configure script searches these 3 directories automatically:" +msgstr "" + +#: C/gtk-doc-manual.xml:302(para) +msgid " /usr/lib/sgml/stylesheets/nwalsh-modular (used by RedHat)" +msgstr "" + +#: C/gtk-doc-manual.xml:305(para) +msgid " /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +msgstr "" + +#: C/gtk-doc-manual.xml:308(para) +msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +msgstr "" + +#: C/gtk-doc-manual.xml:311(para) +msgid "If you have the stylesheets installed somewhere else, you need to configure GTK-Doc using the option: --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +msgstr "" + +#: C/gtk-doc-manual.xml:335(title) +msgid "About GTK-Doc" +msgstr "" + +#: C/gtk-doc-manual.xml:337(para) +#: C/gtk-doc-manual.xml:351(para) +msgid "(FIXME)" +msgstr "" + +#: C/gtk-doc-manual.xml:341(para) +msgid "(History, authors, web pages, license, future plans, comparison with other similar systems.)" +msgstr "" + +#: C/gtk-doc-manual.xml:349(title) +msgid "About this Manual" +msgstr "" + +#: C/gtk-doc-manual.xml:355(para) +msgid "(who it is meant for, where you can get it, license)" +msgstr "" + +#: C/gtk-doc-manual.xml:364(title) +msgid "Setting up your project" +msgstr "" + +#: C/gtk-doc-manual.xml:366(para) +msgid "The next sections describe what steps to perform to integrate GTK-Doc into your project. Theses sections assume we work on a project called 'meep'. This project contains a library called 'libmeep' and an end-user app called 'meeper'." +msgstr "" + +#: C/gtk-doc-manual.xml:374(title) +msgid "Setting up a skeleton documentation" +msgstr "" + +#: C/gtk-doc-manual.xml:376(para) +msgid "Under your top-level project directory create folders called docs/reference (this way you can also have docs/help for end-user documentation). It is recommended to create another subdirectory with the name of the doc-package. For packages with just one library this step is not necessary." +msgstr "" + +#: C/gtk-doc-manual.xml:385(title) +msgid "Example directory structure" +msgstr "" + +#: C/gtk-doc-manual.xml:383(para) +msgid "This can then look as shown below: " +msgstr "" + +#: C/gtk-doc-manual.xml:403(title) +#: C/gtk-doc-manual.xml:410(title) +msgid "Integration with autoconf" +msgstr "" + +#: C/gtk-doc-manual.xml:405(para) +msgid "Very easy! Just add one line to your configure.ac script." +msgstr "" + +#: C/gtk-doc-manual.xml:425(title) +msgid "Keep gtk-doc optional" +msgstr "" + +#: C/gtk-doc-manual.xml:420(para) +msgid "This will require all developers to have gtk-doc installed. If it is okay for your project to have optional api-doc build setup, you can solve this as below. Keep it as is, as gtkdocize is looking for GTK_DOC_CHECK at the start of a line. " +msgstr "" + +#: C/gtk-doc-manual.xml:437(para) +msgid "The first argument is used to check for the gtkdocversion at configure time. The 2nd, optional argument is used by gtkdocize. The GTK_DOC_CHECK macro also adds several configure switches:" +msgstr "" + +#: C/gtk-doc-manual.xml:443(para) +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "" + +#: C/gtk-doc-manual.xml:444(para) +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "" + +#: C/gtk-doc-manual.xml:445(para) +msgid "--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "" + +#: C/gtk-doc-manual.xml:446(para) +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "" + +#: C/gtk-doc-manual.xml:450(para) +msgid "GTK-Doc is disabled by default! Remember to pass the option to the next configure run. Otherwise pregenerated documentation is installed (which makes sense for users but not for developers)." +msgstr "" + +#: C/gtk-doc-manual.xml:458(para) +msgid "Furthermore it is recommended that you have the following line inside you configure.ac script. This allows gtkdocize to automatically copy the macro definition for GTK_DOC_CHECK to your project." +msgstr "" + +#: C/gtk-doc-manual.xml:466(title) +msgid "Preparation for gtkdocize" +msgstr "" + +#: C/gtk-doc-manual.xml:477(title) +msgid "Integration with automake" +msgstr "" + +#: C/gtk-doc-manual.xml:479(para) +msgid "First copy the Makefile.am from the examples subdirectory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). If you have multiple doc-packages repeat this for each one." +msgstr "" + +#: C/gtk-doc-manual.xml:486(para) +msgid "The next step is to edit the settings inside the Makefile.am. All the settings have a comment above that describes their purpose. Most settings are extra flags passed to the respective tools. Every tool has a variable of the form . All the tools support to list the supported parameters." +msgstr "" + +#. FIXME: explain options ? +#: C/gtk-doc-manual.xml:497(para) +msgid "You may also want to enable GTK-Doc for the distcheck make target. Just add the one line shown in the next example to your top-level Makefile.am:" +msgstr "" + +#: C/gtk-doc-manual.xml:504(title) +msgid "Enable GTK-Doc during make distcheck" +msgstr "" + +#: C/gtk-doc-manual.xml:516(title) +msgid "Integration with autogen" +msgstr "" + +#: C/gtk-doc-manual.xml:518(para) +msgid "Most projects will have an autogen.sh script to setup the build infrastructure after a checkout from version control system (such as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before autoheader, automake or autoconf." +msgstr "" + +#: C/gtk-doc-manual.xml:527(title) +msgid "Running gtkdocize from autogen.sh" +msgstr "" + +#: C/gtk-doc-manual.xml:536(para) +msgid "When running gtkdocize it copies gtk-doc.make to your project root (or any directory specified by the option). It also checks you configure script for the GTK_DOC_CHECK invocation. This macro can be used to pass extra parameters to gtkdocize." +msgstr "" + +#: C/gtk-doc-manual.xml:545(para) +msgid "Historically GTK-Doc was generating template files where developers entered the docs. This turned out to be not so good (e.g. the need for having generated files under version control). Since GTK-Doc 1.9 the tools can get all the information from source comments and thus the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. Besides adding the option directly to the command invocation, they can be added also to an environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, please remove the dir (e.g. from version control system)." +msgstr "" + +#: C/gtk-doc-manual.xml:562(title) +#: C/gtk-doc-manual.xml:579(title) +msgid "Running the doc build" +msgstr "" + +#: C/gtk-doc-manual.xml:564(para) +msgid "After the previous steps it's time to run the build. First we need to rerun autogen.sh. If this script runs configure for you, then give it the option. Otherwise manually run configure with this option afterwards." +msgstr "" + +#: C/gtk-doc-manual.xml:571(para) +msgid "The first make run generates several additional files in the doc-dirs. The important ones are: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "" + +#: C/gtk-doc-manual.xml:588(para) +msgid "Now you can point your browser to docs/reference/<package>/index.html. Yes, it's a bit disappointing still. But hang-on, during the next chapter we tell you how to fill the pages with life." +msgstr "" + +#: C/gtk-doc-manual.xml:596(title) +msgid "Integration with version control systems" +msgstr "" + +#: C/gtk-doc-manual.xml:598(para) +msgid "As a rule of the thumb, it's those files you edit, that should go under version control. For typical projects it's these files: <package>.types<package>-docs.sgml<package>-sections.txtMakefile.am" +msgstr "" + +#: C/gtk-doc-manual.xml:611(title) +msgid "Documenting the code" +msgstr "" + +#: C/gtk-doc-manual.xml:613(para) +msgid "GTK-Doc uses source code comment with a special syntax for code documentation. Further it retrieves information about your project structure from other sources. During the next section you will find all information about the syntax of the comments." +msgstr "" + +#: C/gtk-doc-manual.xml:621(title) +msgid "Documentation placement" +msgstr "" + +#: C/gtk-doc-manual.xml:622(para) +msgid "In the past most documentation had to be filled into files residing inside the tmpl directory. This has the disadvantages that the information is often not updated and also that the file tend to cause conflicts with version control systems." +msgstr "" + +#: C/gtk-doc-manual.xml:628(para) +msgid "The avoid the aforementioned problems we suggest putting the documentation inside the sources. This manual will only describe this way of documenting code." +msgstr "" + +#: C/gtk-doc-manual.xml:639(title) +#: C/gtk-doc-manual.xml:658(title) +msgid "GTK-Doc comment block" +msgstr "" + +#: C/gtk-doc-manual.xml:635(para) +msgid "The scanner can handle the majority of c headers fine. In the case of receiving warnings from the scanner that look like a special case, one can hint GTK-Doc to skip over them. " +msgstr "" + +#: C/gtk-doc-manual.xml:653(title) +msgid "Documentation comments" +msgstr "" + +#: C/gtk-doc-manual.xml:655(para) +msgid "A multiline comment that starts with an additional '*' marks a documentation block that will be processed by the GTK-Doc tools. " +msgstr "" + +#: C/gtk-doc-manual.xml:670(para) +msgid "The 'identifier' is one line with the name of the item the comment is related to. The syntax differs a little depending on the item. (TODO add table showing identifiers)" +msgstr "" + +#: C/gtk-doc-manual.xml:676(para) +msgid "The 'documentation' block is also different for each symbol type. Symbol types that get parameters such as functions or macros have the parameter description first followed by a blank line (just a '*'). Afterwards follows the detailed description. All lines (outside program- listings and CDATA sections) just containing a ' *' (blank-asterisk) are converted to paragraph breaks. If you don't want a paragraph break, change that into ' * ' (blank-asterisk-blank-blank)." +msgstr "" + +#: C/gtk-doc-manual.xml:693(para) +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "" + +#: C/gtk-doc-manual.xml:698(para) +msgid "Use @param to refer to parameters. Also use this when referring to parameters of other functions, related to the one being described." +msgstr "" + +#: C/gtk-doc-manual.xml:704(para) +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "" + +#: C/gtk-doc-manual.xml:709(para) +msgid "Use #symbol to refer to other types of symbol, e.g. structs and enums and macros which don't take arguments." +msgstr "" + +#: C/gtk-doc-manual.xml:715(para) +msgid "Use #Object::signal to refer to a GObject signal" +msgstr "" + +#: C/gtk-doc-manual.xml:720(para) +msgid "Use #Object:property to refer to a GObject property" +msgstr "" + +#: C/gtk-doc-manual.xml:725(para) +msgid "Use #Struct.field to refer to a field inside a structure." +msgstr "" + +#: C/gtk-doc-manual.xml:687(para) +msgid "One advantage of hyper-text over plain-text is the ability to have links in the document. Writing the correct markup for a link can be tedious though. GTK-Doc comes to help by providing several useful abbreviations. " +msgstr "" + +#: C/gtk-doc-manual.xml:733(para) +msgid "If you need to use the special characters '<', '>', '()', '@', '%', or '#' in your documentation without GTK-Doc changing them you can use the XML entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" and \"&num;\" respectively or escape them with a backslash '\\'." +msgstr "" + +#: C/gtk-doc-manual.xml:742(para) +msgid "DocBook can do more that just links. One can also have lists, tables and examples. To enable the usage of SGML/XML tags inside doc-comments you need to have or in the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" + +#: C/gtk-doc-manual.xml:751(para) +msgid "As already mentioned earlier GTK-Doc is for documenting public API. Thus one cannot write documentation for static symbols. Nevertheless it is good to comment those symbols too. This helps other to understand you code. Therefore we recommend to comment these using normal comments (without the 2nd '*' in the first line). If later the function needs to be made public, all one needs to do is to add another '*' in the comment block and insert the symbol name at the right place inside the sections file." +msgstr "" + +#: C/gtk-doc-manual.xml:765(title) +msgid "Documenting sections" +msgstr "" + +#: C/gtk-doc-manual.xml:767(para) +msgid "Each section of the documentation contains information about one class or module. To introduce the component one can write a section block. The short description is also used inside the table of contents. All the @fields are optional." +msgstr "" + +#: C/gtk-doc-manual.xml:775(title) +msgid "Section comment block" +msgstr "" + +#: C/gtk-doc-manual.xml:797(term) +msgid "SECTION:<name>" +msgstr "" + +#: C/gtk-doc-manual.xml:799(para) +msgid "The name links the section documentation to the respective part in the <package>-sections.txt file. The name give here should match the <FILE> tag in the <package>-sections.txt file." +msgstr "" + +#: C/gtk-doc-manual.xml:808(term) +msgid "@short_description" +msgstr "" + +#: C/gtk-doc-manual.xml:810(para) +msgid "A one line description of the section, that later will appear after the links in the TOC and at the top of the section page." +msgstr "" + +#: C/gtk-doc-manual.xml:817(term) +msgid "@title" +msgstr "" + +#: C/gtk-doc-manual.xml:819(para) +msgid "The section title defaults to <name> from the SECTION declaration. It can be overridden with the @title field." +msgstr "" + +#: C/gtk-doc-manual.xml:826(term) +msgid "@section_id" +msgstr "" + +#: C/gtk-doc-manual.xml:828(para) +msgid "Overrides the use of title as a section identifier. For GObjects the <title> is used as a section_id and for other sections it is <MODULE>-<title>." +msgstr "" + +#: C/gtk-doc-manual.xml:836(term) +msgid "@see_also" +msgstr "" + +#: C/gtk-doc-manual.xml:838(para) +msgid "A list of symbols that are related to this section." +msgstr "" + +#: C/gtk-doc-manual.xml:844(term) +msgid "@stability" +msgstr "" + +#: C/gtk-doc-manual.xml:851(para) +msgid "Stable - The intention of a Stable interface is to enable arbitrary third parties to develop applications to these interfaces, release them, and have confidence that they will run on all minor releases of the product (after the one in which the interface was introduced, and within the same major release). Even at a major release, incompatible changes are expected to be rare, and to have strong justifications." +msgstr "" + +#: C/gtk-doc-manual.xml:863(para) +msgid "Unstable - Unstable interfaces are experimental or transitional. They are typically used to give outside developers early access to new or rapidly changing technology, or to provide an interim solution to a problem where a more general solution is anticipated. No claims are made about either source or binary compatibility from one minor release to the next." +msgstr "" + +#: C/gtk-doc-manual.xml:875(para) +msgid "Private - An interface that can be used within the GNOME stack itself, but that is not documented for end-users. Such functions should only be used in specified and documented ways." +msgstr "" + +#: C/gtk-doc-manual.xml:884(para) +msgid "Internal - An interface that is internal to a module and does not require end-user documentation. Functions that are undocumented are assumed to be Internal." +msgstr "" + +#: C/gtk-doc-manual.xml:846(para) +msgid "A informal description of the stability level this API has. We recommend the use of one of these terms: " +msgstr "" + +#: C/gtk-doc-manual.xml:896(term) +msgid "@include" +msgstr "" + +#: C/gtk-doc-manual.xml:898(para) +msgid "The #include files to show in the section synopsis (a comma separated list), overriding the global value from the section file or command line. This item is optional." +msgstr "" + +#: C/gtk-doc-manual.xml:907(term) +msgid "@image" +msgstr "" + +#: C/gtk-doc-manual.xml:909(para) +msgid "The image to display at the top of the reference page for this section. This will often be some sort of a diagram to illustrate the visual appearance of a class or a diagram of its relationship to other classes. This item is optional." +msgstr "" + +#: C/gtk-doc-manual.xml:920(para) +msgid "To avoid unnecessary recompilation after doc-changes put the section docs into the c-source where possible." +msgstr "" + +#: C/gtk-doc-manual.xml:929(title) +msgid "Documenting symbols" +msgstr "" + +#: C/gtk-doc-manual.xml:931(para) +msgid "Each symbol (function, macro, struct, enum, signal and property) is documented in a separate block. The block is best placed close to the definition of the symbols so that it is easy to keep them in sync. Thus functions are usually documented in the c-source and macros, structs and enums in the header file." +msgstr "" + +#: C/gtk-doc-manual.xml:939(title) +#: C/gtk-doc-manual.xml:968(title) +msgid "General tags" +msgstr "" + +#: C/gtk-doc-manual.xml:941(para) +msgid "You can add versioning information to all documentation elements to tell when an api was introduced, or when it was deprecated." +msgstr "" + +#: C/gtk-doc-manual.xml:946(title) +msgid "Versioning Tags" +msgstr "" + +#: C/gtk-doc-manual.xml:947(term) +msgid "Since:" +msgstr "" + +#: C/gtk-doc-manual.xml:949(para) +msgid "Description since which version of the code the API is available." +msgstr "" + +#: C/gtk-doc-manual.xml:954(term) +msgid "Deprecated:" +msgstr "" + +#: C/gtk-doc-manual.xml:956(para) +msgid "Paragraph denoting that this function should no be used anymore. The description should point the reader to the new API." +msgstr "" + +#: C/gtk-doc-manual.xml:964(para) +msgid "(FIXME : Stability information)" +msgstr "" + +#: C/gtk-doc-manual.xml:991(title) +#: C/gtk-doc-manual.xml:1027(title) +msgid "Function comment block" +msgstr "" + +#: C/gtk-doc-manual.xml:997(para) +msgid "Document whether returned objects, lists, strings, etc, should be freed/unrefed/released." +msgstr "" + +#: C/gtk-doc-manual.xml:1003(para) +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "" + +#: C/gtk-doc-manual.xml:1008(para) +msgid "Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "" + +#: C/gtk-doc-manual.xml:993(para) +#: C/gtk-doc-manual.xml:1090(para) +msgid "Please remember to: " +msgstr "" + +#: C/gtk-doc-manual.xml:1015(para) +msgid "Gtk-doc assumes all symbols (macros, functions) starting with '_' are private. They are treated like static functions." +msgstr "" + +#: C/gtk-doc-manual.xml:1020(para) +msgid "Also, take a look at gobject introspection annotation tags: http://live.gnome.org/GObjectIntrospection/Annotations" +msgstr "" + +#: C/gtk-doc-manual.xml:1051(title) +msgid "Function tags" +msgstr "" + +#: C/gtk-doc-manual.xml:1052(term) +msgid "Returns:" +msgstr "" + +#: C/gtk-doc-manual.xml:1054(para) +msgid "Paragraph describing the returned result." +msgstr "" + +#: C/gtk-doc-manual.xml:1059(term) +msgid "@...:" +msgstr "" + +#: C/gtk-doc-manual.xml:1061(para) +msgid "In case the function has variadic arguments, you should use this tag (@Varargs: does also work for historic reasons)." +msgstr "" + +#: C/gtk-doc-manual.xml:1071(title) +#: C/gtk-doc-manual.xml:1073(title) +msgid "Property comment block" +msgstr "" + +#: C/gtk-doc-manual.xml:1088(title) +#: C/gtk-doc-manual.xml:1107(title) +msgid "Signal comment block" +msgstr "" + +#: C/gtk-doc-manual.xml:1094(para) +msgid "Document when the signal is emitted and whether it is emitted before or after other signals." +msgstr "" + +#: C/gtk-doc-manual.xml:1100(para) +msgid "Document what an application might do in the signal handler." +msgstr "" + +#: C/gtk-doc-manual.xml:1127(title) +#: C/gtk-doc-manual.xml:1128(title) +msgid "Struct comment block" +msgstr "" + +#: C/gtk-doc-manual.xml:1148(para) +msgid "Use /*< private >*/ before the private struct fields you want to hide. Use /*< public >*/ for the reverse behaviour." +msgstr "" + +#: C/gtk-doc-manual.xml:1154(para) +msgid "Struct comment blocks can also be used for GObjects and GObjectClasses. It is usualy a good idea to add a comment blco for a class, if it has vmethods (as this is how they can be documented). For the GObject itself one can use the related section docs, having a separate block for the instance struct would be useful if the instance has public fields. One disadvantage here is that this creates two index entries of the same name (the structure and the section)." +msgstr "" + +#: C/gtk-doc-manual.xml:1166(title) +#: C/gtk-doc-manual.xml:1167(title) +msgid "Enum comment block" +msgstr "" + +#: C/gtk-doc-manual.xml:1188(para) +msgid "Use /*< private >*/ before the private enum values you want to hide. Use /*< public >*/ for the reverse behaviour." +msgstr "" + +#: C/gtk-doc-manual.xml:1198(title) +msgid "Useful DocBook tags" +msgstr "" + +#: C/gtk-doc-manual.xml:1200(para) +msgid "Here are some DocBook tags which are most useful when documenting the code." +msgstr "" + +#: C/gtk-doc-manual.xml:1205(para) +msgid "To link to another section in the GTK docs: The linkend is the SGML/XML id on the top item of the page you want to link to. For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and then the page title (\"Hash Tables\"). For widgets it is just the class name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" + +#: C/gtk-doc-manual.xml:1221(para) +msgid "To refer to an external function, e.g. a standard C function: " +msgstr "" + +#: C/gtk-doc-manual.xml:1232(para) +msgid "" +"To include example code: or possibly this, for very short code fragments which don't need a title: For the latter GTK-Doc also supports an abbreviation: " +msgstr "" + +#: C/gtk-doc-manual.xml:1266(para) +msgid "To include bulleted lists: " +msgstr "" + +#: C/gtk-doc-manual.xml:1288(para) +msgid "To include a note which stands out from the text: " +msgstr "" + +#: C/gtk-doc-manual.xml:1303(para) +msgid "To refer to a type: " +msgstr "" + +#: C/gtk-doc-manual.xml:1314(para) +msgid "To refer to an external structure (not one described in the GTK docs): " +msgstr "" + +#: C/gtk-doc-manual.xml:1325(para) +msgid "To refer to a field of a structure: " +msgstr "" + +#: C/gtk-doc-manual.xml:1336(para) +msgid "To refer to a class name, we could possibly use: but you'll probably be using #GtkWidget instead (to automatically create a link to the GtkWidget page - see the abbreviations)." +msgstr "" + +#: C/gtk-doc-manual.xml:1349(para) +msgid "To emphasize text: " +msgstr "" + +#: C/gtk-doc-manual.xml:1360(para) +msgid "For filenames use: " +msgstr "" + +#: C/gtk-doc-manual.xml:1371(para) +msgid "To refer to keys use: " +msgstr "" + +#: C/gtk-doc-manual.xml:1386(title) +msgid "Filling the extra files" +msgstr "" + +#: C/gtk-doc-manual.xml:1388(para) +msgid "There are a couple of extra files, that need to be maintained along with the inline source code comments: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "" + +#: C/gtk-doc-manual.xml:1397(title) +msgid "Editing the types file" +msgstr "" + +#: C/gtk-doc-manual.xml:1399(para) +msgid "If your library or application includes GtkObjects/GObjects, you want their signals, arguments/parameters and position in the hierarchy to be shown in the documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <package>.types file." +msgstr "" + +#: C/gtk-doc-manual.xml:1408(title) +msgid "Example types file snippet" +msgstr "" + +#: C/gtk-doc-manual.xml:1422(para) +msgid "Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in Makefile.am. If you use this approach you should not dist the types file nor have it under version control." +msgstr "" + +#: C/gtk-doc-manual.xml:1431(title) +msgid "Editing the master document" +msgstr "" + +#: C/gtk-doc-manual.xml:1433(para) +msgid "GTK-Doc produces documentation in DocBook SGML/XML. When processing the inline source comments, the GTK-Doc tools generate one documentation page per class or module as a separate file. The master document includes them and place them in an order." +msgstr "" + +#: C/gtk-doc-manual.xml:1440(para) +msgid "While GTK-Doc creates a template master document for you, later run will not touch it again. This means that one can freely structure the documentation. That includes grouping pages and adding extra pages. GTK-Doc has now a test suite, where also the master-document is recreated from scratch. Its a good idea to look at this from time to time to see if there are some new goodies introduced there." +msgstr "" + +#: C/gtk-doc-manual.xml:1450(para) +msgid "Do not create tutorials as extra documents. Just write extra chapters. The benefit of directly embedding the tutorial for your library into the API documentation is that it is easy to link for the tutorial to symbol documentation. Apart chances are higher that the tutorial gets updates along with the library." +msgstr "" + +#: C/gtk-doc-manual.xml:1459(para) +msgid "So what are the things to change inside the master document? For a start is only a little. There are some placeholders (text in square brackets) there which you should take care of." +msgstr "" + +#: C/gtk-doc-manual.xml:1466(title) +msgid "Master document header" +msgstr "" + +#: C/gtk-doc-manual.xml:1488(title) +msgid "Editing the section file" +msgstr "" + +#: C/gtk-doc-manual.xml:1490(para) +msgid "The section file is used to organise the documentation output by GTK-Doc. Here one specifies which symbol belongs to which module or class and control the visibility (public or private)." +msgstr "" + +#: C/gtk-doc-manual.xml:1496(para) +msgid "The section file is a plain test file with xml like syntax (using tags). Blank lines are ignored and lines starting with a '#' are treated as comment lines." +msgstr "" + +#: C/gtk-doc-manual.xml:1502(para) +msgid "The <FILE> ... </FILE> tag is used to specify the file name, without any suffix. For example, using '<FILE>gnome-config</FILE>' will result in the section declarations being output in the template file tmpl/gnome-config.sgml, which will be converted into the DocBook SGML/XML file sgml/gnome-config.sgml or .DocBook XML file xml/gnome-config.xml. (The name of the html file is based on the module name and the section title, or for gobjects it is based on the gobjects class name converted to lower case)." +msgstr "" + +#: C/gtk-doc-manual.xml:1514(para) +msgid "The <TITLE> ... </TITLE> tag is used to specify the title of the section. It is only useful before the templates (if used) are initially created, since the title set in the template file overrides this. Also if one uses SECTION comment in the sources, this is obsolete." +msgstr "" + +#: C/gtk-doc-manual.xml:1521(para) +msgid "You can group items in the section by using the <SUBSECTION> tag. Currently it outputs a blank line between subsections in the synopsis section. You can also use <SUBSECTION Standard> for standard GObject declarations (e.g. the functions like g_object_get_type and macros like G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the documentation. You can also use <SUBSECTION Private> for private declarations which will not be output (It is a handy way to avoid warning messages about unused declarations.). If your library contains private types which you don't want to appear in the object hierarchy and the list of implemented or required interfaces, add them to a Private subsection. Wheter you would place GObject and GObjectClass like structs in public or Standard section depends if they have public entries (variables, vmethods)." +msgstr "" + +#: C/gtk-doc-manual.xml:1540(para) +msgid "You can also use <INCLUDE> ... </INCLUDE> to specify the #include files which are shown in the synopsis sections. It contains a comma-separate list of #include files, without the angle brackets. If you set it outside of any sections, it acts for all sections until the end of the file. If you set it within a section, it only applies to that section." +msgstr "" + +#: C/gtk-doc-manual.xml:1554(title) +msgid "Controlling the result" +msgstr "" + +#: C/gtk-doc-manual.xml:1556(para) +msgid "A GTK-Doc run generates report files inside the documentation directory. The generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and <package>-unused.txt. All those are plain text files that can be viewed and postprocessed easily." +msgstr "" + +#: C/gtk-doc-manual.xml:1565(para) +msgid "The <package>-undocumented.txt file starts with the documentation coverage summary. Below are two sections divided by blank lines. The first section lists undocumented or incomplete symbols. The second section does the same for section docs. Incomplete entries are those, which have documentation, but where e.g. a new parameter has been added." +msgstr "" + +#: C/gtk-doc-manual.xml:1574(para) +msgid "The <package>-undeclared.txt file lists symbols given in the <package>-sections.txt but not found in the sources. Check if they have been removed or if they are misspelled." +msgstr "" + +#: C/gtk-doc-manual.xml:1581(para) +msgid "The <package>-unused.txt file lists symbol names, where the GTK-Doc scanner has found documentation, but does not know where to put it. This means that the symbol has not yet been added to the <package>-sections.txt file." +msgstr "" + +#: C/gtk-doc-manual.xml:1589(para) +msgid "Enable or add the line in Makefile.am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during make check run." +msgstr "" + +#: C/gtk-doc-manual.xml:1596(para) +msgid "One can also look at the files produced by the source code scanner: <package>-decl-list.txt and <package>-decl.txt. The first one can be compared with the section file if that is manualy maintained. The second lists all declarations fromt he headers If a symbol is missing one could check if this file contains it." +msgstr "" + +#: C/gtk-doc-manual.xml:1605(para) +msgid "If the project is GObject based, one can also look into the files produced by the object scanner: <package>.args.txt, <package>.hierarchy.txt, <package>.interfaces.txt, <package>.prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask gtkdoc to keep the intermedia scanner file for further analysis, but running it as GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" + +#: C/gtk-doc-manual.xml:1620(title) +msgid "Documenting other interfaces" +msgstr "" + +#: C/gtk-doc-manual.xml:1622(para) +msgid "So far we have been using GTK-Doc to document the API of code. The next sections contain suggestions how the tools can be used to document other interfaces too." +msgstr "" + +#: C/gtk-doc-manual.xml:1629(title) +msgid "Commandline options and man pages" +msgstr "" + +#: C/gtk-doc-manual.xml:1631(para) +msgid "As one can generate man pages for a docbook refentry as well, it sounds like a good idea to use it for that purpose. This way the interface is part of the reference and one gets the man-page for free." +msgstr "" + +#: C/gtk-doc-manual.xml:1638(title) +msgid "Document the tool" +msgstr "" + +#: C/gtk-doc-manual.xml:1640(para) +msgid "Create one refentry file per tool. Following our example we would call it meep/docs/reference/meeper/meep.xml. For the xml tags that should be used and can look at generated file in the xml subdirectory as well as examples e.g. in glib." +msgstr "" + +#: C/gtk-doc-manual.xml:1650(title) +msgid "Adding the extra configure check" +msgstr "" + +#: C/gtk-doc-manual.xml:1653(title) +#: C/gtk-doc-manual.xml:1673(title) +msgid "Extra configure checks" +msgstr "" + +#: C/gtk-doc-manual.xml:1670(title) +msgid "Adding the extra makefile rules" +msgstr "" + +#: C/gtk-doc-manual.xml:1698(title) +msgid "DBus interfaces" +msgstr "" + +#: C/gtk-doc-manual.xml:1700(para) +msgid "(FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" +msgstr "" + +#: C/gtk-doc-manual.xml:1709(title) +msgid "Frequently asked questions" +msgstr "" + +#: C/gtk-doc-manual.xml:1713(segtitle) +msgid "Question" +msgstr "Vprašanje" + +#: C/gtk-doc-manual.xml:1714(segtitle) +msgid "Answer" +msgstr "Odgovor" + +#: C/gtk-doc-manual.xml:1716(seg) +msgid "No class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1718(function) +msgid "xxx_get_type()" +msgstr "" + +#: C/gtk-doc-manual.xml:1719(filename) +msgid "<package>.types" +msgstr "" + +#: C/gtk-doc-manual.xml:1717(seg) +msgid "The objects function has not been entered into the file." +msgstr "" + +#: C/gtk-doc-manual.xml:1723(seg) +msgid "Still no class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1725(filename) +#: C/gtk-doc-manual.xml:1764(filename) +#: C/gtk-doc-manual.xml:1772(filename) +#: C/gtk-doc-manual.xml:1794(filename) +msgid "<package>-sections.txt" +msgstr "" + +#: C/gtk-doc-manual.xml:1726(ulink) +msgid "explanation" +msgstr "pojasnilo" + +#: C/gtk-doc-manual.xml:1724(seg) +msgid "Missing or wrong naming in file (see )." +msgstr "" + +#: C/gtk-doc-manual.xml:1730(seg) +msgid "Damn, I have still no class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1732(type) +#: C/gtk-doc-manual.xml:1773(type) +msgid "GtkWidget" +msgstr "Gradnik Gtk" + +#: C/gtk-doc-manual.xml:1731(seg) +msgid "Is the object name (name of the instance struct, e.g. ) part of the normal section (don't put this into Standard or Private subsections)." +msgstr "" + +#: C/gtk-doc-manual.xml:1738(seg) +msgid "No symbol index." +msgstr "" + +#: C/gtk-doc-manual.xml:1740(filename) +#: C/gtk-doc-manual.xml:1755(filename) +#: C/gtk-doc-manual.xml:1781(filename) +msgid "<package>-docs.{xml,sgml}" +msgstr "" + +#: C/gtk-doc-manual.xml:1739(seg) +msgid "Does the contain a index that xi:includes the generated index?" +msgstr "" + +#: C/gtk-doc-manual.xml:1745(seg) +msgid "Symbols are not linked to their doc-section." +msgstr "" + +#: C/gtk-doc-manual.xml:1746(seg) +msgid "Is the doc-comment using the correct markup (added #,% or ())? Check if the gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" + +#: C/gtk-doc-manual.xml:1752(seg) +msgid "A new class does not appear in the docs." +msgstr "" + +#: C/gtk-doc-manual.xml:1753(seg) +msgid "Is the new page xi:included from ." +msgstr "" + +#: C/gtk-doc-manual.xml:1759(seg) +msgid "A new symbol does not appear in the docs." +msgstr "" + +#: C/gtk-doc-manual.xml:1760(seg) +msgid "Is the doc-comment properly formatted. Check for spelling mistakes in the begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable xrefs. Check if the symbol is correctly listed in the in a public subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1768(seg) +msgid "A type is missing from the class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1770(filename) +msgid "<package>.hierarchy" +msgstr "" + +#: C/gtk-doc-manual.xml:1771(filename) +msgid "xml/tree_index.sgml" +msgstr "" + +#: C/gtk-doc-manual.xml:1769(seg) +msgid "If the type is listed in but not in then double check that the type is correctly placed in the . If the type instance (e.g. ) is not listed or incidentialy makred private it will not be shown." +msgstr "" + +#: C/gtk-doc-manual.xml:1778(seg) +msgid "I get foldoc links for all gobject annotations." +msgstr "" + +#: C/gtk-doc-manual.xml:1780(filename) +msgid "xml/annotation-glossary.xml" +msgstr "" + +#: C/gtk-doc-manual.xml:1779(seg) +msgid "Check that is xi:included from ." +msgstr "" + +#: C/gtk-doc-manual.xml:1787(seg) +msgid "Parameter described in source code comment block but does not exist" +msgstr "" + +#: C/gtk-doc-manual.xml:1788(seg) +msgid "Check if the prototype in the header has different parameter names as in the source." +msgstr "" + +#: C/gtk-doc-manual.xml:1793(seg) +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "" + +#: C/gtk-doc-manual.xml:1794(seg) +msgid "Symbol XYZ appears twice in file." +msgstr "" + +#: C/gtk-doc-manual.xml:1797(seg) +msgid "Element typename in namespace '' encountered in para, but no template matches." +msgstr "" + +#: C/gtk-doc-manual.xml:12(releaseinfo) +msgid "Version 1.1, March 2000" +msgstr "" + +#: C/gtk-doc-manual.xml:16(year) +msgid "2000" +msgstr "2000" + +#: C/gtk-doc-manual.xml:16(holder) +msgid "Free Software Foundation, Inc." +msgstr "" + +#: C/gtk-doc-manual.xml:19(para) +msgid "
    Free Software Foundation, Inc. 51 Franklin Street, Suite 330, Boston, MA02110-1301USA
    Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed." +msgstr "" + +#: C/gtk-doc-manual.xml:28(title) +msgid "GNU Free Documentation License" +msgstr "" + +#: C/gtk-doc-manual.xml:31(title) +msgid "0. PREAMBLE" +msgstr "" + +#: C/gtk-doc-manual.xml:32(para) +msgid "The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others." +msgstr "" + +#: C/gtk-doc-manual.xml:43(para) +msgid "This License is a kind of copyleft, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software." +msgstr "" + +#: C/gtk-doc-manual.xml:50(para) +msgid "We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference." +msgstr "" + +#: C/gtk-doc-manual.xml:62(title) +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "" + +#: C/gtk-doc-manual.xml:63(para) +msgid "This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The Document, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as you." +msgstr "" + +#: C/gtk-doc-manual.xml:72(para) +msgid "A Modified Version of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language." +msgstr "" + +#: C/gtk-doc-manual.xml:79(para) +msgid "A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them." +msgstr "" + +#: C/gtk-doc-manual.xml:94(para) +msgid "The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:103(para) +msgid "The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:111(para) +msgid "A Transparent copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not Transparent is called Opaque." +msgstr "" + +#: C/gtk-doc-manual.xml:128(para) +msgid "Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only." +msgstr "" + +#: C/gtk-doc-manual.xml:141(para) +msgid "The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, Title Page means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text." +msgstr "" + +#: C/gtk-doc-manual.xml:153(title) +msgid "2. VERBATIM COPYING" +msgstr "" + +#: C/gtk-doc-manual.xml:154(para) +msgid "You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3." +msgstr "" + +#: C/gtk-doc-manual.xml:169(para) +msgid "You may also lend copies, under the same conditions stated above, and you may publicly display copies." +msgstr "" + +#: C/gtk-doc-manual.xml:176(title) +msgid "3. COPYING IN QUANTITY" +msgstr "" + +#: C/gtk-doc-manual.xml:177(para) +msgid "If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:195(para) +msgid "If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages." +msgstr "" + +#: C/gtk-doc-manual.xml:202(para) +msgid "If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public." +msgstr "" + +#: C/gtk-doc-manual.xml:222(para) +msgid "It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document." +msgstr "" + +#: C/gtk-doc-manual.xml:231(title) +msgid "4. MODIFICATIONS" +msgstr "" + +#: C/gtk-doc-manual.xml:232(para) +msgid "You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:" +msgstr "" + +#: C/gtk-doc-manual.xml:248(title) +msgid "A" +msgstr "" + +#: C/gtk-doc-manual.xml:249(para) +msgid "Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission." +msgstr "" + +#: C/gtk-doc-manual.xml:264(title) +msgid "B" +msgstr "" + +#: C/gtk-doc-manual.xml:265(para) +msgid "List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five)." +msgstr "" + +#: C/gtk-doc-manual.xml:279(title) +msgid "C" +msgstr "" + +#: C/gtk-doc-manual.xml:280(para) +msgid "State on the Title Page the name of the publisher of the Modified Version, as the publisher." +msgstr "" + +#: C/gtk-doc-manual.xml:291(title) +msgid "D" +msgstr "" + +#: C/gtk-doc-manual.xml:292(para) +msgid "Preserve all the copyright notices of the Document." +msgstr "" + +#: C/gtk-doc-manual.xml:301(title) +msgid "E" +msgstr "" + +#: C/gtk-doc-manual.xml:302(para) +msgid "Add an appropriate copyright notice for your modifications adjacent to the other copyright notices." +msgstr "" + +#: C/gtk-doc-manual.xml:311(title) +msgid "F" +msgstr "" + +#: C/gtk-doc-manual.xml:312(para) +msgid "Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below." +msgstr "" + +#: C/gtk-doc-manual.xml:324(title) +msgid "G" +msgstr "" + +#: C/gtk-doc-manual.xml:325(para) +msgid "Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:337(title) +msgid "H" +msgstr "" + +#: C/gtk-doc-manual.xml:338(para) +msgid "Include an unaltered copy of this License." +msgstr "" + +#: C/gtk-doc-manual.xml:346(title) +msgid "I" +msgstr "" + +#: C/gtk-doc-manual.xml:347(para) +msgid "Preserve the section entitled History, and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled History in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence." +msgstr "" + +#: C/gtk-doc-manual.xml:365(title) +msgid "J" +msgstr "" + +#: C/gtk-doc-manual.xml:366(para) +msgid "Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the History section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission." +msgstr "" + +#: C/gtk-doc-manual.xml:383(title) +msgid "K" +msgstr "" + +#: C/gtk-doc-manual.xml:384(para) +msgid "In any section entitled Acknowledgements or Dedications, preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein." +msgstr "" + +#: C/gtk-doc-manual.xml:396(title) +msgid "L" +msgstr "" + +#: C/gtk-doc-manual.xml:397(para) +msgid "Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles." +msgstr "" + +#: C/gtk-doc-manual.xml:409(title) +msgid "M" +msgstr "" + +#: C/gtk-doc-manual.xml:410(para) +msgid "Delete any section entitled Endorsements. Such a section may not be included in the Modified Version." +msgstr "" + +#: C/gtk-doc-manual.xml:421(title) +msgid "N" +msgstr "" + +#: C/gtk-doc-manual.xml:422(para) +msgid "Do not retitle any existing section as Endorsements or to conflict in title with any Invariant Section." +msgstr "" + +#: C/gtk-doc-manual.xml:432(para) +msgid "If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles." +msgstr "" + +#: C/gtk-doc-manual.xml:444(para) +msgid "You may add a section entitled Endorsements, provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard." +msgstr "" + +#: C/gtk-doc-manual.xml:453(para) +msgid "You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one." +msgstr "" + +#: C/gtk-doc-manual.xml:470(para) +msgid "The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" + +#: C/gtk-doc-manual.xml:480(title) +msgid "5. COMBINING DOCUMENTS" +msgstr "" + +#: C/gtk-doc-manual.xml:481(para) +msgid "You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:492(para) +msgid "The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work." +msgstr "" + +#: C/gtk-doc-manual.xml:505(para) +msgid "In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled History; likewise combine any sections entitled Acknowledgements, and any sections entitled Dedications. You must delete all sections entitled Endorsements." +msgstr "" + +#: C/gtk-doc-manual.xml:516(title) +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "" + +#: C/gtk-doc-manual.xml:517(para) +msgid "You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:527(para) +msgid "You may extract a single document from such a collection, and dispbibute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document." +msgstr "" + +#: C/gtk-doc-manual.xml:537(title) +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "" + +#: C/gtk-doc-manual.xml:538(para) +msgid "A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an aggregate, and this License does not apply to the other self-contained works thus compiled with the Document , on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate." +msgstr "" + +#: C/gtk-doc-manual.xml:561(title) +msgid "8. TRANSLATION" +msgstr "" + +#: C/gtk-doc-manual.xml:562(para) +msgid "Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail." +msgstr "" + +#: C/gtk-doc-manual.xml:580(title) +msgid "9. TERMINATION" +msgstr "" + +#: C/gtk-doc-manual.xml:581(para) +msgid "You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document 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." +msgstr "" + +#: C/gtk-doc-manual.xml:594(title) +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "" + +#: C/gtk-doc-manual.xml:595(para) +msgid "The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" + +#: C/gtk-doc-manual.xml:606(para) +msgid "Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License or any later version applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" + +#: C/gtk-doc-manual.xml:621(title) +msgid "Addendum" +msgstr "" + +#: C/gtk-doc-manual.xml:622(para) +msgid "To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:" +msgstr "" + +#: C/gtk-doc-manual.xml:629(para) +msgid "Copyright YEAR YOUR NAME." +msgstr "" + +#: C/gtk-doc-manual.xml:632(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License." +msgstr "" + +#: C/gtk-doc-manual.xml:647(para) +msgid "If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" + +#: C/gtk-doc-manual.xml:657(para) +msgid "If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software." +msgstr "" + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 +#: C/gtk-doc-manual.xml:0(None) +msgid "translator-credits" +msgstr "" + diff --git a/help/manual/sl/sl.stamp b/help/manual/sl/sl.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/sl/sl.stamp diff --git a/help/manual/sv/fdl-appendix.xml b/help/manual/sv/fdl-appendix.xml new file mode 100644 index 0000000..4c0f73b --- /dev/null +++ b/help/manual/sv/fdl-appendix.xml @@ -0,0 +1,233 @@ + + + + + Version 1.1, mars 2000 + + 2000Free Software Foundation, Inc. + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    . Alla är tillåtna kopiera och distribuera ordagranna kopior av detta licensdokument, men att ändra det är ej tillåtet.
    +
    +
    + GNU Free Documentation License + + + 0. BAKGRUND + Syftet med denna licens är att göra en handbok, bok, eller annat praktiskt och användbart dokument fritt som i frihet: att försäkra var och en den faktiska friheten att kopiera och sprida det vidare, med eller utan förändringar, antingen kommersiellt eller ideellt. Sekundärt bevarar denna licens ett sätt för författaren och förläggaren att få ära för deras arbete utan att de anses vara ansvariga för förändringar gjorda av andra. + + Denna Licens är en sorts copyleft, vilket betyder att derivativa verk av detta dokument själva måste vara fria på samma sätt. Den kompletterar GNU General Public License, som är en copyleft-licens utformad för fri programvara. + + Vi har utformat denna licens för att den skall användas för handböcker till fri programvara, eftersom fri programvara behöver fri dokumentation: ett fritt program bör ha en handbok som erbjuder samma friheter som programmet gör. Men denna licens är inte begränsad till programvaruhandböcker; den kan användas för vilket textverk som helst oavsett ämne eller huruvida det är en utgiven, tryckt bok. Vi rekommenderar denna licens huvudsakligen för alla verk vars syfte är instruktion eller referens. + + + 1. TILLÄMPNINGSOMRÅDE OCH DEFINITIONER + Denna licens [det engelska originalet] gäller för varje handbok eller annat verk, oavsett uttrycksform, som innehåller ett meddelande där upphovsrättsinnehavaren stadgat att verket kan spridas enligt villkoren i GNU Free Documentation License. Ett sådant meddelande ger en internationell frihet utan krav på ersättning och utan tidsbegränsning att använda verket under villkoren i denna licens [det engelska originalet]. Dokument nedan syftar på godtycklig handbok eller verk. Var och en är licenstagare och benämns som du. + + En förändrad version av dokumentet avser varje verk som innehåller dokumentet eller en del av det, antingen ordagranna kopior, eller med ändringar och/eller översatt till ett annat språk. + + Ett sekundärt avsnitt är en märkt bilaga eller förord till dokumentet som exklusivt behandlar förhållandet mellan dokumentets förläggare eller författare och dokumentets huvudsakliga ämne (eller till relaterade ämnen) och som inte innehåller något som direkt faller under det huvudsakliga ämnet. (Således, om dokumentet delvis är en lärobok i matematik så får ett sekundärt avsnitt inte förklara någon matematik.) Förhållandet kan vara en historisk koppling till ämnet eller något relaterat, eller en juridisk, kommersiell, filosofisk, etisk eller politisk ställning till det. + + De oföränderliga avsnitten är sekundära avsnitt vars titlar är angivna som oföränderliga avsnitt i meddelandet som stadgar att Dokument är utgivet under denna licens [det engelska originalet]. + + Omslagstexterna är speciella korta ordföljder som är listade som framsidestexter eller baksidestexter i meddelandet som stadgar att Dokument är utgivet under denna licens [det engelska originalet]. + + En transparent kopia av Dokument är en maskinläsbar kopia, representerad i ett format vars specifikation finns tillgänglig för allmänheten, som lämpar sig för att revidera dokumentet på ett enkelt sätt med generella textredigeringsprogram eller (för pixelbaserade bilder) generella grafikprogram eller (för ritningar) något väl tillgängligt ritprogram, och som är passande som indata till textformaterare eller för automatisk konvertering till en mängd format som passar som indata till textformaterare. En kopia i ett för övrigt transparent filformat vars markeringar, eller avsaknad av markeringar, har ordnats för att hindra eller motverka att vidare förändring vidtas av läsare är inte transparent. En kopia som inte är transparent kallas opak. + + Exempel på passande format för transparenta kopior innefattar ren ASCII utan markeringar, Texinfo indataformat, LaTeX indataformat, SGML eller XML som använder en publikt tillgänglig DTD, och standardenlig HTML, PostScript eller PDF utformat för mänsklig förändring. Opaka format innefattar Postscript, PDF, leverantörsspecifika format som bara kan läsas och editeras med leverantörsspecifika ordbehandlare, SGML eller XML för vilket DTD och/eller verktyg för behandling inte finns allmänt tillgängliga, och den maskingenererade HTML som produceras av vissa ordbehandlare enbart avsett som utdata. + + Titelsidan innebär, för en tryckt bok, titelsidan själv, och sådana därpå följande sidor som krävs för att göra det material som enligt denna licens skall synas på titelsidan läsbart. För verk i sådana format som inte har någon egentlig titelsida, avses med Titelsidan den text som är närmast den mest framstående förekomsten av verkets titel, föregående den huvudsakliga textmassan. + + + + 2. ORDAGRANN KOPIERING + Du äger kopiera och sprida Dokument på valfritt medium, antingen kommersiellt eller ideellt, förutsatt att denna licens [det engelska originalet], upphovsrättsklausul, och meddelandet som stadgar att GNU Free Documentation License gäller för dokumentet finns med på alla kopior, och att du inte lägger till några som helst andra villkor än de som ingår i denna licens. Du äger inte vidta tekniska åtgärder för att begränsa eller kontrollera läsande eller vidare kopiering av de kopior du skapar eller sprider. Dock äger du ta emot kompensation i utbyte mot kopior. Om du sprider tillräckligt många kopior måste du också följa villkoren i paragraf 3. + + Du äger också låna ut kopior, under samma villkor som ovan, och du äger visa kopior offentligt. + + + + 3. OMFATTANDE KOPIERING + Om du publicerar tryckta kopior (eller kopior i medier som normalt har tryckta omslag) av Dokument, i en upplaga överstigande 100 exemplar, och dokumentets licensmeddelande kräver Omslagstexterna, så måste du förse kopiorna med omslag som, klart och tydligt, visar alla omslagstexter: framsidestexter på framsidan och baksidestexter på baksidan. Båda omslagen måste klart och tydligt identifiera dig som utgivare av dessa kopior. Framsidan måste presentera dokumentets hela titel, med alla ord i titeln lika framträdande och synliga. Du äger lägga till ytterligare stoff på omslagen. Kopiering med förändringar gjorda bara på omslaget, så länge som de bevarar titeln för Dokument och i övrigt uppfyller dessa krav kan anses vara ordagrann kopiering i andra avseenden. + + Om de obligatoriska texterna för något omslag är för omfattande för att rymmas i läsbart skick skall du placera de första (så många som får plats) på det egentliga omslaget, och fortsätta med resten på de direkt intilliggande sidorna. + + Om du publicerar opaka kopior av Dokument i upplagor om mer än 100, måste du antingen bifoga en maskinläsbar transparent kopia med varje opak kopia, eller ange i eller med varje opak kopia en nätverksadress som är tillgänglig för den allmänna nätverksanvändande massan där man, med öppet standardiserade protokoll, anonymt och utan kostnad kan ladda ner en komplett transparent kopia av dokumentet, utan extra material. Om du väljer det senare alternativet, måste du vidta skäliga åtgärder, när du börjar sprida opaka kopior i kvantitet, för att denna transparenta kopia skall förbli tillgänglig på angivna platsen till åtminstone ett år efter den sista gången du spred en opak kopia (direkt eller via ombud eller återförsäljare) av den utgåvan till allmänheten. + + Det är önskvärt, men inte ett krav, att du kontaktar författarna till Dokument i god tid innan du sprider något större antal kopior, för att ge dem en chans att förse dig med en uppdaterad version av dokumentet. + + + + 4. FÖRÄNDRINGAR + Du äger kopiera och sprida en förändrad version av Dokument under de villkor som beskrivs i paragraf 2 och 3 av GNU Free Documentation License, förutsatt att du släpper den förändrade versionen under exakt denna licens, och att den förändrade versionen antar dokumentets roll, och således medger spridning och förändring av den förändrade versionen till envar som erhåller en kopia av den. Utöver detta måste du göra följande med den ändrade versionen: + + + + + A + Titelsidan (och omslagen om det finns några) använda en titel skild från den som [original]Dokument har, och skild från tidigare versioners titel (som skall, om det finns några, finnas listade i historikavsnittet i dokumentet). Du äger använda samma titel som det föregående dokumentet om den ursprungliga utgivaren ger sitt tillstånd. + + + + + + B + Lista på Titelsidan, som författare, en eller flera personer eller juridiska personer som ansvarat för förändringarna i förändrad version, tillsammans med minst fem av de huvudsakliga författarna av Dokument (alla dess huvudsakliga författare, om det har mindre än fem). + + + + + + C + Ange namnet på utgivaren av Titelsidan, som utgivare, på förändrad version. + + + + + + D + Bibehålla alla upphovsrättsklausuler för Dokument. + + + + + + E + Lägga till en upphovsrättsklausul för dina förändringar angränsande till de andra upphovsrättsklausulerna. + + + + + + F + Direkt efter upphovsrättsklausulerna innefatta ett meddelande som ger allmänheten tillstånd att använda förändrad version under villkoren i denna licens [det engelska originalet] i den form som visas i Tillägg nedan. + + + + + + G + I meddelandet om licensen bevara den fullständiga listan över oföränderliga avsnitten och obligatoriska Omslagstexterna som finns i dokumentets meddelande om licensen. + + + + + + H + Inkludera en oförändrad kopia av denna licens [Det är den engelska originalversionen som avses]. + + + + + + I + Bevara avsnittet med titeln historik (History), bevara dess titel och lägg i avsnittet till en post med åtminstone titeln, året, nya författare och utgivaren av förändrad version så som angivet på Titelsidan. Om det inte finns något avsnitt med titeln historik (History) i Dokument så skapa en med titeln, året, författare och utgivaren av dokumentet så som det står på [original]dokumentets titelsida. Lägg sedan till en post som beskriver den förändrade versionen så som beskrivits ovan. + + + + + + J + Bevara den nätverksadress, om det finns någon, angiven i Dokument till den allmänt tillgängliga transparenta kopian av dokumentet, och likaså nätverksadresserna till de föregående versioner som dokumentet baseras på. Dessa får placeras i avsnittet historik (History). Du äger utelämna en nätverksadress för ett verk som är publicerat mer än fyra år före dokumentet självt, eller om den ursprunglige utgivaren vars verk nätverksadressen hänvisar till ger sitt tillstånd. + + + + + + K + För alla avsnitt med titlarna tillkännagivanden (Acknowledgements) eller dedikationer (Dedications), bevara titeln på avsnittet, och bevara allt innehåll och prägel på alla tillkännagivanden och/eller dedikationer gjorda av varje bidragsgivare. + + + + + + L + Bevara alla oföränderliga avsnitten i Dokument oförändrade till text och titel. Avsnittsnummer eller motsvarande anses inte tillhöra avsnittets titel. + + + + + + M + Radera varje avsnitt med titeln endossering (Endorsements). Ett sådant avsnitt får inte inkluderas i en förändrad version. + + + + + + N + Inte byta titel på något existerande avsnitt så att det blir endossering (Endorsements) eller så att titeln kan förväxlas med något oföränderligt avsnitt. + + + + + Om förändrad version innehåller nya framsidestexter eller bilagor som är att anses som sekundära avsnitt och inte innehåller något material kopierat från dokumentet, så äger du, om du vill, benämna några eller samtliga av dessa som oföränderliga. För att göra detta, lägg deras titlar till listan över oföränderliga avsnitten i den förändrade versionens licensmeddelande. Dessa titlar måste vara skilda från alla andra avsnitts titlar. + + Du äger lägga till ett avsnitt med titeln endossering (Endorsements), förutsatt att det inte innehåller något annat än endosseringar för din förändrad version från olika aktörer -- till exempel, meddelanden om utförd korrekturläsning eller att texten har godkänts av en organisation som en officiell definition av en standard. + + Du äger lägga till ett textavsnitt på upp till fem ord som framsidestext, och ett textavsnitt på upp till 25 ord som baksidestext i listan över Omslagstexterna i förändrad version. Bara ett textavsnitt med framsidestexter och ett med baksidestexter får läggas till av (eller genom försorg av) en enda juridisk person. Om Dokument redan innehåller en omslagstext för något av omslagen, tidigare tillagd av dig eller genom försorg av samma juridiska person som du företräder, äger du inte lägga till en till, men du äger ändra den gamla med tillstånd från den tidigare utgivaren som lade till den förra. + + Författaren (författarna) och utgivaren (utgivarna) av Dokument ger inte via denna licens sitt tillstånd att använda sina namn för publicitet eller för att lägga till eller antyda endossering av någon förändrad version. + + + + 5. KOMBINERA DOKUMENT + Du äger kombinera Dokument med andra dokument som är utgivna under denna licens, under de villkor som definieras i paragraf 4 av GNU Free Documentation License för förändrade versioner, förutsatt att du, i det kombinerade dokumentet, innefattar alla oföränderliga avsnitten från originaldokumenten, omodifierade, och listar dem som oföränderliga avsnitt i ditt kombinerade verk i dess licensklausul, och att du bevarar alla deras garantiavsägelseklausuler. + + Det kombinerade verket behöver bara innehålla en enstaka kopia av denna licens [engelska originalversionen], och flera identiska oföränderliga avsnitten kan ersättas med en kopia. Om det finns flera oföränderliga stycken med samma namn men olika innehåll, se till att titeln på varje sådant avsnitt är unik genom att i slutet på den, inom parentes, lägga till namnet på den ursprunglige författaren eller utgivaren av det avsnittet om dessa är kända, annars ett unikt nummer. Gör samma justeringar av titlarna i listan över oföränderliga avsnitt i licensklausulen i det kombinerade verket. + + I det kombinerade verket måste du kombinera alla avsnitt med titlarna historik (History) i de ursprungliga dokumenten, till ett avsnitt med titeln historik (History); på samma sätt skall alla avsnitt med titlarna tillkännagivanden (Acknowledgements), alla avsnitt med titlarna dedikationer (Dedications) kombineras. Du måste ta bort alla avsnitt med titlarna endossering (Endorsements). + + + + 6. SAMLINGAR AV DOKUMENT + Du äger skapa en samling bestående av Dokument och andra dokument som är släppta under GNU Free Documentation License, och ersätta individuella kopior i dokumenten av denna licens med en enda kopia [av den engelska originalversionen] som inkluderas i samlingen, förutsatt att du följer villkoren för ordagrann kopiering i denna licens för varje inkluderat dokument i alla andra avseenden. + + Du äger lyfta ut ett dokument från en sådan samling, och sprida det enskilt under GNU Free Documentation License, förutsatt att du lägger till en kopia av denna licens [den engelska originalversionen] i det utlyfta dokumentet, och följer villkoren för ordagrann kopiering i denna licens för det utlyfta dokumentet i alla andra avseenden. + + + + 7. SAMMANSLAGNING MED OBEROENDE VERK + En samling av Dokument eller av dess derivat med andra separata och oberoende dokument eller verk, på eller i en lagringsvolym eller ett spridningsmedium, kallas för en sammanslagning om den sammanslagna upphovsrätten inte används för att begränsa samlingens användares rättigheter som de enskilda dokumenten medger. När dokumentet ingår i en sådan sammanslagning, gäller inte denna licens de andra verken i samlingen som inte själva är deriverat av dokumentet. Om kravet på omslagstexter enligt paragraf 3 är tillämpligt på dessa kopior av dokumentet, så kan dokumentets omslagstexter, om dokumentet utgör mindre än en fjärdedel av hela samlingen, placeras på det omslag som omger dokumentet inuti samlingen, eller den elektroniska motsvarigheten till omslag om dokumentet är i elektronisk form. Annars måste de synas på det omslag som omger hela samlingen. + + + + 8. ÖVERSÄTTNING + Översättning anses vara en sorts förändring, så du äger sprida översättningar av Dokument enligt de villkor som sätts i paragraf 4. oföränderliga avsnitten som ersätts med översättningar kräver tillstånd från deras upphovsrättsinnehavare, men du äger inkludera översättningar av alla eller vissa av dessa oföränderliga avsnitt tillsammans med originalversionerna av dessa oföränderliga avsnitt. Du äger inkludera en översättning av denna licens, och alla licensklausuler i dokumentet, och alla garantiavsägelser, förutsatt att du också innefattar den engelska originalversionen av denna licens och originalversionerna av dessa klausuler. Skulle det finnas skillnader mellan översättningen och originalversionen av denna licens eller någon klausul så gäller originalversionen. + + + + 9. UPPHÖRANDE + Du äger inte kopiera, förändra, omlicensiera eller sprida Dokument annat än enligt villkoren i GNU Free Documentation License. Alla övriga försök att kopiera, modifiera, omlicensiera, eller sprida dokumentet är ogiltiga och kommer automatiskt medföra att du förlorar dina rättigheter enligt denna licens. Tredje man som har mottagit kopior eller rättigheter från dig enligt dessa licensvillkor kommer dock inte att förlora sina rättigheter så länge de följer licensvillkoren. + + + + 10. FRAMTIDA VERSIONER AV DENNA LICENS + Free Software Foundation kan publicera nya, reviderade versioner av GNU Free Documentation License då och då. Sådana nya versioner kommer att vara likadana i andemening som den nuvarande versionen, men kan skilja i detalj för att behandla nya problem eller angelägenheter. Se http://www.gnu.org/copyleft/. + + Varje version av licensen ges ett unikt versionsnummer. Om Dokument stadgar att en specifik numrerad version av denna licens eller valfri senare version gäller för det, så äger du rätten att följa villkoren enligt antingen den angivna versionen eller vilken senare version som helst som publicerats (inte som utkast) av Free Software Foundation. Om dokumentet inte anger en version av denna licens, äger du välja vilken version som helst som publicerats (inte som utkast) av Free Software Foundation. + + + + TILLÄGG + För att använda GNU Free Documentation License för ett dokument du har skrivit, inkludera en kopia av licensen [det engelska originalet] i dokumentet och placera följande copyrightklausul omedelbart efter titelsidan: + +
    + Copyright © YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the oföränderliga avsnitten being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License. +
    + + Om du inte har några oföränderliga avsnitten, skriv with no Invariant Sections istället för att ange vilka som är oföränderliga. Om du inte har några Front-Cover Texts, skriv no Front-Cover Texts istället för Front-Cover Texts being LIST; såväl som för Back-Cover Texts. + + Om ditt dokument innehåller icke-triviala exempel med programkod, så rekommenderar vi att du släpper dessa exempel parallellt under en, av dig vald, fri programvarulicens, som till exempel GNU General Public License, för att möjliggöra deras användning i fri programvara. +
    +
    diff --git a/help/manual/sv/index.docbook b/help/manual/sv/index.docbook new file mode 100644 index 0000000..34ff0de --- /dev/null +++ b/help/manual/sv/index.docbook @@ -0,0 +1,1616 @@ + + + + +included"> +]> + + + + Handbok för GTK-Doc + 1.24.1 + Användarhandbok för utvecklare med användningsinstruktioner för GTK-Doc. + + Chris Lyttle
    chris@wilddev.net
    + Dan Mueth
    d-mueth@uchicago.edu
    + Stefan Sauer (Kost)
    ensonic@users.sf.net
    +
    + GTK-Doc-projektet
    gtk-doc-list@gnome.org
    + 2000, 2005 Dan Mueth and Chris Lyttle + 2007-2015 Stefan Sauer (Kost) + + + + + Tillstånd att kopiera, distribuera och/eller modifiera detta dokument ges under villkoren i GNU Free Documentation License, version 1.1 eller senare, utgivet av Free Software Foundation utan standardavsnitt och omslagstexter. En kopia av licensen finns inkluderad. + Flera namn på produkter och tjänster är registrerade varumärken. I de fall dessa namn förekommer i GNOME-dokumentation - och medlemmarna i GNOME-dokumentationsprojektet är medvetna om dessa varumärken - är de skrivna med versaler eller med inledande versal. + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + 1.27 07 Dec 2017 ss finjustering av python-porteringen + 1.26 11 Aug 2017 ss portera alla verktyg från perl/bash till python + 1.25 21 Mars 2016 ss programfixar, uppstädning av tester + 1.24 29 Maj 2015 ss programfix + 1.23 17 Maj 2015 ss programfix + 1.22 07 Maj 2015 ss programfixar, borttagning av föråldrade funktioner + 1.21 17 Jul 2014 ss programfixar, borttagning av föråldrade funktioner + 1.20 16 Feb 2014 ss programfixar, stöd för markdown, stilförbättringar + 1.19 05 Jun 2013 ss programfixar + 1.18 14 Sep 2011 ss programfixar, uppsnabbningar, stöd för markdown + 1.17 26 Feb 2011 sk brådskande programfixuppdatering + 1.16 14 Jan 2011 sk programfixar, layoutförbättringar + 1.15 21 Maj 2010 sk program- och regressionsfixar + 1.14 28 Mars 2010 sk programfixar och prestandaförbättringar + 1.13 18 December 2009 sk uppdatering på grund av trasigt tar-arkiv + 1.12 18 December 2009 sk nya verktygsfunktioner och programfixar + 1.11 16 November 2008 mal GNOME doc-utils migration + + + + + + Sebastian Rasmussen + + sebras@gmail.com + + + + 2016 + + Sebastian Rasmussen + + + + + Daniel Nylander + + po@danielnylander.se + + + + 2009 + + Daniel Nylander + + + + + Marcus Rejås och Alexander Nordström + + info@se.linux.org + + + + 2004 + + Marcus Rejås och Alexander Nordström + +
    + + + + + Introduktion + + Detta kapitel introducerar GTK-Doc och ger en överblick över vad det är och hur det används. + + + Vad är GTK-Doc? + + GTK-Doc används för att dokumentera C-kod. Det används vanligen för att dokumentera det publika API:t för bibliotek, så som GTK+- och GNOME-biblioteken. Men det kan också användas för att dokumentera programkod. + + + + Hur fungerar GTK-Doc? + + GTK-Doc fungerar så att det använder dokumentation för funktioner placerad inuti källkodsfilerna i speciellt formaterade kommentarsblock, eller dokumentation som lagts till i mallfilerna som GTK-Doc använder (notera dock att GTK-Doc endast kommer att dokumentera funktioner som deklarerats i huvudfiler; det kommer inte att producera utdata för statiska funktioner). + + GTK-Doc består av ett antal python-skript som vart och ett utför olika steg i processen. + + Det finns 5 huvudsteg i processen: + + + + + Skriva dokumentationen. Författaren fyller i källkodsfilerna med dokumentation för varje funktion, makro, union, etc. (Tidigare matades informationen in i genererade mallfiler, något som inte rekommenderas längre). + + + + Samla ihop information om koden. gtkdoc-scan söker genom huvudfilerna för koden och letar efter deklarationer av funktioner, makron, uppräkningar, strukturer och unioner. Det skapar sedan filen <module>-decl-list.txt som innehåller en lista över deklarationerna, och placerar dem i avsnitt efter vilken huvudfil de finns i. Vid första körningen kommer denna fil att kopieras till <module>-sections.txt. Författaren kan, genom att omarrangera avsnitten och ändra ordningen för deklarationerna inom dem, framställa den önskade, slutgiltiga ordningen. Den andra filen det genererar är <module>-decl.txt. Denna fil innehåller de fullständiga deklarationerna som hittats av detektorn. Om man av något skäl vill att vissa symboler ska visas i dokumentation då den fullständiga deklarationen inte kan hittas av detektorn, eller om deklarationen ska visas annorlunda, kan man placera rader liknande de som finns i <module>-decl.txt i <module>-overrides.txt. + gtkdoc-scangobj kan också användas för att dynamiskt fråga ett bibliotek om vilka GObject-underklasser det exporterar. Det sparar information om varje objekts position i klasshierarkin och om vilka GObject-egenskaper och signaler det tillhandahåller. + gtkdoc-scanobj bör inte användas längre. Det behövdes tidigare när GObject fortfarande var GtkObject inuti gtk+. + + + + Generera XML och HTML/PDF. gtkdoc-mkdb förvandlar mallfilerna till XML-filer i underkatalogen xml/. Om källkoden innehåller dokumentation över funktioner i speciella kommentarsblock, så kommer denna att sammanfogas här. Om det inte finns några tmpl-filer som används så kommer det endast att läsa dokumentation från källkoden och introspektionsdata. + gtkdoc-mkhtml förvandlar XML-filer till HTML-filer i underkatalogen html/. På samma sätt förvandlar gtkdoc-mkpdf XML-filerna till ett PDF-dokument kallat <package>.pdf. + Filer i xml/- och html/-katalogerna skrivs alltid över. Man bör aldrig redigera dem direkt. + + + + Fixa korsreferenser mellan dokument. Efter att ha installerat HTML-filerna kan gtkdoc-fixxref köras för att fixa korsreferenser mellan separata dokument. Till exempel GTK+-dokumentationen innehåller många korsreferenser till typer som dokumenterats i GLib-manualen. När tar-arkivet med källkod skapas för distribution, förvandlar gtkdoc-rebase alla externa länkar till webblänkar. När (förgenererad) distribuerad dokumentation installeras kommer samma program att försöka att förvandla länkarna tillbaka till lokala länkar (i de fall där dokumentationen finns installerad). + + + + + + + Hämta GTK-Doc + + + Krav + python 2/3 - huvudskripten är skrivna i python. + xsltproc - xslt-processorn från libxslt xmlsoft.org/XSLT/ + docbook-xsl - docbook xsl-stilmallar sourceforge.net/projects/docbook/files/docbook-xsl + Endera av source-highlight, highlight eller vim - valfritt - används för syntaxfärgning av exempel + + + + + Om GTK-Doc + + (FIXME) + + (Historia, författare, webbsidor, sändlistor, licens, framtida planer, jämförelse med andra liknande system.) + + + + + Om denna handbok + + (FIXME) + + (vem är den avsett för, var kan du få tag i den, licens) + + + + + + + Att ställa in ditt projekt + + De följande avsnitten beskriver vilka steg du måste utföra för att integrera GTK-Doc i ditt projekt. Dessa avsnitt förutsätter att vi arbetar på ett projekt kallat ”meep”. Detta projekt innehåller ett bibliotek kallat ”libmeep” och ett slutanvändarprogram kallat ”meeper”. Vi förutsätter också att du kommer att använda autoconf och automake. Dessutom kommer avsnittet vanliga makefiler eller andra byggsystem att beskriva de grundläggande sakerna som behöver fungera i ett annat byggsystem. + + + Att ställa in en skelettstruktur för dokumentation + + Under toppnivåkatalogen för ditt projekt, skapa mappar kallade docs/reference (på detta sättet kan du också ha docs/help för slutanvändardokumentation). Det rekommenderas att skapa en annan underkatalog med namnet på dokumentations-paketet. För paket med bara ett bibliotek är detta steg inte nödvändigt. + + Detta kan se ut enligt nedan: Exempel på katalogstruktur + +meep/ + docs/ + reference/ + libmeep/ + meeper/ + src/ + libmeep/ + meeper/ + + + + + + Integrering med autoconf + + Väldigt enkelt! Bara lägg till en rad till ditt configure.ac-skript. + + + Integrering med autoconf + +# check for gtk-doc +GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) + + + + + Detta kommer att kräva att alla utvecklare har gtk-doc installerat. Om det är okej för ditt projekt att ha ett valfritt api-dokumentation bygge, kan du lösa det enligt nedan. Behåll det som det är eftersom gtkdocize letar efter GTK_DOC_CHECK i början på en rad. Låt gtk-doc vara valfritt + +# check for gtk-doc +m4_ifdef([GTK_DOC_CHECK], [ +GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) +],[ +AM_CONDITIONAL([ENABLE_GTK_DOC], false) +]) + + + + Det första argumentet används för att leta efter gtkdoc-versionen under konfigurationen. Det andra, valfria, argumentet används av gtkdocize. Makrot GTK_DOC_CHECK lägger också till flera configure-flaggor: + + --with-html-dir=SÖKVÄG : sökväg till installerad dokumentation + --enable-gtk-doc : använd gtk-doc för att bygga dokumentation [standardvärde=no] + --enable-gtk-doc-html : bygg dokumentation i html-format [standardvärde=yes] + --enable-gtk-doc-pdf : bygg dokumentation i pdf-format [standardvärde=no] + + + + GTK-Doc är inaktiverat som standard! Kom ihåg att skicka flaggan vid nästa körning av configure. Annars kommer förgenererad dokumentation att installeras (vilket är rimligt för användare men inte för utvecklare). + + + Vidare rekommenderas det att du har följande rad i ditt configure.ac-skript. Den låter gtkdocize automatiskt kopiera makrodefinitionen för GTK_DOC_CHECK till ditt projekt. + + + Förberedelse för gtkdocize + +AC_CONFIG_MACRO_DIR(m4) + + + + Efter att alla ändringar i configure.ac är gjorda, uppdatera filen configure. Detta kan göras genom att köra om autoreconf -i eller autogen.sh. + + + + Integrering med automake + + Kopiera först Makefile.am från underkatalogen examples från gtkdoc-sources till ditt projekts API-dokumentationskatalog ( ./docs/reference/<paket>). En lokal kopia bör finnas tillgänglig under t.ex. /usr/share/doc/gtk-doc-tools/examples/Makefile.am. Om du har flera dok-paket, repetera detta för vart och ett. + + Nästa steg är att redigera inställningarna inuti Makefile.am. Alla inställningarna har en kommentar ovanför som beskriver deras syfte. De flesta inställningarna är extraflaggor som skickas till respektive verktyg. Varje verktyg har en variabel på formen . Alla verktygen har stöd för för att lista de parametrar som stöds. + + + + + + + Integrering med autogen + + De flesta projekt kommer att ha ett autogen.sh-skript för att ställa in infrastrukturen för bygget efter utcheckning från ett versionshanteringssystem (så som cvs/svn/git). GTK-Doc tillhandahåller ett verktyg som heter gtkdocize som kan användas i ett sådant skript. Det bör köras före autoheader, automake eller autoconf. + + + Köra gtkdocize från autogen.sh + +gtkdocize || exit 1 + + + + + När gtkdocize kör kopierar det gtk-doc.make till din projektrot (eller den katalog som anges med flaggan ). Det kontrollerar också ditt configure-skript efter ett anrop till GTK_DOC_CHECK. Detta makro kan användas för att skicka extra parametrar till gtkdocize. + + Historiskt genererade GTK-Doc mallfiler i vilka utvecklare skrev in dokumentationen. Detta visade sig inte vara så bra (t.ex. på grund av behovet att ha genererade filer under versionskontroll). Sedan GTK-Doc 1.9 kan verktygen hämta all information från källkodskommentarer och mallar kan därför undvikas. Vi rekommenderar att hålla dokumentationen i koden. gtkdocize har nu stöd för flaggan som väljer en makefil som hoppar över tmpl-användning helt. Förutom att lägga till flaggan direkt vid körning av kommandot, kan den också läggas till i en miljövariabel kallad GTKDOCIZE_FLAGS eller inställd som en andra parameter i makrot GTK_DOC_CHECK i configure-skriptet. Om du inte har ändrat någon fil i tmpl för hand och migrerar från äldre gtkdoc-versioner, ta bort katalogen (t.ex. från versionshanteringssystemet). + + + + Att köra dokumentationsbygget + + Efter de tidigare stegen är det dags att köra bygget. Först måste vi köra om autogen.sh. Om detta skript kör configure åt dig, kan du ge det flaggan . Annars kör manuellt configure med denna flagga efteråt. + Den första körningen av make genererar flera extra filer i doc-katalogerna. De viktiga är <paket>.types, <paket>-docs.xml (tidigare .sgml), <paket>-sections.txt. + + Att köra dokumentationsbygget + +./autogen.sh --enable-gtk-doc +make + + + + Du kan nu peka din webbläsare till docs/reference/<paket>/index.html. Ja, den är fortfarande lite sorglig. Men häng kvar, i nästa kapitel kommer vi att berätta för dig hur du fyller sidorna med liv. + + + + Integrering med versionshanteringssystem + + Som en tumregel är det filerna du redigerar som bör versionshanteras. För typiska projekt är det följande filer: <paket>.types, <paket>-docs.xml (tidigare .sgml), <paket>-sections.txt, Makefile.am. + Filer i katalogerna xml/ och html/ bör inte versionshanteras. Detsamma gäller .stamp-filerna. + + + + Integrering med vanliga makefiler eller andra byggsystem + + I det fall man inte vill använda automake och därför inte heller gtk-doc.mak kommer man att behöva anropa gtkdoc-verktygen i rätt ordning i sina egna makefiler (eller andra byggverktyg). + + + Byggsteg för dokumentation + +DOC_MODULE=meep +// källkod har ändrats +gtkdoc-scan --module=$(DOC_MODULE) <källkodskatalog> +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<källkodskatalog> +// xml-filer har ändrats +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html + + + + + Man kommer att behöva titta i Makefile.am och gtk-doc.mak för att plocka ut de extra flaggor som behövs. + + + + Integrering med CMake-byggsystem + + GTK-Doc kommer nu att producera en GtkDocConfig.cmake-modul (och motsvarande GtkDocConfigVersion.cmake-modul). Detta tillhandahåller ett gtk_doc_add_module-kommando som du kan ställa in i din CMakeLists.txt-fil. + + Det följande exemplet visar hur du använder detta kommando. Exempel på användning av GTK-Doc från CMake + +find_package(GtkDoc 1.25 REQUIRED) + +# Skapa målet doc-libmeep. +gtk_doc_add_module( + libmeep ${CMAKE_SOURCE_DIR}/libmeep + XML meep-docs.xml + LIBRARIES libmeep +) + +# Bygg doc-libmeep som standardmålet. Utan detta måste du uttryckligen +# köra något i stil med `make doc-libmeep` för att bygga dokumentationen. +add_custom_target(documentation ALL DEPENDS doc-libmeep) + +# Installera dokumentationen. (Detta förutsätter att du använder CMake-modulen +# GNUInstallDirs för att ställa in variabeln CMAKE_INSTALL_DOCDIR korrekt). +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html + DESTINATION ${CMAKE_INSTALL_DOCDIR}) + + + + + + + Att dokumentera koden + + GTK-Doc använder källkodskommentarer med en speciell syntax för koddokumentation. Vidare så hämtar det information om din projektstruktur från olika källor. Under nästa avsnitt kommer du att hitta information om syntaxen i kommentarerna. + + + Dokumentationsplacering + Tidigare var det tvunget att fylla i största delen av dokumentationen i filer som fanns i katalogen tmpl. Detta hade nackdelen att informationen ofta inte uppdaterades och att filen också ofta orsakade konflikter med versionshanteringssystem. + För att undvika de nämnda problemen föreslår vi att placera dokumentationen i källkoden. Denna manual kommer endast att beskriva detta sättet att dokumentera kod. + + + Detektorn kan hantera majoriteten av C-huvuden bra. I det fall när du får varningar från detektorn som ser ut som ett specialfall, kan du tipsa GTK-Doc att hoppa över dem. GTK-Doc-kommentarsblock + +#ifndef __GTK_DOC_IGNORE__ +/* unparseable code here */ +#endif + + + + + Begränsningar + Notera att GTK-Doc har stöd för #ifndef(__GTK_DOC_IGNORE__) men inte #if !defined(__GTK_DOC_IGNORE__) eller andra kombinationer. + + + + + + Dokumentationskommentarer + + En flerradskommentar som börjar med en extra ”*” markerar ett dokumentationsblock som kommer att hanteras av GTK-Doc-verktygen. GTK-Doc-kommentarsblock + +/** + * identifierare: + * dokumentation … + */ + + + + 'Identifierare' är en rad med namnet på det objekt som kommentaren är relaterad till. Syntaxen skiljer sig lite beroende på objekt. (TODO lägg till tabell som visar identifierare) + + Blocket 'dokumentation' skiljer sig också för varje symboltyp. Symboltyper som får parametrar så som funktioner eller makron har en parameterbeskrivning först, åtföljd av en blankrad (bara en ”*”). Efteråt följer den detaljerade beskrivningen. Alla rader (utanför programlistningar och CDATA-avsnitt) som endast innehåller ” *” (blanksteg-asterisk) konverteras till styckeavgränsare. Om du inte vill ha en styckeavgränsare, ändra till ” * ” (blanksteg-asterisk-blanksteg-blanksteg). Detta är användbart i förformaterad text (kodlistningar). + + + När du dokumenterar kod, beskriv två aspekter: + + Vad är detta: Namnet på en klass eller en funktion kan ibland vara vilseledande för personer med annan bakgrund. + + + Vad gör det: Berättar om vanliga användningsfall. Sätter det i relation med det andra API:t. + + + + + En fördel med hypertext framför vanlig text är möjligheten att ha länkar i dokumentet. Att skriva korrekta taggar för en länk kan dock vara tröttsamt. GTK-Doc hjälper då till med att tillhandahålla flera användbara förkortningar. + + Använd funktion() för att referera till funktioner eller makron som tar argument. + + + Använd @param för att referera till parametrar. Använd också detta när du refererar till parametrar för andra funktioner, relaterade till den som beskrivs. + + + Använd %konstant för att referera till en konstant, t.ex. %G_TRAVERSE_LEAFS. + + + Använd #symbol för att referera till andra typer av symboler, t.ex. strukturer eller uppräkningar och makron som inte tar argument. + + + Använd #Objekt::signal för att referera till en GObject-signal. + + + Använd #Objekt:egenskap för att referera till en GObject-egenskap. + + + Använd #Struktur.fält för att referera till ett fält inuti en struktur och #GObjectKlass.foo_bar() för att referera till en virtuell metod. + + + + + Om du behöver använda specialtecken ”<”, ”>”, ”()”, ”@”, ”%” eller ”#” i din dokumentation utan att GTK-Doc ändrar dem kan du använda XML-entiteterna ”&lt;”, ”&gt;”, ”&lpar;”, ”&rpar;”, ”&commat;”, ”&percnt;” respektive ”&num;” eller använda kontrollsekvensen ”\”. + + + DocBook kan mer än bara länkar. Du kan också ha listor, exempel, rubriker och bilder. Från och med version 1.20, är det föredragna sättet att använda en delmängd av den grundläggande textformateringssyntaxen som kallas Markdown. Äldre GTK-Doc-versioner kommer dokumentation som inkluderar markdown att renderas som den är. Till exempel kommer listobjekt att visas som att de börjar med ett bindestreck. + + Då markdown numera föredras kan du blanda båda. En begränsning här är att du kan använda docbook-xml inuti markdown, men markdown inuti docbook-xml stöds inte. + + I äldre GTK-Doc-versioner var du tvungen, om du ville ha stöd för ytterligare formatering, att aktivera användningen av docbook-XML-taggar inuti dok-kommentarer genom att lägga till (eller ) i variabeln MKDB_OPTIONS inuti Makefile.am. + + + GTK-Doc-kommentarsblock som använder Markdown + +/** + * Identifierare: + * + * stycke med dokumentation … + * + * # Underrubrik # + * + * ## Underunderrubrik + * + * # Underrubrik med länkankare # {#andra-rubriken} + * + * mer dokumentation: + * + * - listobjekt 1 + * + * Stycke inuti listobjekt. + * + * - listobjekt 2 + * + * 1. numrerat listobjekt + * + * 2. ytterligare ett numrerat listobjekt + * + * Ett annat stycke. [En länk till GNOME:s webbplats](http://www.gnome.org/) + * + * ![en bild](resultatgraf.png) + * + * [En länk till rubrikankaret ovan][andra-rubriken] + * + * Ett C-exempel: + * |[<!-- language="C" --> + * GtkWidget *label = gtk_label_new ("Vackert!"); + * ]| + */ + + + + + Fler exempel på vilka markdown-taggar som stöds hittas i Referensen för GTK+-dokumentationens markdown-syntax. + + + Som redan nämnts är GTK-Doc avsett för att dokumentera publika API:er. Du kan därför inte skriva dokumentation för statiska symboler. Likväl är det bra att kommentera dessa symboler. Det hjälper andra att förstå din kod. Därför rekommenderar vi att du kommenterar dessa med normala kommenterar (utan den andra ”*” på den första raden). Om funktionen vid ett senare tillfälle måste göras publik är allt du behöver göra att lägga till ytterligare en ”*” i kommentarsblocket och infoga symbolnamnet på rätt ställe i avsnittsfilen. + + + + + Dokumentationsavsnitt + + Varje avsnitt av dokumentation innehåller information om en klass eller en modul. För att introducera komponenten kan man skriva ett avsnittsblock. Den korta beskrivningen används också i innehållsförteckningen. Alla @fälten är valfria. + + + Kommentarsblock för avsnitt + +/** + * SECTION:meepapp + * @short_description: programklassen + * @title: Meep-programmet + * @section_id: + * @see_also: #MeepSettings + * @stability: Stable + * @include: meep/app.h + * @image: application.png + * + * Programklassen hanterar … + */ + + + + + + + SECTION:<namn> + + Namnet länkar till avsnittsdokumentationen för respektive del i filen <paket>-sections.txt. Namnet som anges här bör matcha taggen <FILE> i filen <paket>-sections.txt. + + + + @short_description + + En enradsbeskrivning av avsnittet som senare kommer att visas efter länkar i innehållsförteckningen och lägst upp på avsnittssidan. + + + + @title + + Avsnittstiteln är som standard <namn> från SECTION-deklarationen. Den kan åsidosättas med fältet @title. + + + + @section_id + + Åsidosätter användningen av titeln som avsnittsidentifierare. För GObjects används <title> som ett section_id och för andra avsnitt är det <MODULE>-<title>. + + + + @see_also + + En lista över symboler som är relaterade till detta avsnitt. + + + + @stability + + En informell beskrivning över stabiliteten för detta API. Vi rekommenderar att använda en av dessa termer: + + Stable - Avsikten med ett stabilt gränssnitt är att möjliggöra för tredje parter att utveckla program mot dessa gränssnitt, släppa dem och vara säkra på att de kommer att köra på alla programfixversioner av produkten (efter den i vilken gränssnittet introducerats, och inom samma huvudversion). Även vid en ny huvudversion förväntas inkompatibla ändringar vara få och vara väl motiverade. + + + Unstable - Instabila gränssnitt är experimentella eller i en övergångsfas. De används typiskt för att ge utomstående utvecklare tidig tillgång till ny eller snabbt föränderlig teknologi, eller för att tillhandahålla provisoriska lösningar för ett problem där en mer generell lösning förutses. Inga påståenden görs om endera källkods- eller binärkompatibilitet från en programfixversion till nästa. + + + Private - Ett gränssnitt som kan användas inom GNOME-stacken i sig, men som inte dokumenterats för slutanvändare. Sådana funktioner bör endast användas på angivna och dokumenterade sätt. + + + Internal - ett gränssnitt som är internt för en modul och inte behöver slutanvändardokumentation. Funktioner som är odokumenterade förutsätts vara interna. + + + + + + @include + + #include-filerna som ska visas i avsnittssammanfattningen (en kommaavgränsad lista), vilket åsidosätter det globala värdet från avsnittsfilen eller kommandoraden. Detta objekt är valfritt. + + + + @image + + Bilden som ska visas längst upp på referenssidan för detta avsnitt. Detta kommer ofta att vara någon form av diagram för att illustrera det visuella utseendet för en klass eller ett diagram över dess relationer med andra klasser. Detta objekt är valfritt. + + + + + + För att undvika onödig omkompilering efter dokumentationsändringar, placera avsnittsdokumentationen i c-källkoden där möjligt. + + + + + + Dokumentationssymboler + + Varje symbol (funktion, makro, struktur, uppräkning, signal och egenskap) är dokumenterad i ett separat block. Blocket placeras bäst intill definitionen av symbolerna så att det är enkelt att hålla dem synkroniserade. Därför dokumenteras funktioner vanligtvis i c-källkoden och makron, strukturer och uppräkningar i huvudfilen. + + Generella taggar + + Du kan lägga till versioneringsinformation i alla dokumentationselement för att berätta när ett API introducerats eller blev föråldrat. + + Versioneringstaggar + Since: + + Beskrivning över från och med vilken version av koden som API:t är tillgängligt. + + + Deprecated: + + Stycke som betecknar att denna funktion inte bör användas längre. Beskrivningen bör peka läsaren vidare till det nya API:t. + + + + + Du kan också lägga till stabilitetsinformation för alla dokumentationselement för att indikera huruvida API-stabilitet är garanterad för dem för alla framtida programfix-versioner av projektet. + + Standardvärdet för stabilitetsnivån för alla dokumentations element kan ställas in genom att ange argumentet till gtkdoc-mkdb med endera av värdena nedan. + + Stabilitetstaggar + Stability: Stable + + Markera elementet som stabilt. Detta är för publika API:er som är garanterade att hållas stabila i alla framtida programfix-versioner av projektet. + + + Stability: Unstable + + Markera elementet som instabilt. Detta är för publika API:er som är släppta på förhand innan de blivit stabiliserade. + + + Stability: Private + + Markera element som privat. Detta är avsett för gränssnitt som kan användas av tätt sammankopplade moduler, men inte av godtyckliga tredje parter. + + + + + Generella taggar + +/** + * foo_get_bar: + * @foo: någon foo + * + * Hämtar bar från @foo. + * + * Returns: bar från @foo + * + * Since: 2.6 + * Deprecated: 2.12: Använd foo_baz_get_bar() istället. + */ +Bar * +foo_get_bar(Foo *foo) +{ +… + + + + + Noteringar + + Dokumentationsblock kan innehålla noteringstaggar. Dessa taggar kommer att renderas som verktygstips som beskriver deras syfte. Taggarna används av gobject-introspection för att generera språkbindningar. En detaljerad lista över vilka taggar som stöds hittas på wikisidan. + + Noteringar + +/** + * foo_get_bar: (notering) + * @foo: (notering): någon foo + * + * Hämtar bar från @foo. + * + * Returns: (notering): bar från @foo + */ +... +/** + * foo_set_bar_using_the_frobnicator: (notering) (an annan notering) + * (ytterligare en annan notering) + * @foo: (notering) (en annan notering): någon foo + * + * Ställer in bar i @foo. + */ + + + + + Kommentarsblock för funktioner + + Kom ihåg att: + + Dokumentera huruvida returnerade objekt, listor, strängar, etc. bör frigöras/avrefereras/släppas. + + + Dokumentera huruvida parametrar tillåts vara NULL och vad som händer om de är NULL. + + + Nämn intressanta förvillkor och eftervillkor där lämpligt. + + + + Gtk-doc förutsätter att alla symboler (makron, funktioner) som börjar med ”_” är privata. De behandlas på samma sätt som statiska funktioner. + + Kommentarsblock för funktioner + +/** + * funktionsnamn: + * @par1: beskrivning av parameter 1. Dessa kan sträcka sig + * över mer än en rad. + * @par2: beskrivning av parameter 2 + * @...: en %NULL-terminerad lista av flera bar + * + * Funktionsbeskrivningen ska vara här. Du kan använda @par1 för att + * referera till parametrar så att de färgmarkeras i utdata. Du kan också + * använda %konstant för konstanter, funktionsnamn2() för funktioner och + * #GtkWidget för länkar till andra deklarationer (vilka kan vara dokumenterade + * på annat håll). + * + * Returns: ett heltal. + * + * Since: 2.2 + * Deprecated: 2.18: Använd annan_funktion() istället. + */ + + + + Funktions-taggar + Returns: + + Stycke som beskriver det returnerade resultatet. + + + @...: + + Om funktionen har variadiska argument bör du använda denna tagg (@Varargs: fungerar också på grund av historiska skäl). + + + + + + + Kommentarsblock för egenskaper + + Kommentarsblock för egenskaper + +/** + * EnKomponent:en-egenskap: + * + * Här kan du dokumentera en egenskap. + */ +g_object_class_install_property (object_class, PROP_EN_EGENSKAP, …); + + + + + + Kommentarsblock för signaler + + Kom ihåg att: + + Dokumentera när en signal sänds ut och huruvida den sänds ut före eller efter andra signaler. + + + Dokumentera vad ett program kan göra i signalhanteraren. + + + + Kommentarsblock för signaler + +/** + * FooWidget::foobariserad: + * @widget: komponenten som erhåller signalen + * @foo: någon foo + * @bar: någon bar + * + * Signalen ::foobariserad sänds ut varje gång någon försöker att foobarisera @widget. + */ +foo_signals[FOOBARIZE] = + g_signal_new ("foobariserad", + ... + + + + + + Kommentarsblock för strukturer + Kommentarsblock för strukturer + +/** + * FooWidget: + * @bar: någon #gboolean + * + * Detta är den bästa komponenten någonsin. + */ +typedef struct _FooWidget { + GtkWidget parent_instance; + + gboolean bar; +} FooWidget; + + + + Använd/*< private >*/ före privata strukturfält som du vill gömma. Använd /*< public >*/ för det omvända beteendet. + + Om det första fältet är ”g_iface”, ”parent_instance” eller ”parent_class” kommer det att anses vara privat automatiskt och behöver inte nämnas i kommentarsblocket. + + Kommentarsblock för strukturer kan också användas för GObject och GObjectClass. Det är vanligtvis en bra idé att lägga till ett kommentarsblock för en klass om den har virtuella metoder (då detta är sättet på vilket de kan dokumenteras). För GObject i sig kan man använda den relaterade avsnittsdokumentationen, och ha ett separat block för varje instansstruktur vore användbart om instansen har publika fält. En nackdel här är att det skapar två indexposter med samma namn (strukturen och avsnittet). + + + + Kommentarsblock för uppräkningar + Kommentarsblock för uppräkningar + +/** + * Something: + * @SOMETHING_FOO: någonting foo + * @SOMETHING_BAR: någonting bar + * + * Uppräkningsvärden som används för saken, för att specificera saken. + */ +typedef enum { + SOMETHING_FOO, + SOMETHING_BAR, + /*< private >*/ + SOMETHING_COUNT +} Something; + + + + Använd /*< private >*/ före privata uppräkningsvärden som du vill gömma. Använd /*< public >*/ för det omvända beteendet. + + + + + + + Infogad programdokumentation + Du kan dokumentera program och deras kommandoradsgränssnitt med infogad dokumentation. + + + Taggar + + PROGRAM + + + Definierar början av programdokumentationen. + + + + + @short_description: + + Definierar en kort beskrivning av programmet. (Valfritt) + + + + + @synopsis: + + Definierar argumenten, eller en lista av argument som programmet kan ta. (Valfritt) + + + + + @see_also: + + Se vidare i manualavsnitt. (Valfritt) + + + + + @arg: + + Argument som skickas vidare till programmet och deras beskrivningar. (Valfritt) + + + + + Beskrivning: + + En längre beskrivning av programmet. + + + + + Returns: + + Ange vilka värden programmet returnerar. (Valfritt) + + + + + + + Exempel på programdokumentation. + Dokumentationsblock för program + +/** + * PROGRAM:test-program + * @short_description: Ett testprogram + * @synopsis: test-program [*FLAGGOR*...] --arg1 *arg* *FIL* + * @see_also: test(1) + * @--arg1 *arg*: ställ in arg1 på *arg* + * @--arg2 *arg*: ställ in arg2 på *arg* + * @-v, --version: Skriv ut versionsinformation + * @-h, --help: Skriv ut hjälpmeddelandet + * + * En längre beskrivning av programmet. + * + * Returns: Noll vid framgång, icke-noll vid fel + */ +int main(int argc, char *argv[]) +{ + return 0; +} + + + + + + + + Användbara DocBook-taggar + + Här är några DocBook-taggar som är användbara när man dokumenterar koden. + + För att länka till ett annat avsnitt i GTK-dokumentationen: + +<link linkend="glib-Hash-Tables">Hashtabeller</link> + + Länkslutet är XGML/XML-id:t för toppnivåobjektet på sidan du vill länka till. För de flesta sidorna är detta för närvarande delen (”gtk”, ”gdk”, ”glib”) och sedan sidans titel (”Hashtabeller”). För komponenter är detta helt enkelt klassnamnet. Blanksteg och understreck konverteras till ”-” för att överensstämma med SGML/XML. + + För att referera till en extern funktion, t.ex. en standardfunktion i C: + +<function>…</function> + + + + För att inkludera exempelkod: + +<example> + <title>Att använda en hashtabell.</title> + <programlisting> + … + </programlisting> +</example> + + eller möjligen följande, för väldigt korta kodfragment som inte behöver en titel: + +<informalexample> + <programlisting> + … + </programlisting> +</informalexample> + + För det senare fallet har GTK-Doc också stöd för förkortningen: |[ … ]| + + För att inkludera punktlistor: + +<itemizedlist> + <listitem> + <para> + … + </para> + </listitem> + <listitem> + <para> + … + </para> + </listitem> +</itemizedlist> + + + + För att inkludera en not som skiljer sig från texten: + +<note> + <para> + Säkerställ att du frigjort data efter användning. + </para> +</note> + + + + För att refera till en typ: + +<type>unsigned char</type> + + + + För att referera till en extern struktur (som inte beskrivs i GTK-dokumentationen): + +<structname>XFontStruct</structname> + + + + För att referera till ett fält för en struktur: + +<structfield>len</structfield> + + + + För att referera till ett klassnamn kan vi möjligen använda: + +<classname>GtkWidget</classname> + + men du kommer troligt att använda #GtkWidget istället (för att automatiskt skapa en länk till GtkWidget-sidan - se förkortningarna). + + För att betona text: + +<emphasis>Detta är viktigt</emphasis> + + + + För filnamn använd: + +<filename>/home/användare/dokument</filename> + + + + För att referera till tangenter använd: + +<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo> + + + + + + + + Fylla i de extra filerna + + Det finns ett antal extra filer som behöver underhållas tillsammans med de infogade källkodskommentarerna: <paket>.types, <paket>-docs.xml (tidigare .sgml), <paket>-sections.txt. + + + Redigera typfilen + + Om ditt bibliotek eller program inkluderar GObject så kommer du att vilja att deras signaler, argument/parametrar och position i hierarkin visas i dokumentationen. Allt du behöver göra är att lista xxx_get_type-funktionerna tillsammans med deras huvudfil i filen <package>.types. + + + Exempel på typfilsnutt + +#include <gtk/gtk.h> + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type + + + + + Sedan GTK-Doc 1.8 kan gtkdoc-scan generera denna lista åt dig. Lägg bara till ”--rebuild-types” i SCAN_OPTIONS i Makefile.am. Om du använder detta tillvägagångssätt bör du inte distribuera typfilen eller versionshantera den. + + + + + Redigera huvuddokumentet + + GTK-Doc producerar dokumentation i DocBook SGML/XML. När infogade källkodskommentarer behandlas genererar GTK-Doc en dokumentationssida per klass eller modul som en separat fil. Huvuddokumentet inkluderar dem och placerar dem i en ordning. + + Även om GTK-Doc skapar en mall för huvuddokumentet åt dig kommer senare körningar inte att röra det igen. Detta innebär att man är fri att strukturera om dokumentationen. Detta inkluderar att gruppera sidor och lägga till extra sidor. GTK-Doc har numera en testsvit där också huvuddokumentet återskapas från grunden. Det är en bra idé att titta på detta då och då för att se om några nya godsaker införts där. + + + Skapa inte handledningar som extra dokument. Skriv bara extra kapitel. Fördelen med att bädda in handledningen direkt i ditt biblioteks gränssnittsdokumentation är att det är enkelt att länka från handledningen till symboldokumentationen. Inbäddad är det större chans att handledningen blir uppdaterad tillsammans med biblioteket. + + + Så vilka saker ska ändras i huvuddokumentet? I början är det väldigt lite. Det finns en del platshållare (text i hakparenteser) som du bör ta hand om. + + + Huvuddokumentets huvud + +<bookinfo> + <title>MODULNAMN handbok</title> + <releaseinfo> + för MODULNAMN [VERSION] + Den senaste versionen av detta dokument kan hittas på nätet på + <ulink role="online-location" url="http://[SERVER]/MODULNAMN/index.html">http://[SERVER]/MODULNAMN/</ulink>. + </releaseinfo> +</bookinfo> + +<chapter> + <title>[Infoga titel här]</title> + + + + + Dessutom finns det ett antal valfria element som skapas i kommenterad form. Du kan granska dessa och aktivera dem enligt dina egna önskemål. + + + Valfri del i huvuddokumentet + + <!-- aktivera detta om du vill använda gobject introspection-noteringar + <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> + --> + + + + + Slutligen behöver du lägga till ett nytt avsnitt när du infogar det. Verktyget gtkdoc-check kommer att påminna dig om nyligen genererade xml-filer som ännu inte infogats i dokumentationen. + + + Inkludera genererade avsnitt + + <chapter> + <title>mitt bibliotek</title> + <xi:include href="xml/object.xml"/> + ... + + + + + + + + Redigera avsnittsfilen + + Avsnittsfilen används för att organisera dokumentationsutdata från GTK-Doc. Här kan man ange vilken symbol som hör till vilken modul eller klass och styra synligheten (publik eller privat). + + Avsnittsfilen är en vanlig textfil med taggar som avgränsar avsnitt. Blankrader ignoreras och rader som börjar med ett ”#” behandlas som kommentarsrader. + + + Även om taggarna får filen att se ut som xml, är det inte det. Avsluta inte taggar så som <SUBSECTION>. + + + + Inkludera genererade avsnitt + +<INCLUDE>libmeep/meep.h</INCLUDE> + +<SECTION> +<FILE>meepapp</FILE> +<TITLE>MeepApp</TITLE> +MeepApp +<SUBSECTION Standard> +MEEP_APP +... +MeepAppClass +meep_app_get_type +</SECTION> + + + + + Taggen <FILE> … </FILE> används för att ange filnamnet, utan något suffix. Om man t.ex. använder ”<FILE>gnome-config</FILE>” blir resultatet att avsnittsdeklarationerna matas ut i mallfilen tmpl/gnome-config.sgml, som kommer att konverteras till DocBook XML-filen xml/gnome-config.sgml eller DocBook XML-filen xml/gnome-config.xml. (Namnet på HTML-filen baseras på modulnamnet och avsnittstiteln, för GObject baseras det på klassnamnet för GObjectet konverterat till gemener). + + Taggen <TITLE> … </TITLE> används för att ange titeln på avsnittet. Det är bara användbart före mallar skapas initialt (om de används), eftersom titeln som ställs in i avsnittsfilen åsidosätter denna. Vidare är detta föråldrat om man använder SECTIONS-kommentarer i källkoden. + + Du kan gruppera objekt i avsnittet genom att använda taggen <SUBSECTION>. För närvarande matas en blankrad ut mellan underavsnitt i sammanfattningsavsnittet. Du kan också använda <SUBSECTION Standard> för standard GObject-deklarationer (t.ex. funktioner så som g_object_get_type och makron som G_OBJECT(), G_IS_OBJECT(), etc.). För närvarande utelämnas dessa ur dokumentationen. Du kan också använda <SUBSECTION Private> för privata deklarationer som inte kommer att matas ut (det är ett bekvämt sätt att undvika varningsmeddelanden om oanvända deklarationer). Om ditt bibliotek innehåller privata typer som du inte vill ska dyka upp i objekthierarkin och i listan över implementerade eller krävda gränssnitt, lägg till dem i ett privat avsnitt. Huruvida du vill placera GObject och GObjectClass-liknande strukturer i publika eller standardavsnitt beror på om de har publika poster (variabler, virtuella metoder). + + Du kan också använda <INCLUDE> ... </INCLUDE> för att ange #include-filerna som ska visas i sammanfattningsavsnitten. Den innehåller en kommaavgränsad lista av #include-filer, utan vinkelparenteser. Om du ställer in det utanför några avsnitt kommer det att påverka alla avsnitt tills slutet på filen. Om du ställer in det inom ett avsnitt kommer det bara att påverka det avsnittet. + + + + + + + Kontrollera resultatet + + En GTK-Doc-körning genererar rapportfiler inuti dokumentationskatalogen. De genererade filerna heter: <paket>-undocumented.txt, <paket>-undeclared.txt och <paket>-unused.txt. Alla är vanliga textfiler och kan visas eller efterbehandlas enkelt. + + Filen <paket>-undocumented.txt inleds med en sammanfattning över hur mycket dokumentation som skrivits. Under det finns två avsnitt avgränsade av blankrader. Det första avsnittet listar odokumenterade eller ofullständiga symboler. Det andra avsnittet gör detsamma för avsnittsdokumentation. Ofullständiga poster är de som har dokumentation, men där en ny parameter har lagts till. + + Filen <paket>-undeclared.txt listar symboler som anges i <paket>-sections.txt men inte hittas i källkoden. Kontrollera om de har tagits bort eller om de är felstavade. + + Filen <paket>-unused.txt listar symbolnamn där GTK-Doc-detektorn har hittat dokumentation men inte vet var den ska placeras. Detta innebär att symbolen ännu inte har lagts till i filen <package>-sections.txt. + + + Aktivera eller lägg till raden i Makefile.am. Om åtminstone GTK-Doc 1.9 finns installerat kommer detta att köra rimlighetskontroller under körning av make check. + + + Man kan också titta på filerna som producerats av källkodsdetektorn: <paket>-decl-list.txt och <paket>-decl.txt. Den första kan jämföras med avsnittsfilen om den underhålls manuellt. Den andra listar alla deklarationer från huvudena. Om en symbol saknas bör man kontrollera om denna filen innehåller den. + + Om projektet är GObject-baserat kan man också titta på filerna som producerats av objekt-detektorn: <paket>.args.txt, <paket>.hierarchy.txt, <paket>.interfaces.txt, <paket>.prerequisites.txt och <paket>.signals.txt. Om det saknas symboler i någon av dem kan man be GTK-Doc att bibehålla de temporära detektorfilerna för vidare analys, genom att köra det som GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + Modernisera dokumentationen + + GTK-Doc har funnits ett tag. I detta avsnitt listar vi nya funktioner tillsammans med vilken version de gjordes tillgängliga. + + + GTK-Doc 1.9 + + När man använder xml istället för sgml, kan man faktiskt kalla huvuddokumentet <paket>-docs.xml. + + Denna version har stöd för i Makefile.am. När detta är aktiverat kommer <paket>-sections.txt att autogenereras och kan tas bort från versionshanteringssystemet. Detta fungerar bra för projekt som har en väldigt standardiserad struktur (t.ex. kommer varje .{c,h}-par att skapa ett nytt avsnitt). Om man organiserar ett projekt likt detta kommer den manuella uppdateringen av en avsnittsfil att vara så enkelt som att köra meld <paket>-decl-list.txt <paket>-sections.txt. + + Redan version 1.8 introducerade syntaxen för avsnittsdokumentation i källkoden istället för separata filer under tmpl. Denna version lägger till flaggor för att kunna ställa om hela dokumentationsmodulen till att inte använda det extra tmpl-byggsteget alls, genom att använda i configure.ac. Om du inte har tmpl incheckat i ditt versionshanteringssystem just nu och inte har gått över än bara lägg till flaggan i configure.ac så är du klar. + + + + GTK-Doc 1.10 + + Denna version har stöd för i Makefile.am. När det är aktiverat kommer <package>.types att autogenereras och kan tas bort från versionshanteringssystemet. När denna funktion används är det viktigt att också ställa in IGNORE_HFILES i Makefile.am för kod som bara byggs ibland. + + + + GTK-Doc 1.16 + + Denna version har stöd för ett nytt verktyg som heter gtkdoc-check. Detta verktyg kan köra en uppsättning kontroller på din dokumentation. Det aktiveras genom att lägga till dessa raderna i slutet av Makefile.am. Aktivera gtkdoc-check + +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +TESTS = $(GTKDOC_CHECK) +endif + + + + + + GTK-Doc 1.20 + + Version 1.18 införde inledande stöd för markdown. Att använda markdown i dokumentationskommentarer är mindre påträngande än att skriva docbook xml. Denna version förbättrar detta väsentligt och lägger till många fler stilar. Avsnittet som beskriver kommentarsyntax finnas alla detaljer. + + + + GTK-Doc 1.25 + + Makefilerna som skeppas med denna version genererar en entitetsfil vid namn xml/gtkdocentities.ent som innehåller entiteter för t.ex. package_name och package_version. Du kan använda detta för att t.ex. i filen main xml undvika att hårdkoda versionsnumret. Nedan finns ett exempel som visar hur entitetsfilen inkluderas och hur entiteter används. Entiteterna kan också användas i alla genererade filer, GTK-Doc kommer att använda samma xml-huvud i genererade xml-filer. Att använda förgenererade entiteter + +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" +[ + <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> + <!ENTITY % gtkdocentities SYSTEM "xml/gtkdocentities.ent"> + %gtkdocentities; +]> +<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude"> + <bookinfo> + <title>&package_name; handbok</title> + <releaseinfo> + för &package_string;. + Den senaste versionen av detta dokument kan hittas på nätet på + <ulink role="online-location" url="http://[SERVER]/&package_name;/index.html">http://[SERVER]/&package_name;/</ulink>. + </releaseinfo> + </bookinfo> + + + + + + + Dokumentera andra gränssnitt + + Så här långt har vi använt GTK-Doc för att dokumentera API:t för koden. Följande avsnitt innehåller förslag om hur verktyget kan användas för att också dokumentera andra gränssnitt. + + + Kommandoradsflaggor och mansidor + + Då man också kan generera mansidor för ett docbook-refentry, låter det som en bra idé att använda det för detta ändamål. På detta sättet kommer gränssnittet att vara en del av referensen och man får mansidan gratis. + + + Dokumentera verktyget + + Skapa en refentry-fil per verktyg. Om du följer vårt exempel borde vi kalla det meep/docs/reference/meeper/meep.xml. För xml-taggarna bör detta användas och man kan studera den genererade filen i xml-underkatalogen så väl som exempel i glib. + + + + Lägga till den extra configure-kontrollen + + + Lägga till extra configure-kontroller + +AC_ARG_ENABLE(man, + [AC_HELP_STRING([--enable-man], + [omgenerera mansidor från Docbook [standardvärde=no]])],enable_man=yes, + enable_man=no) + +AC_PATH_PROG([XSLTPROC], [xsltproc]) +AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno) + + + + + + + Lägga till de extra makefilsreglerna + + + Lägga till extra configure-kontroller + +man_MANS = \ + meeper.1 + +if ENABLE_GTK_DOC +if ENABLE_MAN + +%.1 : %.xml + @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< + +endif +endif + +BUILT_EXTRA_DIST = $(man_MANS) +EXTRA_DIST += meep.xml + + + + + + + + DBus-gränssnitt + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + Frågor och svar + + + + Fråga + Svar + + Ingen klasshierarki. + Objektens xxx_get_type()-funktion har inte matats in i filen <paket>.types. + + + Fortfarande ingen klasshierarki. + Saknat eller fel namn i filen <paket>-sections.txt (se förklaring). + + + Förbannat, jag har fortfarande ingen klasshierarki. + Är objektnamnet (namnet på instansstrukturen, t.ex. GtkWidget) del av det normala avsnittet (stoppa inte detta i underavsnitt så som Standard eller Private). + + + Inget symbolindex. + Innehåller <paket>-docs.{xml,sgml} ett index som inkluderar det genererade indexet med xi:include? + + + Symboler är inte länkade till deras dokumentationsavsnitt. + Använder dokumentationskommentaren korrekta taggar (har du lagt till #, % eller ())? Kontrollera om gtkdoc-fixxref varnar om oupplösbara korsreferenser. + + + En ny klass dyker inte upp i dokumentationen. + Är den nya sidan inkluderad med xi:include från <package>-docs.{xml,sgml}. + + + En ny symbol dyker inte upp i dokumentationen. + Är dokumentationskommentaren korrekt formaterad. Leta efter stavfel i början av kommentaren. Kontrollera om gtkdoc-fixxref varnar om oupplösbara korsreferenser. Kontrollera om symbolen finns korrekt listad i <paket>-sections.txt i ett publikt avsnitt. + + + En typ saknas från klasshierarkin. + Om typen finns listad i <paket>.hierarchy men inte i xml/tree_index.sgml, dubbelkolla då att typen finns korrekt placerad i <paket>-sections.txt. Om typinstansen (t.ex. GtkWidget) inte visas eller är markerad privat kommer den inte att visas. + + + Jag får foldoc-länkar för alla gobject-noteringar. + Kontrollera att xml/annotation-glossary.xml är inkluderad med xi:include från <package>-docs.{xml,sgml}. + + + + + Parameter beskriven i kommentarsblock i källkoden men existerar inte + Kontrollera om prototypen i huvudet har andra parameternamn än i källkoden. + + + + + multipla ”ID:n” för begränsat länkslut: XYZ + Symbolen XYZ förekommer två gånger i filen <paket>-sections.txt. + + + Elementtypnamn i namnrymd ”” påträffat i para, men ingen mall matchar. + + + + + + + Verktyg relaterade till gtk-doc + + GtkDocPlugin - en insticksmodul för Trac GTK-Doc-integrering som lägger till API-dokumentation till en trac-webbplats och integrerar med trac-sökningen. + Gtkdoc-depscan - ett verktyg (del av gtk-doc) för att kontrollera använda API mot since-taggar i API:t för att avgöra minsta version som krävs. + + + + + + + + + Version 1.1, mars 2000 + 2000Free Software Foundation, Inc. + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    . Alla är tillåtna kopiera och distribuera ordagranna kopior av detta licensdokument, men att ändra det är ej tillåtet.
    +
    +
    + GNU Free Documentation License + + + 0. BAKGRUND + Syftet med denna licens är att göra en handbok, bok, eller annat praktiskt och användbart dokument fritt som i frihet: att försäkra var och en den faktiska friheten att kopiera och sprida det vidare, med eller utan förändringar, antingen kommersiellt eller ideellt. Sekundärt bevarar denna licens ett sätt för författaren och förläggaren att få ära för deras arbete utan att de anses vara ansvariga för förändringar gjorda av andra. + + Denna Licens är en sorts copyleft, vilket betyder att derivativa verk av detta dokument själva måste vara fria på samma sätt. Den kompletterar GNU General Public License, som är en copyleft-licens utformad för fri programvara. + + Vi har utformat denna licens för att den skall användas för handböcker till fri programvara, eftersom fri programvara behöver fri dokumentation: ett fritt program bör ha en handbok som erbjuder samma friheter som programmet gör. Men denna licens är inte begränsad till programvaruhandböcker; den kan användas för vilket textverk som helst oavsett ämne eller huruvida det är en utgiven, tryckt bok. Vi rekommenderar denna licens huvudsakligen för alla verk vars syfte är instruktion eller referens. + + + 1. TILLÄMPNINGSOMRÅDE OCH DEFINITIONER + Denna licens [det engelska originalet] gäller för varje handbok eller annat verk, oavsett uttrycksform, som innehåller ett meddelande där upphovsrättsinnehavaren stadgat att verket kan spridas enligt villkoren i GNU Free Documentation License. Ett sådant meddelande ger en internationell frihet utan krav på ersättning och utan tidsbegränsning att använda verket under villkoren i denna licens [det engelska originalet]. Dokument nedan syftar på godtycklig handbok eller verk. Var och en är licenstagare och benämns som du. + + En förändrad version av dokumentet avser varje verk som innehåller dokumentet eller en del av det, antingen ordagranna kopior, eller med ändringar och/eller översatt till ett annat språk. + + Ett sekundärt avsnitt är en märkt bilaga eller förord till dokumentet som exklusivt behandlar förhållandet mellan dokumentets förläggare eller författare och dokumentets huvudsakliga ämne (eller till relaterade ämnen) och som inte innehåller något som direkt faller under det huvudsakliga ämnet. (Således, om dokumentet delvis är en lärobok i matematik så får ett sekundärt avsnitt inte förklara någon matematik.) Förhållandet kan vara en historisk koppling till ämnet eller något relaterat, eller en juridisk, kommersiell, filosofisk, etisk eller politisk ställning till det. + + De oföränderliga avsnitten är sekundära avsnitt vars titlar är angivna som oföränderliga avsnitt i meddelandet som stadgar att dokumentet är utgivet under denna licens [det engelska originalet]. + + Omslagstexterna är speciella korta ordföljder som är listade som framsidestexter eller baksidestexter i meddelandet som stadgar att dokumentet är utgivet under denna licens [det engelska originalet]. + + En transparent kopia av dokumentet är en maskinläsbar kopia, representerad i ett format vars specifikation finns tillgänglig för allmänheten, som lämpar sig för att revidera dokumentet på ett enkelt sätt med generella textredigeringsprogram eller (för pixelbaserade bilder) generella grafikprogram eller (för ritningar) något väl tillgängligt ritprogram, och som är passande som indata till textformaterare eller för automatisk konvertering till en mängd format som passar som indata till textformaterare. En kopia i ett för övrigt transparent filformat vars markeringar, eller avsaknad av markeringar, har ordnats för att hindra eller motverka att vidare förändring vidtas av läsare är inte transparent. En kopia som inte är transparent kallas opak. + + Exempel på passande format för transparenta kopior innefattar ren ASCII utan markeringar, Texinfo indataformat, LaTeX indataformat, SGML eller XML som använder en publikt tillgänglig DTD, och standardenlig HTML, PostScript eller PDF utformat för mänsklig förändring. Opaka format innefattar Postscript, PDF, leverantörsspecifika format som bara kan läsas och editeras med leverantörsspecifika ordbehandlare, SGML eller XML för vilket DTD och/eller verktyg för behandling inte finns allmänt tillgängliga, och den maskingenererade HTML som produceras av vissa ordbehandlare enbart avsett som utdata. + + Titelsidan innebär, för en tryckt bok, titelsidan själv, och sådana därpå följande sidor som krävs för att göra det material som enligt denna licens skall synas på titelsidan läsbart. För verk i sådana format som inte har någon egentlig titelsida, avses med titelsida den text som är närmast den mest framstående förekomsten av verkets titel, föregående den huvudsakliga textmassan. + + + + 2. ORDAGRANN KOPIERING + Du äger kopiera och sprida dokumentet på valfritt medium, antingen kommersiellt eller ideellt, förutsatt att denna licens [det engelska originalet], upphovsrättsklausul, och meddelandet som stadgar att GNU Free Documentation License gäller för dokumentet finns med på alla kopior, och att du inte lägger till några som helst andra villkor än de som ingår i denna licens. Du äger inte vidta tekniska åtgärder för att begränsa eller kontrollera läsande eller vidare kopiering av de kopior du skapar eller sprider. Dock äger du ta emot kompensation i utbyte mot kopior. Om du sprider tillräckligt många kopior måste du också följa villkoren i paragraf 3. + + Du äger också låna ut kopior, under samma villkor som ovan, och du äger visa kopior offentligt. + + + + 3. OMFATTANDE KOPIERING + Om du publicerar tryckta kopior (eller kopior i medier som normalt har tryckta omslag) av dokumentet, i en upplaga överstigande 100 exemplar, och dokumentets licensmeddelande kräver omslagstexter, så måste du förse kopiorna med omslag som, klart och tydligt, visar alla omslagstexter: framsidestexter på framsidan och baksidestexter på baksidan. Båda omslagen måste klart och tydligt identifiera dig som utgivare av dessa kopior. Framsidan måste presentera dokumentets hela titel, med alla ord i titeln lika framträdande och synliga. Du äger lägga till ytterligare stoff på omslagen. Kopiering med förändringar gjorda bara på omslaget, så länge som de bevarar dokumentets titel och i övrigt uppfyller dessa krav kan anses vara ordagrann kopiering i andra avseenden. + + Om de obligatoriska texterna för något omslag är för omfattande för att rymmas i läsbart skick skall du placera de första (så många som får plats) på det egentliga omslaget, och fortsätta med resten på de direkt intilliggande sidorna. + + Om du publicerar opaka kopior av dokumentet i upplagor om mer än 100, måste du antingen bifoga en maskinläsbar transparent kopia med varje opak kopia, eller ange i eller med varje opak kopia en nätverksadress som är tillgänglig för den allmänna nätverksanvändande massan där man, med öppet standardiserade protokoll, anonymt och utan kostnad kan ladda ner en komplett transparent kopia av dokumentet, utan extra material. Om du väljer det senare alternativet, måste du vidta skäliga åtgärder, när du börjar sprida opaka kopior i kvantitet, för att denna transparenta kopia skall förbli tillgänglig på angivna platsen till åtminstone ett år efter den sista gången du spred en opak kopia (direkt eller via ombud eller återförsäljare) av den utgåvan till allmänheten. + + Det är önskvärt, men inte ett krav, att du kontaktar författarna till dokumentet i god tid innan du sprider något större antal kopior, för att ge dem en chans att förse dig med en uppdaterad version av dokumentet. + + + + 4. FÖRÄNDRINGAR + Du äger kopiera och sprida en förändrad version av dokumentet under de villkor som beskrivs i paragraf 2 och 3 av GNU Free Documentation License, förutsatt att du släpper den förändrade versionen under exakt denna licens, och att den förändrade versionen antar dokumentets roll, och således medger spridning och förändring av den förändrade versionen till envar som erhåller en kopia av den. Utöver detta måste du göra följande med den ändrade versionen: + + + + + A + titelsidan (och omslagen om det finns några) använda en titel skild från den som [original]dokumentet har, och skild från tidigare versioners titel (som skall, om det finns några, finnas listade i historikavsnittet i dokumentet). Du äger använda samma titel som det föregående dokumentet om den ursprungliga utgivaren ger sitt tillstånd. + + + + + + B + Lista på titelsidan, som författare, en eller flera personer eller juridiska personer som ansvarat för förändringarna i den förändrade versionen, tillsammans med minst fem av de huvudsakliga författarna av dokumentet (alla dess huvudsakliga författare, om det har mindre än fem). + + + + + + C + Ange namnet på utgivaren av den förändrade versionen, som utgivare, på titelsidan. + + + + + + D + Bibehålla dokumentets alla upphovsrättsklausuler. + + + + + + E + Lägga till en upphovsrättsklausul för dina förändringar angränsande till de andra upphovsrättsklausulerna. + + + + + + F + Direkt efter upphovsrättsklausulerna innefatta ett meddelande som ger allmänheten tillstånd att använda den förändrade versionen under villkoren i denna licens [det engelska originalet] i den form som visas i Tillägg nedan. + + + + + + G + I meddelandet om licensen bevara den fullständiga listan över oföränderliga avsnitt och obligatoriska omslagstexter som finns i dokumentets meddelande om licensen. + + + + + + H + Inkludera en oförändrad kopia av denna licens [Det är den engelska originalversionen som avses]. + + + + + + I + Bevara avsnittet med titeln historik (History), bevara dess titel och lägg i avsnittet till en post med åtminstone titeln, året, nya författare och utgivaren av den förändrade versionen så som angivet på titelsidan. Om det inte finns något avsnitt med titeln historik (History) i dokumentet så skapa en med titeln, året, författare och utgivaren av dokumentet så som det står på [original]dokumentets titelsida. Lägg sedan till en post som beskriver den förändrade versionen så som beskrivits ovan. + + + + + + J + Bevara den nätverksadress, om det finns någon, angiven i dokumentet till den allmänt tillgängliga transparenta kopian av dokumentet, och likaså nätverksadresserna till de föregående versioner som dokumentet baseras på. Dessa får placeras i avsnittet historik (History). Du äger utelämna en nätverksadress för ett verk som är publicerat mer än fyra år före dokumentet självt, eller om den ursprunglige utgivaren vars verk nätverksadressen hänvisar till ger sitt tillstånd. + + + + + + K + För alla avsnitt med titlarna tillkännagivanden (Acknowledgements) eller dedikationer (Dedications), bevara titeln på avsnittet, och bevara allt innehåll och prägel på alla tillkännagivanden och/eller dedikationer gjorda av varje bidragsgivare. + + + + + + L + Bevara alla oföränderliga avsnitt i dokumentet oförändrade till text och titel. Avsnittsnummer eller motsvarande anses inte tillhöra avsnittets titel. + + + + + + M + Radera varje avsnitt med titeln endossering (Endorsements). Ett sådant avsnitt får inte inkluderas i en förändrad version. + + + + + + N + Inte byta titel på något existerande avsnitt så att det blir endossering (Endorsements) eller så att titeln kan förväxlas med något oföränderligt avsnitt. + + + + + Om den förändrade versionen innehåller nya framsidestexter eller bilagor som är att anses som sekundära avsnitt och inte innehåller något material kopierat från dokumentet, så äger du, om du vill, benämna några eller samtliga av dessa som oföränderliga. För att göra detta, lägg deras titlar till listan över oföränderliga avsnitt i den förändrade versionens licensmeddelande. Dessa titlar måste vara skilda från alla andra avsnitts titlar. + + Du äger lägga till ett avsnitt med titeln endossering (Endorsements), förutsatt att det inte innehåller något annat än endosseringar för din förändrade version från olika aktörer -- till exempel, meddelanden om utförd korrekturläsning eller att texten har godkänts av en organisation som en officiell definition av en standard. + + Du äger lägga till ett textavsnitt på upp till fem ord som framsidestext, och ett textavsnitt på upp till 25 ord som baksidestext i listan över omslagstexter i den förändrade versionen. Bara ett textavsnitt med framsidestexter och ett med baksidestexter får läggas till av (eller genom försorg av) en enda juridisk person. Om dokumentet redan innehåller en omslagstext för något av omslagen, tidigare tillagd av dig eller genom försorg av samma juridiska person som du företräder, äger du inte lägga till en till, men du äger ändra den gamla med tillstånd från den tidigare utgivaren som lade till den förra. + + Författaren (författarna) och utgivaren (utgivarna) av dokumentet ger inte via denna licens sitt tillstånd att använda sina namn för publicitet eller för att lägga till eller antyda endossering av någon förändrad version. + + + + 5. KOMBINERA DOKUMENT + Du äger kombinera dokumentet med andra dokument som är utgivna under denna licens, under de villkor som definieras i paragraf 4 av GNU Free Documentation License för förändrade versioner, förutsatt att du, i det kombinerade dokumentet, innefattar alla oföränderliga avsnitt från originaldokumenten, omodifierade, och listar dem som oföränderliga avsnitt i ditt kombinerade verk i dess licensklausul, och att du bevarar alla deras garantiavsägelseklausuler. + + Det kombinerade verket behöver bara innehålla en enstaka kopia av denna licens [engelska originalversionen], och flera identiska oföränderliga stycken kan ersättas med en kopia. Om det finns flera oföränderliga stycken med samma namn men olika innehåll, se till att titeln på varje sådant avsnitt är unik genom att i slutet på den, inom parentes, lägga till namnet på den ursprunglige författaren eller utgivaren av det avsnittet om dessa är kända, annars ett unikt nummer. Gör samma justeringar av titlarna i listan över oföränderliga avsnitt i licensklausulen i det kombinerade verket. + + I det kombinerade verket måste du kombinera alla avsnitt med titlarna historik (History) i de ursprungliga dokumenten, till ett avsnitt med titeln historik (History); på samma sätt skall alla avsnitt med titlarna tillkännagivanden (Acknowledgements), alla avsnitt med titlarna dedikationer (Dedications) kombineras. Du måste ta bort alla avsnitt med titlarna endossering (Endorsements). + + + + 6. SAMLINGAR AV DOKUMENT + Du äger skapa en samling bestående av dokumentet och andra dokument som är släppta under GNU Free Documentation License, och ersätta individuella kopior i dokumenten av denna licens med en enda kopia [av den engelska originalversionen] som inkluderas i samlingen, förutsatt att du följer villkoren för ordagrann kopiering i denna licens för varje inkluderat dokument i alla andra avseenden. + + Du äger lyfta ut ett dokument från en sådan samling, och sprida det enskilt under GNU Free Documentation License, förutsatt att du lägger till en kopia av denna licens [den engelska originalversionen] i det utlyfta dokumentet, och följer villkoren för ordagrann kopiering i denna licens för det utlyfta dokumentet i alla andra avseenden. + + + + 7. SAMMANSLAGNING MED OBEROENDE VERK + En samling av dokumentet eller av dess derivat med andra separata och oberoende dokument eller verk, på eller i en lagringsvolym eller ett spridningsmedium, kallas för en sammanslagning om den sammanslagna upphovsrätten inte används för att begränsa samlingens användares rättigheter som de enskilda dokumenten medger. När dokumentet ingår i en sådan sammanslagning, gäller inte denna licens de andra verken i samlingen som inte själva är deriverat av dokumentet. Om kravet på omslagstexter enligt paragraf 3 är tillämpligt på dessa kopior av dokumentet, så kan dokumentets omslagstexter, om dokumentet utgör mindre än en fjärdedel av hela samlingen, placeras på det omslag som omger dokumentet inuti samlingen, eller den elektroniska motsvarigheten till omslag om dokumentet är i elektronisk form. Annars måste de synas på det omslag som omger hela samlingen. + + + + 8. ÖVERSÄTTNING + Översättning anses vara en sorts förändring, så du äger sprida översättningar av dokumentet enligt de villkor som sätts i paragraf 4. Oföränderliga avsnitt som ersätts med översättningar kräver tillstånd från deras upphovsrättsinnehavare, men du äger inkludera översättningar av alla eller vissa av dessa oföränderliga avsnitt tillsammans med originalversionerna av dessa oföränderliga avsnitt. Du äger inkludera en översättning av denna licens, och alla licensklausuler i dokumentet, och alla garantiavsägelser, förutsatt att du också innefattar den engelska originalversionen av denna licens och originalversionerna av dessa klausuler. Skulle det finnas skillnader mellan översättningen och originalversionen av denna licens eller någon klausul så gäller originalversionen. + + + + 9. UPPHÖRANDE + Du äger inte kopiera, förändra, omlicensiera eller sprida dokumentet annat än enligt villkoren i GNU Free Documentation License. Alla övriga försök att kopiera, modifiera, omlicensiera, eller sprida dokumentet är ogiltiga och kommer automatiskt medföra att du förlorar dina rättigheter enligt denna licens. Tredje man som har mottagit kopior eller rättigheter från dig enligt dessa licensvillkor kommer dock inte att förlora sina rättigheter så länge de följer licensvillkoren. + + + + 10. FRAMTIDA VERSIONER AV DENNA LICENS + Free Software Foundation kan publicera nya, reviderade versioner av GNU Free Documentation License då och då. Sådana nya versioner kommer att vara likadana i andemening som den nuvarande versionen, men kan skilja i detalj för att behandla nya problem eller angelägenheter. Se http://www.gnu.org/copyleft/. + + Varje version av licensen ges ett unikt versionsnummer. Om dokumentet stadgar att en specifik numrerad version av denna licens eller valfri senare version gäller för det, så äger du rätten att följa villkoren enligt antingen den angivna versionen eller vilken senare version som helst som publicerats (inte som utkast) av Free Software Foundation. Om dokumentet inte anger en version av denna licens, äger du välja vilken version som helst som publicerats (inte som utkast) av Free Software Foundation. + + + + TILLÄGG + För att använda GNU Free Documentation License för ett dokument du har skrivit, inkludera en kopia av licensen [det engelska originalet] i dokumentet och placera följande copyrightklausul omedelbart efter titelsidan: + +
    + Copyright © YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License. +
    + + Om du inte har några oföränderliga avsnitt, skriv with no Invariant Sections istället för att ange vilka som är oföränderliga. Om du inte har några framsidestexter, skriv no Front-Cover Texts istället för Front-Cover Texts being LIST; såväl som för baksidestexter. + + Om ditt dokument innehåller icke-triviala exempel med programkod, så rekommenderar vi att du släpper dessa exempel parallellt under en, av dig vald, fri programvarulicens, som till exempel GNU General Public License, för att möjliggöra deras användning i fri programvara. +
    +
    + + + + + + + + +
    diff --git a/help/manual/sv/sv.po b/help/manual/sv/sv.po new file mode 100644 index 0000000..e838e49 --- /dev/null +++ b/help/manual/sv/sv.po @@ -0,0 +1,5913 @@ +# Swedish translation of gtk-doc. +# Copyright © 2009-2017 Free Software Foundation, Inc. +# This file is distributed under the same license as the gtk-doc package. +# Daniel Nylander , 2009. +# Sebastian Rasmussen , 2016. +# Anders Jonsson , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc master\n" +"POT-Creation-Date: 2017-12-28 10:31+0000\n" +"PO-Revision-Date: 2018-01-04 01:06+0100\n" +"Last-Translator: Anders Jonsson \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.5\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "" +"Sebastian Rasmussen , 2016\n" +"Daniel Nylander , 2009\n" +"Marcus Rejås och Alexander Nordström , 2004\n" +"\n" +"Skicka kommentarer om översättningen\n" +"till svenska till " + +#. (itstool) path: bookinfo/title +#: C/index.docbook:12 +msgid "GTK-Doc Manual" +msgstr "Handbok för GTK-Doc" + +#. (itstool) path: bookinfo/edition +#: C/index.docbook:13 +msgid "1.24.1" +msgstr "1.24.1" + +#. (itstool) path: abstract/para +#: C/index.docbook:14 +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "" +"Användarhandbok för utvecklare med användningsinstruktioner för GTK-Doc." + +#. (itstool) path: authorgroup/author +#: C/index.docbook:16 +msgid "" +"Chris Lyttle " +"
    chris@wilddev.net
    " +msgstr "" +"Chris Lyttle " +"
    chris@wilddev.net
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:25 +msgid "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " +msgstr "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " + +#. (itstool) path: authorgroup/author +#: C/index.docbook:34 +msgid "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " +msgstr "" +"Stefan Sauer (Kost) " +"
    ensonic@users.sf.net
    " + +#. (itstool) path: publisher/publishername +#: C/index.docbook:45 +msgid "GTK-Doc project" +msgstr "GTK-Doc-projektet" + +#. (itstool) path: bookinfo/publisher +#: C/index.docbook:44 +msgid "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " +msgstr "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:48 +msgid "2000, 2005 Dan Mueth and Chris Lyttle" +msgstr "2000, 2005 Dan Mueth and Chris Lyttle" + +#. (itstool) path: bookinfo/copyright +#: C/index.docbook:52 +msgid "2007-2015 Stefan Sauer (Kost)" +msgstr "2007-2015 Stefan Sauer (Kost)" + +#. (itstool) path: legalnotice/para +#: C/index.docbook:65 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, " +"Version 1.1 or any later version published by the Free Software Foundation " +"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A " +"copy of the license is included." +msgstr "" +"Tillstånd att kopiera, distribuera och/eller modifiera detta dokument ges " +"under villkoren i GNU Free Documentation License, " +"version 1.1 eller senare, utgivet av Free Software Foundation utan " +"standardavsnitt och omslagstexter. En kopia av licensen finns inkluderad." + +#. (itstool) path: legalnotice/para +#: C/index.docbook:73 +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and those trademarks are made aware to the members of the " +"GNOME Documentation Project, the names have been printed in caps or initial " +"caps." +msgstr "" +"Flera namn på produkter och tjänster är registrerade varumärken. I de fall " +"dessa namn förekommer i GNOME-dokumentation - och medlemmarna i GNOME-" +"dokumentationsprojektet är medvetna om dessa varumärken - är de skrivna med " +"versaler eller med inledande versal." + +#. (itstool) path: revhistory/revision +#: C/index.docbook:83 +msgid "" +"1.27.1 07 Dec 2017 ss development" +msgstr "" +"1.27.1 07 Dec 2017 ss utveckling" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:89 +msgid "" +"1.27 07 Dec 2017 ss fine tuning of the python port" +msgstr "" +"1.27 07 Dec 2017 ss finjustering av python-porteringen" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:95 +msgid "" +"1.26 11 Aug 2017 ss port all tools from perl/bash to python" +msgstr "" +"1.26 11 Aug 2017 ss portera alla verktyg från perl/bash till python" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:101 +msgid "" +"1.25 21 March 2016 ss bug fixes, test cleanups" +msgstr "" +"1.25 21 Mars 2016 ss programfixar, uppstädning av tester" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:107 +msgid "" +"1.24 29 May 2015 ss bug fix" +msgstr "" +"1.24 29 Maj 2015 ss programfix" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:113 +msgid "" +"1.23 17 May 2015 ss bug fix" +msgstr "" +"1.23 17 Maj 2015 ss programfix" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:119 +msgid "" +"1.22 07 May 2015 ss bug fixes, dropping deprecated features" +msgstr "" +"1.22 07 Maj 2015 ss programfixar, borttagning av föråldrade " +"funktioner" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:125 +msgid "" +"1.21 17 Jul 2014 ss bug fixes, dropping deprecated features" +msgstr "" +"1.21 17 Jul 2014 ss programfixar, borttagning av föråldrade " +"funktioner" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:131 +msgid "" +"1.20 16 Feb 2014 ss bug fixes, markdown support, style improvements" +msgstr "" +"1.20 16 Feb 2014 ss programfixar, stöd för markdown, " +"stilförbättringar" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:137 +msgid "" +"1.19 05 Jun 2013 ss bug fixes" +msgstr "" +"1.19 05 Jun 2013 ss programfixar" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:143 +msgid "" +"1.18 14 Sep 2011 ss bug fixes, speedups, markdown support" +msgstr "" +"1.18 14 Sep 2011 ss programfixar, uppsnabbningar, stöd för markdown" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:149 +msgid "" +"1.17 26 Feb 2011 sk urgent bug fix update" +msgstr "" +"1.17 26 Feb 2011 sk brådskande programfixuppdatering" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:155 +msgid "" +"1.16 14 Jan 2011 sk bugfixes, layout improvements" +msgstr "" +"1.16 14 Jan 2011 sk programfixar, layoutförbättringar" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:161 +msgid "" +"1.15 21 May 2010 sk bug and regression fixes" +msgstr "" +"1.15 21 Maj 2010 sk program- och regressionsfixar" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:167 +msgid "" +"1.14 28 March 2010 sk bugfixes and performance improvements" +msgstr "" +"1.14 28 Mars 2010 sk programfixar och prestandaförbättringar" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:173 +msgid "" +"1.13 18 December 2009 " +"sk broken tarball update" +msgstr "" +"1.13 18 December 2009 " +"sk uppdatering på grund av " +"trasigt tar-arkiv" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:179 +msgid "" +"1.12 18 December 2009 " +"sk new tool features and " +"bugfixes" +msgstr "" +"1.12 18 December 2009 " +"sk nya verktygsfunktioner och " +"programfixar" + +#. (itstool) path: revhistory/revision +#: C/index.docbook:185 +msgid "" +"1.11 16 November 2008 " +"mal GNOME doc-utils migration" +msgstr "" +"1.11 16 November 2008 " +"mal GNOME doc-utils migration" + +#. (itstool) path: chapter/title +#: C/index.docbook:198 +msgid "Introduction" +msgstr "Introduktion" + +#. (itstool) path: chapter/para +#: C/index.docbook:200 +msgid "" +"This chapter introduces GTK-Doc and gives an overview of what it is and how " +"it is used." +msgstr "" +"Detta kapitel introducerar GTK-Doc och ger en överblick över vad det är och " +"hur det används." + +#. (itstool) path: sect1/title +#: C/index.docbook:206 +msgid "What is GTK-Doc?" +msgstr "Vad är GTK-Doc?" + +#. (itstool) path: sect1/para +#: C/index.docbook:208 +msgid "" +"GTK-Doc is used to document C code. It is typically used to document the " +"public API of libraries, such as the GTK+ and GNOME libraries. But it can " +"also be used to document application code." +msgstr "" +"GTK-Doc används för att dokumentera C-kod. Det används vanligen för att " +"dokumentera det publika API:t för bibliotek, så som GTK+- och GNOME-" +"biblioteken. Men det kan också användas för att dokumentera programkod." + +#. (itstool) path: sect1/title +#: C/index.docbook:216 +msgid "How Does GTK-Doc Work?" +msgstr "Hur fungerar GTK-Doc?" + +# sebras: how do I translate header files? +#. (itstool) path: sect1/para +#: C/index.docbook:218 +msgid "" +"GTK-Doc works by using documentation of functions placed inside the source " +"files in specially-formatted comment blocks, or documentation added to the " +"template files which GTK-Doc uses (though note that GTK-Doc will only " +"document functions that are declared in header files; it won't produce " +"output for static functions)." +msgstr "" +"GTK-Doc fungerar så att det använder dokumentation för funktioner placerad " +"inuti källkodsfilerna i speciellt formaterade kommentarsblock, eller " +"dokumentation som lagts till i mallfilerna som GTK-Doc använder (notera dock " +"att GTK-Doc endast kommer att dokumentera funktioner som deklarerats i " +"huvudfiler; det kommer inte att producera utdata för statiska funktioner)." + +#. (itstool) path: sect1/para +#: C/index.docbook:225 +msgid "" +"GTK-Doc consists of a number of python scripts, each performing a different " +"step in the process." +msgstr "" +"GTK-Doc består av ett antal python-skript som vart och ett utför olika steg " +"i processen." + +#. (itstool) path: sect1/para +#: C/index.docbook:230 +msgid "There are 5 main steps in the process:" +msgstr "Det finns 5 huvudsteg i processen:" + +#. (itstool) path: listitem/para +#: C/index.docbook:237 +msgid "" +"Writing the documentation. The author fills in the " +"source files with the documentation for each function, macro, union etc. (In " +"the past information was entered in generated template files, which is not " +"recommended anymore)." +msgstr "" +"Skriva dokumentationen. Författaren fyller i " +"källkodsfilerna med dokumentation för varje funktion, makro, union, etc. " +"(Tidigare matades informationen in i genererade mallfiler, något som inte " +"rekommenderas längre)." + +# sebras: more header files... +#. (itstool) path: listitem/para +#: C/index.docbook:247 +msgid "" +"Gathering information about the code. " +"gtkdoc-scan scans the header files of the code " +"looking for declarations of functions, macros, enums, structs, and unions. " +"It creates the file <module>-decl-list.txt " +"containing a list of the declarations, placing them into sections according " +"to which header file they are in. On the first run this file is copied to " +"<module>-sections.txt. The author can rearrange " +"the sections, and the order of the declarations within them, to produce the " +"final desired order. The second file it generates is <" +"module>-decl.txt. This file contains the full declarations " +"found by the scanner. If for some reason one would like some symbols to show " +"up in the docs, where the full declaration cannot be found by the scanner or " +"the declaration should appear differently, one can place entities similar to " +"the ones in <module>-decl.txt into <" +"module>-overrides.txt." +msgstr "" +"Samla ihop information om koden. gtkdoc-" +"scan söker genom huvudfilerna för koden och letar efter " +"deklarationer av funktioner, makron, uppräkningar, strukturer och unioner. " +"Det skapar sedan filen <module>-decl-list.txt som " +"innehåller en lista över deklarationerna, och placerar dem i avsnitt efter " +"vilken huvudfil de finns i. Vid första körningen kommer denna fil att " +"kopieras till <module>-sections.txt. Författaren " +"kan, genom att omarrangera avsnitten och ändra ordningen för deklarationerna " +"inom dem, framställa den önskade, slutgiltiga ordningen. Den andra filen det " +"genererar är <module>-decl.txt. Denna fil " +"innehåller de fullständiga deklarationerna som hittats av detektorn. Om man " +"av något skäl vill att vissa symboler ska visas i dokumentation då den " +"fullständiga deklarationen inte kan hittas av detektorn, eller om " +"deklarationen ska visas annorlunda, kan man placera rader liknande de som " +"finns i <module>-decl.txt i <" +"module>-overrides.txt." + +#. (itstool) path: listitem/para +#: C/index.docbook:264 +msgid "" +"gtkdoc-scangobj can also be used to dynamically " +"query a library about any GObject subclasses it exports. It saves " +"information about each object's position in the class hierarchy and about " +"any GObject properties and signals it provides." +msgstr "" +"gtkdoc-scangobj kan också användas för att " +"dynamiskt fråga ett bibliotek om vilka GObject-underklasser det exporterar. " +"Det sparar information om varje objekts position i klasshierarkin och om " +"vilka GObject-egenskaper och signaler det tillhandahåller." + +#. (itstool) path: listitem/para +#: C/index.docbook:270 +msgid "" +"gtkdoc-scanobj should not be used anymore. It was " +"needed in the past when GObject was still GtkObject inside gtk+." +msgstr "" +"gtkdoc-scanobj bör inte användas längre. Det " +"behövdes tidigare när GObject fortfarande var GtkObject inuti gtk+." + +#. (itstool) path: listitem/para +#: C/index.docbook:277 +msgid "" +"Generating the XML and HTML/PDF. gtkdoc-" +"mkdb turns the template files into XML files in the xml/ subdirectory. If the source code " +"contains documentation on functions, using the special comment blocks, it " +"gets merged in here. If there are no tmpl files used it only reads docs from " +"sources and introspection data." +msgstr "" +"Generera XML och HTML/PDF. gtkdoc-mkdb förvandlar mallfilerna till XML-filer i underkatalogen " +"xml/. Om källkoden innehåller " +"dokumentation över funktioner i speciella kommentarsblock, så kommer denna " +"att sammanfogas här. Om det inte finns några tmpl-filer som används så " +"kommer det endast att läsa dokumentation från källkoden och " +"introspektionsdata." + +#. (itstool) path: listitem/para +#: C/index.docbook:286 +msgid "" +"gtkdoc-mkhtml turns the XML files into HTML files " +"in the html/ subdirectory. Likewise " +"gtkdoc-mkpdf turns the XML files into a PDF " +"document called <package>.pdf." +msgstr "" +"gtkdoc-mkhtml förvandlar XML-filer till HTML-" +"filer i underkatalogen html/. På " +"samma sätt förvandlar gtkdoc-mkpdf XML-filerna " +"till ett PDF-dokument kallat <package>.pdf." + +#. (itstool) path: listitem/para +#: C/index.docbook:292 +msgid "" +"Files in xml/ and html/ directories are always overwritten. One " +"should never edit them directly." +msgstr "" +"Filer i xml/- och html/-katalogerna skrivs alltid över. Man bör " +"aldrig redigera dem direkt." + +#. (itstool) path: listitem/para +#: C/index.docbook:300 +msgid "" +"Fixing up cross-references between documents. After " +"installing the HTML files, gtkdoc-fixxref can be " +"run to fix up any cross-references between separate documents. For example, " +"the GTK+ documentation contains many cross-references to types documented in " +"the GLib manual. When creating the source tarball for distribution, " +"gtkdoc-rebase turns all external links into web-" +"links. When installing distributed (pregenerated) docs the same application " +"will try to turn links back to local links (where those docs are installed)." +msgstr "" +"Fixa korsreferenser mellan dokument. Efter att ha " +"installerat HTML-filerna kan gtkdoc-fixxref köras " +"för att fixa korsreferenser mellan separata dokument. Till exempel GTK+-" +"dokumentationen innehåller många korsreferenser till typer som dokumenterats " +"i GLib-manualen. När tar-arkivet med källkod skapas för distribution, " +"förvandlar gtkdoc-rebase alla externa länkar till " +"webblänkar. När (förgenererad) distribuerad dokumentation installeras kommer " +"samma program att försöka att förvandla länkarna tillbaka till lokala länkar " +"(i de fall där dokumentationen finns installerad)." + +#. (itstool) path: sect1/title +#: C/index.docbook:318 +msgid "Getting GTK-Doc" +msgstr "Hämta GTK-Doc" + +#. (itstool) path: sect2/title +#: C/index.docbook:321 +msgid "Requirements" +msgstr "Krav" + +#. (itstool) path: sect2/para +#: C/index.docbook:322 +msgid "" +"python 2/3 - the main scripts are written in python." +msgstr "python 2/3 - huvudskripten är skrivna i python." + +#. (itstool) path: sect2/para +#: C/index.docbook:325 +msgid "" +"xsltproc - the xslt processor from libxslt xmlsoft.org/XSLT/" +msgstr "" +"xsltproc - xslt-processorn från libxslt xmlsoft.org/XSLT/" + +#. (itstool) path: sect2/para +#: C/index.docbook:329 +msgid "" +"docbook-xsl - the docbook xsl stylesheets sourceforge.net/projects/docbook/files/docbook-xsl" +msgstr "" +"docbook-xsl - docbook xsl-stilmallar sourceforge.net/projects/docbook/files/docbook-xsl" + +# sebras: remind me how was highlighting translated..? +#. (itstool) path: sect2/para +#: C/index.docbook:333 +msgid "" +"One of source-highlight, highlight " +"or vim - optional - used for syntax highlighting of " +"examples" +msgstr "" +"Endera av source-highlight, highlight eller vim - valfritt - används för " +"syntaxfärgning av exempel" + +#. (itstool) path: sect1/title +#: C/index.docbook:341 +msgid "About GTK-Doc" +msgstr "Om GTK-Doc" + +#. (itstool) path: sect1/para +#: C/index.docbook:343 C/index.docbook:357 +msgid "(FIXME)" +msgstr "(FIXME)" + +#. (itstool) path: sect1/para +#: C/index.docbook:347 +msgid "" +"(History, authors, web pages, mailing list, license, future plans, " +"comparison with other similar systems.)" +msgstr "" +"(Historia, författare, webbsidor, sändlistor, licens, framtida planer, " +"jämförelse med andra liknande system.)" + +#. (itstool) path: sect1/title +#: C/index.docbook:355 +msgid "About this Manual" +msgstr "Om denna handbok" + +#. (itstool) path: sect1/para +#: C/index.docbook:361 +msgid "(who it is meant for, where you can get it, license)" +msgstr "(vem är den avsett för, var kan du få tag i den, licens)" + +#. (itstool) path: chapter/title +#: C/index.docbook:370 +msgid "Setting up your project" +msgstr "Att ställa in ditt projekt" + +#. (itstool) path: chapter/para +#: C/index.docbook:372 +msgid "" +"The next sections describe what steps to perform to integrate GTK-Doc into " +"your project. Theses sections assume we work on a project called 'meep'. " +"This project contains a library called 'libmeep' and an end-user app called " +"'meeper'. We also assume you will be using autoconf and automake. In " +"addition section plain makefiles or other " +"build systems will describe the basics needed to work in a different " +"build setup." +msgstr "" +"De följande avsnitten beskriver vilka steg du måste utföra för att integrera " +"GTK-Doc i ditt projekt. Dessa avsnitt förutsätter att vi arbetar på ett " +"projekt kallat ”meep”. Detta projekt innehåller ett bibliotek kallat " +"”libmeep” och ett slutanvändarprogram kallat ”meeper”. Vi förutsätter också " +"att du kommer att använda autoconf och automake. Dessutom kommer avsnittet " +"vanliga makefiler eller andra byggsystem att beskriva de grundläggande sakerna som behöver fungera i ett annat " +"byggsystem." + +#. (itstool) path: sect1/title +#: C/index.docbook:383 +msgid "Setting up a skeleton documentation" +msgstr "Att ställa in en skelettstruktur för dokumentation" + +#. (itstool) path: sect1/para +#: C/index.docbook:385 +msgid "" +"Under your top-level project directory create folders called docs/reference " +"(this way you can also have docs/help for end-user documentation). It is " +"recommended to create another subdirectory with the name of the doc-package. " +"For packages with just one library this step is not necessary." +msgstr "" +"Under toppnivåkatalogen för ditt projekt, skapa mappar kallade docs/" +"reference (på detta sättet kan du också ha docs/help för " +"slutanvändardokumentation). Det rekommenderas att skapa en annan " +"underkatalog med namnet på dokumentations-paketet. För paket med bara ett " +"bibliotek är detta steg inte nödvändigt." + +#. (itstool) path: example/title +#: C/index.docbook:394 +msgid "Example directory structure" +msgstr "Exempel på katalogstruktur" + +#. (itstool) path: example/programlisting +#: C/index.docbook:395 +#, no-wrap +msgid "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +msgstr "" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:392 +msgid "This can then look as shown below: <_:example-1/>" +msgstr "Detta kan se ut enligt nedan: <_:example-1/>" + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:410 C/index.docbook:417 +msgid "Integration with autoconf" +msgstr "Integrering med autoconf" + +#. (itstool) path: sect1/para +#: C/index.docbook:412 +msgid "" +"Very easy! Just add one line to your configure.ac " +"script." +msgstr "" +"Väldigt enkelt! Bara lägg till en rad till ditt configure.ac-skript." + +#. (itstool) path: example/programlisting +#: C/index.docbook:418 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +msgstr "" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" + +#. (itstool) path: example/title +#: C/index.docbook:430 +msgid "Keep gtk-doc optional" +msgstr "Låt gtk-doc vara valfritt" + +#. (itstool) path: example/programlisting +#: C/index.docbook:431 +#, no-wrap +msgid "" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +msgstr "" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:425 +msgid "" +"This will require all developers to have gtk-doc installed. If it is okay " +"for your project to have optional api-doc build setup, you can solve this as " +"below. Keep it as is, as gtkdocize is looking for GTK_DOC_CHECK at the start of a line. <_:example-1/>" +msgstr "" +"Detta kommer att kräva att alla utvecklare har gtk-doc installerat. Om det " +"är okej för ditt projekt att ha ett valfritt api-dokumentation bygge, kan du " +"lösa det enligt nedan. Behåll det som det är eftersom gtkdocize letar efter " +"GTK_DOC_CHECK i början på en rad. <_:example-1/>" + +# sebras: or ? +#. (itstool) path: sect1/para +#: C/index.docbook:442 +msgid "" +"The first argument is used to check for the gtkdocversion at configure time. " +"The 2nd, optional argument is used by gtkdocize. " +"The GTK_DOC_CHECK macro also adds several configure " +"switches:" +msgstr "" +"Det första argumentet används för att leta efter gtkdoc-versionen under " +"konfigurationen. Det andra, valfria, argumentet används av " +"gtkdocize. Makrot GTK_DOC_CHECK " +"lägger också till flera configure-flaggor:" + +#. (itstool) path: listitem/para +#: C/index.docbook:448 +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=SÖKVÄG : sökväg till installerad dokumentation" + +#. (itstool) path: listitem/para +#: C/index.docbook:449 +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "" +"--enable-gtk-doc : använd gtk-doc för att bygga dokumentation " +"[standardvärde=no]" + +#. (itstool) path: listitem/para +#: C/index.docbook:450 +msgid "" +"--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "" +"--enable-gtk-doc-html : bygg dokumentation i html-format [standardvärde=yes]" + +#. (itstool) path: listitem/para +#: C/index.docbook:451 +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "" +"--enable-gtk-doc-pdf : bygg dokumentation i pdf-format [standardvärde=no]" + +#. (itstool) path: important/para +#: C/index.docbook:455 +msgid "" +"GTK-Doc is disabled by default! Remember to pass the option to the next configure run. " +"Otherwise pregenerated documentation is installed (which makes sense for " +"users but not for developers)." +msgstr "" +"GTK-Doc är inaktiverat som standard! Kom ihåg att skicka flaggan vid nästa körning av configure. Annars kommer förgenererad dokumentation att installeras (vilket " +"är rimligt för användare men inte för utvecklare)." + +#. (itstool) path: sect1/para +#: C/index.docbook:463 +msgid "" +"Furthermore it is recommended that you have the following line inside your " +"configure.ac script. This allows " +"gtkdocize to automatically copy the macro " +"definition for GTK_DOC_CHECK to your project." +msgstr "" +"Vidare rekommenderas det att du har följande rad i ditt configure." +"ac-skript. Den låter gtkdocize " +"automatiskt kopiera makrodefinitionen för GTK_DOC_CHECK " +"till ditt projekt." + +#. (itstool) path: example/title +#: C/index.docbook:471 +msgid "Preparation for gtkdocize" +msgstr "Förberedelse för gtkdocize" + +#. (itstool) path: example/programlisting +#: C/index.docbook:472 +#, no-wrap +msgid "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +msgstr "" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:477 +msgid "" +"After all changes to configure.ac are made, update the " +"configure file. This can be done by re-running " +"autoreconf -i or autogen.sh." +msgstr "" +"Efter att alla ändringar i configure.ac är gjorda, " +"uppdatera filen configure. Detta kan göras genom att " +"köra om autoreconf -i eller autogen.sh." + +#. (itstool) path: sect1/title +#: C/index.docbook:485 +msgid "Integration with automake" +msgstr "Integrering med automake" + +#. (itstool) path: sect1/para +#: C/index.docbook:487 +msgid "" +"First copy the Makefile.am from the examples sub directory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). A local copy " +"should be available under e.g. /usr/share/doc/gtk-doc-tools/" +"examples/Makefile.am. If you have multiple doc-packages repeat " +"this for each one." +msgstr "" +"Kopiera först Makefile.am från underkatalogen examples från gtkdoc-sources till " +"ditt projekts API-dokumentationskatalog ( ./" +"docs/reference/<paket>). En lokal kopia bör finnas " +"tillgänglig under t.ex. /usr/share/doc/gtk-doc-tools/examples/" +"Makefile.am. Om du har flera dok-paket, repetera detta för vart " +"och ett." + +#. (itstool) path: sect1/para +#: C/index.docbook:498 +msgid "" +"The next step is to edit the settings inside the Makefile.am. All the settings have a comment above that describes their " +"purpose. Most settings are extra flags passed to the respective tools. Every " +"tool has a variable of the form . " +"All the tools support to list the supported " +"parameters." +msgstr "" +"Nästa steg är att redigera inställningarna inuti Makefile.am. Alla inställningarna har en kommentar ovanför som beskriver deras " +"syfte. De flesta inställningarna är extraflaggor som skickas till respektive " +"verktyg. Varje verktyg har en variabel på formen . Alla verktygen har stöd för för " +"att lista de parametrar som stöds." + +#. (itstool) path: sect1/title +#: C/index.docbook:512 +msgid "Integration with autogen" +msgstr "Integrering med autogen" + +#. (itstool) path: sect1/para +#: C/index.docbook:514 +msgid "" +"Most projects will have an autogen.sh script to setup " +"the build infrastructure after a checkout from version control system (such " +"as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before " +"autoheader, automake or autoconf." +msgstr "" +"De flesta projekt kommer att ha ett autogen.sh-skript " +"för att ställa in infrastrukturen för bygget efter utcheckning från ett " +"versionshanteringssystem (så som cvs/svn/git). GTK-Doc tillhandahåller ett " +"verktyg som heter gtkdocize som kan användas i " +"ett sådant skript. Det bör köras före autoheader, automake eller autoconf." + +#. (itstool) path: example/title +#: C/index.docbook:523 +msgid "Running gtkdocize from autogen.sh" +msgstr "Köra gtkdocize från autogen.sh" + +#. (itstool) path: example/programlisting +#: C/index.docbook:524 +#, no-wrap +msgid "" +"\n" +"gtkdocize || exit 1\n" +msgstr "" +"\n" +"gtkdocize || exit 1\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:530 +msgid "" +"When running gtkdocize it copies gtk-" +"doc.make to your project root (or any directory specified by the " +" option). It also checks you configure script for " +"the GTK_DOC_CHECK invocation. This macro can be used to " +"pass extra parameters to gtkdocize." +msgstr "" +"När gtkdocize kör kopierar det gtk-doc." +"make till din projektrot (eller den katalog som anges med flaggan " +"). Det kontrollerar också ditt configure-skript " +"efter ett anrop till GTK_DOC_CHECK. Detta makro kan " +"användas för att skicka extra parametrar till gtkdocize." + +# sebras: e.g. because of,... it can be...any files in tmpl...and is migrating... or ? gtkdoc or GTK-Doc +#. (itstool) path: sect1/para +#: C/index.docbook:539 +msgid "" +"Historically GTK-Doc was generating template files where developers entered " +"the docs. This turned out to be not so good (e.g. the need for having " +"generated files under version control). Since GTK-Doc 1.9 the tools can get " +"all the information from source comments and thus the templates can be " +"avoided. We encourage people to keep documentation in the code. " +"gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. " +"Besides adding the option directly to the command invocation, they can be " +"added also to an environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in " +"the configure script. If you have never changed file in tmpl by hand and " +"migrating from older gtkdoc versions, please remove the directory (e.g. from " +"version control system)." +msgstr "" +"Historiskt genererade GTK-Doc mallfiler i vilka utvecklare skrev in " +"dokumentationen. Detta visade sig inte vara så bra (t.ex. på grund av " +"behovet att ha genererade filer under versionskontroll). Sedan GTK-Doc 1.9 " +"kan verktygen hämta all information från källkodskommentarer och mallar kan " +"därför undvikas. Vi rekommenderar att hålla dokumentationen i koden. " +"gtkdocize har nu stöd för flaggan som väljer en makefil som hoppar över tmpl-" +"användning helt. Förutom att lägga till flaggan direkt vid körning av " +"kommandot, kan den också läggas till i en miljövariabel kallad " +"GTKDOCIZE_FLAGS eller inställd som en andra parameter i " +"makrot GTK_DOC_CHECK i configure-skriptet. Om du inte har " +"ändrat någon fil i tmpl för hand och migrerar från äldre gtkdoc-versioner, " +"ta bort katalogen (t.ex. från versionshanteringssystemet)." + +#. (itstool) path: sect1/title +#. (itstool) path: example/title +#: C/index.docbook:556 C/index.docbook:573 +msgid "Running the doc build" +msgstr "Att köra dokumentationsbygget" + +#. (itstool) path: sect1/para +#: C/index.docbook:558 +msgid "" +"After the previous steps it's time to run the build. First we need to rerun " +"autogen.sh. If this script runs configure for you, then " +"give it the option. Otherwise manually run " +"configure with this option afterwards." +msgstr "" +"Efter de tidigare stegen är det dags att köra bygget. Först måste vi köra om " +"autogen.sh. Om detta skript kör configure åt dig, kan " +"du ge det flaggan . Annars kör manuellt " +"configure med denna flagga efteråt." + +#. (itstool) path: sect1/para +#: C/index.docbook:565 +msgid "" +"The first make run generates several additional files in the doc-" +"directories. The important ones are: <package>.types, <package>-docs.xml (in the past ." +"sgml), <package>-sections.txt." +msgstr "" +"Den första körningen av make genererar flera extra filer i doc-katalogerna. " +"De viktiga är <paket>.types, <" +"paket>-docs.xml (tidigare .sgml), <paket>-" +"sections.txt." + +#. (itstool) path: example/programlisting +#: C/index.docbook:574 +#, no-wrap +msgid "" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" +msgstr "" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:580 +msgid "" +"Now you can point your browser to docs/reference/<package>/" +"index.html. Yes, it's a bit disappointing still. But hang-on, " +"during the next chapter we tell you how to fill the pages with life." +msgstr "" +"Du kan nu peka din webbläsare till docs/reference/<paket>/" +"index.html. Ja, den är fortfarande lite sorglig. Men häng kvar, i " +"nästa kapitel kommer vi att berätta för dig hur du fyller sidorna med liv." + +#. (itstool) path: sect1/title +#: C/index.docbook:588 +msgid "Integration with version control systems" +msgstr "Integrering med versionshanteringssystem" + +#. (itstool) path: sect1/para +#: C/index.docbook:590 +msgid "" +"As a rule of thumb, it's the files you edit which should go under version " +"control. For typical projects it's these files: <package>." +"types, <package>-docs.xml (in the " +"past .sgml), <package>-sections.txt, " +"Makefile.am." +msgstr "" +"Som en tumregel är det filerna du redigerar som bör versionshanteras. För " +"typiska projekt är det följande filer: <paket>.types, <paket>-docs.xml (tidigare .sgml), " +"<paket>-sections.txt, Makefile.am." + +#. (itstool) path: sect1/para +#: C/index.docbook:598 +msgid "" +"Files in the xml/ and html/ " +"directories should not go under version control. Neither should any of the " +".stamp files." +msgstr "" +"Filer i katalogerna xml/ och html/ " +"bör inte versionshanteras. Detsamma gäller .stamp-" +"filerna." + +#. (itstool) path: sect1/title +#: C/index.docbook:606 +msgid "Integration with plain makefiles or other build systems" +msgstr "Integrering med vanliga makefiler eller andra byggsystem" + +#. (itstool) path: sect1/para +#: C/index.docbook:608 +msgid "" +"In the case one does not want to use automake and therefore gtk-" +"doc.mak one will need to call the gtkdoc tools in the right order " +"in own makefiles (or other build tools)." +msgstr "" +"I det fall man inte vill använda automake och därför inte heller " +"gtk-doc.mak kommer man att behöva anropa gtkdoc-" +"verktygen i rätt ordning i sina egna makefiler (eller andra byggverktyg)." + +#. (itstool) path: example/title +#: C/index.docbook:615 +msgid "Documentation build steps" +msgstr "Byggsteg för dokumentation" + +#. (itstool) path: example/programlisting +#: C/index.docbook:616 +#, no-wrap +msgid "" +"\n" +"DOC_MODULE=meep\n" +"// sources have changed\n" +"gtkdoc-scan --module=$(DOC_MODULE) <source-dir>\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<source-dir>\n" +"// xml files have changed\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" +msgstr "" +"\n" +"DOC_MODULE=meep\n" +"// källkod har ändrats\n" +"gtkdoc-scan --module=$(DOC_MODULE) <källkodskatalog>\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=<källkodskatalog>\n" +"// xml-filer har ändrats\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:630 +msgid "" +"One will need to look at the Makefile.am and " +"gtk-doc.mak to pick the extra options needed." +msgstr "" +"Man kommer att behöva titta i Makefile.am och " +"gtk-doc.mak för att plocka ut de extra flaggor som " +"behövs." + +#. (itstool) path: sect1/title +#: C/index.docbook:637 +msgid "Integration with CMake build systems" +msgstr "Integrering med CMake-byggsystem" + +#. (itstool) path: sect1/para +#: C/index.docbook:639 +msgid "" +"GTK-Doc now provides a GtkDocConfig.cmake module (and " +"the corresponding GtkDocConfigVersion.cmake module). " +"This provides a gtk_doc_add_module command that you can " +"set in your CMakeLists.txt file." +msgstr "" +"GTK-Doc kommer nu att producera en GtkDocConfig.cmake-" +"modul (och motsvarande GtkDocConfigVersion.cmake-" +"modul). Detta tillhandahåller ett gtk_doc_add_module-" +"kommando som du kan ställa in i din CMakeLists.txt-fil." + +#. (itstool) path: example/title +#: C/index.docbook:649 +msgid "Example of using GTK-Doc from CMake" +msgstr "Exempel på användning av GTK-Doc från CMake" + +#. (itstool) path: example/programlisting +#: C/index.docbook:650 +#, no-wrap +msgid "" +"\n" +"find_package(GtkDoc 1.25 REQUIRED)\n" +"\n" +"# Create the doc-libmeep target.\n" +"gtk_doc_add_module(\n" +" libmeep ${CMAKE_SOURCE_DIR}/libmeep\n" +" XML meep-docs.xml\n" +" LIBRARIES libmeep\n" +")\n" +"\n" +"# Build doc-libmeep as part of the default target. Without this, you would\n" +"# have to explicitly run something like `make doc-libmeep` to build the docs.\n" +"add_custom_target(documentation ALL DEPENDS doc-libmeep)\n" +"\n" +"# Install the docs. (This assumes you're using the GNUInstallDirs CMake module\n" +"# to set the CMAKE_INSTALL_DOCDIR variable correctly).\n" +"install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html\n" +" DESTINATION ${CMAKE_INSTALL_DOCDIR})\n" +msgstr "" +"\n" +"find_package(GtkDoc 1.25 REQUIRED)\n" +"\n" +"# Skapa målet doc-libmeep.\n" +"gtk_doc_add_module(\n" +" libmeep ${CMAKE_SOURCE_DIR}/libmeep\n" +" XML meep-docs.xml\n" +" LIBRARIES libmeep\n" +")\n" +"\n" +"# Bygg doc-libmeep som standardmålet. Utan detta måste du uttryckligen\n" +"# köra något i stil med `make doc-libmeep` för att bygga dokumentationen.\n" +"add_custom_target(documentation ALL DEPENDS doc-libmeep)\n" +"\n" +"# Installera dokumentationen. (Detta förutsätter att du använder CMake-modulen\n" +"# GNUInstallDirs för att ställa in variabeln CMAKE_INSTALL_DOCDIR korrekt).\n" +"install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html\n" +" DESTINATION ${CMAKE_INSTALL_DOCDIR})\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:647 +msgid "The following example shows how to use this command. <_:example-1/>" +msgstr "" +"Det följande exemplet visar hur du använder detta kommando. <_:example-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:675 +msgid "Documenting the code" +msgstr "Att dokumentera koden" + +#. (itstool) path: chapter/para +#: C/index.docbook:677 +msgid "" +"GTK-Doc uses source code comment with a special syntax for code " +"documentation. Further it retrieves information about your project structure " +"from other sources. During the next section you will find all information " +"about the syntax of the comments." +msgstr "" +"GTK-Doc använder källkodskommentarer med en speciell syntax för " +"koddokumentation. Vidare så hämtar det information om din projektstruktur " +"från olika källor. Under nästa avsnitt kommer du att hitta information om " +"syntaxen i kommentarerna." + +#. (itstool) path: note/title +#: C/index.docbook:685 +msgid "Documentation placement" +msgstr "Dokumentationsplacering" + +#. (itstool) path: note/para +#: C/index.docbook:686 +msgid "" +"In the past most documentation had to be filled into files residing inside " +"the tmpl directory. This has the disadvantages that the " +"information is often not updated and also that the file tend to cause " +"conflicts with version control systems." +msgstr "" +"Tidigare var det tvunget att fylla i största delen av dokumentationen i " +"filer som fanns i katalogen tmpl. Detta hade nackdelen " +"att informationen ofta inte uppdaterades och att filen också ofta orsakade " +"konflikter med versionshanteringssystem." + +#. (itstool) path: note/para +#: C/index.docbook:692 +msgid "" +"The avoid the aforementioned problems we suggest putting the documentation " +"inside the sources. This manual will only describe this way of documenting " +"code." +msgstr "" +"För att undvika de nämnda problemen föreslår vi att placera dokumentationen " +"i källkoden. Denna manual kommer endast att beskriva detta sättet att " +"dokumentera kod." + +#. (itstool) path: example/title +#: C/index.docbook:703 C/index.docbook:729 +msgid "GTK-Doc comment block" +msgstr "GTK-Doc-kommentarsblock" + +#. (itstool) path: example/programlisting +#: C/index.docbook:704 +#, no-wrap +msgid "" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" +msgstr "" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" + +#. (itstool) path: chapter/para +#: C/index.docbook:699 +msgid "" +"The scanner can handle the majority of C headers fine. In the case of " +"receiving warnings from the scanner that look like a special case, one can " +"hint GTK-Doc to skip over them. <_:example-1/>" +msgstr "" +"Detektorn kan hantera majoriteten av C-huvuden bra. I det fall när du får " +"varningar från detektorn som ser ut som ett specialfall, kan du tipsa GTK-" +"Doc att hoppa över dem. <_:example-1/>" + +#. (itstool) path: note/title +#: C/index.docbook:713 +msgid "Limitations" +msgstr "Begränsningar" + +# sebras: no 's in the original +#. (itstool) path: note/para +#: C/index.docbook:714 +msgid "" +"Note, that GTK-Doc's supports #ifndef(__GTK_DOC_IGNORE__) but " +"not #if !defined(__GTK_DOC_IGNORE__) or other combinations." +msgstr "" +"Notera att GTK-Doc har stöd för #ifndef(__GTK_DOC_IGNORE__) men " +"inte #if !defined(__GTK_DOC_IGNORE__) eller andra kombinationer." + +#. (itstool) path: sect1/title +#: C/index.docbook:724 +msgid "Documentation comments" +msgstr "Dokumentationskommentarer" + +#. (itstool) path: example/programlisting +#: C/index.docbook:730 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * identifierare:\n" +" * dokumentation …\n" +" */\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:726 +msgid "" +"A multiline comment that starts with an additional '*' marks a documentation " +"block that will be processed by the GTK-Doc tools. <_:example-1/>" +msgstr "" +"En flerradskommentar som börjar med en extra ”*” markerar ett " +"dokumentationsblock som kommer att hanteras av GTK-Doc-verktygen. <_:" +"example-1/>" + +#. (itstool) path: sect1/para +#: C/index.docbook:739 +msgid "" +"The 'identifier' is one line with the name of the item the comment is " +"related to. The syntax differs a little depending on the item. (TODO add " +"table showing identifiers)" +msgstr "" +"'Identifierare' är en rad med namnet på det objekt som kommentaren är " +"relaterad till. Syntaxen skiljer sig lite beroende på objekt. (TODO lägg " +"till tabell som visar identifierare)" + +#. (itstool) path: sect1/para +#: C/index.docbook:745 +msgid "" +"The 'documentation' block is also different for each symbol type. Symbol " +"types that get parameters such as functions or macros have the parameter " +"description first followed by a blank line (just a '*'). Afterwards follows " +"the detailed description. All lines (outside program listings and CDATA " +"sections) just containing a ' *' (blank-asterisk) are converted to paragraph " +"breaks. If you don't want a paragraph break, change that into ' * ' (blank-" +"asterisk-blank-blank). This is useful in preformatted text (code listings)." +msgstr "" +"Blocket 'dokumentation' skiljer sig också för varje symboltyp. Symboltyper " +"som får parametrar så som funktioner eller makron har en " +"parameterbeskrivning först, åtföljd av en blankrad (bara en ”*”). Efteråt " +"följer den detaljerade beskrivningen. Alla rader (utanför programlistningar " +"och CDATA-avsnitt) som endast innehåller ” *” (blanksteg-asterisk) " +"konverteras till styckeavgränsare. Om du inte vill ha en styckeavgränsare, " +"ändra till ” * ” (blanksteg-asterisk-blanksteg-blanksteg). Detta är " +"användbart i förformaterad text (kodlistningar)." + +#. (itstool) path: listitem/para +#: C/index.docbook:762 +msgid "" +"What it is: The name for a class or function can sometimes be misleading for " +"people coming from a different background." +msgstr "" +"Vad är detta: Namnet på en klass eller en funktion kan ibland vara " +"vilseledande för personer med annan bakgrund." + +#. (itstool) path: listitem/para +#: C/index.docbook:768 +msgid "" +"What it does: Tell about common uses. Put it in relation with the other API." +msgstr "" +"Vad gör det: Berättar om vanliga användningsfall. Sätter det i relation med " +"det andra API:t." + +#. (itstool) path: tip/para +#: C/index.docbook:758 +msgid "When documenting code, describe two aspects: <_:itemizedlist-1/>" +msgstr "När du dokumenterar kod, beskriv två aspekter: <_:itemizedlist-1/>" + +#. (itstool) path: listitem/para +#: C/index.docbook:783 +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "" +"Använd funktion() för att referera till funktioner eller makron som tar " +"argument." + +#. (itstool) path: listitem/para +#: C/index.docbook:788 +msgid "" +"Use @param to refer to parameters. Also use this when referring to " +"parameters of other functions, related to the one being described." +msgstr "" +"Använd @param för att referera till parametrar. Använd också detta när du " +"refererar till parametrar för andra funktioner, relaterade till den som " +"beskrivs." + +#. (itstool) path: listitem/para +#: C/index.docbook:794 +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "" +"Använd %konstant för att referera till en konstant, t.ex. %G_TRAVERSE_LEAFS." + +#. (itstool) path: listitem/para +#: C/index.docbook:799 +msgid "" +"Use #symbol to refer to other types of symbol, e.g. structs and enums and " +"macros which don't take arguments." +msgstr "" +"Använd #symbol för att referera till andra typer av symboler, t.ex. " +"strukturer eller uppräkningar och makron som inte tar argument." + +#. (itstool) path: listitem/para +#: C/index.docbook:805 +msgid "Use #Object::signal to refer to a GObject signal." +msgstr "Använd #Objekt::signal för att referera till en GObject-signal." + +#. (itstool) path: listitem/para +#: C/index.docbook:810 +msgid "Use #Object:property to refer to a GObject property." +msgstr "Använd #Objekt:egenskap för att referera till en GObject-egenskap." + +#. (itstool) path: listitem/para +#: C/index.docbook:815 +msgid "" +"Use #Struct.field to refer to a field inside a structure and #GObjectClass." +"foo_bar() to refer to a vmethod." +msgstr "" +"Använd #Struktur.fält för att referera till ett fält inuti en struktur och " +"#GObjectKlass.foo_bar() för att referera till en virtuell metod." + +#. (itstool) path: sect1/para +#: C/index.docbook:777 +msgid "" +"One advantage of hyper-text over plain-text is the ability to have links in " +"the document. Writing the correct markup for a link can be tedious though. " +"GTK-Doc comes to help by providing several useful abbreviations. <_:" +"itemizedlist-1/>" +msgstr "" +"En fördel med hypertext framför vanlig text är möjligheten att ha länkar i " +"dokumentet. Att skriva korrekta taggar för en länk kan dock vara tröttsamt. " +"GTK-Doc hjälper då till med att tillhandahålla flera användbara " +"förkortningar. <_:itemizedlist-1/>" + +#. (itstool) path: tip/para +#: C/index.docbook:824 +msgid "" +"If you need to use the special characters '<', '>', '()', '@', '%', or " +"'#' in your documentation without GTK-Doc changing them you can use the XML " +"entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&" +"commat;\", \"&percnt;\" and \"&num;\" respectively or escape them " +"with a backslash '\\'." +msgstr "" +"Om du behöver använda specialtecken ”<”, ”>”, ”()”, ”@”, ”%” eller ”#” " +"i din dokumentation utan att GTK-Doc ändrar dem kan du använda XML-" +"entiteterna ”&lt;”, ”&gt;”, ”&lpar;”, ”&rpar;”, ”&" +"commat;”, ”&percnt;” respektive ”&num;” eller använda " +"kontrollsekvensen ”\\”." + +#. (itstool) path: sect1/para +#: C/index.docbook:833 +msgid "" +"DocBook can do more than just links. One can also have lists, examples, " +"headings, and images. As of version 1.20, the preferred way is to use a " +"subset of the basic text formatting syntax called Markdown. On older GTK-Doc " +"versions any documentation that includes Markdown will be rendered as is. " +"For example, list items will appear as lines starting with a dash." +msgstr "" +"DocBook kan mer än bara länkar. Du kan också ha listor, exempel, rubriker " +"och bilder. Från och med version 1.20, är det föredragna sättet att använda " +"en delmängd av den grundläggande textformateringssyntaxen som kallas Markdown. Äldre " +"GTK-Doc-versioner kommer dokumentation som inkluderar markdown att renderas " +"som den är. Till exempel kommer listobjekt att visas som att de börjar med " +"ett bindestreck." + +#. (itstool) path: sect1/para +#: C/index.docbook:844 +msgid "" +"While markdown is now preferred one can mix both. One limitation here is " +"that one can use docbook xml within markdown, but markdown within docbook " +"xml is not supported." +msgstr "" +"Då markdown numera föredras kan du blanda båda. En begränsning här är att du " +"kan använda docbook-xml inuti markdown, men markdown inuti docbook-xml stöds " +"inte." + +#. (itstool) path: sect1/para +#: C/index.docbook:850 +msgid "" +"In older GTK-Doc releases, if you need support for additional formatting, " +"you would need to enable the usage of docbook XML tags inside doc-comments " +"by putting (or ) in " +"the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" +"I äldre GTK-Doc-versioner var du tvungen, om du ville ha stöd för " +"ytterligare formatering, att aktivera användningen av docbook-XML-taggar " +"inuti dok-kommentarer genom att lägga till " +"(eller ) i variabeln MKDB_OPTIONS inuti Makefile.am." + +# sebras: markdown or Markdown? +#. (itstool) path: example/title +#: C/index.docbook:859 +msgid "GTK-Doc comment block using Markdown" +msgstr "GTK-Doc-kommentarsblock som använder Markdown" + +#. (itstool) path: example/programlisting +#: C/index.docbook:860 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * identifier:\n" +" *\n" +" * documentation paragraph ...\n" +" *\n" +" * # Sub Heading #\n" +" *\n" +" * ## Second Sub Heading\n" +" *\n" +" * # Sub Heading With a Link Anchor # {#heading-two}\n" +" *\n" +" * more documentation:\n" +" *\n" +" * - list item 1\n" +" *\n" +" * Paragraph inside a list item.\n" +" *\n" +" * - list item 2\n" +" *\n" +" * 1. numbered list item\n" +" *\n" +" * 2. another numbered list item\n" +" *\n" +" * Another paragraph. [A Link to the GNOME Website](http://www.gnome.org/)\n" +" *\n" +" * ![an inline image](plot-result.png)\n" +" *\n" +" * [A link to the heading anchor above][heading-two]\n" +" *\n" +" * A C-language example:\n" +" * |[<!-- language=\"C\" -->\n" +" * GtkWidget *label = gtk_label_new (\"Gorgeous!\");\n" +" * ]|\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * Identifierare:\n" +" *\n" +" * stycke med dokumentation …\n" +" *\n" +" * # Underrubrik #\n" +" *\n" +" * ## Underunderrubrik\n" +" *\n" +" * # Underrubrik med länkankare # {#andra-rubriken}\n" +" *\n" +" * mer dokumentation:\n" +" *\n" +" * - listobjekt 1\n" +" *\n" +" * Stycke inuti listobjekt.\n" +" *\n" +" * - listobjekt 2\n" +" *\n" +" * 1. numrerat listobjekt\n" +" *\n" +" * 2. ytterligare ett numrerat listobjekt\n" +" *\n" +" * Ett annat stycke. [En länk till GNOME:s webbplats](http://www.gnome.org/)\n" +" *\n" +" * ![en bild](resultatgraf.png)\n" +" *\n" +" * [En länk till rubrikankaret ovan][andra-rubriken]\n" +" *\n" +" * Ett C-exempel:\n" +" * |[<!-- language=\"C\" -->\n" +" * GtkWidget *label = gtk_label_new (\"Vackert!\");\n" +" * ]|\n" +" */\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:899 +msgid "" +"More examples of what markdown tags are supported can be found in the GTK+ Documentation Markdown Syntax Reference." +msgstr "" +"Fler exempel på vilka markdown-taggar som stöds hittas i Referensen för GTK+-dokumentationens markdown-syntax." + +#. (itstool) path: tip/para +#: C/index.docbook:905 +msgid "" +"As already mentioned earlier GTK-Doc is for documenting public API. Thus one " +"cannot write documentation for static symbols. Nevertheless it is good to " +"comment those symbols too. This helps other to understand you code. " +"Therefore we recommend to comment these using normal comments (without the " +"2nd '*' in the first line). If later the function needs to be made public, " +"all one needs to do is to add another '*' in the comment block and insert " +"the symbol name at the right place inside the sections file." +msgstr "" +"Som redan nämnts är GTK-Doc avsett för att dokumentera publika API:er. Du " +"kan därför inte skriva dokumentation för statiska symboler. Likväl är det " +"bra att kommentera dessa symboler. Det hjälper andra att förstå din kod. " +"Därför rekommenderar vi att du kommenterar dessa med normala kommenterar " +"(utan den andra ”*” på den första raden). Om funktionen vid ett senare " +"tillfälle måste göras publik är allt du behöver göra att lägga till " +"ytterligare en ”*” i kommentarsblocket och infoga symbolnamnet på rätt " +"ställe i avsnittsfilen." + +#. (itstool) path: sect1/title +#: C/index.docbook:919 +msgid "Documenting sections" +msgstr "Dokumentationsavsnitt" + +#. (itstool) path: sect1/para +#: C/index.docbook:921 +msgid "" +"Each section of the documentation contains information about one class or " +"module. To introduce the component one can write a section block. The short " +"description is also used inside the table of contents. All the @fields are " +"optional." +msgstr "" +"Varje avsnitt av dokumentation innehåller information om en klass eller en " +"modul. För att introducera komponenten kan man skriva ett avsnittsblock. Den " +"korta beskrivningen används också i innehållsförteckningen. Alla @fälten är " +"valfria." + +#. (itstool) path: example/title +#: C/index.docbook:929 +msgid "Section comment block" +msgstr "Kommentarsblock för avsnitt" + +#. (itstool) path: example/programlisting +#: C/index.docbook:930 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: the application class\n" +" * @title: Meep application\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * The application class handles ...\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: programklassen\n" +" * @title: Meep-programmet\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * Programklassen hanterar …\n" +" */\n" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:949 +msgid "SECTION:<name>" +msgstr "SECTION:<namn>" + +#. (itstool) path: listitem/para +#: C/index.docbook:951 +msgid "" +"The name links the section documentation to the respective part in the " +"<package>-sections.txt file. The name given here " +"should match the <FILE> tag in the <package>-sections." +"txt file." +msgstr "" +"Namnet länkar till avsnittsdokumentationen för respektive del i filen " +"<paket>-sections.txt. Namnet som anges här bör " +"matcha taggen <FILE> i filen <paket>-sections.txt." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:960 +msgid "@short_description" +msgstr "@short_description" + +#. (itstool) path: listitem/para +#: C/index.docbook:962 +msgid "" +"A one line description of the section, that later will appear after the " +"links in the TOC and at the top of the section page." +msgstr "" +"En enradsbeskrivning av avsnittet som senare kommer att visas efter länkar i " +"innehållsförteckningen och lägst upp på avsnittssidan." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:969 +msgid "@title" +msgstr "@title" + +#. (itstool) path: listitem/para +#: C/index.docbook:971 +msgid "" +"The section title defaults to <name> from the SECTION declaration. It " +"can be overridden with the @title field." +msgstr "" +"Avsnittstiteln är som standard <namn> från SECTION-deklarationen. Den " +"kan åsidosättas med fältet @title." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:978 +msgid "@section_id" +msgstr "@section_id" + +#. (itstool) path: listitem/para +#: C/index.docbook:980 +msgid "" +"Overrides the use of title as a section identifier. For GObjects the <" +"title> is used as a section_id and for other sections it is <" +"MODULE>-<title>." +msgstr "" +"Åsidosätter användningen av titeln som avsnittsidentifierare. För GObjects " +"används <title> som ett section_id och för andra avsnitt är det <" +"MODULE>-<title>." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:988 +msgid "@see_also" +msgstr "@see_also" + +#. (itstool) path: listitem/para +#: C/index.docbook:990 +msgid "A list of symbols that are related to this section." +msgstr "En lista över symboler som är relaterade till detta avsnitt." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:996 +msgid "@stability" +msgstr "@stability" + +#. (itstool) path: listitem/para +#: C/index.docbook:1003 +msgid "" +"Stable - The intention of a Stable interface is to enable arbitrary third " +"parties to develop applications to these interfaces, release them, and have " +"confidence that they will run on all minor releases of the product (after " +"the one in which the interface was introduced, and within the same major " +"release). Even at a major release, incompatible changes are expected to be " +"rare, and to have strong justifications." +msgstr "" +"Stable - Avsikten med ett stabilt gränssnitt är att möjliggöra för tredje " +"parter att utveckla program mot dessa gränssnitt, släppa dem och vara säkra " +"på att de kommer att köra på alla programfixversioner av produkten (efter " +"den i vilken gränssnittet introducerats, och inom samma huvudversion). Även " +"vid en ny huvudversion förväntas inkompatibla ändringar vara få och vara väl " +"motiverade." + +#. (itstool) path: listitem/para +#: C/index.docbook:1015 +msgid "" +"Unstable - Unstable interfaces are experimental or transitional. They are " +"typically used to give outside developers early access to new or rapidly " +"changing technology, or to provide an interim solution to a problem where a " +"more general solution is anticipated. No claims are made about either source " +"or binary compatibility from one minor release to the next." +msgstr "" +"Unstable - Instabila gränssnitt är experimentella eller i en övergångsfas. " +"De används typiskt för att ge utomstående utvecklare tidig tillgång till ny " +"eller snabbt föränderlig teknologi, eller för att tillhandahålla " +"provisoriska lösningar för ett problem där en mer generell lösning förutses. " +"Inga påståenden görs om endera källkods- eller binärkompatibilitet från en " +"programfixversion till nästa." + +#. (itstool) path: listitem/para +#: C/index.docbook:1027 +msgid "" +"Private - An interface that can be used within the GNOME stack itself, but " +"that is not documented for end-users. Such functions should only be used in " +"specified and documented ways." +msgstr "" +"Private - Ett gränssnitt som kan användas inom GNOME-stacken i sig, men som " +"inte dokumenterats för slutanvändare. Sådana funktioner bör endast användas " +"på angivna och dokumenterade sätt." + +#. (itstool) path: listitem/para +#: C/index.docbook:1036 +msgid "" +"Internal - An interface that is internal to a module and does not require " +"end-user documentation. Functions that are undocumented are assumed to be " +"Internal." +msgstr "" +"Internal - ett gränssnitt som är internt för en modul och inte behöver " +"slutanvändardokumentation. Funktioner som är odokumenterade förutsätts vara " +"interna." + +#. (itstool) path: listitem/para +#: C/index.docbook:998 +msgid "" +"An informal description of the stability level this API has. We recommend " +"the use of one of these terms: <_:itemizedlist-1/>" +msgstr "" +"En informell beskrivning över stabiliteten för detta API. Vi rekommenderar " +"att använda en av dessa termer: <_:itemizedlist-1/>" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1048 +msgid "@include" +msgstr "@include" + +#. (itstool) path: listitem/para +#: C/index.docbook:1050 +msgid "" +"The #include files to show in the section synopsis (a " +"comma separated list), overriding the global value from the section file or command line. This item is " +"optional." +msgstr "" +"#include-filerna som ska visas i avsnittssammanfattningen " +"(en kommaavgränsad lista), vilket åsidosätter det globala värdet från avsnittsfilen eller kommandoraden. " +"Detta objekt är valfritt." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1059 +msgid "@image" +msgstr "@image" + +#. (itstool) path: listitem/para +#: C/index.docbook:1061 +msgid "" +"The image to display at the top of the reference page for this section. This " +"will often be some sort of a diagram to illustrate the visual appearance of " +"a class or a diagram of its relationship to other classes. This item is " +"optional." +msgstr "" +"Bilden som ska visas längst upp på referenssidan för detta avsnitt. Detta " +"kommer ofta att vara någon form av diagram för att illustrera det visuella " +"utseendet för en klass eller ett diagram över dess relationer med andra " +"klasser. Detta objekt är valfritt." + +#. (itstool) path: tip/para +#: C/index.docbook:1072 +msgid "" +"To avoid unnecessary recompilation after doc-changes put the section docs " +"into the c-source where possible." +msgstr "" +"För att undvika onödig omkompilering efter dokumentationsändringar, placera " +"avsnittsdokumentationen i c-källkoden där möjligt." + +#. (itstool) path: sect1/title +#: C/index.docbook:1081 +msgid "Documenting symbols" +msgstr "Dokumentationssymboler" + +#. (itstool) path: sect1/para +#: C/index.docbook:1083 +msgid "" +"Each symbol (function, macro, struct, enum, signal and property) is " +"documented in a separate block. The block is best placed close to the " +"definition of the symbols so that it is easy to keep them in sync. Thus " +"functions are usually documented in the c-source and macros, structs and " +"enums in the header file." +msgstr "" +"Varje symbol (funktion, makro, struktur, uppräkning, signal och egenskap) är " +"dokumenterad i ett separat block. Blocket placeras bäst intill definitionen " +"av symbolerna så att det är enkelt att hålla dem synkroniserade. Därför " +"dokumenteras funktioner vanligtvis i c-källkoden och makron, strukturer och " +"uppräkningar i huvudfilen." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1091 C/index.docbook:1157 +msgid "General tags" +msgstr "Generella taggar" + +#. (itstool) path: sect2/para +#: C/index.docbook:1093 +msgid "" +"You can add versioning information to all documentation elements to tell " +"when an API was introduced, or when it was deprecated." +msgstr "" +"Du kan lägga till versioneringsinformation i alla dokumentationselement för " +"att berätta när ett API introducerats eller blev föråldrat." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1098 +msgid "Versioning Tags" +msgstr "Versioneringstaggar" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1099 +msgid "Since:" +msgstr "Since:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1101 +msgid "Description since which version of the code the API is available." +msgstr "" +"Beskrivning över från och med vilken version av koden som API:t är " +"tillgängligt." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1106 +msgid "Deprecated:" +msgstr "Deprecated:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1108 +msgid "" +"Paragraph denoting that this function should no be used anymore. The " +"description should point the reader to the new API." +msgstr "" +"Stycke som betecknar att denna funktion inte bör användas längre. " +"Beskrivningen bör peka läsaren vidare till det nya API:t." + +#. (itstool) path: sect2/para +#: C/index.docbook:1116 +msgid "" +"You can also add stability information to all documentation elements to " +"indicate whether API stability is guaranteed for them for all future minor " +"releases of the project." +msgstr "" +"Du kan också lägga till stabilitetsinformation för alla " +"dokumentationselement för att indikera huruvida API-stabilitet är garanterad " +"för dem för alla framtida programfix-versioner av projektet." + +#. (itstool) path: sect2/para +#: C/index.docbook:1122 +msgid "" +"The default stability level for all documentation elements can be set by " +"passing the argument to " +"gtkdoc-mkdb with one of the values below." +msgstr "" +"Standardvärdet för stabilitetsnivån för alla dokumentations element kan " +"ställas in genom att ange argumentet " +"till gtkdoc-mkdb med endera av värdena nedan." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1128 +msgid "Stability Tags" +msgstr "Stabilitetstaggar" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1129 +msgid "Stability: Stable" +msgstr "Stability: Stable" + +#. (itstool) path: listitem/para +#: C/index.docbook:1131 +msgid "" +"Mark the element as stable. This is for public APIs which are guaranteed to " +"remain stable for all future minor releases of the project." +msgstr "" +"Markera elementet som stabilt. Detta är för publika API:er som är " +"garanterade att hållas stabila i alla framtida programfix-versioner av " +"projektet." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1138 +msgid "Stability: Unstable" +msgstr "Stability: Unstable" + +#. (itstool) path: listitem/para +#: C/index.docbook:1140 +msgid "" +"Mark the element as unstable. This is for public APIs which are released as " +"a preview before being stabilised." +msgstr "" +"Markera elementet som instabilt. Detta är för publika API:er som är släppta " +"på förhand innan de blivit stabiliserade." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1146 +msgid "Stability: Private" +msgstr "Stability: Private" + +#. (itstool) path: listitem/para +#: C/index.docbook:1148 +msgid "" +"Mark the element as private. This is for interfaces which can be used by " +"tightly coupled modules, but not by arbitrary third parties." +msgstr "" +"Markera element som privat. Detta är avsett för gränssnitt som kan användas " +"av tätt sammankopplade moduler, men inte av godtyckliga tredje parter." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1158 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: @foo's bar\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Use foo_baz_get_bar() instead.\n" +" */\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" +msgstr "" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: någon foo\n" +" *\n" +" * Hämtar bar från @foo.\n" +" *\n" +" * Returns: bar från @foo\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Använd foo_baz_get_bar() istället.\n" +" */\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"…\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1178 C/index.docbook:1188 +msgid "Annotations" +msgstr "Noteringar" + +# sebras: was it called verkygstips? verktygshjälp? I forget... +#. (itstool) path: sect2/para +#: C/index.docbook:1180 +msgid "" +"Documentation blocks can contain annotation-tags. These tags will be " +"rendered with tooltips describing their meaning. The tags are used by " +"gobject-introspection to generate language bindings. A detailed list of the " +"supported tags can be found on the wiki." +msgstr "" +"Dokumentationsblock kan innehålla noteringstaggar. Dessa taggar kommer att " +"renderas som verktygstips som beskriver deras syfte. Taggarna används av " +"gobject-introspection för att generera språkbindningar. En detaljerad lista " +"över vilka taggar som stöds hittas på wikisidan." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1189 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * foo_get_bar: (annotation)\n" +" * @foo: (annotation): some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: (annotation): @foo's bar\n" +" */\n" +"...\n" +"/**\n" +" * foo_set_bar_using_the_frobnicator: (annotation) (another annotation)\n" +" * (and another annotation)\n" +" * @foo: (annotation) (another annotation): some foo\n" +" *\n" +" * Sets bar on @foo.\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * foo_get_bar: (notering)\n" +" * @foo: (notering): någon foo\n" +" *\n" +" * Hämtar bar från @foo.\n" +" *\n" +" * Returns: (notering): bar från @foo\n" +" */\n" +"...\n" +"/**\n" +" * foo_set_bar_using_the_frobnicator: (notering) (an annan notering)\n" +" * (ytterligare en annan notering)\n" +" * @foo: (notering) (en annan notering): någon foo\n" +" *\n" +" * Ställer in bar i @foo.\n" +" */\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1210 C/index.docbook:1239 +msgid "Function comment block" +msgstr "Kommentarsblock för funktioner" + +#. (itstool) path: listitem/para +#: C/index.docbook:1216 +msgid "" +"Document whether returned objects, lists, strings, etc, should be freed/" +"unrefed/released." +msgstr "" +"Dokumentera huruvida returnerade objekt, listor, strängar, etc. bör frigöras/" +"avrefereras/släppas." + +#. (itstool) path: listitem/para +#: C/index.docbook:1222 +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "" +"Dokumentera huruvida parametrar tillåts vara NULL och vad som händer om de " +"är NULL." + +#. (itstool) path: listitem/para +#: C/index.docbook:1227 +msgid "" +"Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "Nämn intressanta förvillkor och eftervillkor där lämpligt." + +#. (itstool) path: sect2/para +#: C/index.docbook:1212 C/index.docbook:1298 +msgid "Please remember to: <_:itemizedlist-1/>" +msgstr "Kom ihåg att: <_:itemizedlist-1/>" + +# sebras: Gtk-doc? GTK-Doc? gtk-doc? macros and functions? +#. (itstool) path: sect2/para +#: C/index.docbook:1234 +msgid "" +"Gtk-doc assumes all symbols (macros, functions) starting with '_' are " +"private. They are treated like static functions." +msgstr "" +"Gtk-doc förutsätter att alla symboler (makron, funktioner) som börjar med " +"”_” är privata. De behandlas på samma sätt som statiska funktioner." + +# sebras: how to translate highlight? +#. (itstool) path: example/programlisting +#: C/index.docbook:1240 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * function_name:\n" +" * @par1: description of parameter 1. These can extend over more than\n" +" * one line.\n" +" * @par2: description of parameter 2\n" +" * @...: a %NULL-terminated list of bars\n" +" *\n" +" * The function description goes here. You can use @par1 to refer to parameters\n" +" * so that they are highlighted in the output. You can also use %constant\n" +" * for constants, function_name2() for functions and #GtkWidget for links to\n" +" * other declarations (which may be documented elsewhere).\n" +" *\n" +" * Returns: an integer.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Use other_function() instead.\n" +" */\n" +msgstr "" +"\n" +"/**\n" +" * funktionsnamn:\n" +" * @par1: beskrivning av parameter 1. Dessa kan sträcka sig\n" +" * över mer än en rad.\n" +" * @par2: beskrivning av parameter 2\n" +" * @...: en %NULL-terminerad lista av flera bar\n" +" *\n" +" * Funktionsbeskrivningen ska vara här. Du kan använda @par1 för att\n" +" * referera till parametrar så att de färgmarkeras i utdata. Du kan också\n" +" * använda %konstant för konstanter, funktionsnamn2() för funktioner och\n" +" * #GtkWidget för länkar till andra deklarationer (vilka kan vara dokumenterade\n" +" * på annat håll).\n" +" *\n" +" * Returns: ett heltal.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Använd annan_funktion() istället.\n" +" */\n" + +#. (itstool) path: variablelist/title +#: C/index.docbook:1261 +msgid "Function tags" +msgstr "Funktions-taggar" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1262 C/index.docbook:1469 +msgid "Returns:" +msgstr "Returns:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1264 +msgid "Paragraph describing the returned result." +msgstr "Stycke som beskriver det returnerade resultatet." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1269 +msgid "@...:" +msgstr "@...:" + +# sebras: variadic? +#. (itstool) path: listitem/para +#: C/index.docbook:1271 +msgid "" +"In case the function has variadic arguments, you should use this tag " +"(@Varargs: does also work for historic reasons)." +msgstr "" +"Om funktionen har variadiska argument bör du använda denna tagg (@Varargs: " +"fungerar också på grund av historiska skäl)." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1281 C/index.docbook:1283 +msgid "Property comment block" +msgstr "Kommentarsblock för egenskaper" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1284 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * SomeWidget:some-property:\n" +" *\n" +" * Here you can document a property.\n" +" */\n" +"g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);\n" +msgstr "" +"\n" +"/**\n" +" * EnKomponent:en-egenskap:\n" +" *\n" +" * Här kan du dokumentera en egenskap.\n" +" */\n" +"g_object_class_install_property (object_class, PROP_EN_EGENSKAP, …);\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1296 C/index.docbook:1315 +msgid "Signal comment block" +msgstr "Kommentarsblock för signaler" + +#. (itstool) path: listitem/para +#: C/index.docbook:1302 +msgid "" +"Document when the signal is emitted and whether it is emitted before or " +"after other signals." +msgstr "" +"Dokumentera när en signal sänds ut och huruvida den sänds ut före eller " +"efter andra signaler." + +#. (itstool) path: listitem/para +#: C/index.docbook:1308 +msgid "Document what an application might do in the signal handler." +msgstr "Dokumentera vad ett program kan göra i signalhanteraren." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1316 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * FooWidget::foobarized:\n" +" * @widget: the widget that received the signal\n" +" * @foo: some foo\n" +" * @bar: some bar\n" +" *\n" +" * The ::foobarized signal is emitted each time someone tries to foobarize @widget.\n" +" */\n" +"foo_signals[FOOBARIZED] =\n" +" g_signal_new (\"foobarized\",\n" +" ...\n" +msgstr "" +"\n" +"/**\n" +" * FooWidget::foobariserad:\n" +" * @widget: komponenten som erhåller signalen\n" +" * @foo: någon foo\n" +" * @bar: någon bar\n" +" *\n" +" * Signalen ::foobariserad sänds ut varje gång någon försöker att foobarisera @widget.\n" +" */\n" +"foo_signals[FOOBARIZE] =\n" +" g_signal_new (\"foobariserad\",\n" +" ...\n" + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1333 C/index.docbook:1334 +msgid "Struct comment block" +msgstr "Kommentarsblock för strukturer" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1335 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: some #gboolean\n" +" *\n" +" * This is the best widget, ever.\n" +" */\n" +"typedef struct _FooWidget {\n" +" GtkWidget parent_instance;\n" +"\n" +" gboolean bar;\n" +"} FooWidget;\n" +msgstr "" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: någon #gboolean\n" +" *\n" +" * Detta är den bästa komponenten någonsin.\n" +" */\n" +"typedef struct _FooWidget {\n" +" GtkWidget parent_instance;\n" +"\n" +" gboolean bar;\n" +"} FooWidget;\n" + +#. (itstool) path: sect2/para +#: C/index.docbook:1350 +msgid "" +"Use /*< private >*/ before the private struct fields you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"Använd/*< private >*/ före privata strukturfält som du " +"vill gömma. Använd /*< public >*/ för det omvända " +"beteendet." + +#. (itstool) path: sect2/para +#: C/index.docbook:1356 +msgid "" +"If the first field is \"g_iface\", \"parent_instance\" or \"parent_class\" " +"it will be considered private automatically and doesn't need to be mentioned " +"in the comment block." +msgstr "" +"Om det första fältet är ”g_iface”, ”parent_instance” eller ”parent_class” " +"kommer det att anses vara privat automatiskt och behöver inte nämnas i " +"kommentarsblocket." + +#. (itstool) path: sect2/para +#: C/index.docbook:1362 +msgid "" +"Struct comment blocks can also be used for GObjects and GObjectClasses. It " +"is usually a good idea to add a comment block for a class, if it has " +"vmethods (as this is how they can be documented). For the GObject itself one " +"can use the related section docs, having a separate block for the instance " +"struct would be useful if the instance has public fields. One disadvantage " +"here is that this creates two index entries of the same name (the structure " +"and the section)." +msgstr "" +"Kommentarsblock för strukturer kan också användas för GObject och " +"GObjectClass. Det är vanligtvis en bra idé att lägga till ett " +"kommentarsblock för en klass om den har virtuella metoder (då detta är " +"sättet på vilket de kan dokumenteras). För GObject i sig kan man använda den " +"relaterade avsnittsdokumentationen, och ha ett separat block för varje " +"instansstruktur vore användbart om instansen har publika fält. En nackdel " +"här är att det skapar två indexposter med samma namn (strukturen och " +"avsnittet)." + +#. (itstool) path: sect2/title +#. (itstool) path: example/title +#: C/index.docbook:1374 C/index.docbook:1375 +msgid "Enum comment block" +msgstr "Kommentarsblock för uppräkningar" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1376 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: something foo\n" +" * @SOMETHING_BAR: something bar\n" +" *\n" +" * Enum values used for the thing, to specify the thing.\n" +" */\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" +msgstr "" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: någonting foo\n" +" * @SOMETHING_BAR: någonting bar\n" +" *\n" +" * Uppräkningsvärden som används för saken, för att specificera saken.\n" +" */\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" + +#. (itstool) path: sect2/para +#: C/index.docbook:1393 +msgid "" +"Use /*< private >*/ before the private enum values you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"Använd /*< private >*/ före privata uppräkningsvärden som " +"du vill gömma. Använd /*< public >*/ för det omvända " +"beteendet." + +#. (itstool) path: sect1/title +#: C/index.docbook:1404 +msgid "Inline program documentation" +msgstr "Infogad programdokumentation" + +# sebras: how to translate inline? +#. (itstool) path: sect1/para +#: C/index.docbook:1405 +msgid "" +"You can document programs and their commandline interface using inline " +"documentation." +msgstr "" +"Du kan dokumentera program och deras kommandoradsgränssnitt med infogad " +"dokumentation." + +#. (itstool) path: variablelist/title +#: C/index.docbook:1411 +msgid "Tags" +msgstr "Taggar" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1413 +msgid "PROGRAM" +msgstr "PROGRAM" + +#. (itstool) path: listitem/para +#: C/index.docbook:1416 +msgid "Defines the start of a program documentation." +msgstr "Definierar början av programdokumentationen." + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1423 +msgid "@short_description:" +msgstr "@short_description:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1425 +msgid "Defines a short description of the program. (Optional)" +msgstr "Definierar en kort beskrivning av programmet. (Valfritt)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1432 +msgid "@synopsis:" +msgstr "@synopsis:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1434 +msgid "" +"Defines the arguments, or list of arguments that the program can take. " +"(Optional)" +msgstr "" +"Definierar argumenten, eller en lista av argument som programmet kan ta. " +"(Valfritt)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1442 +msgid "@see_also:" +msgstr "@see_also:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1444 +msgid "See Also manual page section. (Optional)" +msgstr "Se vidare i manualavsnitt. (Valfritt)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1451 +msgid "@arg:" +msgstr "@arg:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1453 +msgid "Argument(s) passed to the program and their description. (Optional)" +msgstr "" +"Argument som skickas vidare till programmet och deras beskrivningar. " +"(Valfritt)" + +#. (itstool) path: varlistentry/term +#: C/index.docbook:1460 +msgid "Description:" +msgstr "Beskrivning:" + +#. (itstool) path: listitem/para +#: C/index.docbook:1462 +msgid "A longer description of the program." +msgstr "En längre beskrivning av programmet." + +#. (itstool) path: listitem/para +#: C/index.docbook:1471 +msgid "Specificy what value(s) the program returns. (Optional)" +msgstr "Ange vilka värden programmet returnerar. (Valfritt)" + +#. (itstool) path: sect2/title +#: C/index.docbook:1480 +msgid "Example of program documentation." +msgstr "Exempel på programdokumentation." + +#. (itstool) path: example/title +#: C/index.docbook:1481 +msgid "Program documentation block" +msgstr "Dokumentationsblock för program" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1482 +#, no-wrap +msgid "" +"\n" +"/**\n" +" * PROGRAM:test-program\n" +" * @short_description: A test program\n" +" * @synopsis: test-program [*OPTIONS*...] --arg1 *arg* *FILE*\n" +" * @see_also: test(1)\n" +" * @--arg1 *arg*: set arg1 to *arg*\n" +" * @--arg2 *arg*: set arg2 to *arg*\n" +" * @-v, --version: Print the version number\n" +" * @-h, --help: Print the help message\n" +" *\n" +" * Long description of program.\n" +" *\n" +" * Returns: Zero on success, non-zero on failure\n" +" */\n" +"int main(int argc, char *argv[])\n" +"{\n" +"\treturn 0;\n" +"}\n" +msgstr "" +"\n" +"/**\n" +" * PROGRAM:test-program\n" +" * @short_description: Ett testprogram\n" +" * @synopsis: test-program [*FLAGGOR*...] --arg1 *arg* *FIL*\n" +" * @see_also: test(1)\n" +" * @--arg1 *arg*: ställ in arg1 på *arg*\n" +" * @--arg2 *arg*: ställ in arg2 på *arg*\n" +" * @-v, --version: Skriv ut versionsinformation\n" +" * @-h, --help: Skriv ut hjälpmeddelandet\n" +" *\n" +" * En längre beskrivning av programmet.\n" +" *\n" +" * Returns: Noll vid framgång, icke-noll vid fel\n" +" */\n" +"int main(int argc, char *argv[])\n" +"{\n" +"\treturn 0;\n" +"}\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:1508 +msgid "Useful DocBook tags" +msgstr "Användbara DocBook-taggar" + +#. (itstool) path: sect1/para +#: C/index.docbook:1510 +msgid "" +"Here are some DocBook tags which are most useful when documenting the code." +msgstr "" +"Här är några DocBook-taggar som är användbara när man dokumenterar koden." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1519 +#, no-wrap +msgid "" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hash Tables</link>\n" +msgstr "" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hashtabeller</link>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1515 +msgid "" +"To link to another section in the GTK docs: <_:informalexample-1/> The " +"linkend is the SGML/XML id on the top item of the page you want to link to. " +"For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and " +"then the page title (\"Hash Tables\"). For widgets it is just the class " +"name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" +"För att länka till ett annat avsnitt i GTK-dokumentationen: <_:" +"informalexample-1/> Länkslutet är XGML/XML-id:t för toppnivåobjektet på " +"sidan du vill länka till. För de flesta sidorna är detta för närvarande " +"delen (”gtk”, ”gdk”, ”glib”) och sedan sidans titel (”Hashtabeller”). För " +"komponenter är detta helt enkelt klassnamnet. Blanksteg och understreck " +"konverteras till ”-” för att överensstämma med SGML/XML." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1532 +#, no-wrap +msgid "" +"\n" +"<function>...</function>\n" +msgstr "" +"\n" +"<function>…</function>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1529 +msgid "" +"To refer to an external function, e.g. a standard C function: <_:" +"informalexample-1/>" +msgstr "" +"För att referera till en extern funktion, t.ex. en standardfunktion i C: <_:" +"informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1541 +#, no-wrap +msgid "" +"\n" +"<example>\n" +" <title>Using a GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" +msgstr "" +"\n" +"<example>\n" +" <title>Att använda en hashtabell.</title>\n" +" <programlisting>\n" +" …\n" +" </programlisting>\n" +"</example>\n" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1552 +#, no-wrap +msgid "" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" +msgstr "" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" …\n" +" </programlisting>\n" +"</informalexample>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1538 +msgid "" +"To include example code: <_:informalexample-1/> or possibly this, for very " +"short code fragments which don't need a title: <_:informalexample-2/> For " +"the latter GTK-Doc also supports an abbreviation: |[ ... ]|" +msgstr "" +"För att inkludera exempelkod: <_:informalexample-1/> eller möjligen " +"följande, för väldigt korta kodfragment som inte behöver en titel: <_:" +"informalexample-2/> För det senare fallet har GTK-Doc också stöd för " +"förkortningen: |[ … ]|" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1571 +#, no-wrap +msgid "" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" +msgstr "" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" …\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" …\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1568 +msgid "To include bulleted lists: <_:informalexample-1/>" +msgstr "För att inkludera punktlistor: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1591 +#, no-wrap +msgid "" +"\n" +"<note>\n" +" <para>\n" +" Make sure you free the data after use.\n" +" </para>\n" +"</note>\n" +msgstr "" +"\n" +"<note>\n" +" <para>\n" +" Säkerställ att du frigjort data efter användning.\n" +" </para>\n" +"</note>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1588 +msgid "" +"To include a note which stands out from the text: <_:informalexample-1/>" +msgstr "" +"För att inkludera en not som skiljer sig från texten: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1604 +#, no-wrap +msgid "" +"\n" +"<type>unsigned char</type>\n" +msgstr "" +"\n" +"<type>unsigned char</type>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1601 +msgid "To refer to a type: <_:informalexample-1/>" +msgstr "För att refera till en typ: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1613 +#, no-wrap +msgid "" +"\n" +"<structname>XFontStruct</structname>\n" +msgstr "" +"\n" +"<structname>XFontStruct</structname>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1610 +msgid "" +"To refer to an external structure (not one described in the GTK docs): <_:" +"informalexample-1/>" +msgstr "" +"För att referera till en extern struktur (som inte beskrivs i GTK-" +"dokumentationen): <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1622 +#, no-wrap +msgid "" +"\n" +"<structfield>len</structfield>\n" +msgstr "" +"\n" +"<structfield>len</structfield>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1619 +msgid "To refer to a field of a structure: <_:informalexample-1/>" +msgstr "För att referera till ett fält för en struktur: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1631 +#, no-wrap +msgid "" +"\n" +"<classname>GtkWidget</classname>\n" +msgstr "" +"\n" +"<classname>GtkWidget</classname>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1628 +msgid "" +"To refer to a class name, we could possibly use: <_:informalexample-1/> but " +"you'll probably be using #GtkWidget instead (to automatically create a link " +"to the GtkWidget page - see the " +"abbreviations)." +msgstr "" +"För att referera till ett klassnamn kan vi möjligen använda: <_:" +"informalexample-1/> men du kommer troligt att använda #GtkWidget istället " +"(för att automatiskt skapa en länk till GtkWidget-sidan - se förkortningarna)." + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1642 +#, no-wrap +msgid "" +"\n" +"<emphasis>This is important</emphasis>\n" +msgstr "" +"\n" +"<emphasis>Detta är viktigt</emphasis>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1639 +msgid "To emphasize text: <_:informalexample-1/>" +msgstr "För att betona text: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1651 +#, no-wrap +msgid "" +"\n" +"<filename>/home/user/documents</filename>\n" +msgstr "" +"\n" +"<filename>/home/användare/dokument</filename>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1648 +msgid "For filenames use: <_:informalexample-1/>" +msgstr "För filnamn använd: <_:informalexample-1/>" + +#. (itstool) path: informalexample/programlisting +#: C/index.docbook:1660 +#, no-wrap +msgid "" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" +msgstr "" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1657 +msgid "To refer to keys use: <_:informalexample-1/>" +msgstr "För att referera till tangenter använd: <_:informalexample-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:1670 +msgid "Filling the extra files" +msgstr "Fylla i de extra filerna" + +#. (itstool) path: chapter/para +#: C/index.docbook:1672 +msgid "" +"There are a couple of extra files, that need to be maintained along with the " +"inline source code comments: <package>.types, " +"<package>-docs.xml (in the past .sgml), " +"<package>-sections.txt." +msgstr "" +"Det finns ett antal extra filer som behöver underhållas tillsammans med de " +"infogade källkodskommentarerna: <paket>.types, " +"<paket>-docs.xml (tidigare .sgml), <" +"paket>-sections.txt." + +#. (itstool) path: sect1/title +#: C/index.docbook:1681 +msgid "Editing the types file" +msgstr "Redigera typfilen" + +#. (itstool) path: sect1/para +#: C/index.docbook:1683 +msgid "" +"If your library or application includes GObjects, you want their signals, " +"arguments/parameters and position in the hierarchy to be shown in the " +"documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <" +"package>.types file." +msgstr "" +"Om ditt bibliotek eller program inkluderar GObject så kommer du att vilja " +"att deras signaler, argument/parametrar och position i hierarkin visas i " +"dokumentationen. Allt du behöver göra är att lista xxx_get_type-funktionerna tillsammans med deras huvudfil i filen <" +"package>.types." + +#. (itstool) path: example/title +#: C/index.docbook:1692 +msgid "Example types file snippet" +msgstr "Exempel på typfilsnutt" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1693 +#, no-wrap +msgid "" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" +msgstr "" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1704 +msgid "" +"Since GTK-Doc 1.8 gtkdoc-scan can generate this " +"list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in " +"Makefile.am. If you use this approach you should not " +"dist the types file nor have it under version control." +msgstr "" +"Sedan GTK-Doc 1.8 kan gtkdoc-scan generera denna " +"lista åt dig. Lägg bara till ”--rebuild-types” i SCAN_OPTIONS i " +"Makefile.am. Om du använder detta tillvägagångssätt bör " +"du inte distribuera typfilen eller versionshantera den." + +#. (itstool) path: sect1/title +#: C/index.docbook:1713 +msgid "Editing the master document" +msgstr "Redigera huvuddokumentet" + +#. (itstool) path: sect1/para +#: C/index.docbook:1715 +msgid "" +"GTK-Doc produces documentation in DocBook SGML/XML. When processing the " +"inline source comments, the GTK-Doc tools generate one documentation page " +"per class or module as a separate file. The master document includes them " +"and place them in an order." +msgstr "" +"GTK-Doc producerar dokumentation i DocBook SGML/XML. När infogade " +"källkodskommentarer behandlas genererar GTK-Doc en dokumentationssida per " +"klass eller modul som en separat fil. Huvuddokumentet inkluderar dem och " +"placerar dem i en ordning." + +# sebras: Its -> it's +#. (itstool) path: sect1/para +#: C/index.docbook:1722 +msgid "" +"While GTK-Doc creates a template master document for you, later runs will " +"not touch it again. This means that one can freely structure the " +"documentation. That includes grouping pages and adding extra pages. GTK-Doc " +"has now a test suite, where also the master-document is recreated from " +"scratch. Its a good idea to look at this from time to time to see if there " +"are some new goodies introduced there." +msgstr "" +"Även om GTK-Doc skapar en mall för huvuddokumentet åt dig kommer senare " +"körningar inte att röra det igen. Detta innebär att man är fri att " +"strukturera om dokumentationen. Detta inkluderar att gruppera sidor och " +"lägga till extra sidor. GTK-Doc har numera en testsvit där också " +"huvuddokumentet återskapas från grunden. Det är en bra idé att titta på " +"detta då och då för att se om några nya godsaker införts där." + +# sebras: for -> from Apart -> together/embedded... +#. (itstool) path: tip/para +#: C/index.docbook:1732 +msgid "" +"Do not create tutorials as extra documents. Just write extra chapters. The " +"benefit of directly embedding the tutorial for your library into the API " +"documentation is that it is easy to link for the tutorial to symbol " +"documentation. Apart chances are higher that the tutorial gets updates along " +"with the library." +msgstr "" +"Skapa inte handledningar som extra dokument. Skriv bara extra kapitel. " +"Fördelen med att bädda in handledningen direkt i ditt biblioteks " +"gränssnittsdokumentation är att det är enkelt att länka från handledningen " +"till symboldokumentationen. Inbäddad är det större chans att handledningen " +"blir uppdaterad tillsammans med biblioteket." + +#. (itstool) path: sect1/para +#: C/index.docbook:1741 +msgid "" +"So what are the things to change inside the master document? For a start is " +"only a little. There are some placeholders (text in square brackets) there " +"which you should take care of." +msgstr "" +"Så vilka saker ska ändras i huvuddokumentet? I början är det väldigt lite. " +"Det finns en del platshållare (text i hakparenteser) som du bör ta hand om." + +#. (itstool) path: example/title +#: C/index.docbook:1748 +msgid "Master document header" +msgstr "Huvuddokumentets huvud" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1749 +#, no-wrap +msgid "" +"\n" +"<bookinfo>\n" +" <title>MODULENAME Reference Manual</title>\n" +" <releaseinfo>\n" +" for MODULENAME [VERSION]\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULENAME/index.html\">http://[SERVER]/MODULENAME/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insert title here]</title>\n" +msgstr "" +"\n" +"<bookinfo>\n" +" <title>MODULNAMN handbok</title>\n" +" <releaseinfo>\n" +" för MODULNAMN [VERSION]\n" +" Den senaste versionen av detta dokument kan hittas på nätet på\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULNAMN/index.html\">http://[SERVER]/MODULNAMN/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Infoga titel här]</title>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1765 +msgid "" +"In addition a few option elements are created in commented form. You can " +"review these and enable them as you like." +msgstr "" +"Dessutom finns det ett antal valfria element som skapas i kommenterad form. " +"Du kan granska dessa och aktivera dem enligt dina egna önskemål." + +#. (itstool) path: example/title +#: C/index.docbook:1771 +msgid "Optional part in the master document" +msgstr "Valfri del i huvuddokumentet" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1772 +#, no-wrap +msgid "" +"\n" +" <!-- enable this when you use gobject introspection annotations\n" +" <xi:include href=\"xml/annotation-glossary.xml\"><xi:fallback /></xi:include>\n" +" -->\n" +msgstr "" +"\n" +" <!-- aktivera detta om du vill använda gobject introspection-noteringar\n" +" <xi:include href=\"xml/annotation-glossary.xml\"><xi:fallback /></xi:include>\n" +" -->\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1780 +msgid "" +"Finally you need to add new section whenever you introduce one. The gtkdoc-check tool will remind " +"you of newly generated xml files that are not yet included into the doc." +msgstr "" +"Slutligen behöver du lägga till ett nytt avsnitt när du infogar det. " +"Verktyget gtkdoc-check " +"kommer att påminna dig om nyligen genererade xml-filer som ännu inte " +"infogats i dokumentationen." + +#. (itstool) path: example/title +#: C/index.docbook:1788 C/index.docbook:1823 +msgid "Including generated sections" +msgstr "Inkludera genererade avsnitt" + +#. (itstool) path: example/programlisting +#: C/index.docbook:1789 +#, no-wrap +msgid "" +"\n" +" <chapter>\n" +" <title>my library</title>\n" +" <xi:include href=\"xml/object.xml\"/>\n" +" ...\n" +msgstr "" +"\n" +" <chapter>\n" +" <title>mitt bibliotek</title>\n" +" <xi:include href=\"xml/object.xml\"/>\n" +" ...\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:1801 +msgid "Editing the section file" +msgstr "Redigera avsnittsfilen" + +#. (itstool) path: sect1/para +#: C/index.docbook:1803 +msgid "" +"The section file is used to organise the documentation output by GTK-Doc. " +"Here one specifies which symbol belongs to which module or class and control " +"the visibility (public or private)." +msgstr "" +"Avsnittsfilen används för att organisera dokumentationsutdata från GTK-Doc. " +"Här kan man ange vilken symbol som hör till vilken modul eller klass och " +"styra synligheten (publik eller privat)." + +#. (itstool) path: sect1/para +#: C/index.docbook:1809 +msgid "" +"The section file is a plain text file with tags delimiting sections. Blank " +"lines are ignored and lines starting with a '#' are treated as comment lines." +msgstr "" +"Avsnittsfilen är en vanlig textfil med taggar som avgränsar avsnitt. " +"Blankrader ignoreras och rader som börjar med ett ”#” behandlas som " +"kommentarsrader." + +#. (itstool) path: note/para +#: C/index.docbook:1816 +msgid "" +"While the tags make the file look like xml, it is not. Please do not close " +"tags like <SUBSECTION>." +msgstr "" +"Även om taggarna får filen att se ut som xml, är det inte det. Avsluta inte " +"taggar så som <SUBSECTION>." + +#. (itstool) path: example/programlisting +#: C/index.docbook:1824 +#, no-wrap +msgid "" +"\n" +"<INCLUDE>libmeep/meep.h</INCLUDE>\n" +"\n" +"<SECTION>\n" +"<FILE>meepapp</FILE>\n" +"<TITLE>MeepApp</TITLE>\n" +"MeepApp\n" +"<SUBSECTION Standard>\n" +"MEEP_APP\n" +"...\n" +"MeepAppClass\n" +"meep_app_get_type\n" +"</SECTION>\n" +msgstr "" +"\n" +"<INCLUDE>libmeep/meep.h</INCLUDE>\n" +"\n" +"<SECTION>\n" +"<FILE>meepapp</FILE>\n" +"<TITLE>MeepApp</TITLE>\n" +"MeepApp\n" +"<SUBSECTION Standard>\n" +"MEEP_APP\n" +"...\n" +"MeepAppClass\n" +"meep_app_get_type\n" +"</SECTION>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:1841 +msgid "" +"The <FILE> ... </FILE> tag is used to specify the file name, " +"without any suffix. For example, using '<FILE>gnome-config</" +"FILE>' will result in the section declarations being output in the " +"template file tmpl/gnome-config.sgml, which will be " +"converted into the DocBook XML file xml/gnome-config.sgml or the DocBook XML file xml/gnome-config.xml. " +"(The name of the HTML file is based on the module name and the section " +"title, or for GObjects it is based on the GObjects class name converted to " +"lower case)." +msgstr "" +"Taggen <FILE> … </FILE> används för att ange filnamnet, utan " +"något suffix. Om man t.ex. använder ”<FILE>gnome-config</FILE>” " +"blir resultatet att avsnittsdeklarationerna matas ut i mallfilen " +"tmpl/gnome-config.sgml, som kommer att konverteras till " +"DocBook XML-filen xml/gnome-config.sgml eller DocBook " +"XML-filen xml/gnome-config.xml. (Namnet på HTML-filen " +"baseras på modulnamnet och avsnittstiteln, för GObject baseras det på " +"klassnamnet för GObjectet konverterat till gemener)." + +#. (itstool) path: sect1/para +#: C/index.docbook:1853 +msgid "" +"The <TITLE> ... </TITLE> tag is used to specify the title of the " +"section. It is only useful before the templates (if used) are initially " +"created, since the title set in the template file overrides this. Also if " +"one uses SECTION comment in the sources, this is obsolete." +msgstr "" +"Taggen <TITLE> … </TITLE> används för att ange titeln på " +"avsnittet. Det är bara användbart före mallar skapas initialt (om de " +"används), eftersom titeln som ställs in i avsnittsfilen åsidosätter denna. " +"Vidare är detta föråldrat om man använder SECTIONS-kommentarer i källkoden." + +#. (itstool) path: sect1/para +#: C/index.docbook:1860 +msgid "" +"You can group items in the section by using the <SUBSECTION> tag. " +"Currently it outputs a blank line between subsections in the synopsis " +"section. You can also use <SUBSECTION Standard> for standard GObject " +"declarations (e.g. the functions like g_object_get_type and macros like " +"G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the " +"documentation. You can also use <SUBSECTION Private> for private " +"declarations which will not be output (it is a handy way to avoid warning " +"messages about unused declarations). If your library contains private types " +"which you don't want to appear in the object hierarchy and the list of " +"implemented or required interfaces, add them to a Private subsection. " +"Whether you would place GObject and GObjectClass like structs in public or " +"Standard section depends if they have public entries (variables, vmethods)." +msgstr "" +"Du kan gruppera objekt i avsnittet genom att använda taggen <" +"SUBSECTION>. För närvarande matas en blankrad ut mellan underavsnitt i " +"sammanfattningsavsnittet. Du kan också använda <SUBSECTION Standard> " +"för standard GObject-deklarationer (t.ex. funktioner så som " +"g_object_get_type och makron som G_OBJECT(), G_IS_OBJECT(), etc.). För " +"närvarande utelämnas dessa ur dokumentationen. Du kan också använda <" +"SUBSECTION Private> för privata deklarationer som inte kommer att matas " +"ut (det är ett bekvämt sätt att undvika varningsmeddelanden om oanvända " +"deklarationer). Om ditt bibliotek innehåller privata typer som du inte vill " +"ska dyka upp i objekthierarkin och i listan över implementerade eller krävda " +"gränssnitt, lägg till dem i ett privat avsnitt. Huruvida du vill placera " +"GObject och GObjectClass-liknande strukturer i publika eller standardavsnitt " +"beror på om de har publika poster (variabler, virtuella metoder)." + +#. (itstool) path: sect1/para +#: C/index.docbook:1879 +msgid "" +"You can also use <INCLUDE> ... </INCLUDE> to specify the " +"#include files which are shown in the synopsis sections. It contains a comma-" +"separate list of #include files, without the angle brackets. If you set it " +"outside of any sections, it acts for all sections until the end of the file. " +"If you set it within a section, it only applies to that section." +msgstr "" +"Du kan också använda <INCLUDE> ... </INCLUDE> för att ange " +"#include-filerna som ska visas i sammanfattningsavsnitten. Den innehåller en " +"kommaavgränsad lista av #include-filer, utan vinkelparenteser. Om du ställer " +"in det utanför några avsnitt kommer det att påverka alla avsnitt tills " +"slutet på filen. Om du ställer in det inom ett avsnitt kommer det bara att " +"påverka det avsnittet." + +#. (itstool) path: chapter/title +#: C/index.docbook:1893 +msgid "Controlling the result" +msgstr "Kontrollera resultatet" + +#. (itstool) path: chapter/para +#: C/index.docbook:1895 +msgid "" +"A GTK-Doc run generates report files inside the documentation directory. The " +"generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and " +"<package>-unused.txt. All those are plain text " +"files that can be viewed and postprocessed easily." +msgstr "" +"En GTK-Doc-körning genererar rapportfiler inuti dokumentationskatalogen. De " +"genererade filerna heter: <paket>-undocumented.txt, <paket>-undeclared.txt och " +"<paket>-unused.txt. Alla är vanliga textfiler och " +"kan visas eller efterbehandlas enkelt." + +#. (itstool) path: chapter/para +#: C/index.docbook:1904 +msgid "" +"The <package>-undocumented.txt file starts with " +"the documentation coverage summary. Below are two sections divided by blank " +"lines. The first section lists undocumented or incomplete symbols. The " +"second section does the same for section docs. Incomplete entries are those, " +"which have documentation, but where e.g. a new parameter has been added." +msgstr "" +"Filen <paket>-undocumented.txt inleds med en " +"sammanfattning över hur mycket dokumentation som skrivits. Under det finns " +"två avsnitt avgränsade av blankrader. Det första avsnittet listar " +"odokumenterade eller ofullständiga symboler. Det andra avsnittet gör " +"detsamma för avsnittsdokumentation. Ofullständiga poster är de som har " +"dokumentation, men där en ny parameter har lagts till." + +#. (itstool) path: chapter/para +#: C/index.docbook:1913 +msgid "" +"The <package>-undeclared.txt file lists symbols " +"given in the <package>-sections.txt but not found " +"in the sources. Check if they have been removed or if they are misspelled." +msgstr "" +"Filen <paket>-undeclared.txt listar symboler som " +"anges i <paket>-sections.txt men inte hittas i " +"källkoden. Kontrollera om de har tagits bort eller om de är felstavade." + +#. (itstool) path: chapter/para +#: C/index.docbook:1920 +msgid "" +"The <package>-unused.txt file lists symbol names, " +"where the GTK-Doc scanner has found documentation, but does not know where " +"to put it. This means that the symbol has not yet been added to the " +"<package>-sections.txt file." +msgstr "" +"Filen <paket>-unused.txt listar symbolnamn där " +"GTK-Doc-detektorn har hittat dokumentation men inte vet var den ska " +"placeras. Detta innebär att symbolen ännu inte har lagts till i filen " +"<package>-sections.txt." + +# sebras: ? +#. (itstool) path: tip/para +#: C/index.docbook:1928 +msgid "" +"Enable or add the line in Makefile." +"am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during " +"make check run." +msgstr "" +"Aktivera eller lägg till raden i " +"Makefile.am. Om åtminstone GTK-Doc 1.9 finns installerat kommer detta att " +"köra rimlighetskontroller under körning av make check." + +#. (itstool) path: chapter/para +#: C/index.docbook:1935 +msgid "" +"One can also look at the files produced by the source code scanner: " +"<package>-decl-list.txt and <" +"package>-decl.txt. The first one can be compared with the " +"section file if that is manually maintained. The second lists all " +"declarations from the headers. If a symbol is missing one could check if " +"this file contains it." +msgstr "" +"Man kan också titta på filerna som producerats av källkodsdetektorn: " +"<paket>-decl-list.txt och <paket>-" +"decl.txt. Den första kan jämföras med avsnittsfilen om den " +"underhålls manuellt. Den andra listar alla deklarationer från huvudena. Om " +"en symbol saknas bör man kontrollera om denna filen innehåller den." + +#. (itstool) path: chapter/para +#: C/index.docbook:1944 +msgid "" +"If the project is GObject based, one can also look into the files produced " +"by the object scanner: <package>.args.txt, " +"<package>.hierarchy.txt, <" +"package>.interfaces.txt, <package>." +"prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask GTK-Doc " +"to keep the intermediate scanner file for further analysis, by running it as " +"GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" +"Om projektet är GObject-baserat kan man också titta på filerna som " +"producerats av objekt-detektorn: <paket>.args.txt, <paket>.hierarchy.txt, <" +"paket>.interfaces.txt, <paket>.prerequisites." +"txt och <paket>.signals.txt. Om det " +"saknas symboler i någon av dem kan man be GTK-Doc att bibehålla de temporära " +"detektorfilerna för vidare analys, genom att köra det som " +"GTK_DOC_KEEP_INTERMEDIATE=1 make." + +#. (itstool) path: chapter/title +#: C/index.docbook:1959 +msgid "Modernizing the documentation" +msgstr "Modernisera dokumentationen" + +#. (itstool) path: chapter/para +#: C/index.docbook:1961 +msgid "" +"GTK-Doc has been around for quite some time. In this section we list new " +"features together with the version since when it is available." +msgstr "" +"GTK-Doc har funnits ett tag. I detta avsnitt listar vi nya funktioner " +"tillsammans med vilken version de gjordes tillgängliga." + +#. (itstool) path: sect1/title +#: C/index.docbook:1967 +msgid "GTK-Doc 1.9" +msgstr "GTK-Doc 1.9" + +#. (itstool) path: sect1/para +#: C/index.docbook:1969 +msgid "" +"When using xml instead of sgml, one can actually name the master document " +"<package>-docs.xml." +msgstr "" +"När man använder xml istället för sgml, kan man faktiskt kalla " +"huvuddokumentet <paket>-docs.xml." + +#. (itstool) path: sect1/para +#: C/index.docbook:1974 +msgid "" +"This version supports in " +"Makefile.am. When this is enabled, the <" +"package>-sections.txt is autogenerated and can be removed from " +"the vcs. This only works nicely for projects that have a very regular " +"structure (e.g. each .{c,h} pair will create new section). If one organize a " +"project close to that updating a manually maintained section file can be as " +"simple as running meld <package>-decl-list.txt <package>-" +"sections.txt." +msgstr "" +"Denna version har stöd för " +"i Makefile.am. När detta är aktiverat kommer " +"<paket>-sections.txt att autogenereras och kan " +"tas bort från versionshanteringssystemet. Detta fungerar bra för projekt som " +"har en väldigt standardiserad struktur (t.ex. kommer varje .{c,h}-par att " +"skapa ett nytt avsnitt). Om man organiserar ett projekt likt detta kommer " +"den manuella uppdateringen av en avsnittsfil att vara så enkelt som att köra " +"meld <paket>-decl-list.txt <paket>-sections.txt." + +#. (itstool) path: sect1/para +#: C/index.docbook:1985 +msgid "" +"Version 1.8 already introduced the syntax for documenting sections in the " +"sources instead of the separate files under tmpl. This version adds options to switch the whole doc module " +"to not use the extra tmpl build step at all, by using in configure.ac. If you don't have a " +"tmpl checked into your source " +"control system and haven't yet switched, just add the flag to " +"configure.ac and you are done." +msgstr "" +"Redan version 1.8 introducerade syntaxen för avsnittsdokumentation i " +"källkoden istället för separata filer under tmpl. Denna version lägger till flaggor för att kunna ställa " +"om hela dokumentationsmodulen till att inte använda det extra tmpl-" +"byggsteget alls, genom att använda i " +"configure.ac. Om du inte har tmpl incheckat i ditt versionshanteringssystem just nu och " +"inte har gått över än bara lägg till flaggan i configure.ac så är du klar." + +#. (itstool) path: sect1/title +#: C/index.docbook:1997 +msgid "GTK-Doc 1.10" +msgstr "GTK-Doc 1.10" + +#. (itstool) path: sect1/para +#: C/index.docbook:1999 +msgid "" +"This version supports in " +"Makefile.am. When this is enabled, the <" +"package>.types is autogenerated and can be removed from the " +"vcs. When using this feature it is important to also setup the " +"IGNORE_HFILES in Makefile.am for " +"code that is build conditionally." +msgstr "" +"Denna version har stöd för i " +"Makefile.am. När det är aktiverat kommer <" +"package>.types att autogenereras och kan tas bort från " +"versionshanteringssystemet. När denna funktion används är det viktigt att " +"också ställa in IGNORE_HFILES i Makefile.am för kod som bara byggs ibland." + +#. (itstool) path: sect1/title +#: C/index.docbook:2010 +msgid "GTK-Doc 1.16" +msgstr "GTK-Doc 1.16" + +#. (itstool) path: example/title +#: C/index.docbook:2016 +msgid "Enable gtkdoc-check" +msgstr "Aktivera gtkdoc-check" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2017 +#, no-wrap +msgid "" +"\n" +"if ENABLE_GTK_DOC\n" +"TESTS_ENVIRONMENT = \\\n" +" DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \\\n" +" SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)\n" +"TESTS = $(GTKDOC_CHECK)\n" +"endif\n" +msgstr "" +"\n" +"if ENABLE_GTK_DOC\n" +"TESTS_ENVIRONMENT = \\\n" +" DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \\\n" +" SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)\n" +"TESTS = $(GTKDOC_CHECK)\n" +"endif\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:2012 +msgid "" +"This version includes a new tool called gtkdoc-check. This tool can run a " +"set of sanity checks on your documentation. It is enabled by adding these " +"lines to the end of Makefile.am. <_:example-1/>" +msgstr "" +"Denna version har stöd för ett nytt verktyg som heter gtkdoc-check. Detta " +"verktyg kan köra en uppsättning kontroller på din dokumentation. Det " +"aktiveras genom att lägga till dessa raderna i slutet av Makefile." +"am. <_:example-1/>" + +#. (itstool) path: sect1/title +#: C/index.docbook:2030 +msgid "GTK-Doc 1.20" +msgstr "GTK-Doc 1.20" + +#. (itstool) path: sect1/para +#: C/index.docbook:2032 +msgid "" +"Version 1.18 brought some initial markdown support. Using markdown in doc " +"comments is less intrusive than writing docbook xml. This version improves a " +"lot on this and add a lot more styles. The section that explains the comment syntax has all the details." +msgstr "" +"Version 1.18 införde inledande stöd för markdown. Att använda markdown i " +"dokumentationskommentarer är mindre påträngande än att skriva docbook xml. " +"Denna version förbättrar detta väsentligt och lägger till många fler stilar. " +"Avsnittet som beskriver kommentarsyntax finnas alla detaljer." + +#. (itstool) path: sect1/title +#: C/index.docbook:2042 +msgid "GTK-Doc 1.25" +msgstr "GTK-Doc 1.25" + +#. (itstool) path: example/title +#: C/index.docbook:2052 +msgid "Use pre-generated entities" +msgstr "Att använda förgenererade entiteter" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2053 +#, no-wrap +msgid "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.3//EN\"\n" +" \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"\n" +"[\n" +" <!ENTITY % local.common.attrib \"xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'\">\n" +" <!ENTITY % gtkdocentities SYSTEM \"xml/gtkdocentities.ent\">\n" +" %gtkdocentities;\n" +"]>\n" +"<book id=\"index\" xmlns:xi=\"http://www.w3.org/2003/XInclude\">\n" +" <bookinfo>\n" +" <title>&package_name; Reference Manual</title>\n" +" <releaseinfo>\n" +" for &package_string;.\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/&package_name;/index.html\">http://[SERVER]/&package_name;/</ulink>.\n" +" </releaseinfo>\n" +" </bookinfo>\n" +msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.3//EN\"\n" +" \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"\n" +"[\n" +" <!ENTITY % local.common.attrib \"xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'\">\n" +" <!ENTITY % gtkdocentities SYSTEM \"xml/gtkdocentities.ent\">\n" +" %gtkdocentities;\n" +"]>\n" +"<book id=\"index\" xmlns:xi=\"http://www.w3.org/2003/XInclude\">\n" +" <bookinfo>\n" +" <title>&package_name; handbok</title>\n" +" <releaseinfo>\n" +" för &package_string;.\n" +" Den senaste versionen av detta dokument kan hittas på nätet på\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/&package_name;/index.html\">http://[SERVER]/&package_name;/</ulink>.\n" +" </releaseinfo>\n" +" </bookinfo>\n" + +#. (itstool) path: sect1/para +#: C/index.docbook:2044 +msgid "" +"The makefiles shipped with this version generate an entity file at " +"xml/gtkdocentities.ent, containing entities for e.g. " +"package_name and package_version. You can use this e.g. in the main xml file " +"to avoid hardcoding the version number. Below is an example that shows how " +"the entity file is included and how the entities are used. The entities can " +"also be used in all generated files, GTK-Doc will use the same xml header in " +"generated xml files. <_:example-1/>" +msgstr "" +"Makefilerna som skeppas med denna version genererar en entitetsfil vid namn " +"xml/gtkdocentities.ent som innehåller entiteter för t." +"ex. package_name och package_version. Du kan använda detta för att t.ex. i " +"filen main xml undvika att hårdkoda versionsnumret. Nedan finns ett exempel " +"som visar hur entitetsfilen inkluderas och hur entiteter används. " +"Entiteterna kan också användas i alla genererade filer, GTK-Doc kommer att " +"använda samma xml-huvud i genererade xml-filer. <_:example-1/>" + +#. (itstool) path: chapter/title +#: C/index.docbook:2078 +msgid "Documenting other interfaces" +msgstr "Dokumentera andra gränssnitt" + +#. (itstool) path: chapter/para +#: C/index.docbook:2080 +msgid "" +"So far we have been using GTK-Doc to document the API of code. The next " +"sections contain suggestions how the tools can be used to document other " +"interfaces too." +msgstr "" +"Så här långt har vi använt GTK-Doc för att dokumentera API:t för koden. " +"Följande avsnitt innehåller förslag om hur verktyget kan användas för att " +"också dokumentera andra gränssnitt." + +#. (itstool) path: sect1/title +#: C/index.docbook:2087 +msgid "Command line options and man pages" +msgstr "Kommandoradsflaggor och mansidor" + +#. (itstool) path: sect1/para +#: C/index.docbook:2089 +msgid "" +"As one can generate man pages for a docbook refentry as well, it sounds like " +"a good idea to use it for that purpose. This way the interface is part of " +"the reference and one gets the man-page for free." +msgstr "" +"Då man också kan generera mansidor för ett docbook-refentry, låter det som " +"en bra idé att använda det för detta ändamål. På detta sättet kommer " +"gränssnittet att vara en del av referensen och man får mansidan gratis." + +#. (itstool) path: sect2/title +#: C/index.docbook:2096 +msgid "Document the tool" +msgstr "Dokumentera verktyget" + +# sebras: strange English +#. (itstool) path: sect2/para +#: C/index.docbook:2098 +msgid "" +"Create one refentry file per tool. Following our example we would call it meep/" +"docs/reference/meeper/meep.xml. For the xml tags that should be " +"used and can look at generated file in the xml subdirectory as well as " +"examples e.g. in glib." +msgstr "" +"Skapa en refentry-fil per verktyg. Om du följer vårt exempel borde vi kalla det meep/" +"docs/reference/meeper/meep.xml. För xml-taggarna bör detta " +"användas och man kan studera den genererade filen i xml-underkatalogen så " +"väl som exempel i glib." + +#. (itstool) path: sect2/title +#: C/index.docbook:2108 +msgid "Adding the extra configure check" +msgstr "Lägga till den extra configure-kontrollen" + +#. (itstool) path: example/title +#: C/index.docbook:2111 C/index.docbook:2129 +msgid "Extra configure checks" +msgstr "Lägga till extra configure-kontroller" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2112 +#, no-wrap +msgid "" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [regenerate man pages from Docbook [default=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" +msgstr "" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [omgenerera mansidor från Docbook [standardvärde=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" + +#. (itstool) path: sect2/title +#: C/index.docbook:2126 +msgid "Adding the extra makefile rules" +msgstr "Lägga till de extra makefilsreglerna" + +#. (itstool) path: example/programlisting +#: C/index.docbook:2130 +#, no-wrap +msgid "" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" +msgstr "" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" + +#. (itstool) path: sect1/title +#: C/index.docbook:2152 +msgid "DBus interfaces" +msgstr "DBus-gränssnitt" + +#. (itstool) path: sect1/para +#: C/index.docbook:2154 +msgid "" +"(FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://" +"cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" +msgstr "" +"(FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://" +"cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" + +#. (itstool) path: chapter/title +#: C/index.docbook:2163 +msgid "Frequently asked questions" +msgstr "Frågor och svar" + +#. (itstool) path: segmentedlist/segtitle +#: C/index.docbook:2167 +msgid "Question" +msgstr "Fråga" + +#. (itstool) path: segmentedlist/segtitle +#: C/index.docbook:2168 +msgid "Answer" +msgstr "Svar" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2170 +msgid "No class hierarchy." +msgstr "Ingen klasshierarki." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2171 +msgid "" +"The objects xxx_get_type() function has not been " +"entered into the <package>.types file." +msgstr "" +"Objektens xxx_get_type()-funktion har inte matats in i " +"filen <paket>.types." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2177 +msgid "Still no class hierarchy." +msgstr "Fortfarande ingen klasshierarki." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2178 +msgid "" +"Missing or wrong naming in <package>-sections.txt " +"file (see explanation)." +msgstr "" +"Saknat eller fel namn i filen <paket>-sections.txt (se förklaring)." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2184 +msgid "Damn, I have still no class hierarchy." +msgstr "Förbannat, jag har fortfarande ingen klasshierarki." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2185 +msgid "" +"Is the object name (name of the instance struct, e.g. GtkWidget) part of the normal section (don't put this into Standard or Private " +"subsections)." +msgstr "" +"Är objektnamnet (namnet på instansstrukturen, t.ex. GtkWidget) " +"del av det normala avsnittet (stoppa inte detta i underavsnitt så som " +"Standard eller Private)." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2192 +msgid "No symbol index." +msgstr "Inget symbolindex." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2193 +msgid "" +"Does the <package>-docs.{xml,sgml} contain a " +"index that xi:includes the generated index?" +msgstr "" +"Innehåller <paket>-docs.{xml,sgml} ett index som " +"inkluderar det genererade indexet med xi:include?" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2199 +msgid "Symbols are not linked to their doc-section." +msgstr "Symboler är inte länkade till deras dokumentationsavsnitt." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2200 +msgid "" +"Is the doc-comment using the correct markup (added #,% or ())? Check if the " +"gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" +"Använder dokumentationskommentaren korrekta taggar (har du lagt till #, % " +"eller ())? Kontrollera om gtkdoc-fixxref varnar om oupplösbara " +"korsreferenser." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2206 +msgid "A new class does not appear in the docs." +msgstr "En ny klass dyker inte upp i dokumentationen." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2207 +msgid "" +"Is the new page xi:included from <package>-docs.{xml,sgml}." +msgstr "" +"Är den nya sidan inkluderad med xi:include från <package>-" +"docs.{xml,sgml}." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2213 +msgid "A new symbol does not appear in the docs." +msgstr "En ny symbol dyker inte upp i dokumentationen." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2214 +msgid "" +"Is the doc-comment properly formatted. Check for spelling mistakes in the " +"begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable " +"xrefs. Check if the symbol is correctly listed in the <" +"package>-sections.txt in a public subsection." +msgstr "" +"Är dokumentationskommentaren korrekt formaterad. Leta efter stavfel i början " +"av kommentaren. Kontrollera om gtkdoc-fixxref varnar om oupplösbara " +"korsreferenser. Kontrollera om symbolen finns korrekt listad i <" +"paket>-sections.txt i ett publikt avsnitt." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2222 +msgid "A type is missing from the class hierarchy." +msgstr "En typ saknas från klasshierarkin." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2223 +msgid "" +"If the type is listed in <package>.hierarchy but " +"not in xml/tree_index.sgml then double check that the " +"type is correctly placed in the <package>-sections.txt. If the type instance (e.g. GtkWidget) is not listed " +"or incidentally marked private it will not be shown." +msgstr "" +"Om typen finns listad i <paket>.hierarchy men " +"inte i xml/tree_index.sgml, dubbelkolla då att typen " +"finns korrekt placerad i <paket>-sections.txt. Om " +"typinstansen (t.ex. GtkWidget) inte visas eller är markerad " +"privat kommer den inte att visas." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2232 +msgid "I get foldoc links for all gobject annotations." +msgstr "Jag får foldoc-länkar för alla gobject-noteringar." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2233 +msgid "" +"Check that xml/annotation-glossary.xml is xi:included " +"from <package>-docs.{xml,sgml}." +msgstr "" +"Kontrollera att xml/annotation-glossary.xml är " +"inkluderad med xi:include från <package>-docs.{xml,sgml}." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2241 +msgid "Parameter described in source code comment block but does not exist" +msgstr "Parameter beskriven i kommentarsblock i källkoden men existerar inte" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2242 +msgid "" +"Check if the prototype in the header has different parameter names as in the " +"source." +msgstr "" +"Kontrollera om prototypen i huvudet har andra parameternamn än i källkoden." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2247 +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "multipla ”ID:n” för begränsat länkslut: XYZ" + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2248 +msgid "" +"Symbol XYZ appears twice in <package>-sections.txt file." +msgstr "" +"Symbolen XYZ förekommer två gånger i filen <paket>-sections." +"txt." + +#. (itstool) path: seglistitem/seg +#: C/index.docbook:2251 +msgid "" +"Element typename in namespace '' encountered in para, but no template " +"matches." +msgstr "Elementtypnamn i namnrymd ”” påträffat i para, men ingen mall matchar." + +#. (itstool) path: chapter/title +#: C/index.docbook:2258 +msgid "Tools related to gtk-doc" +msgstr "Verktyg relaterade till gtk-doc" + +#. (itstool) path: chapter/para +#: C/index.docbook:2260 +msgid "" +"GtkDocPlugin - a Trac " +"GTK-Doc integration plugin, that adds API docs to a trac site and " +"integrates with the trac search." +msgstr "" +"GtkDocPlugin - en insticksmodul för Trac GTK-Doc-integrering som lägger till API-" +"dokumentation till en trac-webbplats och integrerar med trac-sökningen." + +#. (itstool) path: chapter/para +#: C/index.docbook:2265 +msgid "" +"Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since " +"tags in the API to determine the minimum required version." +msgstr "" +"Gtkdoc-depscan - ett verktyg (del av gtk-doc) för att kontrollera använda " +"API mot since-taggar i API:t för att avgöra minsta version som krävs." + +#. (itstool) path: appendixinfo/releaseinfo +#: C/index.docbook:12 C/fdl-appendix.xml:12 +msgid "Version 1.1, March 2000" +msgstr "Version 1.1, mars 2000" + +#. (itstool) path: appendixinfo/copyright +#: C/index.docbook:15 +msgid "2000Free Software Foundation, Inc." +msgstr "2000Free Software Foundation, Inc." + +#. (itstool) path: para/address +#: C/index.docbook:20 +#, no-wrap +msgid "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" +msgstr "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" + +#. (itstool) path: legalnotice/para +#: C/index.docbook:19 C/fdl-appendix.xml:19 +msgid "" +"<_:address-1/> Everyone is permitted to copy and distribute verbatim copies " +"of this license document, but changing it is not allowed." +msgstr "" +"<_:address-1/>. Alla är tillåtna kopiera och distribuera ordagranna kopior " +"av detta licensdokument, men att ändra det är ej tillåtet." + +#. (itstool) path: appendix/title +#. (itstool) path: para/quote +#: C/index.docbook:28 C/fdl-appendix.xml:28 C/fdl-appendix.xml:642 +msgid "GNU Free Documentation License" +msgstr "GNU Free Documentation License" + +#. (itstool) path: sect1/title +#: C/index.docbook:31 C/fdl-appendix.xml:31 +msgid "0. PREAMBLE" +msgstr "0. BAKGRUND" + +#. (itstool) path: sect1/para +#: C/index.docbook:32 +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document free in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" +"Syftet med denna licens är att göra en handbok, bok, eller annat praktiskt " +"och användbart dokument fritt som i frihet: att försäkra var " +"och en den faktiska friheten att kopiera och sprida det vidare, med eller " +"utan förändringar, antingen kommersiellt eller ideellt. Sekundärt bevarar " +"denna licens ett sätt för författaren och förläggaren att få ära för deras " +"arbete utan att de anses vara ansvariga för förändringar gjorda av andra." + +#. (itstool) path: sect1/para +#: C/index.docbook:43 +msgid "" +"This License is a kind of copyleft, which means that " +"derivative works of the document must themselves be free in the same sense. " +"It complements the GNU General Public License, which is a copyleft license " +"designed for free software." +msgstr "" +"Denna Licens är en sorts copyleft, vilket betyder att " +"derivativa verk av detta dokument själva måste vara fria på samma sätt. Den " +"kompletterar GNU General Public License, som är en copyleft-licens utformad " +"för fri programvara." + +#. (itstool) path: sect1/para +#: C/index.docbook:50 C/fdl-appendix.xml:50 +msgid "" +"We have designed this License in order to use it for manuals for free " +"software, because free software needs free documentation: a free program " +"should come with manuals providing the same freedoms that the software does. " +"But this License is not limited to software manuals; it can be used for any " +"textual work, regardless of subject matter or whether it is published as a " +"printed book. We recommend this License principally for works whose purpose " +"is instruction or reference." +msgstr "" +"Vi har utformat denna licens för att den skall användas för handböcker till " +"fri programvara, eftersom fri programvara behöver fri dokumentation: ett " +"fritt program bör ha en handbok som erbjuder samma friheter som programmet " +"gör. Men denna licens är inte begränsad till programvaruhandböcker; den kan " +"användas för vilket textverk som helst oavsett ämne eller huruvida det är en " +"utgiven, tryckt bok. Vi rekommenderar denna licens huvudsakligen för alla " +"verk vars syfte är instruktion eller referens." + +#. (itstool) path: sect1/title +#: C/index.docbook:62 C/fdl-appendix.xml:62 +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "1. TILLÄMPNINGSOMRÅDE OCH DEFINITIONER" + +#. (itstool) path: sect1/para +#: C/index.docbook:63 +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The Document, below, refers to any such " +"manual or work. Any member of the public is a licensee, and is addressed as " +"you." +msgstr "" +"Denna licens [det engelska originalet] gäller för varje handbok eller annat " +"verk, oavsett uttrycksform, som innehåller ett meddelande där " +"upphovsrättsinnehavaren stadgat att verket kan spridas enligt villkoren i " +"GNU Free Documentation License. Ett sådant meddelande ger en internationell " +"frihet utan krav på ersättning och utan tidsbegränsning att använda verket " +"under villkoren i denna licens [det engelska originalet]. Dokument nedan syftar på godtycklig handbok eller verk. Var och en är " +"licenstagare och benämns som du." + +#. (itstool) path: sect1/para +#: C/index.docbook:72 +msgid "" +"A Modified Version of the Document means any work containing " +"the Document or a portion of it, either copied verbatim, or with " +"modifications and/or translated into another language." +msgstr "" +"En förändrad version av dokumentet avser varje verk som " +"innehåller dokumentet eller en del av det, antingen ordagranna kopior, eller " +"med ändringar och/eller översatt till ett annat språk." + +#. (itstool) path: sect1/para +#: C/index.docbook:79 +msgid "" +"A Secondary Section is a named appendix or a front-matter " +"section of the Document that deals " +"exclusively with the relationship of the publishers or authors of the " +"Document to the Document's overall subject (or to related matters) and " +"contains nothing that could fall directly within that overall subject. (For " +"example, if the Document is in part a textbook of mathematics, a Secondary " +"Section may not explain any mathematics.) The relationship could be a matter " +"of historical connection with the subject or with related matters, or of " +"legal, commercial, philosophical, ethical or political position regarding " +"them." +msgstr "" +"Ett sekundärt avsnitt är en märkt bilaga eller förord till " +"dokumentet som exklusivt behandlar " +"förhållandet mellan dokumentets förläggare eller författare och dokumentets " +"huvudsakliga ämne (eller till relaterade ämnen) och som inte innehåller " +"något som direkt faller under det huvudsakliga ämnet. (Således, om " +"dokumentet delvis är en lärobok i matematik så får ett sekundärt avsnitt " +"inte förklara någon matematik.) Förhållandet kan vara en historisk koppling " +"till ämnet eller något relaterat, eller en juridisk, kommersiell, " +"filosofisk, etisk eller politisk ställning till det." + +#. (itstool) path: sect1/para +#: C/index.docbook:94 +msgid "" +"The Invariant Sections are certain Secondary Sections whose titles are designated, as being " +"those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" +"De oföränderliga avsnitten är sekundära avsnitt vars titlar är angivna som oföränderliga avsnitt " +"i meddelandet som stadgar att dokumentet är utgivet under denna licens [det engelska originalet]." + +#. (itstool) path: sect1/para +#: C/index.docbook:103 +msgid "" +"The Cover Texts are certain short passages of text that are " +"listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says " +"that the Document is released under " +"this License." +msgstr "" +"Omslagstexterna är speciella korta ordföljder som är listade " +"som framsidestexter eller baksidestexter i meddelandet som stadgar att dokumentet är utgivet under denna licens " +"[det engelska originalet]." + +#. (itstool) path: sect1/para +#: C/index.docbook:111 +msgid "" +"A Transparent copy of the " +"Document means a machine-readable copy, represented in a format whose " +"specification is available to the general public, whose contents can be " +"viewed and edited directly and straightforwardly with generic text editors " +"or (for images composed of pixels) generic paint programs or (for drawings) " +"some widely available drawing editor, and that is suitable for input to text " +"formatters or for automatic translation to a variety of formats suitable for " +"input to text formatters. A copy made in an otherwise Transparent file " +"format whose markup has been designed to thwart or discourage subsequent " +"modification by readers is not Transparent. A copy that is not " +"Transparent is called Opaque." +msgstr "" +"En transparent kopia av dokumentet är en maskinläsbar kopia, representerad i ett format " +"vars specifikation finns tillgänglig för allmänheten, som lämpar sig för att " +"revidera dokumentet på ett enkelt sätt med generella textredigeringsprogram " +"eller (för pixelbaserade bilder) generella grafikprogram eller (för " +"ritningar) något väl tillgängligt ritprogram, och som är passande som indata " +"till textformaterare eller för automatisk konvertering till en mängd format " +"som passar som indata till textformaterare. En kopia i ett för övrigt " +"transparent filformat vars markeringar, eller avsaknad av markeringar, har " +"ordnats för att hindra eller motverka att vidare förändring vidtas av läsare " +"är inte transparent. En kopia som inte är transparent kallas " +"opak." + +#. (itstool) path: sect1/para +#: C/index.docbook:128 C/fdl-appendix.xml:128 +msgid "" +"Examples of suitable formats for Transparent copies include plain ASCII " +"without markup, Texinfo input format, LaTeX input format, SGML or XML using " +"a publicly available DTD, and standard-conforming simple HTML designed for " +"human modification. Opaque formats include PostScript, PDF, proprietary " +"formats that can be read and edited only by proprietary word processors, " +"SGML or XML for which the DTD and/or processing tools are not generally " +"available, and the machine-generated HTML produced by some word processors " +"for output purposes only." +msgstr "" +"Exempel på passande format för transparenta kopior innefattar ren ASCII utan " +"markeringar, Texinfo indataformat, LaTeX indataformat, SGML eller XML som " +"använder en publikt tillgänglig DTD, och standardenlig HTML, PostScript " +"eller PDF utformat för mänsklig förändring. Opaka format innefattar " +"Postscript, PDF, leverantörsspecifika format som bara kan läsas och editeras " +"med leverantörsspecifika ordbehandlare, SGML eller XML för vilket DTD och/" +"eller verktyg för behandling inte finns allmänt tillgängliga, och den " +"maskingenererade HTML som produceras av vissa ordbehandlare enbart avsett " +"som utdata." + +#. (itstool) path: sect1/para +#: C/index.docbook:141 +msgid "" +"The Title Page means, for a printed book, the title page " +"itself, plus such following pages as are needed to hold, legibly, the " +"material this License requires to appear in the title page. For works in " +"formats which do not have any title page as such, Title Page " +"means the text near the most prominent appearance of the work's title, " +"preceding the beginning of the body of the text." +msgstr "" +"Titelsidan innebär, för en tryckt bok, titelsidan själv, och " +"sådana därpå följande sidor som krävs för att göra det material som enligt " +"denna licens skall synas på titelsidan läsbart. För verk i sådana format som " +"inte har någon egentlig titelsida, avses med titelsida den " +"text som är närmast den mest framstående förekomsten av verkets titel, " +"föregående den huvudsakliga textmassan." + +#. (itstool) path: sect1/title +#: C/index.docbook:153 C/fdl-appendix.xml:153 +msgid "2. VERBATIM COPYING" +msgstr "2. ORDAGRANN KOPIERING" + +#. (itstool) path: sect1/para +#: C/index.docbook:154 +msgid "" +"You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that " +"this License, the copyright notices, and the license notice saying this " +"License applies to the Document are reproduced in all copies, and that you " +"add no other conditions whatsoever to those of this License. You may not use " +"technical measures to obstruct or control the reading or further copying of " +"the copies you make or distribute. However, you may accept compensation in " +"exchange for copies. If you distribute a large enough number of copies you " +"must also follow the conditions in section 3." +msgstr "" +"Du äger kopiera och sprida dokumentet " +"på valfritt medium, antingen kommersiellt eller ideellt, förutsatt att denna " +"licens [det engelska originalet], upphovsrättsklausul, och meddelandet som " +"stadgar att GNU Free Documentation License gäller för dokumentet finns med " +"på alla kopior, och att du inte lägger till några som helst andra villkor än " +"de som ingår i denna licens. Du äger inte vidta tekniska åtgärder för att " +"begränsa eller kontrollera läsande eller vidare kopiering av de kopior du " +"skapar eller sprider. Dock äger du ta emot kompensation i utbyte mot kopior. " +"Om du sprider tillräckligt många kopior måste du också följa villkoren i " +"paragraf 3." + +#. (itstool) path: sect1/para +#: C/index.docbook:169 C/fdl-appendix.xml:169 +msgid "" +"You may also lend copies, under the same conditions stated above, and you " +"may publicly display copies." +msgstr "" +"Du äger också låna ut kopior, under samma villkor som ovan, och du äger visa " +"kopior offentligt." + +#. (itstool) path: sect1/title +#: C/index.docbook:176 C/fdl-appendix.xml:176 +msgid "3. COPYING IN QUANTITY" +msgstr "3. OMFATTANDE KOPIERING" + +#. (itstool) path: sect1/para +#: C/index.docbook:177 +msgid "" +"If you publish printed copies of the Document numbering more than 100, and the Document's license " +"notice requires Cover Texts, you " +"must enclose the copies in covers that carry, clearly and legibly, all these " +"Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on " +"the back cover. Both covers must also clearly and legibly identify you as " +"the publisher of these copies. The front cover must present the full title " +"with all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as " +"verbatim copying in other respects." +msgstr "" +"Om du publicerar tryckta kopior (eller kopior i medier som normalt har " +"tryckta omslag) av dokumentet, i en " +"upplaga överstigande 100 exemplar, och dokumentets licensmeddelande kräver " +"omslagstexter, så måste du förse " +"kopiorna med omslag som, klart och tydligt, visar alla omslagstexter: " +"framsidestexter på framsidan och baksidestexter på baksidan. Båda omslagen " +"måste klart och tydligt identifiera dig som utgivare av dessa kopior. " +"Framsidan måste presentera dokumentets hela titel, med alla ord i titeln " +"lika framträdande och synliga. Du äger lägga till ytterligare stoff på " +"omslagen. Kopiering med förändringar gjorda bara på omslaget, så länge som " +"de bevarar dokumentets titel och i " +"övrigt uppfyller dessa krav kan anses vara ordagrann kopiering i andra " +"avseenden." + +#. (itstool) path: sect1/para +#: C/index.docbook:195 C/fdl-appendix.xml:195 +msgid "" +"If the required texts for either cover are too voluminous to fit legibly, " +"you should put the first ones listed (as many as fit reasonably) on the " +"actual cover, and continue the rest onto adjacent pages." +msgstr "" +"Om de obligatoriska texterna för något omslag är för omfattande för att " +"rymmas i läsbart skick skall du placera de första (så många som får plats) " +"på det egentliga omslaget, och fortsätta med resten på de direkt " +"intilliggande sidorna." + +#. (itstool) path: sect1/para +#: C/index.docbook:202 +msgid "" +"If you publish or distribute Opaque " +"copies of the Document numbering more " +"than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state " +"in or with each Opaque copy a publicly-accessible computer-network location " +"containing a complete Transparent copy of the Document, free of added " +"material, which the general network-using public has access to download " +"anonymously at no charge using public-standard network protocols. If you use " +"the latter option, you must take reasonably prudent steps, when you begin " +"distribution of Opaque copies in quantity, to ensure that this Transparent " +"copy will remain thus accessible at the stated location until at least one " +"year after the last time you distribute an Opaque copy (directly or through " +"your agents or retailers) of that edition to the public." +msgstr "" +"Om du publicerar opaka kopior av " +"dokumentet i upplagor om mer än 100, " +"måste du antingen bifoga en maskinläsbar transparent kopia med varje opak kopia, eller ange i eller med " +"varje opak kopia en nätverksadress som är tillgänglig för den allmänna " +"nätverksanvändande massan där man, med öppet standardiserade protokoll, " +"anonymt och utan kostnad kan ladda ner en komplett transparent kopia av " +"dokumentet, utan extra material. Om du väljer det senare alternativet, måste " +"du vidta skäliga åtgärder, när du börjar sprida opaka kopior i kvantitet, " +"för att denna transparenta kopia skall förbli tillgänglig på angivna platsen " +"till åtminstone ett år efter den sista gången du spred en opak kopia (direkt " +"eller via ombud eller återförsäljare) av den utgåvan till allmänheten." + +#. (itstool) path: sect1/para +#: C/index.docbook:222 +msgid "" +"It is requested, but not required, that you contact the authors of the Document well before redistributing any " +"large number of copies, to give them a chance to provide you with an updated " +"version of the Document." +msgstr "" +"Det är önskvärt, men inte ett krav, att du kontaktar författarna till dokumentet i god tid innan du sprider något " +"större antal kopior, för att ge dem en chans att förse dig med en uppdaterad " +"version av dokumentet." + +#. (itstool) path: sect1/title +#: C/index.docbook:231 C/fdl-appendix.xml:231 +msgid "4. MODIFICATIONS" +msgstr "4. FÖRÄNDRINGAR" + +#. (itstool) path: sect1/para +#: C/index.docbook:232 +msgid "" +"You may copy and distribute a Modified " +"Version of the Document under " +"the conditions of sections 2 and 3 above, provided that you release the " +"Modified Version under precisely this License, with the Modified Version " +"filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" +"Du äger kopiera och sprida en förändrad " +"version av dokumentet under de " +"villkor som beskrivs i paragraf 2 och " +"3 av GNU Free Documentation License, " +"förutsatt att du släpper den förändrade versionen under exakt denna licens, " +"och att den förändrade versionen antar dokumentets roll, och således medger " +"spridning och förändring av den förändrade versionen till envar som erhåller " +"en kopia av den. Utöver detta måste du göra följande med den ändrade " +"versionen:" + +#. (itstool) path: formalpara/title +#: C/index.docbook:248 C/fdl-appendix.xml:248 +msgid "A" +msgstr "A" + +#. (itstool) path: formalpara/para +#: C/index.docbook:249 +msgid "" +"Use in the Title Page (and on the " +"covers, if any) a title distinct from that of the Document, and from those of previous versions (which " +"should, if there were any, be listed in the History section of the " +"Document). You may use the same title as a previous version if the original " +"publisher of that version gives permission." +msgstr "" +"På titelsidan (och omslagen om det " +"finns några) använda en titel skild från den som [original]dokumentet har, och skild från tidigare versioners " +"titel (som skall, om det finns några, finnas listade i historikavsnittet i " +"dokumentet). Du äger använda samma titel som det föregående dokumentet om " +"den ursprungliga utgivaren ger sitt tillstånd." + +#. (itstool) path: formalpara/title +#: C/index.docbook:264 C/fdl-appendix.xml:264 +msgid "B" +msgstr "B" + +#. (itstool) path: formalpara/para +#: C/index.docbook:265 +msgid "" +"List on the Title Page, as authors, " +"one or more persons or entities responsible for authorship of the " +"modifications in the Modified Version, " +"together with at least five of the principal authors of the Document (all of its principal authors, if it has " +"less than five)." +msgstr "" +"Lista på titelsidan, som författare, " +"en eller flera personer eller juridiska personer som ansvarat för " +"förändringarna i den förändrade versionen, tillsammans med minst fem av de huvudsakliga författarna av dokumentet (alla dess huvudsakliga " +"författare, om det har mindre än fem)." + +#. (itstool) path: formalpara/title +#: C/index.docbook:279 C/fdl-appendix.xml:279 +msgid "C" +msgstr "C" + +#. (itstool) path: formalpara/para +#: C/index.docbook:280 +msgid "" +"State on the Title Page the name of " +"the publisher of the Modified Version, " +"as the publisher." +msgstr "" +"Ange namnet på utgivaren av den förändrade " +"versionen, som utgivare, på titelsidan." + +#. (itstool) path: formalpara/title +#: C/index.docbook:291 C/fdl-appendix.xml:291 +msgid "D" +msgstr "D" + +#. (itstool) path: formalpara/para +#: C/index.docbook:292 +msgid "" +"Preserve all the copyright notices of the Document." +msgstr "" +"Bibehålla dokumentets alla " +"upphovsrättsklausuler." + +#. (itstool) path: formalpara/title +#: C/index.docbook:301 C/fdl-appendix.xml:301 +msgid "E" +msgstr "E" + +#. (itstool) path: formalpara/para +#: C/index.docbook:302 C/fdl-appendix.xml:302 +msgid "" +"Add an appropriate copyright notice for your modifications adjacent to the " +"other copyright notices." +msgstr "" +"Lägga till en upphovsrättsklausul för dina förändringar angränsande till de " +"andra upphovsrättsklausulerna." + +#. (itstool) path: formalpara/title +#: C/index.docbook:311 C/fdl-appendix.xml:311 +msgid "F" +msgstr "F" + +#. (itstool) path: formalpara/para +#: C/index.docbook:312 +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the Modified " +"Version under the terms of this License, in the form shown in the " +"Addendum below." +msgstr "" +"Direkt efter upphovsrättsklausulerna innefatta ett meddelande som ger " +"allmänheten tillstånd att använda den förändrade versionen under villkoren i denna licens [det engelska " +"originalet] i den form som visas i Tillägg nedan." + +#. (itstool) path: formalpara/title +#: C/index.docbook:324 C/fdl-appendix.xml:324 +msgid "G" +msgstr "G" + +#. (itstool) path: formalpara/para +#: C/index.docbook:325 +msgid "" +"Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" +"I meddelandet om licensen bevara den fullständiga listan över oföränderliga avsnitt och obligatoriska omslagstexter som finns i dokumentets meddelande om licensen." + +#. (itstool) path: formalpara/title +#: C/index.docbook:337 C/fdl-appendix.xml:337 +msgid "H" +msgstr "H" + +#. (itstool) path: formalpara/para +#: C/index.docbook:338 C/fdl-appendix.xml:338 +msgid "Include an unaltered copy of this License." +msgstr "" +"Inkludera en oförändrad kopia av denna licens [Det är den engelska " +"originalversionen som avses]." + +#. (itstool) path: formalpara/title +#: C/index.docbook:346 C/fdl-appendix.xml:346 +msgid "I" +msgstr "I" + +#. (itstool) path: formalpara/para +#: C/index.docbook:347 +msgid "" +"Preserve the section entitled History, and its title, and add " +"to it an item stating at least the title, year, new authors, and publisher " +"of the Modified Version as given on " +"the Title Page. If there is no " +"section entitled History in the Document, create one stating the title, year, authors, and " +"publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" +"Bevara avsnittet med titeln historik (History), bevara dess " +"titel och lägg i avsnittet till en post med åtminstone titeln, året, nya " +"författare och utgivaren av den förändrade " +"versionen så som angivet på titelsidan. Om det inte finns något avsnitt med titeln " +"historik (History) i dokumentet så skapa en med titeln, året, författare och utgivaren " +"av dokumentet så som det står på [original]dokumentets titelsida. Lägg sedan " +"till en post som beskriver den förändrade versionen så som beskrivits ovan." + +#. (itstool) path: formalpara/title +#: C/index.docbook:365 C/fdl-appendix.xml:365 +msgid "J" +msgstr "J" + +#. (itstool) path: formalpara/para +#: C/index.docbook:366 +msgid "" +"Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the " +"network locations given in the Document for previous versions it was based " +"on. These may be placed in the History section. You may omit " +"a network location for a work that was published at least four years before " +"the Document itself, or if the original publisher of the version it refers " +"to gives permission." +msgstr "" +"Bevara den nätverksadress, om det finns någon, angiven i dokumentet till den allmänt tillgängliga transparenta kopian av dokumentet, och likaså " +"nätverksadresserna till de föregående versioner som dokumentet baseras på. " +"Dessa får placeras i avsnittet historik (History). Du äger " +"utelämna en nätverksadress för ett verk som är publicerat mer än fyra år " +"före dokumentet självt, eller om den ursprunglige utgivaren vars verk " +"nätverksadressen hänvisar till ger sitt tillstånd." + +#. (itstool) path: formalpara/title +#: C/index.docbook:383 C/fdl-appendix.xml:383 +msgid "K" +msgstr "K" + +#. (itstool) path: formalpara/para +#: C/index.docbook:384 +msgid "" +"In any section entitled Acknowledgements or " +"Dedications, preserve the section's title, and preserve in " +"the section all the substance and tone of each of the contributor " +"acknowledgements and/or dedications given therein." +msgstr "" +"För alla avsnitt med titlarna tillkännagivanden " +"(Acknowledgements) eller dedikationer (Dedications), bevara " +"titeln på avsnittet, och bevara allt innehåll och prägel på alla " +"tillkännagivanden och/eller dedikationer gjorda av varje bidragsgivare." + +#. (itstool) path: formalpara/title +#: C/index.docbook:396 C/fdl-appendix.xml:396 +msgid "L" +msgstr "L" + +#. (itstool) path: formalpara/para +#: C/index.docbook:397 +msgid "" +"Preserve all the Invariant Sections " +"of the Document, unaltered in their " +"text and in their titles. Section numbers or the equivalent are not " +"considered part of the section titles." +msgstr "" +"Bevara alla oföränderliga avsnitt i " +"dokumentet oförändrade till text och " +"titel. Avsnittsnummer eller motsvarande anses inte tillhöra avsnittets titel." + +#. (itstool) path: formalpara/title +#: C/index.docbook:409 C/fdl-appendix.xml:409 +msgid "M" +msgstr "M" + +#. (itstool) path: formalpara/para +#: C/index.docbook:410 +msgid "" +"Delete any section entitled Endorsements. Such a section may " +"not be included in the Modified Version." +msgstr "" +"Radera varje avsnitt med titeln endossering (Endorsements). " +"Ett sådant avsnitt får inte inkluderas i en förändrad version." + +#. (itstool) path: formalpara/title +#: C/index.docbook:421 C/fdl-appendix.xml:421 +msgid "N" +msgstr "N" + +#. (itstool) path: formalpara/para +#: C/index.docbook:422 +msgid "" +"Do not retitle any existing section as Endorsements or to " +"conflict in title with any Invariant " +"Section." +msgstr "" +"Inte byta titel på något existerande avsnitt så att det blir " +"endossering (Endorsements) eller så att titeln kan förväxlas " +"med något oföränderligt avsnitt." + +#. (itstool) path: sect1/para +#: C/index.docbook:432 +msgid "" +"If the Modified Version includes new " +"front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from " +"the Document, you may at your option designate some or all of these sections " +"as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's " +"license notice. These titles must be distinct from any other section titles." +msgstr "" +"Om den förändrade versionen innehåller " +"nya framsidestexter eller bilagor som är att anses som sekundära avsnitt och inte innehåller något material " +"kopierat från dokumentet, så äger du, om du vill, benämna några eller " +"samtliga av dessa som oföränderliga. För att göra detta, lägg deras titlar " +"till listan över oföränderliga avsnitt i den förändrade versionens licensmeddelande. Dessa titlar måste vara " +"skilda från alla andra avsnitts titlar." + +#. (itstool) path: sect1/para +#: C/index.docbook:444 +msgid "" +"You may add a section entitled Endorsements, provided it " +"contains nothing but endorsements of your Modified Version by various parties--for example, statements of " +"peer review or that the text has been approved by an organization as the " +"authoritative definition of a standard." +msgstr "" +"Du äger lägga till ett avsnitt med titeln endossering " +"(Endorsements), förutsatt att det inte innehåller något annat än " +"endosseringar för din förändrade version från olika aktörer -- till exempel, meddelanden om utförd " +"korrekturläsning eller att texten har godkänts av en organisation som en " +"officiell definition av en standard." + +#. (itstool) path: sect1/para +#: C/index.docbook:453 +msgid "" +"You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list " +"of Cover Texts in the Modified Version. Only one passage of Front-Cover " +"Text and one of Back-Cover Text may be added by (or through arrangements " +"made by) any one entity. If the Document already includes a cover text for the same cover, previously added by " +"you or by arrangement made by the same entity you are acting on behalf of, " +"you may not add another; but you may replace the old one, on explicit " +"permission from the previous publisher that added the old one." +msgstr "" +"Du äger lägga till ett textavsnitt på upp till fem ord som framsidestext, och ett textavsnitt på upp till 25 " +"ord som baksidestext i listan över " +"omslagstexter i den förändrade versionen. Bara ett textavsnitt med " +"framsidestexter och ett med baksidestexter får läggas till av (eller genom " +"försorg av) en enda juridisk person. Om dokumentet redan innehåller en omslagstext för något av omslagen, " +"tidigare tillagd av dig eller genom försorg av samma juridiska person som du " +"företräder, äger du inte lägga till en till, men du äger ändra den gamla med " +"tillstånd från den tidigare utgivaren som lade till den förra." + +#. (itstool) path: sect1/para +#: C/index.docbook:470 +msgid "" +"The author(s) and publisher(s) of the Document do not by this License give permission to use their names " +"for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" +"Författaren (författarna) och utgivaren (utgivarna) av dokumentet ger inte via denna licens sitt tillstånd att " +"använda sina namn för publicitet eller för att lägga till eller antyda " +"endossering av någon förändrad version." + +#. (itstool) path: sect1/title +#: C/index.docbook:480 C/fdl-appendix.xml:480 +msgid "5. COMBINING DOCUMENTS" +msgstr "5. KOMBINERA DOKUMENT" + +#. (itstool) path: sect1/para +#: C/index.docbook:481 +msgid "" +"You may combine the Document with " +"other documents released under this License, under the terms defined in " +"section 4 above for modified versions, " +"provided that you include in the combination all of the Invariant Sections of all of the original documents, " +"unmodified, and list them all as Invariant Sections of your combined work in " +"its license notice." +msgstr "" +"Du äger kombinera dokumentet med andra " +"dokument som är utgivna under denna licens, under de villkor som definieras " +"i paragraf 4 av GNU Free Documentation " +"License för förändrade versioner, förutsatt att du, i det kombinerade " +"dokumentet, innefattar alla oföränderliga " +"avsnitt från originaldokumenten, omodifierade, och listar dem som " +"oföränderliga avsnitt i ditt kombinerade verk i dess licensklausul, och att " +"du bevarar alla deras garantiavsägelseklausuler." + +#. (itstool) path: sect1/para +#: C/index.docbook:492 +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical Invariant Sections may be " +"replaced with a single copy. If there are multiple Invariant Sections with " +"the same name but different contents, make the title of each such section " +"unique by adding at the end of it, in parentheses, the name of the original " +"author or publisher of that section if known, or else a unique number. Make " +"the same adjustment to the section titles in the list of Invariant Sections " +"in the license notice of the combined work." +msgstr "" +"Det kombinerade verket behöver bara innehålla en enstaka kopia av denna " +"licens [engelska originalversionen], och flera identiska oföränderliga stycken kan ersättas med en kopia. Om det " +"finns flera oföränderliga stycken med samma namn men olika innehåll, se till " +"att titeln på varje sådant avsnitt är unik genom att i slutet på den, inom " +"parentes, lägga till namnet på den ursprunglige författaren eller utgivaren " +"av det avsnittet om dessa är kända, annars ett unikt nummer. Gör samma " +"justeringar av titlarna i listan över oföränderliga avsnitt i " +"licensklausulen i det kombinerade verket." + +#. (itstool) path: sect1/para +#: C/index.docbook:505 +msgid "" +"In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled " +"History; likewise combine any sections entitled " +"Acknowledgements, and any sections entitled " +"Dedications. You must delete all sections entitled " +"Endorsements." +msgstr "" +"I det kombinerade verket måste du kombinera alla avsnitt med titlarna " +"historik (History) i de ursprungliga dokumenten, till ett " +"avsnitt med titeln historik (History); på samma sätt skall " +"alla avsnitt med titlarna tillkännagivanden " +"(Acknowledgements), alla avsnitt med titlarna dedikationer " +"(Dedications) kombineras. Du måste ta bort alla avsnitt med titlarna " +"endossering (Endorsements)." + +#. (itstool) path: sect1/title +#: C/index.docbook:516 C/fdl-appendix.xml:516 +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "6. SAMLINGAR AV DOKUMENT" + +#. (itstool) path: sect1/para +#: C/index.docbook:517 +msgid "" +"You may make a collection consisting of the Document and other documents released under this License, and " +"replace the individual copies of this License in the various documents with " +"a single copy that is included in the collection, provided that you follow " +"the rules of this License for verbatim copying of each of the documents in " +"all other respects." +msgstr "" +"Du äger skapa en samling bestående av dokumentet och andra dokument som är släppta under GNU Free " +"Documentation License, och ersätta individuella kopior i dokumenten av denna " +"licens med en enda kopia [av den engelska originalversionen] som inkluderas " +"i samlingen, förutsatt att du följer villkoren för ordagrann kopiering i " +"denna licens för varje inkluderat dokument i alla andra avseenden." + +#. (itstool) path: sect1/para +#: C/index.docbook:527 C/fdl-appendix.xml:527 +msgid "" +"You may extract a single document from such a collection, and distribute it " +"individually under this License, provided you insert a copy of this License " +"into the extracted document, and follow this License in all other respects " +"regarding verbatim copying of that document." +msgstr "" +"Du äger lyfta ut ett dokument från en sådan samling, och sprida det enskilt " +"under GNU Free Documentation License, förutsatt att du lägger till en kopia " +"av denna licens [den engelska originalversionen] i det utlyfta dokumentet, " +"och följer villkoren för ordagrann kopiering i denna licens för det utlyfta " +"dokumentet i alla andra avseenden." + +#. (itstool) path: sect1/title +#: C/index.docbook:537 C/fdl-appendix.xml:537 +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "7. SAMMANSLAGNING MED OBEROENDE VERK" + +#. (itstool) path: sect1/para +#: C/index.docbook:538 +msgid "" +"A compilation of the Document or its " +"derivatives with other separate and independent documents or works, in or on " +"a volume of a storage or distribution medium, does not as a whole count as a " +"Modified Version of the Document, " +"provided no compilation copyright is claimed for the compilation. Such a " +"compilation is called an aggregate, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the Cover Text requirement of section 3 is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" +"En samling av dokumentet eller av dess " +"derivat med andra separata och oberoende dokument eller verk, på eller i en " +"lagringsvolym eller ett spridningsmedium, kallas för en " +"sammanslagning om den sammanslagna upphovsrätten inte används " +"för att begränsa samlingens användares rättigheter som de enskilda " +"dokumenten medger. När dokumentet ingår i en sådan sammanslagning, gäller " +"inte denna licens de andra verken i samlingen som inte själva är deriverat " +"av dokumentet. Om kravet på omslagstexter enligt paragraf 3 är tillämpligt " +"på dessa kopior av dokumentet, så kan dokumentets omslagstexter, om " +"dokumentet utgör mindre än en fjärdedel av hela samlingen, placeras på det " +"omslag som omger dokumentet inuti samlingen, eller den elektroniska " +"motsvarigheten till omslag om dokumentet är i elektronisk form. Annars måste " +"de synas på det omslag som omger hela samlingen." + +#. (itstool) path: sect1/title +#: C/index.docbook:561 C/fdl-appendix.xml:561 +msgid "8. TRANSLATION" +msgstr "8. ÖVERSÄTTNING" + +#. (itstool) path: sect1/para +#: C/index.docbook:562 +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the Document under the " +"terms of section 4. Replacing Invariant Sections with translations " +"requires special permission from their copyright holders, but you may " +"include translations of some or all Invariant Sections in addition to the " +"original versions of these Invariant Sections. You may include a translation " +"of this License provided that you also include the original English version " +"of this License. In case of a disagreement between the translation and the " +"original English version of this License, the original English version will " +"prevail." +msgstr "" +"Översättning anses vara en sorts förändring, så du äger sprida " +"översättningar av dokumentet enligt de " +"villkor som sätts i paragraf 4. Oföränderliga avsnitt som ersätts med " +"översättningar kräver tillstånd från deras upphovsrättsinnehavare, men du " +"äger inkludera översättningar av alla eller vissa av dessa oföränderliga " +"avsnitt tillsammans med originalversionerna av dessa oföränderliga avsnitt. " +"Du äger inkludera en översättning av denna licens, och alla licensklausuler " +"i dokumentet, och alla garantiavsägelser, förutsatt att du också innefattar " +"den engelska originalversionen av denna licens och originalversionerna av " +"dessa klausuler. Skulle det finnas skillnader mellan översättningen och " +"originalversionen av denna licens eller någon klausul så gäller " +"originalversionen." + +#. (itstool) path: sect1/title +#: C/index.docbook:580 C/fdl-appendix.xml:580 +msgid "9. TERMINATION" +msgstr "9. UPPHÖRANDE" + +#. (itstool) path: sect1/para +#: C/index.docbook:581 +msgid "" +"You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this " +"License. Any other attempt to copy, modify, sublicense or distribute the " +"Document 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." +msgstr "" +"Du äger inte kopiera, förändra, omlicensiera eller sprida dokumentet annat än enligt villkoren i GNU Free " +"Documentation License. Alla övriga försök att kopiera, modifiera, " +"omlicensiera, eller sprida dokumentet är ogiltiga och kommer automatiskt " +"medföra att du förlorar dina rättigheter enligt denna licens. Tredje man som " +"har mottagit kopior eller rättigheter från dig enligt dessa licensvillkor " +"kommer dock inte att förlora sina rättigheter så länge de följer " +"licensvillkoren." + +#. (itstool) path: sect1/title +#: C/index.docbook:594 C/fdl-appendix.xml:594 +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "10. FRAMTIDA VERSIONER AV DENNA LICENS" + +#. (itstool) path: sect1/para +#: C/index.docbook:595 +msgid "" +"The Free " +"Software Foundation may publish new, revised versions of the GNU " +"Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" +"Free Software " +"Foundation kan publicera nya, reviderade versioner av GNU Free " +"Documentation License då och då. Sådana nya versioner kommer att vara " +"likadana i andemening som den nuvarande versionen, men kan skilja i detalj " +"för att behandla nya problem eller angelägenheter. Se http://www.gnu.org/copyleft/." + +#. (itstool) path: sect1/para +#: C/index.docbook:606 +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"Document specifies that a particular " +"numbered version of this License or any later version applies " +"to it, you have the option of following the terms and conditions either of " +"that specified version or of any later version that has been published (not " +"as a draft) by the Free Software Foundation. If the Document does not " +"specify a version number of this License, you may choose any version ever " +"published (not as a draft) by the Free Software Foundation." +msgstr "" +"Varje version av licensen ges ett unikt versionsnummer. Om dokumentet stadgar att en specifik numrerad version " +"av denna licens eller valfri senare version gäller för det, " +"så äger du rätten att följa villkoren enligt antingen den angivna versionen " +"eller vilken senare version som helst som publicerats (inte som utkast) av " +"Free Software Foundation. Om dokumentet inte anger en version av denna " +"licens, äger du välja vilken version som helst som publicerats (inte som " +"utkast) av Free Software Foundation." + +#. (itstool) path: sect1/title +#: C/index.docbook:621 C/fdl-appendix.xml:621 +msgid "Addendum" +msgstr "TILLÄGG" + +#. (itstool) path: sect1/para +#: C/index.docbook:622 C/fdl-appendix.xml:622 +msgid "" +"To use this License in a document you have written, include a copy of the " +"License in the document and put the following copyright and license notices " +"just after the title page:" +msgstr "" +"För att använda GNU Free Documentation License för ett dokument du har " +"skrivit, inkludera en kopia av licensen [det engelska originalet] i " +"dokumentet och placera följande copyrightklausul omedelbart efter titelsidan:" + +#. (itstool) path: blockquote/para +#: C/index.docbook:629 C/fdl-appendix.xml:629 +msgid "Copyright YEAR YOUR NAME." +msgstr "Copyright © YEAR YOUR NAME." + +#. (itstool) path: blockquote/para +#: C/index.docbook:632 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with " +"the Front-Cover Texts being LIST, " +"and with the Back-Cover Texts being " +"LIST. A copy of the license is included in the section entitled GNU " +"Free Documentation License." +msgstr "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with " +"the Front-Cover Texts being LIST, " +"and with the Back-Cover Texts being " +"LIST. A copy of the license is included in the section entitled GNU " +"Free Documentation License." + +#. (itstool) path: sect1/para +#: C/index.docbook:647 +msgid "" +"If you have no Invariant Sections, " +"write with no Invariant Sections instead of saying which ones " +"are invariant. If you have no Front-Cover " +"Texts, write no Front-Cover Texts instead of " +"Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" +"Om du inte har några oföränderliga avsnitt, skriv with no Invariant Sections istället för att ange " +"vilka som är oföränderliga. Om du inte har några framsidestexter, skriv no Front-Cover Texts " +"istället för Front-Cover Texts being LIST; såväl som för " +"baksidestexter." + +#. (itstool) path: sect1/para +#: C/index.docbook:657 +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the GNU General Public License, to permit their use in free " +"software." +msgstr "" +"Om ditt dokument innehåller icke-triviala exempel med programkod, så " +"rekommenderar vi att du släpper dessa exempel parallellt under en, av dig " +"vald, fri programvarulicens, som till exempel GNU General Public License, " +"för att möjliggöra deras användning i fri programvara." + +#. (itstool) path: copyright/year +#: C/fdl-appendix.xml:16 +msgid "2000" +msgstr "2000" + +#. (itstool) path: copyright/holder +#: C/fdl-appendix.xml:16 +msgid "Free Software Foundation, Inc." +msgstr "Free Software Foundation, Inc." + +#. (itstool) path: address/street +#: C/fdl-appendix.xml:20 +msgid "51 Franklin Street, Suite 330" +msgstr "51 Franklin Street, Suite 330" + +#. (itstool) path: address/city +#: C/fdl-appendix.xml:21 +msgid "Boston" +msgstr "Boston" + +#. (itstool) path: address/state +#: C/fdl-appendix.xml:21 +msgid "MA" +msgstr "MA" + +#. (itstool) path: address/postcode +#: C/fdl-appendix.xml:22 +msgid "02110-1301" +msgstr "02110-1301" + +#. (itstool) path: address/country +#: C/fdl-appendix.xml:22 +msgid "USA" +msgstr "USA" + +#. (itstool) path: para/address +#: C/fdl-appendix.xml:20 +msgid "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" +msgstr "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:34 +msgid "free" +msgstr "fritt" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:32 +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document <_:quote-1/> in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" +"Syftet med denna licens är att göra en handbok, bok, eller annat praktiskt " +"och användbart dokument <_:quote-1/> som i frihet: att försäkra var och en " +"den faktiska friheten att kopiera och sprida det vidare, med eller utan " +"förändringar, antingen kommersiellt eller ideellt. Sekundärt bevarar denna " +"licens ett sätt för författaren och förläggaren att få ära för deras arbete " +"utan att de anses vara ansvariga för förändringar gjorda av andra." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:44 +msgid "copyleft" +msgstr "copyleft" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:43 +msgid "" +"This License is a kind of <_:quote-1/>, which means that derivative works of " +"the document must themselves be free in the same sense. It complements the " +"GNU General Public License, which is a copyleft license designed for free " +"software." +msgstr "" +"Denna Licens är en sorts <_:quote-1/>, vilket betyder att derivativa verk av " +"detta dokument själva måste vara fria på samma sätt. Den kompletterar GNU " +"General Public License, som är en copyleft-licens utformad för fri " +"programvara." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:67 C/fdl-appendix.xml:82 C/fdl-appendix.xml:99 +#: C/fdl-appendix.xml:107 C/fdl-appendix.xml:113 C/fdl-appendix.xml:156 +#: C/fdl-appendix.xml:179 C/fdl-appendix.xml:190 C/fdl-appendix.xml:205 +#: C/fdl-appendix.xml:224 C/fdl-appendix.xml:235 C/fdl-appendix.xml:253 +#: C/fdl-appendix.xml:271 C/fdl-appendix.xml:294 C/fdl-appendix.xml:354 +#: C/fdl-appendix.xml:368 C/fdl-appendix.xml:400 C/fdl-appendix.xml:462 +#: C/fdl-appendix.xml:472 C/fdl-appendix.xml:482 C/fdl-appendix.xml:519 +#: C/fdl-appendix.xml:540 C/fdl-appendix.xml:565 C/fdl-appendix.xml:583 +#: C/fdl-appendix.xml:608 +msgid "Document" +msgstr "Dokument" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:69 +msgid "you" +msgstr "du" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:63 +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The <_:quote-1/>, below, refers to any such manual or work. " +"Any member of the public is a licensee, and is addressed as <_:quote-2/>." +msgstr "" +"Denna licens [det engelska originalet] gäller för varje handbok eller annat " +"verk, oavsett uttrycksform, som innehåller ett meddelande där " +"upphovsrättsinnehavaren stadgat att verket kan spridas enligt villkoren i " +"GNU Free Documentation License. Ett sådant meddelande ger en internationell " +"frihet utan krav på ersättning och utan tidsbegränsning att använda verket " +"under villkoren i denna licens [det engelska originalet]. <_:quote-1/> nedan " +"syftar på godtycklig handbok eller verk. Var och en är licenstagare och " +"benämns som <_:quote-2/>." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:73 C/fdl-appendix.xml:234 C/fdl-appendix.xml:269 +#: C/fdl-appendix.xml:283 C/fdl-appendix.xml:315 C/fdl-appendix.xml:351 +#: C/fdl-appendix.xml:413 C/fdl-appendix.xml:433 C/fdl-appendix.xml:447 +#: C/fdl-appendix.xml:459 C/fdl-appendix.xml:475 C/fdl-appendix.xml:543 +msgid "Modified Version" +msgstr "förändrad version" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:72 +msgid "" +"A <_:quote-1/> of the Document means any work containing the Document or a " +"portion of it, either copied verbatim, or with modifications and/or " +"translated into another language." +msgstr "" +"En <_:quote-1/> av dokumentet avser varje verk som innehåller dokumentet " +"eller en del av det, antingen ordagranna kopior, eller med ändringar och/" +"eller översatt till ett annat språk." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:80 +msgid "Secondary Section" +msgstr "sekundärt avsnitt" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:79 +msgid "" +"A <_:quote-1/> is a named appendix or a front-matter section of the <_:" +"link-2/> that deals exclusively with the relationship of the publishers or " +"authors of the Document to the Document's overall subject (or to related " +"matters) and contains nothing that could fall directly within that overall " +"subject. (For example, if the Document is in part a textbook of mathematics, " +"a Secondary Section may not explain any mathematics.) The relationship could " +"be a matter of historical connection with the subject or with related " +"matters, or of legal, commercial, philosophical, ethical or political " +"position regarding them." +msgstr "" +"Ett <_:quote-1/> är en märkt bilaga eller förord till dokumentet som exklusivt behandlar förhållandet mellan " +"dokumentets förläggare eller författare och dokumentets huvudsakliga ämne " +"(eller till relaterade ämnen) och som inte innehåller något som direkt " +"faller under det huvudsakliga ämnet. (Således, om dokumentet delvis är en " +"lärobok i matematik så får ett sekundärt avsnitt inte förklara någon " +"matematik.) Förhållandet kan vara en historisk koppling till ämnet eller " +"något relaterat, eller en juridisk, kommersiell, filosofisk, etisk eller " +"politisk ställning till det." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:95 C/fdl-appendix.xml:327 C/fdl-appendix.xml:398 +#: C/fdl-appendix.xml:439 C/fdl-appendix.xml:486 C/fdl-appendix.xml:494 +#: C/fdl-appendix.xml:567 C/fdl-appendix.xml:637 C/fdl-appendix.xml:648 +msgid "Invariant Sections" +msgstr "oföränderliga avsnitten" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:96 C/fdl-appendix.xml:435 +msgid "Secondary Sections" +msgstr "sekundära avsnitt" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:94 +msgid "" +"The <_:quote-1/> are certain <_:link-2/> whose titles are designated, as " +"being those of Invariant Sections, in the notice that says that the <_:" +"link-3/> is released under this License." +msgstr "" +"De <_:quote-1/> är <_:link-2/> vars titlar är angivna som oföränderliga " +"avsnitt i meddelandet som stadgar att <_:link-3/> är utgivet under denna " +"licens [det engelska originalet]." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:104 C/fdl-appendix.xml:181 C/fdl-appendix.xml:328 +#: C/fdl-appendix.xml:458 +msgid "Cover Texts" +msgstr "Omslagstexterna" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:103 +msgid "" +"The <_:quote-1/> are certain short passages of text that are listed, as " +"Front-Cover Texts or Back-Cover Texts, in the notice that says that the <_:" +"link-2/> is released under this License." +msgstr "" +"<_:quote-1/> är speciella korta ordföljder som är listade som " +"framsidestexter eller baksidestexter i meddelandet som stadgar att <_:link-2/" +"> är utgivet under denna licens [det engelska originalet]." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:112 C/fdl-appendix.xml:124 C/fdl-appendix.xml:207 +#: C/fdl-appendix.xml:369 +msgid "Transparent" +msgstr "transparent" + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:125 C/fdl-appendix.xml:204 +msgid "Opaque" +msgstr "opak" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:111 +msgid "" +"A <_:quote-1/> copy of the <_:link-2/> means a machine-readable copy, " +"represented in a format whose specification is available to the general " +"public, whose contents can be viewed and edited directly and " +"straightforwardly with generic text editors or (for images composed of " +"pixels) generic paint programs or (for drawings) some widely available " +"drawing editor, and that is suitable for input to text formatters or for " +"automatic translation to a variety of formats suitable for input to text " +"formatters. A copy made in an otherwise Transparent file format whose markup " +"has been designed to thwart or discourage subsequent modification by readers " +"is not Transparent. A copy that is not <_:quote-3/> is called <_:quote-4/>." +msgstr "" +"En <_:quote-1/> kopia av <_:link-2/> är en maskinläsbar kopia, representerad " +"i ett format vars specifikation finns tillgänglig för allmänheten, som " +"lämpar sig för att revidera dokumentet på ett enkelt sätt med generella " +"textredigeringsprogram eller (för pixelbaserade bilder) generella " +"grafikprogram eller (för ritningar) något väl tillgängligt ritprogram, och " +"som är passande som indata till textformaterare eller för automatisk " +"konvertering till en mängd format som passar som indata till " +"textformaterare. En kopia i ett för övrigt transparent filformat vars " +"markeringar, eller avsaknad av markeringar, har ordnats för att hindra eller " +"motverka att vidare förändring vidtas av läsare är inte transparent. En " +"kopia som inte är <_:quote-3/> kallas <_:quote-4/>." + +#. (itstool) path: para/quote +#. (itstool) path: para/link +#: C/fdl-appendix.xml:142 C/fdl-appendix.xml:146 C/fdl-appendix.xml:250 +#: C/fdl-appendix.xml:266 C/fdl-appendix.xml:281 C/fdl-appendix.xml:352 +msgid "Title Page" +msgstr "Titelsidan" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:141 +msgid "" +"The <_:quote-1/> means, for a printed book, the title page itself, plus such " +"following pages as are needed to hold, legibly, the material this License " +"requires to appear in the title page. For works in formats which do not have " +"any title page as such, <_:quote-2/> means the text near the most prominent " +"appearance of the work's title, preceding the beginning of the body of the " +"text." +msgstr "" +"<_:quote-1/> innebär, för en tryckt bok, titelsidan själv, och sådana därpå " +"följande sidor som krävs för att göra det material som enligt denna licens " +"skall synas på titelsidan läsbart. För verk i sådana format som inte har " +"någon egentlig titelsida, avses med <_:quote-2/> den text som är närmast den " +"mest framstående förekomsten av verkets titel, föregående den huvudsakliga " +"textmassan." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:166 C/fdl-appendix.xml:551 +msgid "section 3" +msgstr "paragraf 3" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:154 +msgid "" +"You may copy and distribute the <_:link-1/> in any medium, either " +"commercially or noncommercially, provided that this License, the copyright " +"notices, and the license notice saying this License applies to the Document " +"are reproduced in all copies, and that you add no other conditions " +"whatsoever to those of this License. You may not use technical measures to " +"obstruct or control the reading or further copying of the copies you make or " +"distribute. However, you may accept compensation in exchange for copies. If " +"you distribute a large enough number of copies you must also follow the " +"conditions in <_:link-2/>." +msgstr "" +"Du äger kopiera och sprida <_:link-1/> på valfritt medium, antingen " +"kommersiellt eller ideellt, förutsatt att denna licens [det engelska " +"originalet], upphovsrättsklausul, och meddelandet som stadgar att GNU Free " +"Documentation License gäller för dokumentet finns med på alla kopior, och " +"att du inte lägger till några som helst andra villkor än de som ingår i " +"denna licens. Du äger inte vidta tekniska åtgärder för att begränsa eller " +"kontrollera läsande eller vidare kopiering av de kopior du skapar eller " +"sprider. Dock äger du ta emot kompensation i utbyte mot kopior. Om du " +"sprider tillräckligt många kopior måste du också följa villkoren i <_:link-2/" +">." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:177 +msgid "" +"If you publish printed copies of the <_:link-1/> numbering more than 100, " +"and the Document's license notice requires <_:link-2/>, you must enclose the " +"copies in covers that carry, clearly and legibly, all these Cover Texts: " +"Front-Cover Texts on the front cover, and Back-Cover Texts on the back " +"cover. Both covers must also clearly and legibly identify you as the " +"publisher of these copies. The front cover must present the full title with " +"all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the <_:link-3/> and satisfy " +"these conditions, can be treated as verbatim copying in other respects." +msgstr "" +"Om du publicerar tryckta kopior (eller kopior i medier som normalt har " +"tryckta omslag) av <_:link-1/>, i en upplaga överstigande 100 exemplar, och " +"dokumentets licensmeddelande kräver <_:link-2/>, så måste du förse kopiorna " +"med omslag som, klart och tydligt, visar alla omslagstexter: framsidestexter " +"på framsidan och baksidestexter på baksidan. Båda omslagen måste klart och " +"tydligt identifiera dig som utgivare av dessa kopior. Framsidan måste " +"presentera dokumentets hela titel, med alla ord i titeln lika framträdande " +"och synliga. Du äger lägga till ytterligare stoff på omslagen. Kopiering med " +"förändringar gjorda bara på omslaget, så länge som de bevarar titeln för <_:" +"link-3/> och i övrigt uppfyller dessa krav kan anses vara ordagrann " +"kopiering i andra avseenden." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:202 +msgid "" +"If you publish or distribute <_:link-1/> copies of the <_:link-2/> numbering " +"more than 100, you must either include a machine-readable <_:link-3/> copy " +"along with each Opaque copy, or state in or with each Opaque copy a publicly-" +"accessible computer-network location containing a complete Transparent copy " +"of the Document, free of added material, which the general network-using " +"public has access to download anonymously at no charge using public-standard " +"network protocols. If you use the latter option, you must take reasonably " +"prudent steps, when you begin distribution of Opaque copies in quantity, to " +"ensure that this Transparent copy will remain thus accessible at the stated " +"location until at least one year after the last time you distribute an " +"Opaque copy (directly or through your agents or retailers) of that edition " +"to the public." +msgstr "" +"Om du publicerar <_:link-1/>a kopior av <_:link-2/> i upplagor om mer än " +"100, måste du antingen bifoga en maskinläsbar <_:link-3/> kopia med varje " +"opak kopia, eller ange i eller med varje opak kopia en nätverksadress som är " +"tillgänglig för den allmänna nätverksanvändande massan där man, med öppet " +"standardiserade protokoll, anonymt och utan kostnad kan ladda ner en " +"komplett transparent kopia av dokumentet, utan extra material. Om du väljer " +"det senare alternativet, måste du vidta skäliga åtgärder, när du börjar " +"sprida opaka kopior i kvantitet, för att denna transparenta kopia skall " +"förbli tillgänglig på angivna platsen till åtminstone ett år efter den sista " +"gången du spred en opak kopia (direkt eller via ombud eller återförsäljare) " +"av den utgåvan till allmänheten." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:222 +msgid "" +"It is requested, but not required, that you contact the authors of the <_:" +"link-1/> well before redistributing any large number of copies, to give them " +"a chance to provide you with an updated version of the Document." +msgstr "" +"Det är önskvärt, men inte ett krav, att du kontaktar författarna till <_:" +"link-1/> i god tid innan du sprider något större antal kopior, för att ge " +"dem en chans att förse dig med en uppdaterad version av dokumentet." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:236 +msgid "2" +msgstr "2" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:237 +msgid "3" +msgstr "3" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:232 +msgid "" +"You may copy and distribute a <_:link-1/> of the <_:link-2/> under the " +"conditions of sections <_:link-3/> and <_:link-4/> above, provided that you " +"release the Modified Version under precisely this License, with the Modified " +"Version filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" +"Du äger kopiera och sprida en <_:link-1/> av <_:link-2/> under de villkor " +"som beskrivs i paragraf <_:link-3/> och <_:link-4/> av GNU Free " +"Documentation License, förutsatt att du släpper den förändrade versionen " +"under exakt denna licens, och att den förändrade versionen antar dokumentets " +"roll, och således medger spridning och förändring av den förändrade " +"versionen till envar som erhåller en kopia av den. Utöver detta måste du " +"göra följande med den ändrade versionen:" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:249 +msgid "" +"Use in the <_:link-1/> (and on the covers, if any) a title distinct from " +"that of the <_:link-2/>, and from those of previous versions (which should, " +"if there were any, be listed in the History section of the Document). You " +"may use the same title as a previous version if the original publisher of " +"that version gives permission." +msgstr "" +"På <_:link-1/> (och omslagen om det finns några) använda en titel skild från " +"den som [original]<_:link-2/> har, och skild från tidigare versioners titel " +"(som skall, om det finns några, finnas listade i historikavsnittet i " +"dokumentet). Du äger använda samma titel som det föregående dokumentet om " +"den ursprungliga utgivaren ger sitt tillstånd." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:265 +msgid "" +"List on the <_:link-1/>, as authors, one or more persons or entities " +"responsible for authorship of the modifications in the <_:link-2/>, together " +"with at least five of the principal authors of the <_:link-3/> (all of its " +"principal authors, if it has less than five)." +msgstr "" +"Lista på <_:link-1/>, som författare, en eller flera personer eller " +"juridiska personer som ansvarat för förändringarna i <_:link-2/>, " +"tillsammans med minst fem av de huvudsakliga författarna av <_:link-3/> " +"(alla dess huvudsakliga författare, om det har mindre än fem)." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:280 +msgid "" +"State on the <_:link-1/> the name of the publisher of the <_:link-2/>, as " +"the publisher." +msgstr "Ange namnet på utgivaren av <_:link-1/>, som utgivare, på <_:link-2/>." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:292 +msgid "Preserve all the copyright notices of the <_:link-1/>." +msgstr "Bibehålla alla upphovsrättsklausuler för <_:link-1/>." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:312 +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the <_:link-1/> under the terms of this " +"License, in the form shown in the Addendum below." +msgstr "" +"Direkt efter upphovsrättsklausulerna innefatta ett meddelande som ger " +"allmänheten tillstånd att använda <_:link-1/> under villkoren i denna licens " +"[det engelska originalet] i den form som visas i Tillägg nedan." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:330 +msgid "Document's" +msgstr "dokumentets" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:325 +msgid "" +"Preserve in that license notice the full lists of <_:link-1/> and required " +"<_:link-2/> given in the <_:link-3/> license notice." +msgstr "" +"I meddelandet om licensen bevara den fullständiga listan över <_:link-1/> " +"och obligatoriska <_:link-2/> som finns i <_:link-3/> meddelande om licensen." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:348 C/fdl-appendix.xml:353 C/fdl-appendix.xml:372 +#: C/fdl-appendix.xml:507 C/fdl-appendix.xml:508 +msgid "History" +msgstr "historik" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:347 +msgid "" +"Preserve the section entitled <_:quote-1/>, and its title, and add to it an " +"item stating at least the title, year, new authors, and publisher of the <_:" +"link-2/> as given on the <_:link-3/>. If there is no section entitled <_:" +"quote-4/> in the <_:link-5/>, create one stating the title, year, authors, " +"and publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" +"Bevara avsnittet med titeln <_:quote-1/> (History), bevara dess titel och " +"lägg i avsnittet till en post med åtminstone titeln, året, nya författare " +"och utgivaren av <_:link-2/> så som angivet på <_:link-3/>. Om det inte " +"finns något avsnitt med titeln <_:quote-4/> (History) i <_:link-5/> så skapa " +"en med titeln, året, författare och utgivaren av dokumentet så som det står " +"på [original]dokumentets titelsida. Lägg sedan till en post som beskriver " +"den förändrade versionen så som beskrivits ovan." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:366 +msgid "" +"Preserve the network location, if any, given in the <_:link-1/> for public " +"access to a <_:link-2/> copy of the Document, and likewise the network " +"locations given in the Document for previous versions it was based on. These " +"may be placed in the <_:quote-3/> section. You may omit a network location " +"for a work that was published at least four years before the Document " +"itself, or if the original publisher of the version it refers to gives " +"permission." +msgstr "" +"Bevara den nätverksadress, om det finns någon, angiven i <_:link-1/> till " +"den allmänt tillgängliga <_:link-2/>a kopian av dokumentet, och likaså " +"nätverksadresserna till de föregående versioner som dokumentet baseras på. " +"Dessa får placeras i avsnittet <_:quote-3/> (History). Du äger utelämna en " +"nätverksadress för ett verk som är publicerat mer än fyra år före dokumentet " +"självt, eller om den ursprunglige utgivaren vars verk nätverksadressen " +"hänvisar till ger sitt tillstånd." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:385 C/fdl-appendix.xml:509 +msgid "Acknowledgements" +msgstr "tillkännagivanden" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:386 C/fdl-appendix.xml:510 +msgid "Dedications" +msgstr "dedikationer" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:384 +msgid "" +"In any section entitled <_:quote-1/> or <_:quote-2/>, preserve the section's " +"title, and preserve in the section all the substance and tone of each of the " +"contributor acknowledgements and/or dedications given therein." +msgstr "" +"För alla avsnitt med titlarna <_:quote-1/> (Acknowledgements) eller <_:" +"quote-2/> (Dedications), bevara titeln på avsnittet, och bevara allt " +"innehåll och prägel på alla tillkännagivanden och/eller dedikationer gjorda " +"av varje bidragsgivare." + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:397 +msgid "" +"Preserve all the <_:link-1/> of the <_:link-2/>, unaltered in their text and " +"in their titles. Section numbers or the equivalent are not considered part " +"of the section titles." +msgstr "" +"Bevara alla <_:link-1/> i <_:link-2/> oförändrade till text och titel. " +"Avsnittsnummer eller motsvarande anses inte tillhöra avsnittets titel." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:412 C/fdl-appendix.xml:424 C/fdl-appendix.xml:445 +msgid "Endorsements" +msgstr "endossering" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:410 +msgid "" +"Delete any section entitled <_:quote-1/>. Such a section may not be included " +"in the <_:link-2/>." +msgstr "" +"Radera varje avsnitt med titeln <_:quote-1/> (Endorsements). Ett sådant " +"avsnitt får inte inkluderas i en <_:link-2/>." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:425 +msgid "Invariant Section" +msgstr "oföränderligt avsnitt" + +#. (itstool) path: formalpara/para +#: C/fdl-appendix.xml:422 +msgid "" +"Do not retitle any existing section as <_:quote-1/> or to conflict in title " +"with any <_:link-2/>." +msgstr "" +"Inte byta titel på något existerande avsnitt så att det blir <_:quote-1/> " +"(Endorsements) eller så att titeln kan förväxlas med något <_:link-2/>." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:432 +msgid "" +"If the <_:link-1/> includes new front-matter sections or appendices that " +"qualify as <_:link-2/> and contain no material copied from the Document, you " +"may at your option designate some or all of these sections as invariant. To " +"do this, add their titles to the list of <_:link-3/> in the Modified " +"Version's license notice. These titles must be distinct from any other " +"section titles." +msgstr "" +"Om <_:link-1/> innehåller nya framsidestexter eller bilagor som är att anses " +"som <_:link-2/> och inte innehåller något material kopierat från dokumentet, " +"så äger du, om du vill, benämna några eller samtliga av dessa som " +"oföränderliga. För att göra detta, lägg deras titlar till listan över <_:" +"link-3/> i den förändrade versionens licensmeddelande. Dessa titlar måste " +"vara skilda från alla andra avsnitts titlar." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:444 +msgid "" +"You may add a section entitled <_:quote-1/>, provided it contains nothing " +"but endorsements of your <_:link-2/> by various parties--for example, " +"statements of peer review or that the text has been approved by an " +"organization as the authoritative definition of a standard." +msgstr "" +"Du äger lägga till ett avsnitt med titeln <_:quote-1/> (Endorsements), " +"förutsatt att det inte innehåller något annat än endosseringar för din <_:" +"link-2/> från olika aktörer -- till exempel, meddelanden om utförd " +"korrekturläsning eller att texten har godkänts av en organisation som en " +"officiell definition av en standard." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:455 +msgid "Front-Cover Text" +msgstr "framsidestext" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:457 +msgid "Back-Cover Text" +msgstr "baksidestext" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:453 +msgid "" +"You may add a passage of up to five words as a <_:link-1/>, and a passage of " +"up to 25 words as a <_:link-2/>, to the end of the list of <_:link-3/> in " +"the <_:link-4/>. Only one passage of Front-Cover Text and one of Back-Cover " +"Text may be added by (or through arrangements made by) any one entity. If " +"the <_:link-5/> already includes a cover text for the same cover, previously " +"added by you or by arrangement made by the same entity you are acting on " +"behalf of, you may not add another; but you may replace the old one, on " +"explicit permission from the previous publisher that added the old one." +msgstr "" +"Du äger lägga till ett textavsnitt på upp till fem ord som <_:link-1/>, och " +"ett textavsnitt på upp till 25 ord som <_:link-2/> i listan över <_:link-3/> " +"i <_:link-4/>. Bara ett textavsnitt med framsidestexter och ett med " +"baksidestexter får läggas till av (eller genom försorg av) en enda juridisk " +"person. Om <_:link-5/> redan innehåller en omslagstext för något av " +"omslagen, tidigare tillagd av dig eller genom försorg av samma juridiska " +"person som du företräder, äger du inte lägga till en till, men du äger ändra " +"den gamla med tillstånd från den tidigare utgivaren som lade till den förra." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:470 +msgid "" +"The author(s) and publisher(s) of the <_:link-1/> do not by this License " +"give permission to use their names for publicity for or to assert or imply " +"endorsement of any <_:link-2/>." +msgstr "" +"Författaren (författarna) och utgivaren (utgivarna) av <_:link-1/> ger inte " +"via denna licens sitt tillstånd att använda sina namn för publicitet eller " +"för att lägga till eller antyda endossering av någon <_:link-2/>." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:484 C/fdl-appendix.xml:566 +msgid "section 4" +msgstr "paragraf 4" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:481 +msgid "" +"You may combine the <_:link-1/> with other documents released under this " +"License, under the terms defined in <_:link-2/> above for modified versions, " +"provided that you include in the combination all of the <_:link-3/> of all " +"of the original documents, unmodified, and list them all as Invariant " +"Sections of your combined work in its license notice." +msgstr "" +"Du äger kombinera <_:link-1/> med andra dokument som är utgivna under denna " +"licens, under de villkor som definieras i <_:link-2/> av GNU Free " +"Documentation License för förändrade versioner, förutsatt att du, i det " +"kombinerade dokumentet, innefattar alla <_:link-3/> från originaldokumenten, " +"omodifierade, och listar dem som oföränderliga avsnitt i ditt kombinerade " +"verk i dess licensklausul, och att du bevarar alla deras " +"garantiavsägelseklausuler." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:492 +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical <_:link-1/> may be replaced with a single copy. If there are " +"multiple Invariant Sections with the same name but different contents, make " +"the title of each such section unique by adding at the end of it, in " +"parentheses, the name of the original author or publisher of that section if " +"known, or else a unique number. Make the same adjustment to the section " +"titles in the list of Invariant Sections in the license notice of the " +"combined work." +msgstr "" +"Det kombinerade verket behöver bara innehålla en enstaka kopia av denna " +"licens [engelska originalversionen], och flera identiska <_:link-1/> kan " +"ersättas med en kopia. Om det finns flera oföränderliga stycken med samma " +"namn men olika innehåll, se till att titeln på varje sådant avsnitt är unik " +"genom att i slutet på den, inom parentes, lägga till namnet på den " +"ursprunglige författaren eller utgivaren av det avsnittet om dessa är kända, " +"annars ett unikt nummer. Gör samma justeringar av titlarna i listan över " +"oföränderliga avsnitt i licensklausulen i det kombinerade verket." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:511 +msgid "Endorsements." +msgstr "endossering" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:505 +msgid "" +"In the combination, you must combine any sections entitled <_:quote-1/> in " +"the various original documents, forming one section entitled <_:quote-2/>; " +"likewise combine any sections entitled <_:quote-3/>, and any sections " +"entitled <_:quote-4/>. You must delete all sections entitled <_:quote-5/>" +msgstr "" +"I det kombinerade verket måste du kombinera alla avsnitt med titlarna <_:" +"quote-1/> (History) i de ursprungliga dokumenten, till ett avsnitt med " +"titeln <_:quote-2/> (History); på samma sätt skall alla avsnitt med titlarna " +"<_:quote-3/> (Acknowledgements), alla avsnitt med titlarna <_:quote-4/> " +"(Dedications) kombineras. Du måste ta bort alla avsnitt med titlarna <_:" +"quote-5/> (Endorsements)." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:517 +msgid "" +"You may make a collection consisting of the <_:link-1/> and other documents " +"released under this License, and replace the individual copies of this " +"License in the various documents with a single copy that is included in the " +"collection, provided that you follow the rules of this License for verbatim " +"copying of each of the documents in all other respects." +msgstr "" +"Du äger skapa en samling bestående av <_:link-1/> och andra dokument som är " +"släppta under GNU Free Documentation License, och ersätta individuella " +"kopior i dokumenten av denna licens med en enda kopia [av den engelska " +"originalversionen] som inkluderas i samlingen, förutsatt att du följer " +"villkoren för ordagrann kopiering i denna licens för varje inkluderat " +"dokument i alla andra avseenden." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:546 +msgid "aggregate" +msgstr "sammanslagning" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:550 +msgid "Cover Text" +msgstr "Omslagstext" + +# sebras +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:538 +msgid "" +"A compilation of the <_:link-1/> or its derivatives with other separate and " +"independent documents or works, in or on a volume of a storage or " +"distribution medium, does not as a whole count as a <_:link-2/> of the " +"Document, provided no compilation copyright is claimed for the compilation. " +"Such a compilation is called an <_:quote-3/>, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the <_:link-4/> requirement of <_:link-5/> is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" +"En samling av <_:link-1/> eller av dess derivat med andra separata och " +"oberoende dokument eller verk, på eller i en lagringsvolym eller ett " +"spridningsmedium, kallas för en sammanslagning om den " +"sammanslagna upphovsrätten inte används för att begränsa samlingens " +"användares rättigheter som de enskilda dokumenten medger. När dokumentet " +"ingår i en sådan sammanslagning, gäller inte denna licens de andra verken i " +"samlingen som inte själva är deriverat av dokumentet. Om kravet på omslagstexter enligt paragraf 3 är tillämpligt på dessa kopior av dokumentet, " +"så kan dokumentets omslagstexter, om dokumentet utgör mindre än en fjärdedel " +"av hela samlingen, placeras på det omslag som omger dokumentet inuti " +"samlingen, eller den elektroniska motsvarigheten till omslag om dokumentet " +"är i elektronisk form. Annars måste de synas på det omslag som omger hela " +"samlingen." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:562 +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the <_:link-1/> under the terms of <_:link-2/>. Replacing <_:" +"link-3/> with translations requires special permission from their copyright " +"holders, but you may include translations of some or all Invariant Sections " +"in addition to the original versions of these Invariant Sections. You may " +"include a translation of this License provided that you also include the " +"original English version of this License. In case of a disagreement between " +"the translation and the original English version of this License, the " +"original English version will prevail." +msgstr "" +"Översättning anses vara en sorts förändring, så du äger sprida " +"översättningar av <_:link-1/> enligt de villkor som sätts i <_:link-2/>. <_:" +"link-3/> som ersätts med översättningar kräver tillstånd från deras " +"upphovsrättsinnehavare, men du äger inkludera översättningar av alla eller " +"vissa av dessa oföränderliga avsnitt tillsammans med originalversionerna av " +"dessa oföränderliga avsnitt. Du äger inkludera en översättning av denna " +"licens, och alla licensklausuler i dokumentet, och alla garantiavsägelser, " +"förutsatt att du också innefattar den engelska originalversionen av denna " +"licens och originalversionerna av dessa klausuler. Skulle det finnas " +"skillnader mellan översättningen och originalversionen av denna licens eller " +"någon klausul så gäller originalversionen." + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:581 +msgid "" +"You may not copy, modify, sublicense, or distribute the <_:link-1/> except " +"as expressly provided for under this License. Any other attempt to copy, " +"modify, sublicense or distribute the Document 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." +msgstr "" +"Du äger inte kopiera, förändra, omlicensiera eller sprida <_:link-1/> annat " +"än enligt villkoren i GNU Free Documentation License. Alla övriga försök att " +"kopiera, modifiera, omlicensiera, eller sprida dokumentet är ogiltiga och " +"kommer automatiskt medföra att du förlorar dina rättigheter enligt denna " +"licens. Tredje man som har mottagit kopior eller rättigheter från dig enligt " +"dessa licensvillkor kommer dock inte att förlora sina rättigheter så länge " +"de följer licensvillkoren." + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:597 +msgid "Free Software Foundation" +msgstr "Free Software Foundation" + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:603 +msgid "http://www.gnu.org/copyleft/" +msgstr "http://www.gnu.org/copyleft/" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:595 +msgid "" +"The <_:ulink-1/> may publish new, revised versions of the GNU Free " +"Documentation 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. See <_:ulink-2/>." +msgstr "" +"<_:ulink-1/> kan publicera nya, reviderade versioner av GNU Free " +"Documentation License då och då. Sådana nya versioner kommer att vara " +"likadana i andemening som den nuvarande versionen, men kan skilja i detalj " +"för att behandla nya problem eller angelägenheter. Se <_:ulink-2/>." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:610 +msgid "or any later version" +msgstr "eller valfri senare version" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:606 +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"<_:link-1/> specifies that a particular numbered version of this License <_:" +"quote-2/> applies to it, you have the option of following the terms and " +"conditions either of that specified version or of any later version that has " +"been published (not as a draft) by the Free Software Foundation. If the " +"Document does not specify a version number of this License, you may choose " +"any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" +"Varje version av licensen ges ett unikt versionsnummer. Om <_:link-1/> " +"stadgar att en specifik numrerad version av denna licens <_:quote-2/> gäller " +"för det, så äger du rätten att följa villkoren enligt antingen den angivna " +"versionen eller vilken senare version som helst som publicerats (inte som " +"utkast) av Free Software Foundation. Om dokumentet inte anger en version av " +"denna licens, äger du välja vilken version som helst som publicerats (inte " +"som utkast) av Free Software Foundation." + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:639 C/fdl-appendix.xml:651 +msgid "Front-Cover Texts" +msgstr "Front-Cover Texts" + +#. (itstool) path: para/link +#: C/fdl-appendix.xml:640 C/fdl-appendix.xml:654 +msgid "Back-Cover Texts" +msgstr "Back-Cover Texts" + +# <_:link-1/> blir "oföränderliga avsnitten" +#. (itstool) path: blockquote/para +#: C/fdl-appendix.xml:632 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the <_:link-1/> " +"being LIST THEIR TITLES, with the <_:link-2/> being LIST, and with the <_:" +"link-3/> being LIST. A copy of the license is included in the section " +"entitled <_:quote-4/>." +msgstr "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the <_:link-1/> " +"being LIST THEIR TITLES, with the <_:link-2/> being LIST, and with the <_:" +"link-3/> being LIST. A copy of the license is included in the section " +"entitled <_:quote-4/>." + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:649 +msgid "with no Invariant Sections" +msgstr "with no Invariant Sections" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:652 +msgid "no Front-Cover Texts" +msgstr "no Front-Cover Texts" + +#. (itstool) path: para/quote +#: C/fdl-appendix.xml:653 +msgid "Front-Cover Texts being LIST" +msgstr "Front-Cover Texts being LIST" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:647 +msgid "" +"If you have no <_:link-1/>, write <_:quote-2/> instead of saying which ones " +"are invariant. If you have no <_:link-3/>, write <_:quote-4/> instead of <_:" +"quote-5/>; likewise for <_:link-6/>." +msgstr "" +"Om du inte har några <_:link-1/>, skriv <_:quote-2/> istället för att ange " +"vilka som är oföränderliga. Om du inte har några <_:link-3/>, skriv <_:" +"quote-4/> istället för <_:quote-5/>; såväl som för <_:link-6/>." + +#. (itstool) path: para/ulink +#: C/fdl-appendix.xml:661 +msgid "GNU General Public License" +msgstr "GNU General Public License" + +#. (itstool) path: sect1/para +#: C/fdl-appendix.xml:657 +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the <_:ulink-1/>, to permit their use in free software." +msgstr "" +"Om ditt dokument innehåller icke-triviala exempel med programkod, så " +"rekommenderar vi att du släpper dessa exempel parallellt under en, av dig " +"vald, fri programvarulicens, som till exempel <_:ulink-1/>, för att " +"möjliggöra deras användning i fri programvara." + +#~ msgid "Python - optional - for gtkdoc-depscan" +#~ msgstr "Python - valfritt - för gtkdoc-depscan" + +#~ msgid "" +#~ "Generating the \"template\" files. " +#~ "gtkdoc-mktmpl creates a number of files in the " +#~ "tmpl/ subdirectory, using the " +#~ "information gathered in the first step. (Note that this can be run " +#~ "repeatedly. It will try to ensure that no documentation is ever lost.)" +#~ msgstr "" +#~ "Generera ”mall”-filerna. gtkdoc-mktmpl skapar ett antal filer i underkatalogen tmpl/, från information som samlats ihop i det " +#~ "första steget. (Notera att detta kan köras upprepade gånger. Det kommer " +#~ "att försöka att säkerställa att ingen dokumentation någonsin går " +#~ "förlorad.)" + +#~ msgid "" +#~ "Since GTK-Doc 1.9 the templates can be avoided. We encourage people to " +#~ "keep documentation in the code. gtkdocize " +#~ "supports now a option that chooses a " +#~ "makefile that skips tmpl usage totally. If you have never changed file in " +#~ "tmpl by hand, please remove the directory (e.g. from version control " +#~ "system)." +#~ msgstr "" +#~ "Sedan GTK-Doc 1.9 kan mallar undvikas. Vi rekommenderar att hålla " +#~ "dokumentationen i koden. gtkdocize har nu stöd " +#~ "för flaggan som väljer en makefil som " +#~ "helt hoppar över tmpl-användning. Om du inte ändrat i någon fil i tmpl " +#~ "för hand, ta bort katalogen (t.ex. från versionshanteringssystemet)." + +#~ msgid "1.12" +#~ msgstr "1.12" + +#~ msgid "Chris" +#~ msgstr "Chris" + +#~ msgid "Lyttle" +#~ msgstr "Lyttle" + +#~ msgid "chris@wilddev.net" +#~ msgstr "chris@wilddev.net" + +#~ msgid "Dan" +#~ msgstr "Dan" + +#~ msgid "Mueth" +#~ msgstr "Mueth" + +#~ msgid "d-mueth@uchicago.edu" +#~ msgstr "d-mueth@uchicago.edu" + +#~ msgid "Stefan" +#~ msgstr "Stefan" + +#~ msgid "Kost" +#~ msgstr "Kost" + +#~ msgid "ensonic@users.sf.net" +#~ msgstr "ensonic@users.sf.net" + +#~ msgid "gtk-doc-list@gnome.org" +#~ msgstr "gtk-doc-list@gnome.org" + +#~ msgid "2000, 2005, 2007-2009" +#~ msgstr "2000, 2005, 2007-2009" + +#~ msgid "Dan Mueth and Chris Lyttle and Stefan Kost" +#~ msgstr "Dan Mueth, Chris Lyttle och Stefan Kost" + +#~ msgid "1.11" +#~ msgstr "1.11" + +#~ msgid "22 March 2008" +#~ msgstr "22 mars 2008" + +#~ msgid "mal" +#~ msgstr "mal" + +#~ msgid "explanation" +#~ msgstr "förklaring" diff --git a/help/manual/sv/sv.stamp b/help/manual/sv/sv.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/sv/sv.stamp diff --git a/help/manual/ta/fdl-appendix.xml b/help/manual/ta/fdl-appendix.xml new file mode 100644 index 0000000..4e333f5 --- /dev/null +++ b/help/manual/ta/fdl-appendix.xml @@ -0,0 +1,608 @@ + + + + + பதிப்பு 1.1, மார்ச் 2000 + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + க்னூ இலவச ஆவண லைசென்ஸ் + + + 0. முன்னுரை (PREAMBLE) + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. மாற்றங்கள் (MODIFICATIONS) + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + காப்புரிமை அறிவிப்புக்கு அருகில் உங்கள் மாற்றங்களுக்கான காப்புரிமையை வெளியிடுக. + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + இந்த லைசென்ஸின் மாற்றப்படாத வடிவத்தையும் ஒரு பிரதி வைத்திருங்கள். + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. மொழிபெயர்ப்பு + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: + +
    + Copyright 2010, I. Felix. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    diff --git a/help/manual/ta/index.docbook b/help/manual/ta/index.docbook new file mode 100644 index 0000000..ece6308 --- /dev/null +++ b/help/manual/ta/index.docbook @@ -0,0 +1,2623 @@ + + + + +included"> +]> + + + + ஜிடிகே டாக் கையேடு + 1.24.1 + உருவாக்குவோருக்கான ஜிடிகே டாக்(GTK-Doc) பயன்பாட்டு பயனர் கையேடு + + + Chris + Lyttle + +
    + chris@wilddev.net +
    +
    +
    + + Dan + Mueth + +
    + d-mueth@uchicago.edu +
    +
    +
    + + Stefan + Sauer (Kost) + +
    + ensonic@users.sf.net +
    +
    +
    +
    + + GTK-Doc project +
    gtk-doc-list@gnome.org
    +
    + + 2000, 2005 + Dan Mueth and Chris Lyttle + + + 2007-2015 + Stefan Sauer (Kost) + + + + + + நீங்கள் இலவச மென் பொருள் அமைப்பினால் வெளியிடப்பட்ட ஜிஎன்யு பொது ஆவண அனுமதிக்கான இந்த 1.1 ம் பதிப்பு அல்லது அடுத்த பதிப்புகள் விதிகளின் படி நீங்கள் (விருப்பப்படி) மாற்றமில்லா தொகுதிகள், முன் அட்டை உரைகள், பின் அட்டை உரைகள் ஆக்கியன நீங்கலாக இதை பிரதி எடுக்கலாம், வினியோகிக்கலாம், மாற்றலாம். அனுமதியின் பிரதி இங்குள்ளது:included + நிறுவனங்களால் அவர்களது பொருட்கள், சேவைகளை குறிப்பிட பயனாகும் பல பெயர்களை அவர்களது வியாபார குறியாக சொல்கிறார்கள். அத்தகைய பெயர்கள் க்னோம் ஆவணங்களில் காணப்படுமானால், அவை க்னோம் ஆவண திட்ட உறுப்பினருக்கு தெரிவிக்கப்பட்டால், அவை தலை எழுத்துக்களாக அலல்து முதல் எழுத்து தலை எழுத்தாக காட்டப்படும். + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + + 1.27 + 07 Dec 2017 + ss + fine tuning of the python port + + + 1.26 + 11 Aug 2017 + ss + port all tools from perl/bash to python + + + 1.25 + 21 March 2016 + ss + bug fixes, test cleanups + + + 1.24 + 29 May 2015 + ss + bug fix + + + 1.23 + 17 May 2015 + ss + bug fix + + + 1.22 + 07 May 2015 + ss + bug fixes, dropping deprecated features + + + 1.21 + 17 Jul 2014 + ss + bug fixes, dropping deprecated features + + + 1.20 + 16 Feb 2014 + ss + bug fixes, markdown support, style improvements + + + 1.19 + 05 Jun 2013 + ss + bug fixes + + + 1.18 + 14 Sep 2011 + ss + bug fixes, speedups, markdown support + + + 1.17 + 26 Feb 2011 + sk + urgent bug fix update + + + 1.16 + 14 Jan 2011 + sk + bugfixes, layout improvements + + + 1.15 + 21 May 2010 + sk + bug and regression fixes + + + 1.14 + 28 March 2010 + sk + bugfixes and performance improvements + + + 1.13 + 18 December 2009 + sk + broken tarball update + + + 1.12 + 18 December 2009 + sk + new tool features and bugfixes + + + 1.11 + 16 November 2008 + mal + GNOME doc-utils migration + + + +
    + + + + + அறிமுகம் + + இந்த அத்தியாயம் ஜிடிகே-டாக் குறித்த அறிமுகம் தருகிறது. மேலும் அது என்ன எப்படி பயன்படுத்துவது என மேலோட்டமாக சொல்லுகிறது. + + + ஜிடிகே டாக் என்பதென்ன? + + ஜிடிகே டாக் சி குறியாக்கத்தை ஆவணப்படுத்துகிறது. இது எடுத்துக்காட்டாக ஜிடிகே+ மற்றும் க்னோம் நூலகங்கள் போன்ற நூலகங்களின் பொது ஏபிஐ களை ஆவணப்படுத்த பயன்படுகிறது. ஆனாலும் இது நிரல்களின் குறியாக்கத்தை ஆவணப்படுத்தக்கூட பயன்படுத்தலாம். + + + + ஜிடிகே டாக் எப்படி வேலை செய்கிறது? + + ஜிடிகே டாக் வேலை செய்வதெப்படி எனில் சிறப்பு ஒழுங்கில் விமர்சன தொகுதிகளாக செயல்களின் ஆவணங்கள் மூல கோப்புகளில் வைக்கப்படும். அல்லது ஜிடிகே டாக் பயன்படுத்தும் டெம்ப் கோப்புகளுக்கு சேர்க்கபடும். (ஆயினும் ஜிடிகே டாக் தலைப்பு கோப்புகளில் அறுதியிட்ட பங்ஷன்களை மட்டுமே ஆவணப்படுத்தும். நிலையான பங்க்ஷன்களுக்கு வெளியீடு தராது) + + + GTK-Doc consists of a number of python scripts, each performing a different step + in the process. + + + இந்த நடப்பில் ஐந்து படிகள் உள்ளன + + + + + ஆவணம் எழுதும் முறை. ஆசிரியர் மூல கோப்பை ஒவ்வொரு செயல், மேக்ரோ, இணைப்புக்கும் ஆவணங்களால் நிரப்புவார். (முன்னே விவரங்கள் உருவாக்கப்பட்ட வார்ப்புரு கோப்புக்களால் உள்ளிடப்பட்டது. அப்படி இனி செய்ய பரிந்துரைக்கவில்லை.) + + + + + Gathering information about the code. + + gtkdoc-scan scans the header files of the + code looking for declarations of functions, macros, enums, structs, and unions. + It creates the file <module>-decl-list.txt containing a list of the + declarations, placing them into sections according to which header file they + are in. On the first run this file is copied to <module>-sections.txt. + The author can rearrange the sections, and the order of the + declarations within them, to produce the final desired order. + The second file it generates is <module>-decl.txt. + This file contains the full declarations found by the scanner. If for + some reason one would like some symbols to show up in the docs, where + the full declaration cannot be found by the scanner or the declaration + should appear differently, one can place entities similar to the ones in + <module>-decl.txt into <module>-overrides.txt. + + + gtkdoc-scangobj can also be used to dynamically query a library about + any GObject subclasses it exports. It saves information about each + object's position in the class hierarchy and about any GObject properties + and signals it provides. + + + gtkdoc-scanobj should not be used anymore. + It was needed in the past when GObject was still GtkObject inside gtk+. + + + + + + Generating the XML and HTML/PDF. + + gtkdoc-mkdb turns the template files into + XML files in the xml/ subdirectory. + If the source code contains documentation on functions, using the + special comment blocks, it gets merged in here. If there are no tmpl files used + it only reads docs from sources and introspection data. + + + gtkdoc-mkhtml turns the XML files into HTML + files in the html/ subdirectory. + Likewise gtkdoc-mkpdf turns the XML files into a PDF + document called <package>.pdf. + + + Files in xml/ and + html/ directories are always + overwritten. One should never edit them directly. + + + + + ஆவணங்கள் இடையில் குறுக்கு தொடுப்புகளை சரி செய்தல் HTML கோப்புக்களை நிறுவிய பின்னர், பின் வரும் நிரலை இயக்கி gtkdoc-fixxref ஆவணங்கள் இடையில் குறுக்கு தொடுப்புகளை சரி செய்யலாம். உதாரணமாக ஜிடிகே+ ஆவணத்தில் ஜிலிப் கையேட்டில் ஆவணப்படுத்திய பல வகைகளுக்கு குறுக்கு தொடுப்புகள் இருக்கும். வினியோகிக்க டார் பால் செய்யும் போது gtkdoc-rebase எல்லா வெளி தொடுப்புக்களையும் வலை தொடுப்பாக மாற்றிவிடும். இதே நிரல் ஆவணங்கள் நிறுவப்படும்போது அவற்றை உள்ளமை தொடுப்புக்களாக மாற்றியமைக்கும். (மற்ற ஆவணங்கள் நிறுவப்பட்டு இருக்கும் பட்சத்தில்.) + + + + + + + ஜிடிகே டாக் ஐ பெறுதல் + + + முன் தேவைகள் + + python 2/3 - the main scripts are written in python. + + + xsltproc - the xslt processor from libxslt + xmlsoft.org/XSLT/ + + + docbook-xsl - the docbook xsl stylesheets + sourceforge.net/projects/docbook/files/docbook-xsl + + + One of source-highlight, highlight or + vim - optional - used for syntax highlighting of examples + + + + + + ஜிடிகே டாக் பற்றி + + (FIXME) + + + (History, authors, web pages, mailing list, license, future plans, + comparison with other similar systems.) + + + + + + இந்த கையேடு பற்றி + + (FIXME) + + (இது யாருக்கு, உரிமம், எங்கு பெறுவது) + + + + + + + உங்கள் திட்டத்தை அமைத்தல் + + + The next sections describe what steps to perform to integrate GTK-Doc into + your project. Theses sections assume we work on a project called 'meep'. + This project contains a library called 'libmeep' and + an end-user app called 'meeper'. We also assume you will be using autoconf + and automake. In addition section plain + makefiles or other build systems will describe the basics needed to + work in a different build setup. + + + + தோராய ஆவணம் அமைத்தல் + + உங்கள் தலை மட்ட திட்ட அடைவில் இந்த மாதிரி அடைவுகளை உருவாக்குக.docs/reference (இதனால் உங்களுக்கு பயனர் ஆவணம் docs/help உம் கிடைக்கும்). இன்னொரு துணை அடைவு doc-package என் பெயரிட்டு உருவாக்கவும். ஒரே ஒரு நூலகம் உள்ள பொதிகளுக்கு இந்த படி தேவையில்லை + + + This can then look as shown below: + Example directory structure + + + + + + + ஆட்டோ கான்ஃப் உடன் ஒருங்கிணைப்பு + + ரொம்ப சுலபம். configure.ac குறுநிரலுக்கு ஒரே ஒரு வரி மட்டும் சேருங்கள். + + + ஆட்டோ கான்ஃப் உடன் ஒருங்கிணைப்பு + + + + + + This will require all developers to have gtk-doc installed. If it is + okay for your project to have optional api-doc build setup, you can + solve this as below. Keep it as is, as gtkdocize is looking for + GTK_DOC_CHECK at the start of a line. + Keep gtk-doc optional + + + + + முதல் தரு மதிப்பு வடிவமைப்பு நேரத்தில் ஜிடிகே டாக் இன் பதிப்பை சோதிக்கிறது. இரண்டாவது தெர்வு தருமதிப்பு. இது இந்த நிரலால் பயன்படுத்தப்படுகிறது. gtkdocize. GTK_DOC_CHECK மேக்ரோ பல மாற்றிகளை வடிவமைத்து சேர்க்கிறது: + + --with-html-dir=PATH : நிறுவிய ஆவணங்களுக்கான பாதை + ""--enable-gtk-doc :ஆவணமாக்கத்துக்கு ஜிடிகே டாக் ஐ பயன்படுத்துக. [முன்னிருப்பு=இல்லை] + --enable-gtk-doc-html : html ஒழுங்கில் ஆவணத்தை உருவாக்குக[முன்னிருப்பு=ஆம்] + --enable-gtk-doc-pdf : pdf ஒழுங்கில் ஆவணத்தை உருவாக்குக [முன்னிருப்பு=இல்லை] + + + + ஜிடிகே டாக் GTK-Doc முன்னிருப்பாக செயலிழந்து இருக்கும்! ஆகவே அடுத்த configure இயக்கத்துக்கு இந்த தேர்வை செய்க: . இல்லையானால் முன் உருவாக்கிய ஆவணங்கள் நிறூவப்படும்.( இது பயனர்களுக்கு புரியும், நல்லது. ஆனால் உருவாக்குவோருக்கு அல்ல). + + + + Furthermore it is recommended that you have the following line inside + your configure.ac script. + This allows gtkdocize to automatically copy the + macro definition for GTK_DOC_CHECK to your project. + + + + gtkdocize க்கு முன்னேற்பாடு + + + + + After all changes to configure.ac are made, update + the configure file. This can be done by re-running + autoreconf -i or autogen.sh. + + + + + ஆட்டோமேக் உடன் ஒருங்கிணைப்பு + + + First copy the Makefile.am from the + examples sub directory of the + gtkdoc-sources + to your project's API documentation directory ( + ./docs/reference/<package>). + A local copy should be available under e.g. + /usr/share/doc/gtk-doc-tools/examples/Makefile.am. + If you have multiple doc-packages repeat this for each one. + + + + The next step is to edit the settings inside the Makefile.am. + All the settings have a comment above that describes their purpose. + Most settings are extra flags passed to the respective tools. Every tool + has a variable of the form . + All the tools support to list the supported + parameters. + + + + + + + + ஆட்டொஜென் உடன் ஒருங்கிணைத்தல் + + முக்கால்வாசி திட்டங்களில் (cvs/svn/git போன்ற) வெர்ஷன் கட்டுப்பாடு அமைப்பில் இருந்து பெறப்பட்டதும் அடிக்கட்டுமான பணியை செய்ய autogen.sh குறுநிரல் இருக்கும். ஜிடிகே டாக் (GTK-Doc) இல் gtkdocize என ஒரு கருவி உண்டு. இது அது போன்ற குறுநிரலுடன் வேலை செய்யும்.இது autoheader, automake அல்லது autoconf க்கு முன்னால் இயக்கப்பட வேண்டும். + + + autogen.sh இலிருந்து gtkdocize ஐ இயக்குதல் + + + + + + When running gtkdocize it copies + gtk-doc.make to your project root (or any directory + specified by the option). + It also checks you configure script for the GTK_DOC_CHECK + invocation. This macro can be used to pass extra parameters to + gtkdocize. + + + + Historically GTK-Doc was generating template files where developers entered the docs. + This turned out to be not so good (e.g. the need for having generated + files under version control). + Since GTK-Doc 1.9 the tools can get all the information from source comments + and thus the templates can be avoided. We encourage people to keep + documentation in the code. gtkdocize supports now + a option that chooses a makefile that skips + tmpl usage totally. Besides adding the option directly to the command + invocation, they can be added also to an environment variable called GTKDOCIZE_FLAGS + or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. + If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, + please remove the directory (e.g. from version control system). + + + + + டாக் உருவாக்கியை (doc build) இயக்குதல் + + இப்போது கட்டுமானத்திற்கு ஆயத்தமாகிவிட்டோம். முதலில் நாம் மீன்டும் autogen.sh ஐ இயக்கவேண்டும். இது உங்களுக்கு கட்டமைப்பை இயக்கினால் அதற்கு தேர்வை தரவும். இல்லையானால் கைமுறையாக இதே தேர்வுடன் configure ஐ பிரிதொரு முறை இயக்கவும். + + The first make run generates several additional files in the doc-directories. + The important ones are: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + டாக் உருவாக்கியை (doc build) இயக்குதல் + + + + இப்போது உங்கள் உலாவியை docs/reference/<package>/index.html க்கு சுட்டிக்காட்டலாம். ஆமாம், இது கொஞ்சம் ஏமாற்றமாகத்தான் இருக்கிறது. கவலை வேண்டாம். அடுத்த அத்தியாயத்தில் எப்படி இவற்றை உயிருக்கு கொண்டு வருவது என பார்க்கலாம். + + + + வெர்ஷன் கன்ட்ரோல் அமைப்புகளுடன் ஒருங்கிணைத்தல் + + + As a rule of thumb, it's the files you edit which should go under + version control. For typical projects it's these files: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt, + Makefile.am. + + + Files in the xml/ and html/ + directories should not go under version control. Neither should any of + the .stamp files. + + + + + Integration with plain makefiles or other build systems + + + In the case one does not want to use automake and therefore + gtk-doc.mak one will need to call the gtkdoc tools + in the right order in own makefiles (or other build tools). + + + + Documentation build steps + +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir= +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html +]]> + + + + + One will need to look at the Makefile.am and + gtk-doc.mak to pick the extra options needed. + + + + + Integration with CMake build systems + + + GTK-Doc now provides a GtkDocConfig.cmake module + (and the corresponding GtkDocConfigVersion.cmake + module). This provides a gtk_doc_add_module + command that you can set in your CMakeLists.txt + file. + + + + The following example shows how to use this command. + Example of using GTK-Doc from CMake + + + + + + + + குறியாக்கத்தை ஆவணப்படுத்துதல் + + + GTK-Doc uses source code comment with a special syntax for code documentation. + Further it retrieves information about your project structure from other + sources. During the next section you will find all information about the + syntax of the comments. + + + + ஆவணம் இடுதல் + முன் காலத்தில் பெரும்பாலான ஆவணங்கள் tmpl அடைவில் இருக்கும் கோப்புகளில் நிரப்பப்பட வேண்டி இருந்தது. இதில் நஷ்டமாக தகவல்கள் அவ்வப்போது புதுப்பிக்கப்படவில்லை. மேலும் இவை வெர்ஷன் கட்டுப்பாடு அமைப்புகளுடன் பொருந்தவில்லை + மேற்கூறிய காரணங்களால் நாங்கள் ஆவணங்களை மூலத்துடன் வைக்கு மாறூ சொல்கிறோம். இந்த கையேடு இந்த முறையை மட்டுமே விவாதிக்கும். + + + + The scanner can handle the majority of C headers fine. In the case of + receiving warnings from the scanner that look like a special case, one can + hint GTK-Doc to skip over them. + GTK-Doc comment block + + + + + + Limitations + + Note, that GTK-Doc's supports + #ifndef(__GTK_DOC_IGNORE__) but not + #if !defined(__GTK_DOC_IGNORE__) or other combinations. + + + + + + + ஆவணமாக்க விமரிசனங்கள் + + + A multiline comment that starts with an additional '*' marks a + documentation block that will be processed by the GTK-Doc tools. + GTK-Doc comment block + + + + + 'identifier' எனப்படும் இனம் காட்டி விமர்சனம் பொருந்தும் உருப்படியின் பெயருடன் கூடிய ஒரு வரி. உருப்படியை பொருத்து இலக்கணம் சற்று மாறலாம். + + + The 'documentation' block is also different for each symbol type. Symbol + types that get parameters such as functions or macros have the parameter + description first followed by a blank line (just a '*'). + Afterwards follows the detailed description. All lines (outside program + listings and CDATA sections) just containing a ' *' (blank-asterisk) are + converted to paragraph breaks. + If you don't want a paragraph break, change that into ' * ' + (blank-asterisk-blank-blank). This is useful in preformatted text (code + listings). + + + + + When documenting code, describe two aspects: + + + + What it is: The name for a class or function can sometimes + be misleading for people coming from a different background. + + + + + What it does: Tell about common uses. Put it in relation + with the other API. + + + + + + + + One advantage of hyper-text over plain-text is the ability to have links + in the document. Writing the correct markup for a link can be tedious + though. GTK-Doc comes to help by providing several useful abbreviations. + + + + Use function() to refer to functions or macros which take arguments. + + + + + Use @param to refer to parameters. Also use this when referring to + parameters of other functions, related to the one being described. + + + + + Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS. + + + + + Use #symbol to refer to other types of symbol, e.g. structs and + enums and macros which don't take arguments. + + + + + Use #Object::signal to refer to a GObject signal. + + + + + Use #Object:property to refer to a GObject property. + + + + + Use #Struct.field to refer to a field inside a structure and + #GObjectClass.foo_bar() to refer to a vmethod. + + + + + + + சிறப்பு குறிகளான '<', '>', '()', '@', '%', அல்லது '#' ஐ ஜிடிகே டாக் மாற்றாமல் அப்படியே ஆவணத்தில் பயன்படுத்த அவற்றுக்கான ஹெச்எம்எல் ஐ பயன்படுத்துக: "&lt;", "&gt;", "&lpar;", "&rpar;", "&commat;", "&percnt;" மற்றும் "&num;" அல்லது பின் சாய்வு கோடால் அவற்றை தனியாக்கலாம்.'\'. + + + + DocBook can do more than just links. One can also have lists, + examples, headings, and images. As of version 1.20, the + preferred way is to use a subset of the basic text formatting + syntax called + Markdown. + On older GTK-Doc versions any documentation that includes + Markdown will be rendered as is. For example, list items will + appear as lines starting with a dash. + + + + While markdown is now preferred one can mix both. One limitation here is + that one can use docbook xml within markdown, but markdown within + docbook xml is not supported. + + + + In older GTK-Doc releases, if you need support for additional + formatting, you would need to enable the usage of docbook + XML tags inside doc-comments by putting + (or ) in the variable + MKDB_OPTIONS inside Makefile.am. + + + + GTK-Doc comment block using Markdown + + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ +]]> + + + + + More examples of what markdown tags are supported can be found in the + GTK+ Documentation Markdown Syntax Reference. + + + + ஜிடிகே டாக் + + + + + ஆவணப்படுத்தும் தொகுதிகள் + + ஆவணத்தில் ஒவ்வொரு பிரிவும் ஒரு வகுப்பு அல்லது கூறு குறித்து தகவலைப்பெற்றிருக்கும். ஒரு பாகத்தை அறிமுகம் செய்ய ஒரு தொகுதியை எழுதலாம். குறுகிய விவரணம் உள்ளடக்க பட்டியலில் கூட பயன்படுத்தப்படும். எல்லா @ புலங்களூம் தேர்வுக்குரியன. + + + பிரிவு விமரிசன தொகுதி + + + + + + + SECTION:<பெயர்> + + + The name links the section documentation to the respective part in + the <package>-sections.txt file. The + name given here should match the <FILE> tag in the + <package>-sections.txt file. + + + + + @short_description + + பகுதி பக்கத்தின் மேலே உள்ளடக்க பட்டியலுக்கான தொடுப்புகளுக்குப்பின் காணும் ஒரு வரி விவரம். + + + + @title + + இந்த தொகுதி SECTION சாற்றுரையிலிருந்து <name> க்கு முன்னிருப்பாக செல்லும். இதை உதாசீனப்படுத்த @title புலத்தை பயன்படுத்துக. + + + + @section_id + + + Overrides the use of title as a section identifier. For GObjects + the <title> is used as a section_id and for other sections + it is <MODULE>-<title>. + + + + + @see_also + + + A list of symbols that are related to this section. + + + + + @stability + + + An informal description of the stability level this API has. + We recommend the use of one of these terms: + + + + Stable + - The intention of a Stable interface is to enable arbitrary + third parties to develop applications to these interfaces, + release them, and have confidence that they will run on all + minor releases of the product (after the one in which the + interface was introduced, and within the same major release). + Even at a major release, incompatible changes are expected + to be rare, and to have strong justifications. + + + + + Unstable + - Unstable interfaces are experimental or transitional. + They are typically used to give outside developers early + access to new or rapidly changing technology, or to provide + an interim solution to a problem where a more general + solution is anticipated. + No claims are made about either source or binary + compatibility from one minor release to the next. + + + + + Private + - An interface that can be used within the GNOME stack + itself, but that is not documented for end-users. Such + functions should only be used in specified and documented + ways. + + + + + Internal + - An interface that is internal to a module and does not + require end-user documentation. Functions that are + undocumented are assumed to be Internal. + + + + + + + + @include + + + The #include files to show in the section + synopsis (a comma separated list), overriding the global + value from the section + file or command line. This item is optional. + + + + + @image + + + The image to display at the top of the reference page for this + section. This will often be some sort of a diagram to illustrate + the visual appearance of a class or a diagram of its relationship + to other classes. This item is optional. + + + + + + + + To avoid unnecessary recompilation after doc-changes put the section + docs into the c-source where possible. + + + + + + + சிம்பல்களை ஆவணப் படுத்தல் + + + Each symbol (function, macro, struct, enum, signal and property) is + documented in a separate block. The block is best placed close to the + definition of the symbols so that it is easy to keep them in sync. + Thus functions are usually documented in the c-source and macros, + structs and enums in the header file. + + + பொது டேக் ஒட்டுகள் + + + You can add versioning information to all documentation elements to tell + when an API was introduced, or when it was deprecated. + + + டேக் களை பதிப்பாக்கல் + இதிலிருந்து: + + + Description since which version of the code the API is available. + + + + கைவிடப்பட்டது. + + + Paragraph denoting that this function should no be used anymore. + The description should point the reader to the new API. + + + + + + + You can also add stability information to all documentation elements + to indicate whether API stability is guaranteed for them for all + future minor releases of the project. + + + + The default stability level for all documentation elements can be set + by passing the argument to + gtkdoc-mkdb with one of the values below. + + + Stability Tags + Stability: Stable + + + Mark the element as stable. This is for public APIs which are + guaranteed to remain stable for all future minor releases of the + project. + + + + Stability: Unstable + + + Mark the element as unstable. This is for public APIs which are + released as a preview before being stabilised. + + + + Stability: Private + + + Mark the element as private. This is for interfaces which can be + used by tightly coupled modules, but not by arbitrary third + parties. + + + + + + பொது டேக் ஒட்டுகள் + + + + + Annotations + + + Documentation blocks can contain annotation-tags. These tags will be + rendered with tooltips describing their meaning. The tags are used by + gobject-introspection to generate language bindings. A detailed list + of the supported tags can be found on + the wiki. + + + Annotations + + + + + பங்ஷன் விமரிசன தொகுதி + + + Please remember to: + + + + Document whether returned objects, lists, strings, etc, should be + freed/unrefed/released. + + + + + Document whether parameters can be NULL, and what happens if they are. + + + + + Mention interesting pre-conditions and post-conditions where appropriate. + + + + + + + Gtk-doc assumes all symbols (macros, functions) starting with '_' are + private. They are treated like static functions. + + + பங்ஷன் விமரிசன தொகுதி + + + + பங்ஷன் டேக் ஒட்டுகள் + திருப்பிகிடைப்பவை: + + + Paragraph describing the returned result. + + + + @...: + + + In case the function has variadic arguments, you should use this + tag (@Varargs: does also work for historic reasons). + + + + + + + + பண்புகள் விமரிசன தொகுதி + + பண்புகள் விமரிசன தொகுதி + + + + + + சமிக்ஞை விமரிசன தொகுதி + + + Please remember to: + + + + Document when the signal is emitted and whether it is emitted before + or after other signals. + + + + + Document what an application might do in the signal handler. + + + + + + சமிக்ஞை விமரிசன தொகுதி + + + + + + அமைப்பு விமரிசன தொகுதி + அமைப்பு விமரிசன தொகுதி + + + + + Use /*< private >*/ before the private struct fields + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + If the first field is "g_iface", "parent_instance" or "parent_class" + it will be considered private automatically and doesn't need to be + mentioned in the comment block. + + + + Struct comment blocks can also be used for GObjects and GObjectClasses. + It is usually a good idea to add a comment block for a class, if it has + vmethods (as this is how they can be documented). For the GObject + itself one can use the related section docs, having a separate block + for the instance struct would be useful if the instance has public + fields. One disadvantage here is that this creates two index entries + of the same name (the structure and the section). + + + + + ஈநம் விமரிசன தொகுதி + ஈநம் விமரிசன தொகுதி + */ + SOMETHING_COUNT +} Something; +]]> + + + + Use /*< private >*/ before the private enum values + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + + + + + Inline program documentation + + You can document programs and their commandline interface using inline + documentation. + + + + Tags + + PROGRAM + + + + Defines the start of a program documentation. + + + + + + @short_description: + + + Defines a short description of the program. (Optional) + + + + + + @synopsis: + + + Defines the arguments, or list of arguments that the program can take. + (Optional) + + + + + + @see_also: + + + See Also manual page section. (Optional) + + + + + + @arg: + + + Argument(s) passed to the program and their description. (Optional) + + + + + + Description: + + + A longer description of the program. + + + + + + திருப்பிகிடைப்பவை: + + + Specificy what value(s) the program returns. (Optional) + + + + + + + + Example of program documentation. + Program documentation block + + + + + + + + Useful DocBook tags + + + Here are some DocBook tags which are most useful when documenting the + code. + + + + To link to another section in the GTK docs: + + + Hash Tables +]]> + + The linkend is the SGML/XML id on the top item of the page you want to link to. + For most pages this is currently the part ("gtk", "gdk", "glib") and then + the page title ("Hash Tables"). For widgets it is just the class name. + Spaces and underscores are converted to '-' to conform to SGML/XML. + + + + To refer to an external function, e.g. a standard C function: + + ...
    +]]> + + + + + To include example code: + + + Using a GHashTable. + + ... + + +]]> + + or possibly this, for very short code fragments which don't need a title: + + + + ... + + +]]> + + For the latter GTK-Doc also supports an abbreviation: + + + + + To include bulleted lists: + + + + + ... + + + + + ... + + + +]]> + + + + + To include a note which stands out from the text: + + + + Make sure you free the data after use. + + +]]> + + + + + To refer to a type: + + unsigned char +]]> + + + + + To refer to an external structure (not one described in the GTK docs): + + XFontStruct +]]> + + + + + To refer to a field of a structure: + + len +]]> + + + + + To refer to a class name, we could possibly use: + + GtkWidget +]]> + + but you'll probably be using #GtkWidget instead (to automatically create + a link to the GtkWidget page - see the abbreviations). + + + + To emphasize text: + + This is important +]]> + + + + + For filenames use: + + /home/user/documents
    +]]> + + + + + To refer to keys use: + + ControlL +]]> + + + + + + + + கூடுதல் கோப்புகளை நிரப்புதல் + + + There are a couple of extra files, that need to be maintained along with + the inline source code comments: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + + கோப்பு வகையை திருத்துதல் + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Example types file snippet + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + ஜிடிகே டாக் + + + + + முதன்மை ஆவணத்தை திருத்துதல் + + + GTK-Doc produces documentation in DocBook SGML/XML. When processing the + inline source comments, the GTK-Doc tools generate one documentation + page per class or module as a separate file. The master document + includes them and place them in an order. + + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + + Do not create tutorials as extra documents. Just write extra chapters. + The benefit of directly embedding the tutorial for your library into + the API documentation is that it is easy to link for the tutorial to + symbol documentation. Apart chances are higher that the tutorial gets + updates along with the library. + + + + + So what are the things to change inside the master document? For a start + is only a little. There are some placeholders (text in square brackets) + there which you should take care of. + + + + முதன்மை ஆவணத்தின் தலைப்பு + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + தொகுதி கோப்பை திருத்துதல் + + ஜிடிகே டாக் + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + + The <TITLE> ... </TITLE> tag is used to specify the title of + the section. It is only useful before the templates (if used) are + initially created, since the title set in the template file overrides + this. Also if one uses SECTION comment in the sources, this is obsolete. + + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + + You can also use <INCLUDE> ... </INCLUDE> to specify the + #include files which are shown in the synopsis sections. + It contains a comma-separate list of #include files, without the angle + brackets. If you set it outside of any sections, it acts for all + sections until the end of the file. If you set it within a section, it + only applies to that section. + + +
    + +
    + + + விடையை கட்டுப்படுத்தல் + + ஜிடிகே டாக் + + + The <package>-undocumented.txt file starts with + the documentation coverage summary. Below are two sections divided by + blank lines. The first section lists undocumented or incomplete symbols. + The second section does the same for section docs. Incomplete entries are + those, which have documentation, but where e.g. a new parameter has been + added. + + + + The <package>-undeclared.txt file lists symbols + given in the <package>-sections.txt but not + found in the sources. Check if they have been removed or if they are + misspelled. + + + ஜிடிகே டாக் + + + ஜிடிகே டாக் + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documenting other interfaces + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + Command line options and man pages + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + Document the tool + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + Adding the extra configure check + + + Extra configure checks + + + + + + + Adding the extra makefile rules + + + Extra configure checks + + + + + + + + DBus interfaces + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + Frequently asked questions + + + + கேள்வி + பதில் + + வகுப்பு கட்டுமுறை இல்லை + + The objects xxx_get_type() function has not been + entered into the <package>.types file. + + + + இன்னும் வகுப்பு கட்டுமுறை இல்லை + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + அடடா, இன்னும் வகுப்பு கட்டுமுறை இல்லை + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + சிம்பல் குறி அட்டவணை இல்லை + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + Symbols are not linked to their doc-section. + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + A new class does not appear in the docs. + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + A new symbol does not appear in the docs. + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + A type is missing from the class hierarchy. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + I get foldoc links for all gobject annotations. + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + Parameter described in source code comment block but does not exist + Check if the prototype in the header has different parameter names as in the source. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + குறி XYZ இல் இரு முறை காண்கிறது. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + பதிப்பு 1.1, மார்ச் 2000 + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + க்னூ இலவச ஆவண லைசென்ஸ் + + + 0. முன்னுரை (PREAMBLE) + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. மாற்றங்கள் (MODIFICATIONS) + நீங்கள் ஒரு Document ஆவணத்தின் மாற்றப்பட்ட பதிப்பு(Modified Version) ஐ கீழ் கண்ட தொகுதிகளின் விதிகளூக்கு இணங்க வினியோகிக்கலாம்: 2 and 3 கட்டுப்பாடு எது எனில் யாரிடம் எந்த பதிப்பு இருக்கிறதோ அதே லைசன்ஸ் கீழ் வெளியிட வேண்டும். மாற்றிய பதிப்பு ஆவணத்தின் பங்கை செய்ய வேண்டும். மேலும் பின் வருவனவற்றை மாற்றிய பதிப்பில் செய்ய வேண்டும்.: + + + + + A + முந்தைய பதிப்புகளின் வரலாற்றை ஆவணத்தின் வரலாற்றில் எழுதுக. இப்பதிப்புகளின் Title Page இலும் (அட்டைகள் இருப்பின் அதிலும்) Document இலும் முற்றிலும் மாறுபட்ட தலைப்பை பயன்படுத்தவும். + + + + + + B + Title Page, இல் ஆசிரியர்களாக பட்டியலிடப்பட்டதில் ஒருவரோ மேலுமோ யார் மாற்றங்களை செய்தனரோ அவரது பெயர்களையும் Modified Version இல் சேர்க்கவும். Document இன் ஆசிரியர்கள் ஐந்துக்கு குறைவாக இருப்பின் அனைத்து பெயர்களூம் அதிகமாக இருப்பின் குறைந்தது ஐந்து முக்கிய ஆசிரியர்கள் பெயர்களும் சேர்க்கப்பட வேண்டும். + + + + + + C + Title Page இல் வெளியிடுவோர் பெயராக Modified Version ஐ வெளியிடுவோர் பெயரை குறிப்பிடுக. + + + + + + D + Document இன் காப்புரிமையை பாதுகாக்கவும். + + + + + + E + காப்புரிமை அறிவிப்புக்கு அருகில் உங்கள் மாற்றங்களுக்கான காப்புரிமையை வெளியிடுக. + + + + + + F + உங்கள் காப்புரிமை அறிவிப்புக்கு பின்னாலேயே Modified Version ஐ பொது ஜனம் பயன்படுத்த பின் வரும் படிவத்தில் இந்த லைசென்ஸ் மூலம் அனுமதி வழங்குக. + + + + + + G + Invariant Sections களின் முழு பட்டியலை லைசென்ஸிலும் Document's மற்றும் லைசென்ஸ் நோட்டீசில் உள்ள தேவையானCover Texts களிலும் வைத்திருங்கள். + + + + + + H + இந்த லைசென்ஸின் மாற்றப்படாத வடிவத்தையும் ஒரு பிரதி வைத்திருங்கள். + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + ஆவணத்தின் பிரதிக்கு பொதுஜன அணுகலுக்கு தரப்பட்ட Document இல் காணும் Transparent தொடுப்பை பாதுகாக்கவும்.அதேபோல முதைய பதிப்புகளில் உள்ள தொடுப்புகளையும் பாதுகாக்கவும். இவற்றை History பகுதியில் வைக்கலாம். ஆவணத்துக்கு நான்கு வருடங்கள் முன் வெளியிட்டவற்றையும் ஆசிரியர் நீக்கலாம் என அனுமதி தந்தவற்றையும் நீக்கலாம். + + + + + + K + Acknowledgements அல்லது Dedications எனக்குறித்த எந்த தொகுதியிலும் தொகுதியின் தலைப்பையும் அதில் உள்ளவற்றில் ஒவ்வொரு பங்கீடு அளித்தோரின் நன்றி அறிதல் /அர்ப்பணம் ஆகியவற்றின் சாரத்தையும் பாதுகாக்கவும் , + + + + + + L + Document, இன் Invariant Sections of the Document களை உரை தலைப்புகளை மாற்றாமல் பாதுகாக்கவும். தொகுதி எண்களும் அல்லது அதன் சமானமானவையும் இதில் சேராது. + + + + + + M + Endorsements இல் உள்ளதை நீக்கவும். அப்படிப்பட்ட எந்த தொகுதியும் Modified Version இல் இருத்தலாகாது.. + + + + + + N + இருப்பிலுள்ள எந்த தொகுதியையும் Endorsements என் மறு பெயரிடவோ அல்லது Invariant Section உடன் மோதும் எதையும் செய்யலாகாது + + + + + Modified Versionஇல் புதிய விஷயம் இருந்தாலோ அல்லது Secondary Sections என அனுபந்தம் இருந்து அதில் ஆவணத்திலிருந்து பிரதி எடுத்த ஏதும் இல்லாமல் இருந்தாலோ நீங்கள் தேர்ந்தெடுத்து அவற்றை முழுதுமோ பகுடியோ மாறாதவை என குறிப்பிடலாம். இதை செய்ய அவற்றின் தலைப்புகளை மாற்றிய பதிப்பு நோட்டீசில் Invariant Sections பட்டியலில் சேர்க்கவும். இந்த தலைப்புகள் மற்ற தலைப்புகளீன் பெயரிலிருந்து மாறுபட்டு இருத்தல் வேண்டும். + + சகாக்கள் எழுதிய விமர்சனங்கள், மதிப்புரைகள் அல்லது ஒரு நிறுவனம் உங்கள் Modified Version ஐ திறனாய்வு செய்து தகுதி சான்று கொடுத்து இருப்பின் அவை மட்டும் இருக்கும் பட்சத்தில் நீங்கள் Endorsements என தலைப்பிட்ட தொகுதி ஒன்றை சேர்க்கலாம். + + Front-Cover Text ஆக நீங்கள் ஐந்து சொற்கள் வரை சேர்க்கலாம். Modified Version. இல் பட்டியலின் கடைசியில் Cover Texts Back-Cover Text ஆக 25, சொற்கள் சேர்க்கலாம். முன் அட்டை உரைக்கு ஒரு பாராவும் பின் அட்டைக்கு ஒரு உரையும் மட்டுமே உங்களாலோ அல்லது உங்கள் முன் அனுமதி பெற்றவராலோ சேர்க்கப்படலாம். Document இல் ஏற்கெனெவே அதே அட்டைக்கு உரை, உங்களாலோ அனுமதி பெற்றவராலோ முன்னேயே இடப்பட்டு இருப்பின், நீங்கள் மற்றொன்றை இடலாகாது. already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. மொழிபெயர்ப்பு + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: + +
    + Copyright 2010, I. Felix. + Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License. +
    + + If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + உங்கள் ஆவணத்தில் முக்கியமல்லாத நிரல் குறியீட்டு உதாரணங்கள் இருப்பின் , எங்கள் பரிந்துரை: இவற்றின் இலவச பயனுக்கு இந்த உதாரணங்களை இணையாக மென்பொருள் அனுமதிக்கான உங்கள் தேர்வில் வெளியிடுங்கள்.மாதிரிக்கு: GNU General Public License, +
    +
    + + + + + + + + + diff --git a/help/manual/ta/ta.po b/help/manual/ta/ta.po new file mode 100644 index 0000000..237d797 --- /dev/null +++ b/help/manual/ta/ta.po @@ -0,0 +1,1340 @@ +# I. Felix , 2010. +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc-help.master.ta\n" +"POT-Creation-Date: 2010-01-19 20:58+0000\n" +"PO-Revision-Date: 2010-02-10 14:56+0530\n" +"Last-Translator: I. Felix \n" +"Language-Team: ta_IN \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: C/gtk-doc-manual.xml:12(title) +msgid "GTK-Doc Manual" +msgstr "ஜிடிகே டாக் கையேடு" + +#: C/gtk-doc-manual.xml:13(edition) C/gtk-doc-manual.xml:92(revnumber) +msgid "1.12" +msgstr "1.12" + +#: C/gtk-doc-manual.xml:14(para) +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "உருவாக்குவோருக்கான ஜிடிகே டாக்(GTK-Doc) பயன்பாட்டு பயனர் கையேடு " + +#: C/gtk-doc-manual.xml:17(firstname) +msgid "Chris" +msgstr "க்ரிஸ்" + +#: C/gtk-doc-manual.xml:18(surname) +msgid "Lyttle" +msgstr "லைட்டில்" + +#: C/gtk-doc-manual.xml:21(email) +msgid "chris@wilddev.net" +msgstr "chris@wilddev.net" + +#: C/gtk-doc-manual.xml:26(firstname) +msgid "Dan" +msgstr "டேன்" + +#: C/gtk-doc-manual.xml:27(surname) +msgid "Mueth" +msgstr "மீயத்" + +#: C/gtk-doc-manual.xml:30(email) +msgid "d-mueth@uchicago.edu" +msgstr "d-mueth@uchicago.edu" + +#: C/gtk-doc-manual.xml:35(firstname) +msgid "Stefan" +msgstr "ஸ்டீபன்" + +#: C/gtk-doc-manual.xml:36(surname) +msgid "Kost" +msgstr "கோஸ்ட்" + +#: C/gtk-doc-manual.xml:39(email) +msgid "ensonic@users.sf.net" +msgstr "ensonic@users.sf.net" + +#: C/gtk-doc-manual.xml:45(publishername) +msgid "GTK-Doc project" +msgstr "ஜிடிகே-டாக் திட்டம்" + +#: C/gtk-doc-manual.xml:46(email) +msgid "gtk-doc-list@gnome.org" +msgstr "gtk-doc-list@gnome.org" + +#: C/gtk-doc-manual.xml:49(year) +msgid "2000, 2005, 2007-2009" +msgstr "2000, 2005, 2007-2009" + +#: C/gtk-doc-manual.xml:50(holder) +msgid "Dan Mueth and Chris Lyttle and Stefan Kost" +msgstr "டேன் மீயத் க்ரிஸ் லைட்டில் மற்றும் ஸ்டீபன் கோஸ்ட்" + +#: C/gtk-doc-manual.xml:61(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included." +msgstr "" +"நீங்கள் இலவச மென் பொருள் அமைப்பினால் வெளியிடப்பட்ட ஜிஎன்யு " +"பொது ஆவண அனுமதிக்கான இந்த 1.1 ம் பதிப்பு அல்லது அடுத்த பதிப்புகள் விதிகளின் படி நீங்கள் " +"(விருப்பப்படி) மாற்றமில்லா தொகுதிகள், முன் அட்டை உரைகள், பின் அட்டை உரைகள் ஆக்கியன நீங்கலாக இதை பிரதி எடுக்கலாம், வினியோகிக்கலாம், மாற்றலாம். அனுமதியின் பிரதி இங்குள்ளது:included" + +#: C/gtk-doc-manual.xml:69(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps." +msgstr "நிறுவனங்களால் அவர்களது பொருட்கள், சேவைகளை குறிப்பிட பயனாகும் பல பெயர்களை அவர்களது வியாபார குறியாக சொல்கிறார்கள். அத்தகைய பெயர்கள் க்னோம் ஆவணங்களில் காணப்படுமானால், அவை க்னோம் ஆவண திட்ட உறுப்பினருக்கு தெரிவிக்கப்பட்டால், அவை தலை எழுத்துக்களாக அலல்து முதல் எழுத்து தலை எழுத்தாக காட்டப்படும். " + +#: C/gtk-doc-manual.xml:80(revnumber) +msgid "1.14" +msgstr "1.14" + +#: C/gtk-doc-manual.xml:81(date) +msgid "19 December 2009" +msgstr "19டிசம்பர் 2009" + +#: C/gtk-doc-manual.xml:82(authorinitials) C/gtk-doc-manual.xml:88(authorinitials) C/gtk-doc-manual.xml:94(authorinitials) +msgid "sk" +msgstr "sk" + +#: C/gtk-doc-manual.xml:83(revremark) +msgid "development version" +msgstr "உருவாக்க பதிப்பு" + +#: C/gtk-doc-manual.xml:86(revnumber) +msgid "1.13" +msgstr "1.13" + +#: C/gtk-doc-manual.xml:87(date) C/gtk-doc-manual.xml:93(date) +msgid "18 December 2009" +msgstr "18டிசம்பர் 2009" + +#: C/gtk-doc-manual.xml:89(revremark) +msgid "broken tarball update" +msgstr "சிதைந்த டார் பால் இற்றைப்படுத்தல்" + +#: C/gtk-doc-manual.xml:95(revremark) +msgid "new tool features and bugfixes" +msgstr "புதிய அம்சங்கள் மற்றும் வழி நீக்கங்கள்" + +#: C/gtk-doc-manual.xml:98(revnumber) +msgid "1.11" +msgstr "1.11" + +#: C/gtk-doc-manual.xml:99(date) +msgid "16 Novemebr 2008" +msgstr "16 நவம்பர் 2008" + +#: C/gtk-doc-manual.xml:100(authorinitials) +msgid "mal" +msgstr "மால்" + +#: C/gtk-doc-manual.xml:101(revremark) +msgid "GNOME doc-utils migration" +msgstr "க்னோம் டாக்-யுடில்ஸ் இட மாற்றம்" + +#: C/gtk-doc-manual.xml:110(title) +msgid "Introduction" +msgstr "அறிமுகம்" + +#: C/gtk-doc-manual.xml:112(para) +msgid "This chapter introduces GTK-Doc and gives an overview of what it is and how it is used." +msgstr "இந்த அத்தியாயம் ஜிடிகே-டாக் குறித்த அறிமுகம் தருகிறது. மேலும் அது என்ன எப்படி பயன்படுத்துவது என மேலோட்டமாக சொல்லுகிறது." + +#: C/gtk-doc-manual.xml:118(title) +msgid "What is GTK-Doc?" +msgstr "ஜிடிகே டாக் என்பதென்ன?" + +#: C/gtk-doc-manual.xml:120(para) +msgid "GTK-Doc is used to document C code. It is typically used to document the public API of libraries, such as the GTK+ and GNOME libraries. But it can also be used to document application code." +msgstr "ஜிடிகே டாக் சி குறியாக்கத்தை ஆவணப்படுத்துகிறது. இது எடுத்துக்காட்டாக ஜிடிகே+ மற்றும் க்னோம் நூலகங்கள் போன்ற நூலகங்களின் பொது ஏபிஐ களை ஆவணப்படுத்த பயன்படுகிறது. ஆனாலும் இது நிரல்களின் குறியாக்கத்தை ஆவணப்படுத்தக்கூட பயன்படுத்தலாம். " + +#: C/gtk-doc-manual.xml:128(title) +msgid "How Does GTK-Doc Work?" +msgstr "ஜிடிகே டாக் எப்படி வேலை செய்கிறது?" + +#: C/gtk-doc-manual.xml:130(para) +msgid "GTK-Doc works by using documentation of functions placed inside the source files in specially-formatted comment blocks, or documentation added to the template files which GTK-Doc uses (though note that GTK-Doc will only document functions that are declared in header files; it won't produce output for static functions)." +msgstr "ஜிடிகே டாக் வேலை செய்வதெப்படி எனில் சிறப்பு ஒழுங்கில் விமர்சன தொகுதிகளாக செயல்களின் ஆவணங்கள் மூல கோப்புகளில் வைக்கப்படும். அல்லது ஜிடிகே டாக் பயன்படுத்தும் டெம்ப் கோப்புகளுக்கு சேர்க்கபடும். (ஆயினும் ஜிடிகே டாக் தலைப்பு கோப்புகளில் அறுதியிட்ட பங்ஷன்களை மட்டுமே ஆவணப்படுத்தும். நிலையான பங்க்ஷன்களுக்கு வெளியீடு தராது)" + +#: C/gtk-doc-manual.xml:137(para) +msgid "GTK-Doc consists of a number of perl scripts, each performing a different step in the process." +msgstr "ஜிடிகே டாக் இல் பல பெர்ல் குறுநிரல்கள் உள்ளன. " + +#: C/gtk-doc-manual.xml:142(para) +msgid "There are 5 main steps in the process:" +msgstr "இந்த நடப்பில் ஐந்து படிகள் உள்ளன" + +#: C/gtk-doc-manual.xml:149(para) +msgid "Writing the documentation. The author fills in the source files with the documentation for each function, macro, union etc. (In the past information was entered in generated template files, which is not recommended anymore)." +msgstr "ஆவணம் எழுதும் முறை. ஆசிரியர் மூல கோப்பை ஒவ்வொரு செயல், மேக்ரோ, இணைப்புக்கும் ஆவணங்களால் நிரப்புவார். (முன்னே விவரங்கள் உருவாக்கப்பட்ட வார்ப்புரு கோப்புக்களால் உள்ளிடப்பட்டது. அப்படி இனி செய்ய பரிந்துரைக்கவில்லை.)" + +#: C/gtk-doc-manual.xml:159(para) +msgid "Gathering information about the code.gtkdoc-scan scans the header files of the code looking for declarations of functions, macros, enums, structs, and unions. It creates the file <module>-decl-list.txt containg a list of the declarations, placing them into sections according to which header file they are in. On the first run this file is copied to <module>-sections.txt The author can rearrange the sections, and the order of the declarations within them, to produce the final desired order. The second file it generates is <module>-decl.txt. This file contains the full declarations found by the scanner. If for some reason one would like some sybols to show up in the docs, where the full declaration cannot be found by the scanner or the declaration should appear differently, one can place entries similar to the ones in <module>-decl.txt into <module>-overrides.txt. gtkdoc-scanobj can also be used to dynamically query a library about any GtkObject subclasses it exports. It saves information about each object's position in the class hierarchy and about any GTK Args and Signals it provides." +msgstr "குறியாக்கம் குறித்த தகவல்களை சேர்த்தல்.ஜிடிகே டாக் ஸ்கேன் இது மூல கோப்பின் தலைப்புகளில் ஒவ்வொரு செயல், மேக்ரோ, ஈநம், ஸ்டரக்ட். இணைப்புக்கும் வருடுகிறது. பின் அது இந்த கோப்பை உருவாக்குகிறது: <module>-decl-list.txt இதில் டெக்ளரெஷன்களின் பட்டியல் ஒன்று இருக்கும். அவை எந்த தலைப்பில் எந்த தொகுதியில் பொருந்துமோஅங்கே இருக்கும். முதல் சுற்றில் இது இந்த கோப்புக்கு நகலெடுக்கப்படும்: <module>-sections.txt பின் ஆசிரியர் இவற்றின் உள் இருக்கும் டெக்ளரெஷன்களின் வரிசைப்படி தொகுதிகளை தேவையானபடி மறு அமைப்பு செய்யலாம். இரண்டாவதாக இது உருவாக்கும் கோப்பு: <module>-decl.txt. இந்த கோப்பு வருடி கண்டுபிடித்த அனைத்து முழு டெக்ளரெஷன்களும் உள்ளதாகும். ஏதேனும் காரணத்தால் ஒருவர் வருடியால் முழு டெக்ளரேஷன்களாக காணப்படாத அல்லது வேறு மாதிரி காட்டப்பட வேண்டியதான சைபோல்கள் ஆவணங்களில் காட்டப்பட வேண்டும் என விரும்பினால், இம்மாதிரியான உள்ளீடுகளை வைக்கலாம்: <module>-decl.txt into <module>-overrides.txt. gtkdoc-scanobj ஐயும் பயன்படுத்தி இயங்கு நிலையில் அது ஏற்றுமதி செய்யும் எந்த ஒரு ஜிஜிகே பொருள் துணைவகுப்பையும் நூலகத்தில் கேள்வி கேட்கலாம். வகுப்பு மட்டங்களில் இந்த வகுப்புகளின் இடத்தை குறித்த தகவலையும் ஜிடிகே ஆர்க்ஸ் மற்றும் அது தரும் சமிக்ஞைகள்குறித்த தகவல்களையும் அது சேமித்துக்கொள்ளும். " + +#: C/gtk-doc-manual.xml:184(para) +msgid "Generating the \"template\" files.gtkdoc-mktmpl creates a number of files in the tmpl/ subdirectory, using the information gathered in the first step. (Note that this can be run repeatedly. It will try to ensure that no documentation is ever lost.)" +msgstr "\"வார்ப்புரு\" கோப்புகள் உருவாக்கம் .gtkdoc-mktmpl இந்த துணை அடைவில் முதல் சுற்றில் சேகரித்த தகவல்களைக் கொண்டு பல கோப்புகளை உருவாக்குகிறது: tmpl/ (இதை மீண்டும் மீண்டும் இயக்கலாம். எந்த கோப்பும் தொலைந்து போகாமல் இது பார்த்துக்கொள்ளும்.)" + +#: C/gtk-doc-manual.xml:193(para) +msgid "Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. If you have never changed file in tmpl by hand, please remove the dir (e.g. from version control system)." +msgstr "ஜிடிகே டாக் 1.9 முதல் வார்ப்புருக்களை தவிர்க்கலாம். மக்கள் ஆவணத்தை குறீயாக்கத்தில் வைத்து இருப்பதையே நாங்கள் விரும்புகிறோம். gtkdocize இப்போது இந்த தேர்வை ஆதரிக்கிறது. இது (tmpl) வார்ப்புரு பயன்பாட்டை முற்றூம் தவிர்க்கும் ஒரு மேக் பைலை தேர்வுசெய்கிறது. நீங்கள் கைமுறையாக எந்த ஒரு tmpl கோப்பையும் மாற்றியது இல்லையானால் தயை செய்து இந்த அடைவை நீக்கவும்.(எ.கா. வெர்ஷன் கன்ட்ரோல் அமைப்பு)." + +#: C/gtk-doc-manual.xml:205(para) +msgid "Generating the SGML/XML and HTML/PDF.gtkdoc-mkdb turns the template files into SGML or XML files in the sgml/ or xml/ subdirectory. If the source code contains documentation on functions, using the special comment blocks, it gets merged in here. If there are no tmpl files used it only reads takes docs from sources and introspection data." +msgstr "SGML/XML மற்றும் HTML/PDF ஆகியவற்றை உருவாக்குதல். gtkdoc-mkdb வார்ப்புரு கோப்புகளை SGML அல்லது XML கோப்புகளாக மாற்றி இங்கு சேமிக்கிறது: sgml/ அல்லது xml/ துணை அடைவு.மூலத்தில் விசேஷ விமர்சன தொகுதிகளுடன் பங்ஷன் ஆவணங்கள் இருப்பின் அவை இப்போது ஒன்றாக்கப்படும். வார்ப்புரு கோப்புகள் இல்லையானால் அது மூலத்தில் இருந்து ஆவணங்களையும் ஆய்வு தரவுகளையும் பயன்படுத்திக்கொள்ளும்." + +#: C/gtk-doc-manual.xml:215(para) +msgid "gtkdoc-mkhtml turns the SGML/XML files into HTML files in the html/ subdirectory. Likewise gtkdoc-mkpdf turns the SGML/XML files into a PDF docuemnt called <package>.pdf." +msgstr "gtkdoc-mkhtml SGML/XML கோப்புக்களை HTML கோப்புக்களாக மாறுகிறது, இந்த துணை அடைவில் html/ . அதே போல்gtkdoc-mkpdf SGML/XML கோப்புக்களைPDF ஆவணமாக இப்பெயரிட்டு உருவாக்கும். <package>.pdf." + +#: C/gtk-doc-manual.xml:221(para) +msgid "Files in sgml/ or xml/ and html/ directories are always overwritten. One should never edit them directly." +msgstr " sgml/ அல்லது xml/ மற்றும் html/ இல் உள்ள அடைவுகள் எப்போதுமே மேலெழுதப்படும். அவற்றை யாரும் எப்போதும் நேரடியாக திருத்தக்கூடாது." + +#: C/gtk-doc-manual.xml:229(para) +msgid "Fixing up cross-references between documents. After installing the HTML files, gtkdoc-fixxref can be run to fix up any cross-references between separate documents. For example, the GTK+ documentation contains many cross-references to types documented in the GLib manual. When creating the source tarball for distribution, gtkdoc-rebase turns all external links into web-links. When installing distributed (pregenerated) docs the same application will try to turn links back to local links (where those docs are installed)." +msgstr "ஆவணங்கள் இடையில் குறுக்கு தொடுப்புகளை சரி செய்தல் HTML கோப்புக்களை நிறுவிய பின்னர், பின் வரும் நிரலை இயக்கி gtkdoc-fixxref ஆவணங்கள் இடையில் குறுக்கு தொடுப்புகளை சரி செய்யலாம். உதாரணமாக ஜிடிகே+ ஆவணத்தில் ஜிலிப் கையேட்டில் ஆவணப்படுத்திய பல வகைகளுக்கு குறுக்கு தொடுப்புகள் இருக்கும். வினியோகிக்க டார் பால் செய்யும் போது gtkdoc-rebase எல்லா வெளி தொடுப்புக்களையும் வலை தொடுப்பாக மாற்றிவிடும். இதே நிரல் ஆவணங்கள் நிறுவப்படும்போது அவற்றை உள்ளமை தொடுப்புக்களாக மாற்றியமைக்கும். (மற்ற ஆவணங்கள் நிறுவப்பட்டு இருக்கும் பட்சத்தில்.)" + +#: C/gtk-doc-manual.xml:247(title) +msgid "Getting GTK-Doc" +msgstr "ஜிடிகே டாக் ஐ பெறுதல்" + +#: C/gtk-doc-manual.xml:250(title) +msgid "Requirements" +msgstr "முன் தேவைகள்" + +#: C/gtk-doc-manual.xml:251(para) +msgid "பெர்ல் v5 - the main scripts are in Perl." +msgstr "Perl v5 - முதன்மை குறுநிரல்கள் பெர்ல் இல் உள்ளன." + +#: C/gtk-doc-manual.xml:254(para) +msgid "டாக்புக் DTD v3.0 - This is the DocBook SGML DTD. http://www.ora.com/davenport" +msgstr "DocBook DTD v3.0 - இது டாக் புத்தகத்தின் SGML DTD. http://www.ora.com/davenport" + +#: C/gtk-doc-manual.xml:258(para) +msgid "ஜேட் v1.1 - This is a DSSSL processor for converting SGML to various formats. http://www.jclark.com/jade" +msgstr "“Jade v1.1 - இது ஒரு DSSSL செயலி SGML ஐ பல ஒழுங்குகளுக்கு மாற்றுகிறது. http://www.jclark.com/jade" + +#: C/gtk-doc-manual.xml:262(para) +msgid "Modular DocBook Stylesheets This is the DSSSL code to convert DocBook to HTML (and a few other formats). It's used together with jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to colour the program code listings/declarations, and to support global cross-reference indices in the generated HTML. மாடுலர் டாக் புக் ஸ்டைய்ல்ஷீட்ஸ்
    இது DSSSL குறியாக்கம். டாக்புக் ஐ HTML (மேலும் சில ஒழுங்குகள்) ஆக ஆக்கும். இது ஜேட் உடன் பயன்படுத்தப்படும். நான் DSSSL code ஐ கொஞ்சம் தனிப்பயன் ஆக்கி இருக்கிறேன். இது நிரலின் பட்டியல்கள்/டெக்ளரேஷன்களை வண்ணத்தில் காண்பிக்கும், மேலும் HTML இல் குறுக்கு தொடுப்புக்களை உலகளாவியதாக்கும்.http://nwalsh.com/docbook/dsssl\" type=\"http\">http://nwalsh.com/docbook/dsssl
    " + +#: C/gtk-doc-manual.xml:271(para) +msgid "docbook-to-man - if you want to create man pages from the DocBook. I've customized the 'translation spec' slightly, to capitalise section headings and add the 'GTK Library' title at the top of the pages and the revision date at the bottom. There is a link to this on http://www.ora.com/davenport NOTE: This does not work yet." +msgstr " நீங்கள் டாக்புக் இலிருந்து மேன் பக்கங்களை தயாரிக்க விரும்பினால் ..மொழிபெயர்ப்பு குறிப்புக்களை சற்றே நான் மாற்றியுள்ளேன். தொகுப்பு தலைப்புகள் மேலெழுத்தில் காட்டப்படும். ஜிடிகே நூலகம் என்னும் தலைப்பு ('GTK Library') பக்கங்களின் மேலே காட்டப்படும். திருத்திய தேதி கீழே காட்டப்படும். இதற்கு இங்கு ஒரு தொடுப்பு உள்ளது: http://www.ora.com/davenport குறிப்பு: இது இன்னும் செயலில் இல்லை.." + +#: C/gtk-doc-manual.xml:282(title) +msgid "Installation" +msgstr "நிறுவல்" + +#: C/gtk-doc-manual.xml:283(para) +msgid "There is no standard place where the DocBook Modular Stylesheets are installed." +msgstr "மாடுலர் டாக் புக் ஸ்டைய்ல்ஷீட்ஸ் நிறுவப்பட செந்தரமான இடமில்லை." + +#: C/gtk-doc-manual.xml:286(para) +msgid "GTK-Doc's configure script searches these 3 directories automatically:" +msgstr "ஜிடிகே டாக் இன் வடிவமைக்கும் குறுநிரல் மூன்று அடைவுகளை தானியங்கியாக பார்க்கும்." + +#: C/gtk-doc-manual.xml:289(para) +msgid " /usr/lib/sgml/stylesheets/nwalsh-modular (used by RedHat)" +msgstr " /usr/lib/sgml/stylesheets/nwalsh-modular (ரெட் ஹாட் ஆல் பயன்படுத்தப்படுவது)" + +#: C/gtk-doc-manual.xml:292(para) +msgid " /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +msgstr " /usr/lib/dsssl/stylesheets/docbook (டெபியன் ஆல் பயன்படுத்தப்படுவது)" + +#: C/gtk-doc-manual.xml:295(para) +msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +msgstr " /usr/share/sgml/docbkdsl (சூசே ஆல் பயன்படுத்தப்படுவது)" + +#: C/gtk-doc-manual.xml:298(para) +msgid "If you have the stylesheets installed somewhere else, you need to configure GTK-Doc using the option: --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +msgstr "ஸ்டைய்ல் ஷீட் கள் வேறெங்கும் நிறுவி இருப்பின் கை முறையாக ஜிடிகே டாக் ஐ வடிவமைக்க வேண்டும். கட்டளை தேர்ர்வு: --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " + +#: C/gtk-doc-manual.xml:322(title) +msgid "About GTK-Doc" +msgstr "ஜிடிகே டாக் பற்றி" + +#: C/gtk-doc-manual.xml:324(para) C/gtk-doc-manual.xml:338(para) +msgid "(FIXME)" +msgstr "(FIXME)" + +#: C/gtk-doc-manual.xml:328(para) +msgid "(History, authors, web pages, license, future plans, comparison with other similar systems.)" +msgstr "(வரலாறு, ஆசிரியர்கள், வலைப்பக்கங்கள், உரிமை, எதிர்கால திட்டங்கள், மற்ற இதே போன்ற அமைப்புகளுடன் ஒப்பீடு)" + +#: C/gtk-doc-manual.xml:336(title) +msgid "About this Manual" +msgstr "இந்த கையேடு பற்றி" + +#: C/gtk-doc-manual.xml:342(para) +msgid "(who it is meant for, where you can get it, license)" +msgstr "(இது யாருக்கு, உரிமம், எங்கு பெறுவது)" + +#: C/gtk-doc-manual.xml:351(title) +msgid "Setting up your project" +msgstr "உங்கள் திட்டத்தை அமைத்தல்" + +#: C/gtk-doc-manual.xml:353(para) +msgid "The next sections describe what steps to perform to integrate GTK-Doc into your project. Theses section assume we work on a project called 'meep'. This project contains a library called 'libmeep' and an end-user app called 'meeper'." +msgstr " அடுத்த தொகுதிகள் ஜிடிகே-டாக் ஐ உங்கள் திட்டத்தில் ஒருங்கிணைகக் என்ன செய்யவேண்டும் என விவரிக்கிறது. இந்த தொகுதிகள் நாம் மீப் ('meep') என்ற திட்டத்துக்கு வேளை செய்வதாக கொள்வோம்.இதற்கு 'libmeep' என ஒரு நூலகமும் பயனர் நிரல் 'meeper' என்றூம் கொள்வோம்." + +#: C/gtk-doc-manual.xml:361(title) +msgid "Setting up a skeleton documentation" +msgstr "தோராய ஆவணம் அமைத்தல்" + +#: C/gtk-doc-manual.xml:363(para) +msgid "Under your top-level project directory create folders called docs/reference (this way you can also have docs/help for end-user documentation). It is recommended to create another subdirectory with the name of the doc-package. For packages with just one library this step is not necessary." +msgstr "உங்கள் தலை மட்ட திட்ட அடைவில் இந்த மாதிரி அடைவுகளை உருவாக்குக.docs/reference (இதனால் உங்களுக்கு பயனர் ஆவணம் docs/help உம் கிடைக்கும்). இன்னொரு துணை அடைவு doc-package என் பெயரிட்டு உருவாக்கவும். ஒரே ஒரு நூலகம் உள்ள பொதிகளுக்கு இந்த படி தேவையில்லை" + +#: C/gtk-doc-manual.xml:372(title) +msgid "Example directory structure" +msgstr "எடுத்துக்காட்டு அடைவு அமைப்பு" + +#: C/gtk-doc-manual.xml:370(para) +msgid "This can then look as show below: " +msgstr "இது கீழ் கண்டவாறு அமையலாம்: " + +#: C/gtk-doc-manual.xml:390(title) C/gtk-doc-manual.xml:397(title) +msgid "Integration with autoconf" +msgstr "ஆட்டோ கான்ஃப் உடன் ஒருங்கிணைப்பு" + +#: C/gtk-doc-manual.xml:392(para) +msgid "Very easy! Just add one line to your configure.ac script." +msgstr "ரொம்ப சுலபம். configure.ac குறுநிரலுக்கு ஒரே ஒரு வரி மட்டும் சேருங்கள்." + +#: C/gtk-doc-manual.xml:407(para) +msgid "The first argument is used to check for the gtkdocversion at configure time. The 2nd, optional argument is used by gtkdocize. The GTK_DOC_CHECK macro also adds several configure switches:" +msgstr "முதல் தரு மதிப்பு வடிவமைப்பு நேரத்தில் ஜிடிகே டாக் இன் பதிப்பை சோதிக்கிறது. இரண்டாவது தெர்வு தருமதிப்பு. இது இந்த நிரலால் பயன்படுத்தப்படுகிறது. gtkdocize. GTK_DOC_CHECK மேக்ரோ பல மாற்றிகளை வடிவமைத்து சேர்க்கிறது:" + +#: C/gtk-doc-manual.xml:413(para) +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=PATH : நிறுவிய ஆவணங்களுக்கான பாதை" + +#: C/gtk-doc-manual.xml:414(para) +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "\"\"--enable-gtk-doc :ஆவணமாக்கத்துக்கு ஜிடிகே டாக் ஐ பயன்படுத்துக. [முன்னிருப்பு=இல்லை]" + +#: C/gtk-doc-manual.xml:415(para) +msgid "--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "--enable-gtk-doc-html : html ஒழுங்கில் ஆவணத்தை உருவாக்குக[முன்னிருப்பு=ஆம்]" + +#: C/gtk-doc-manual.xml:416(para) +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "--enable-gtk-doc-pdf : pdf ஒழுங்கில் ஆவணத்தை உருவாக்குக [முன்னிருப்பு=இல்லை]" + +#: C/gtk-doc-manual.xml:420(para) +msgid "GTK-Doc is disabled by default! Remember to pass the option to the next configure run. Otherwise pregenerated documentation is installed (which makes sense for users but not for developers)." +msgstr "ஜிடிகே டாக் GTK-Doc முன்னிருப்பாக செயலிழந்து இருக்கும்! ஆகவே அடுத்த configure இயக்கத்துக்கு இந்த தேர்வை செய்க: . இல்லையானால் முன் உருவாக்கிய ஆவணங்கள் நிறூவப்படும்.( இது பயனர்களுக்கு புரியும், நல்லது. ஆனால் உருவாக்குவோருக்கு அல்ல)." + +#: C/gtk-doc-manual.xml:428(para) +msgid "Furthermore it is recommended that you have the following line inside you configure.ac script. This allows gtkdocize to automatically copy the macro definition for GTK_DOC_CHECK to your project." +msgstr " மேலும் பின் வரும் வரியை உங்கள் configure.ac குறுநிரலில் அமைத்துக்கொள்க. இது gtkdocize நிரலை தானியங்கியாக GTK_DOC_CHECK இன் மேக்ரோ அறிதியீட்டை உங்கள் திட்டத்துக்கு பிரதி எடுக்கிறது." + +#: C/gtk-doc-manual.xml:436(title) +msgid "Preparation for gtkdocize" +msgstr "gtkdocize க்கு முன்னேற்பாடு" + +#: C/gtk-doc-manual.xml:447(title) +msgid "Integration with automake" +msgstr "ஆட்டோமேக் உடன் ஒருங்கிணைப்பு" + +#: C/gtk-doc-manual.xml:449(para) +msgid "First copy the Makefile.am from the examples subdirectory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). If you have multiple doc-packages repeat this for each one." +msgstr "முதலில் gtkdoc-sources அடைவிலிருந்து உங்கள் திட்டத்தின் ஏபிஐ ஆவண அடைவு ( ./docs/reference/<package>) க்கு Makefile.am ஐ பிரதி எடுக்கவும். உங்களுக்கு பல டாக் பொதிகள் இருப்பின் இதை ஒவ்வொன்றுக்கும் செய்யவும்." + +#: C/gtk-doc-manual.xml:456(para) +msgid "The next step is to edit the setting inside the Makefile.am. All the settings have a comment above that describes their purpose. Most settings are extra flags passed to the respective tools. Every tool has a variable of the form . All the tools support to list the supported parameters." +msgstr "அடுத்த படி Makefile.am இல் உள்ளதை திருத்துவது. எல்லா அமைப்புகளின் மேலும் அதன் செயலை விவரிக்கும் விமர்சனம் இருக்கும். அனேகமான அமைப்புகள் அவற்றின் கருவிகளூக்கான கூடிதல் கொடிகளே. எல்லா கருவிகளுக்கும் ஒரு மாறி இது போல இருக்கும். . எல்லா கருவிகளும் ஆதரவளிக்கும் பாராமீட்டர்களை குறிக்க இதை ஆதரிக்கும்: " + +#. FIXME: explain options ? +#: C/gtk-doc-manual.xml:467(para) +msgid "You may also want to enable GTK-Doc for the distcheckmake target. Just add then one-liner show in the next example to you top-level Makefile.am:" +msgstr "ஜிடிகே டாக் (GTK-Doc) ஐdistcheckmake க்கு இலக்காக்க நீங்கள் விரும்பலாம். அடுத்த உதாரணத்தில் உள்ள ஒரு வரி காட்டலை உங்கள் மேல் மட்ட Makefile.am க்கு சேர்கவும்:" + +#: C/gtk-doc-manual.xml:474(title) +msgid "Enable GTK-Doc during make distcheck" +msgstr "distcheck போது ஜிடிகே- டாக் ஐ செயலாக்குக" + +#: C/gtk-doc-manual.xml:486(title) +msgid "Integration with autogen" +msgstr "ஆட்டொஜென் உடன் ஒருங்கிணைத்தல்" + +#: C/gtk-doc-manual.xml:488(para) +msgid "Most projects will have an autogen.sh script to setup the build infrastructure after a checkout from version control system (such as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before autoheader, automake or autoconf." +msgstr "முக்கால்வாசி திட்டங்களில் (cvs/svn/git போன்ற) வெர்ஷன் கட்டுப்பாடு அமைப்பில் இருந்து பெறப்பட்டதும் அடிக்கட்டுமான பணியை செய்ய autogen.sh குறுநிரல் இருக்கும். ஜிடிகே டாக் (GTK-Doc) இல் gtkdocize என ஒரு கருவி உண்டு. இது அது போன்ற குறுநிரலுடன் வேலை செய்யும்.இது autoheader, automake அல்லது autoconf க்கு முன்னால் இயக்கப்பட வேண்டும்." + +#: C/gtk-doc-manual.xml:497(title) +msgid "Running gtkdocize from autogen.sh" +msgstr "autogen.sh இலிருந்து gtkdocize ஐ இயக்குதல்" + +#: C/gtk-doc-manual.xml:506(para) +msgid "When running gtkdocize it copies gtk-doc.make to you project root (or any directory specified by the option). If also check you configure script for the GTK_DOC_CHECK invocation." +msgstr " gtkdocize நிரலை இயக்கும்போது gtk-doc.make ஐ உங்கள் திட்டத்தின் மூலத்திற்கு அல்லது தேர்வில் நீங்கள் குறிப்பிடும் அடைவுக்கு பிரதி எடுக்கிறது. அது GTK_DOC_CHECK அழைப்புக்கும் உங்கள் அமைப்பு குறுநிரலை சோதிக்கிறது ." + +#: C/gtk-doc-manual.xml:514(para) +msgid "Historically GTK-Doc was gerating template files where developers entered the docs. this turned out to be not so good. Since a few version GTK-Doc could also get all the information from source comments. Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. Besides adding the option directly to the command invocation, they can be added also to a environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, please remove the dir (e.g. from version control system)." +msgstr "முன்னெல்லாம் ஜிடிகே டாக்(GTK-Doc) வார்ப்புரு கோப்புக்களை உருவாக்கிக்கொண்டு இருந்தது. இதில் உருவாக்குவோர் ஆவணங்களை உள்ளிட்டுக்கொண்டு இருந்தனர். இது அவ்வளவு சரியாக வேலை செய்யவில்லை. சில பதிப்புக்களாக ஜிடிகே டாக்(GTK-Doc) மூலத்தின் விமர்சனங்களிலிருந்து எல்லா தகவல்களையும் பெற் முடிகிறது. GTK-Doc 1.9 முதல் வார்புருக்களை தவிர்க்கலாம். ஆகவே நாங்கள் மூல குறியாக்கத்தில் ஆவணங்களுக்கு தேவையான எல்லா தகவல்களையும் வைக்க வேண்டுகிறோம். gtkdocizeஇப்போது ஒரு தேர்ர்வை ஆதரிக்கிறது. இதனால் மேக்பைல் (makefile) வார்ப்புரு பயனை முற்றும் தவிர்த்துவிடுகிறது. நேரடியாக கட்டளை அழைப்புக்கு இந்த தேர்வை சேர்ப்பதுடன் GTKDOCIZE_FLAGS எனும் சூழ்நிலை மாறிகளுக்கும் சேர்க்கலாம். அலல்து இரண்டாம் பாராமிட்டராக GTK_DOC_CHECK இல் அமைக்கலாம். நீங்கள் இதுவரை கைமுறையாக tmpl இல் கோப்பை மாற்றியது இல்லை; பழைய ஜிடாக் பதிப்பிலிருந்து இடம் மாறுகிறீர்கள் எனில் தயை செய்து அந்த அடைவை நீக்கி விடுங்கள் (எ.கா. வெர்ஷன் கன்ட்ரோல் அமைப்பு)." + +#: C/gtk-doc-manual.xml:530(title) C/gtk-doc-manual.xml:547(title) +msgid "Running the doc build" +msgstr "டாக் உருவாக்கியை (doc build) இயக்குதல்" + +#: C/gtk-doc-manual.xml:532(para) +msgid "After the previous steps it's time to run the build. First we need to rerun autogen.sh. If this script runs configure for you, then give it the option. Otherwise manually run configure with this option afterwards." +msgstr "இப்போது கட்டுமானத்திற்கு ஆயத்தமாகிவிட்டோம். முதலில் நாம் மீன்டும் autogen.sh ஐ இயக்கவேண்டும். இது உங்களுக்கு கட்டமைப்பை இயக்கினால் அதற்கு தேர்வை தரவும். இல்லையானால் கைமுறையாக இதே தேர்வுடன் configure ஐ பிரிதொரு முறை இயக்கவும்." + +#: C/gtk-doc-manual.xml:539(para) +msgid "The first make run generates several additional files in the doc-dirs. The important ones are: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "ஆவண அடைவுகளில் (doc-dirs) பல கூடுதல் கோப்புகளை முதல் மேக் இயக்கம் உருவாக்கும்.அவற்றில்ய் முக்கியமானவை: <package>.types, <package>-docs.sgml, <package>-sections.txt." + +#: C/gtk-doc-manual.xml:556(para) +msgid "Now you can point your browser to docs/reference/<package>/index.html. Yes, it's a bit disappointing still. But hang-on, during the next chapter we tell you how to fill the pages with life." +msgstr "இப்போது உங்கள் உலாவியை docs/reference/<package>/index.html க்கு சுட்டிக்காட்டலாம். ஆமாம், இது கொஞ்சம் ஏமாற்றமாகத்தான் இருக்கிறது. கவலை வேண்டாம். அடுத்த அத்தியாயத்தில் எப்படி இவற்றை உயிருக்கு கொண்டு வருவது என பார்க்கலாம்." + +#: C/gtk-doc-manual.xml:564(title) +msgid "Integration with version control systems" +msgstr "வெர்ஷன் கன்ட்ரோல் அமைப்புகளுடன் ஒருங்கிணைத்தல்" + +#: C/gtk-doc-manual.xml:566(para) +msgid "As a rule of the thumb, it's those files you edit, that should go under version control. For typical projects it's these files: <package>.types<package>-docs.sgml<package>-sections.txtMakefile.am" +msgstr "குத்து மதிப்பாக சொல்லப்போனால் , நீங்கள் திருத்தும் கோப்புகள்தான் வெர்ஷன் கட்டுப்படுக்கு போக வேண்டும். வழக்கமாக இவைதான் அந்த கோப்புகள்: <package>.types<package>-docs.sgml<package>-sections.txtMakefile.am" + +#: C/gtk-doc-manual.xml:579(title) +msgid "Documenting the code" +msgstr "குறியாக்கத்தை ஆவணப்படுத்துதல்" + +#: C/gtk-doc-manual.xml:581(para) +msgid "GTK-Doc uses source code comment with a special syntax for code documentation. Further it retrieves information about your project structure from other sources. During the next section you find all information about the syntax of the comments." +msgstr "ஜிடிகே டாக்(GTK-Doc) குறீயீட்டை ஆவணமாக்க மூல குறியீட்டின் விமர்சனத்தை சிறப்பு இலக்கணத்துடன் பயன்படுத்துகிறது. மற்ற மூலங்களிலிருந்தும் அது உங்கள் திட்டத்தின் கட்டுமானத்தை அறிகிறது. அடுத்த தொகுதியில் இந்த விமர்சனன்களின் சிறப்பு இலக்கணம் குறித்து முழுதும் அறியலாம்." + +#: C/gtk-doc-manual.xml:589(title) +msgid "Documentation placement" +msgstr "ஆவணம் இடுதல்" + +#: C/gtk-doc-manual.xml:590(para) +msgid "In the past most documentation had to be filled into files residing inside the tmpl directory. This has the disadvantages that the information is often not updated and also that the file tend to cause conflicts with version control systems." +msgstr "முன் காலத்தில் பெரும்பாலான ஆவணங்கள் tmpl அடைவில் இருக்கும் கோப்புகளில் நிரப்பப்பட வேண்டி இருந்தது. இதில் நஷ்டமாக தகவல்கள் அவ்வப்போது புதுப்பிக்கப்படவில்லை. மேலும் இவை வெர்ஷன் கட்டுப்பாடு அமைப்புகளுடன் பொருந்தவில்லை" + +#: C/gtk-doc-manual.xml:596(para) +msgid "The avoid the aforementioned problems we suggest putting the documentation inside the sources. This manual will only describe this way of documenting code." +msgstr "மேற்கூறிய காரணங்களால் நாங்கள் ஆவணங்களை மூலத்துடன் வைக்கு மாறூ சொல்கிறோம். இந்த கையேடு இந்த முறையை மட்டுமே விவாதிக்கும்." + +#: C/gtk-doc-manual.xml:606(title) +msgid "Documentation comments" +msgstr "ஆவணமாக்க விமரிசனங்கள்" + +#: C/gtk-doc-manual.xml:611(title) +msgid "GTK-Doc comment block" +msgstr "ஜிடிகே டாக் விமரிசன தொகுப்பு" + +#: C/gtk-doc-manual.xml:608(para) +msgid "A multiline comment that starts with an additional '*' marks a documentation block that will be processed by the GTK-Doc tools. " +msgstr " '*' இல் துவங்கும் பல்வரி விமர்சனம் ஜிடிகே டாக் கருவிகளால் ஒரு ஆவணமாக்கல் தொகுதியாக கையாளப்படும். " + +#: C/gtk-doc-manual.xml:623(para) +msgid "The 'identifier' is one line with the name of the item the comment is related to. The syntax differs a little depending on the item. (TODO add table showing identifiers)" +msgstr " 'identifier' எனப்படும் இனம் காட்டி விமர்சனம் பொருந்தும் உருப்படியின் பெயருடன் கூடிய ஒரு வரி. உருப்படியை பொருத்து இலக்கணம் சற்று மாறலாம். " + +#: C/gtk-doc-manual.xml:629(para) +msgid "The 'documentation' block is also different for each symbol type. Symbol types that get parameters such as functions or macros have the parameter description first followed by a blank line (just a '*'). Afterwards follows the detailed description. All lines (outside program- listings and CDATA sections) just containing a ' *' (blank-asterisk) are converted to paragraph breaks. If you don't want a paragraph break, change that into ' * ' (blank-asterisk-blank-blank)." +msgstr "ஆவண ( 'documentation') தொகுதி ஒவ்வொரு அடையாளத்துக்கும் கூட தனித் தனியாகும் .symbol type. Symbol types that get parameters such as functions or macros have the parameter description first followed by a blank line (just a '*'). Afterwards follows the detailed description. All lines (outside program- listings and CDATA sections) just containing a ' *' (blank-asterisk) are converted to paragraph breaks. If you don't want a paragraph break, change that into ' * ' (blank-asterisk-blank-blank)." + +#: C/gtk-doc-manual.xml:646(para) +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "தரு மதிப்புகளுக்கும் அவற்றை ஏற்கும் மேக்ரோக்களுக்கும் function() செயலை பயன்படுத்துக." + +#: C/gtk-doc-manual.xml:651(para) +msgid "Use @param to refer to parameters. Also use this when referring to parameters of other functions, related to the one being described." +msgstr "@param ஐ எல்லா வரையீடுகளுக்கும் பயன்படுத்துக. விவரிக்கும் பங்ஷனுக்கு தொடர்பான எல்லா பங்ஷன்களின் வரையீடுகளுக்கும் கூட இதை பயன்படுத்துக." + +#: C/gtk-doc-manual.xml:657(para) +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "%constant ஐ ஒரு மாறிலியை காட்ட பயன்படுத்துக. எ-கா %G_TRAVERSE_LEAFS" + +#: C/gtk-doc-manual.xml:662(para) +msgid "Use #symbol to refer to other types of symbol, e.g. structs and enums and macros which don't take arguments." +msgstr "#symbol ஐ மற்ற வகை சிம்பலுக்கு பயன்படுத்துக. எ-கா தருமதிப்பை ஏற்காத ஸ்ட்ரட்ஸ், ஈநம்ஸ் மற்றும் மேக்ரோக்கள்." + +#: C/gtk-doc-manual.xml:668(para) +msgid "Use #Object::signal to refer to a GObject signal" +msgstr "#Object::signal ஐ GObject சமிக்ஞைக்கு பயன்படுத்துக" + +#: C/gtk-doc-manual.xml:673(para) +msgid "Use #Object:property to refer to a GObject property" +msgstr "#Object:property ஐGObject இன் பண்புகளை குறிக்க பயன்படுத்துக " + +#: C/gtk-doc-manual.xml:678(para) +msgid "Use #Struct.field to refer to a field inside a structure." +msgstr "Struct.field ஐ ஒரு கட்டமைப்பின் புலத்தை குறிக்க பயன்படுத்துக " + +#: C/gtk-doc-manual.xml:640(para) +msgid "One advantage of hyper-text over plain-text is the ability to have links in the document. Writing the correct markup for a link can be tedious though. GTK-Doc comes to help by providing several useful abbreviations. " +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:686(para) +msgid "If you need to use the special characters '<', '>', '()', '@', '%', or '#' in your documentation without GTK-Doc changing them you can use the XML entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" and \"&num;\" respectively or escape them with a backslash '\\'." +msgstr "சிறப்பு குறிகளான '<', '>', '()', '@', '%', அல்லது '#' ஐ ஜிடிகே டாக் மாற்றாமல் அப்படியே ஆவணத்தில் பயன்படுத்த அவற்றுக்கான ஹெச்எம்எல் ஐ பயன்படுத்துக: \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" மற்றும் \"&num;\" அல்லது பின் சாய்வு கோடால் அவற்றை தனியாக்கலாம்.'\\'. " + +#: C/gtk-doc-manual.xml:695(para) +msgid "DocBook can do more that just links. One can also have lists, tables and examples. To enable the usage of SGML/XML tags inside doc-comments you need to have in the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" + +#: C/gtk-doc-manual.xml:703(para) +msgid "As already mentioned earlier GTK-Doc is for documenting public API. Thus one cannot write documentation for static symbols. Nevertheless it is good to comment those symbols too. This helps other to understand you code. Therefore we recommend to comment these using normal comments (without the 2nd '*' in the first line). If later the function needs to be made public, all one needs to do is to add another '*' in the comment block and insert the symbol name at the right place inside the sections file." +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:717(title) +msgid "Documenting sections" +msgstr "ஆவணப்படுத்தும் தொகுதிகள்" + +#: C/gtk-doc-manual.xml:719(para) +msgid "Each section of the documentation contains information about one class or module. To introduce the component one can write a section block. The short description is also used inside the table of contents. All the @fields are optional." +msgstr "ஆவணத்தில் ஒவ்வொரு பிரிவும் ஒரு வகுப்பு அல்லது கூறு குறித்து தகவலைப்பெற்றிருக்கும். ஒரு பாகத்தை அறிமுகம் செய்ய ஒரு தொகுதியை எழுதலாம். குறுகிய விவரணம் உள்ளடக்க பட்டியலில் கூட பயன்படுத்தப்படும். எல்லா @ புலங்களூம் தேர்வுக்குரியன." + +#: C/gtk-doc-manual.xml:727(title) +msgid "Section comment block" +msgstr "பிரிவு விமரிசன தொகுதி" + +#: C/gtk-doc-manual.xml:748(term) +msgid "SECTION:<name>" +msgstr "SECTION:<பெயர்>" + +#: C/gtk-doc-manual.xml:750(para) +msgid "The name links the section documentation to the respective part in the <package>-sections.txt file. The name give here should match the <FILE> tag in the <package>-sections.txt file." +msgstr "பகுதி ஆவணத்தை பெயர் <package>-sections.txtகோப்புக்கு இணைக்கிறது. கொடுக்கப்பட்ட பெயர் <package>-sections.txt கோப்பில் <FILE> குறிப்புடன் பொருந்த வேண்டும்." + +#: C/gtk-doc-manual.xml:759(term) +msgid "@short_description" +msgstr "@short_description" + +#: C/gtk-doc-manual.xml:761(para) +msgid "A one line description of the section, that later will appear after the links in the TOC and at the top of the section page." +msgstr "பகுதி பக்கத்தின் மேலே உள்ளடக்க பட்டியலுக்கான தொடுப்புகளுக்குப்பின் காணும் ஒரு வரி விவரம்." + +#: C/gtk-doc-manual.xml:768(term) +msgid "@title" +msgstr "@title" + +#: C/gtk-doc-manual.xml:770(para) +msgid "The section title defaults to <name> from the SECTION declaration. It can be overridden with the @title field." +msgstr "இந்த தொகுதி SECTION சாற்றுரையிலிருந்து <name> க்கு முன்னிருப்பாக செல்லும். இதை உதாசீனப்படுத்த @title புலத்தை பயன்படுத்துக." + +#: C/gtk-doc-manual.xml:777(term) +msgid "@section_id" +msgstr "@section_id" + +#: C/gtk-doc-manual.xml:779(para) +msgid "Overrides the use of title as a section identifier. For GObjects the <title> is used as a section_id and for other section it is <MODULE>-<title>." +msgstr "தொகுதியை இனம் காண தலைப்பைஉதாசீனப்படுத்தும். GObjects ஆகிய <title> வற்றுக்கு section_id பயன்படும். ஏனைய தொகுதிகளுக்கு அது <MODULE>-<title>." + +#: C/gtk-doc-manual.xml:787(term) +msgid "@see_also" +msgstr "@see_also" + +#: C/gtk-doc-manual.xml:789(para) +msgid "A list of symbols that are related to this section.." +msgstr "இந்த தொகுதியுடன் சம்பந்தப்பட்ட சிம்பல் சின்னங்களின் பட்டியல். " + +#: C/gtk-doc-manual.xml:795(term) +msgid "@stability" +msgstr "@stability" + +#: C/gtk-doc-manual.xml:802(para) +msgid "Stable - The intention of a Stable interface is to enable arbitrary third parties to develop applications to these interfaces, release them, and have confidence that they will run on all minor releases of the product (after the one in which the interface was introduced, and within the same major release). Even at a major release, incompatible changes are expected to be rare, and to have strong justifications." +msgstr "Stable - நிலையான- எனில் இடைமுகம் நிலையானது. மூன்றாம் நபர்கள் இவற்றை ஒட்டி நிரல்களை எழுதி வெளியிடலாம்; எந்த பெரிய வெளியீட்டுக்குள் அவை வெளியிடப்பட்டதோ அதன் சிறிய வெளியீட்டுகளுக்குள் அவை சரியாக வேலை செய்யும் என நம்பலாம். பெரிய வெளியீடில் கூட இசைவு இல்லாமல் போவது துர்லபம்." + +#: C/gtk-doc-manual.xml:814(para) +msgid "Unstable - Unstable interfaces are experimental or transitional. They are typically used to give outside developers early access to new or rapidly changing technology, or to provide an interim solution to a problem where a more general solution is anticipated. No claims are made about either source or binary compatibility from one minor release to the next." +msgstr "Unstable - நிலையற்ற- எனில் இடைமுகம் பரீட்சார்த்தமானது. சிலகாலமே இருக்கும். இவை சாதாரணமாக புது வேகமாக மாறும் தொழில்நுட்பத்துக்கு ஆரம்ப கால அணுகலைத்தர பயன்படும். பின்னால் வர்வுள்ள நிரந்தர தீர்வுகளுக்கு இடைத்தீர்வாகவும் அமையும். அடுத்த வெளியீடுகளுக்கு பொருத்தம் இசைவு இருக்கும் என எதிரபாரலாகாது." + +#: C/gtk-doc-manual.xml:826(para) +msgid "Private - An interface that can be used within the GNOME stack itself, but that is not documented for end-users. Such functions should only be used in specified and documented ways." +msgstr "Private - தனிப்பயன் எனில் க்னோம் இல் மட்டும் பயன்படும் இடைமுகம். ஆயின் இறுதி பயனருக்கு ஆவணப்படுத்தவில்லை. அப்படிப்பட்ட செயல்கள் குறீப்பிட்ட ஆவணப்படுத்தப்பட்ட வழியில் மட்டுமே பயன்படுத்தப்பட வேண்டும்." + +#: C/gtk-doc-manual.xml:835(para) +msgid "Internal - An interface that is internal to a module and does not require end-user documentation. Functions that are undocumented are assumed to be Internal." +msgstr "" + +#: C/gtk-doc-manual.xml:797(para) +msgid "A informal description of the stability level this API has. We recommend the use of one of these terms: " +msgstr "" + +#: C/gtk-doc-manual.xml:847(term) +msgid "@include" +msgstr "@include" + +#: C/gtk-doc-manual.xml:849(para) +msgid "The #include files to show in the section synopsis (a comma separated list), overriding the global value from the section file or command line. This item is optional." +msgstr "" + +#: C/gtk-doc-manual.xml:860(para) +msgid "To avoid unnecessary recompilation after doc-changes put the section docs into the c-source where possible." +msgstr "" + +#: C/gtk-doc-manual.xml:869(title) +msgid "Documenting symbols" +msgstr "சிம்பல்களை ஆவணப் படுத்தல்" + +#: C/gtk-doc-manual.xml:871(para) +msgid "Each symbol (function, macro, struct, enum, signal and property) is documented in a separate block. The block is best placed close to the definition of the symbols so that it is easy to keep them in sync. Thus function are usually documented in the c-source and macros, struct and enum in the header file." +msgstr "" + +#: C/gtk-doc-manual.xml:879(title) C/gtk-doc-manual.xml:908(title) +msgid "General tags" +msgstr "பொது டேக் ஒட்டுகள்" + +#: C/gtk-doc-manual.xml:881(para) +msgid "You can add versioning information to all documentation elements to tell when an api was introduced, or when it was deprecated." +msgstr "" + +#: C/gtk-doc-manual.xml:886(title) +msgid "Versioning Tags" +msgstr "டேக் களை பதிப்பாக்கல்" + +#: C/gtk-doc-manual.xml:887(term) +msgid "Since:" +msgstr "இதிலிருந்து:" + +#: C/gtk-doc-manual.xml:889(para) +msgid "Description since which version of the code the API is available." +msgstr "" + +#: C/gtk-doc-manual.xml:894(term) +msgid "Deprecated:" +msgstr "கைவிடப்பட்டது." + +#: C/gtk-doc-manual.xml:896(para) +msgid "Paragraph denoting that this function should no be used anymore. The description should point the reader to the new API." +msgstr "" + +#: C/gtk-doc-manual.xml:904(para) +msgid "(FIXME : Stability information)" +msgstr "FIXME : Stability information)" + +#: C/gtk-doc-manual.xml:931(title) C/gtk-doc-manual.xml:967(title) +msgid "Function comment block" +msgstr "பங்ஷன் விமரிசன தொகுதி" + +#: C/gtk-doc-manual.xml:937(para) +msgid "Document whether returned objects, lists, strings, etc, should be freed/unrefed/released." +msgstr "" + +#: C/gtk-doc-manual.xml:943(para) +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "" + +#: C/gtk-doc-manual.xml:948(para) +msgid "Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "" + +#: C/gtk-doc-manual.xml:933(para) C/gtk-doc-manual.xml:1030(para) +msgid "Please remember to: " +msgstr " க்கு நினைவிருத்துக" + +#: C/gtk-doc-manual.xml:955(para) +msgid "Gtk-doc assumes all symbols (macros, functions) starting with '_' are private. They are treated like static functions." +msgstr "" + +#: C/gtk-doc-manual.xml:960(para) +msgid "Also, take a look at gobject introspection annotation tags: http://live.gnome.org/GObjectIntrospection/Annotations" +msgstr "" + +#: C/gtk-doc-manual.xml:991(title) +msgid "Function tags" +msgstr "பங்ஷன் டேக் ஒட்டுகள்" + +#: C/gtk-doc-manual.xml:992(term) +msgid "Returns:" +msgstr "திருப்பிகிடைப்பவை:" + +#: C/gtk-doc-manual.xml:994(para) +msgid "Paragraph describing the returned result." +msgstr "" + +#: C/gtk-doc-manual.xml:999(term) +msgid "@...:" +msgstr "@...:" + +#: C/gtk-doc-manual.xml:1001(para) +msgid "In case the function has variadic arguments, you should use this tag (@Varargs: does also work for historic reasons)." +msgstr "" + +#: C/gtk-doc-manual.xml:1011(title) C/gtk-doc-manual.xml:1013(title) +msgid "Property comment block" +msgstr "பண்புகள் விமரிசன தொகுதி" + +#: C/gtk-doc-manual.xml:1028(title) C/gtk-doc-manual.xml:1047(title) +msgid "Signal comment block" +msgstr "சமிக்ஞை விமரிசன தொகுதி" + +#: C/gtk-doc-manual.xml:1034(para) +msgid "Document when the signal is emitted and whether it is emitted before or after other signals." +msgstr "சமிக்ஞை எப்போது வெளியிடப்படும் மற்றும் மற்ற சமிக்ஞைகளுக்கு முன்னா பின்னா வெளியிடப்படும் என ஆவணப்படுத்தல்." + +#: C/gtk-doc-manual.xml:1040(para) +msgid "Document what an application might do in the signal handler." +msgstr "" + +#: C/gtk-doc-manual.xml:1067(title) C/gtk-doc-manual.xml:1068(title) +msgid "Struct comment block" +msgstr "அமைப்பு விமரிசன தொகுதி" + +#: C/gtk-doc-manual.xml:1088(para) +msgid "Use /*< private >*/ before the private struct fields you want to hide. Use /*< public >*/ for the reverse behavirour." +msgstr "" + +#: C/gtk-doc-manual.xml:1096(title) C/gtk-doc-manual.xml:1097(title) +msgid "Enum comment block" +msgstr "ஈநம் விமரிசன தொகுதி" + +#: C/gtk-doc-manual.xml:1118(para) +msgid "Use /*< private >*/ before the private enum values you want to hide. Use /*< public >*/ for the reverse behavirour." +msgstr "" + +#: C/gtk-doc-manual.xml:1128(title) +msgid "Useful DocBook tags" +msgstr "" + +#: C/gtk-doc-manual.xml:1130(para) +msgid "Here are some DocBook tags which are most useful when documenting the code." +msgstr "" + +#: C/gtk-doc-manual.xml:1135(para) +msgid "To link to another section in the GTK docs: The linkend is the SGML/XML id on the top item of the page you want to link to. For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and then the page title (\"Hash Tables\"). For widgets it is just the class name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" + +#: C/gtk-doc-manual.xml:1151(para) +msgid "To refer to an external function, e.g. a standard C function: " +msgstr "" + +#: C/gtk-doc-manual.xml:1162(para) +msgid "To include example code: or possibly this, for very short code fragments which don't need a title: For the latter GTK-Doc also supports an abbreviation: " +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:1196(para) +msgid "To include bulleted lists: " +msgstr "" + +#: C/gtk-doc-manual.xml:1218(para) +msgid "To include a note which stands out from the text: " +msgstr "" + +#: C/gtk-doc-manual.xml:1233(para) +msgid "To refer to a type: " +msgstr "" + +#: C/gtk-doc-manual.xml:1244(para) +msgid "To refer to an external structure (not one described in the GTK docs): " +msgstr "" + +#: C/gtk-doc-manual.xml:1255(para) +msgid "To refer to a field of a structure: " +msgstr "" + +#: C/gtk-doc-manual.xml:1266(para) +msgid "To refer to a class name, we could possibly use: but you'll probably be using #GtkWidget instead (to automatically create a link to the GtkWidget page - see the abbreviations)." +msgstr "" + +#: C/gtk-doc-manual.xml:1279(para) +msgid "To emphasize text: " +msgstr "" + +#: C/gtk-doc-manual.xml:1290(para) +msgid "For filenames use: " +msgstr "" + +#: C/gtk-doc-manual.xml:1301(para) +msgid "To refer to keys use: " +msgstr "" + +#: C/gtk-doc-manual.xml:1316(title) +msgid "Filling the extra files" +msgstr "கூடுதல் கோப்புகளை நிரப்புதல் " + +#: C/gtk-doc-manual.xml:1318(para) +msgid "There are a couple of extra files, that need to be maintained along with the inline source code comments: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "" + +#: C/gtk-doc-manual.xml:1327(title) +msgid "Editing the types file" +msgstr "கோப்பு வகையை திருத்துதல்" + +#: C/gtk-doc-manual.xml:1329(para) +msgid "If your library or application includes GtkObjects/GObjects, you want their signals, arguments/parameters and position in the hierarchy to be shown in the documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <package>.types file." +msgstr "" + +#: C/gtk-doc-manual.xml:1338(title) +msgid "Example types file snippet" +msgstr "" + +#: C/gtk-doc-manual.xml:1352(para) +msgid "Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in Makefile.am. If you use this approach you should not dist the types file nor have it under version control." +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:1361(title) +msgid "Editing the master document" +msgstr "முதன்மை ஆவணத்தை திருத்துதல்" + +#: C/gtk-doc-manual.xml:1363(para) +msgid "GTK-Doc produces documentation in DocBook SGML/XML. When processing the inline source comments, the GTK-Doc tools generate one documentation page per class or module as a separate file. The master document includes them and place them in a order." +msgstr "ஜிடிகே டாக் ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:1370(para) +msgid "While GTK-Doc creates a template master document for you, later run will not touch it again. This means that one can freely structure the documentation. That includes grouping pages and adding extra pages. GTK-Doc has now a test suite, where also the master-document is recreated from scratch. Its a good idea to look at this from time to time to see if there are some new goodies introduced there." +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:1380(para) +msgid "Do not create tutorials as extra documents. Just write extra chapters. The benefit of directly embedding the tutorial for your library into the API documentation is that it is easy to link for the tutorial to symbol documentation. Apart chances are higher that the tutorial gets updates along with the library." +msgstr "" + +#: C/gtk-doc-manual.xml:1389(para) +msgid "So what are the things to change inside the master document? For a start is only a little. There are some placeholders (text in square brackets) there which you should take care of." +msgstr "" + +#: C/gtk-doc-manual.xml:1396(title) +msgid "Master document header" +msgstr "முதன்மை ஆவணத்தின் தலைப்பு" + +#: C/gtk-doc-manual.xml:1418(title) +msgid "Editing the section file" +msgstr "தொகுதி கோப்பை திருத்துதல்" + +#: C/gtk-doc-manual.xml:1420(para) +msgid "The section file is used to organise the documentation output by GTK-Doc. Here one specifies which symbol belongs to which module or class and control the visibility (public or private)." +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:1426(para) +msgid "The section file is a plain test file with xml like syntax (using tags). Blank lines are ignored and lines starting with a '#' are treated as comment lines." +msgstr "" + +#: C/gtk-doc-manual.xml:1432(para) +msgid "The <FILE> ... </FILE> tag is used to specify the file name, without any suffix. For example, using '<FILE>gnome-config</FILE>' will result in the section declarations being output in the template file tmpl/gnome-config.sgml, which will be converted into the DocBook SGML/XML file sgml/gnome-config.sgml or .DocBook XML file xml/gnome-config.xml. (The name of the html file is based on the module name and the section title, or for gobjects it is based on the gobjects class name converted to lower case)." +msgstr "" + +#: C/gtk-doc-manual.xml:1444(para) +msgid "The <TITLE> ... </TITLE> tag is used to specify the title of the section. It is only useful before the templates (if used) are initially created, since the title set in the template file overrides this. Also if one uses SECTION comment in the sources, this is obsolete." +msgstr "" + +#: C/gtk-doc-manual.xml:1451(para) +msgid "You can group items in the section by using the <SUBSECTION> tag. Currently it outputs a blank line between subsections in the synopsis section. You can also use <SUBSECTION Standard> for standard GObject declarations (e.g. the functions like g_object_get_type and macros like G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the documentation. You can also use <SUBSECTION Private> for private declarations which will not be output (It is a handy way to avoid warning messages about unused declarations.). If your library contains private types which you don't want to appear in the object hierarchy and the list of implemented or required interfaces, add them to a Private subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1467(para) +msgid "You can also use <INCLUDE> ... </INCLUDE> to specify the #include files which are shown in the synopsis sections. It contains a comma-separate list of #include files, without the angle brackets. If you set it outside of any sections, it acts for all sections until the end of the file. If you set it within a section, it only applies to that section." +msgstr "" + +#: C/gtk-doc-manual.xml:1481(title) +msgid "Controlling the result" +msgstr "விடையை கட்டுப்படுத்தல்" + +#: C/gtk-doc-manual.xml:1483(para) +msgid "A GTK-Doc run generates report files inside the documentation directory. The generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and <package>-unused.txt. All those are plain text files that can be viewed and postprocessed easily." +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:1492(para) +msgid "The <package>-undocumented.txt file starts with the documentation coverage summary. Below are two sections divided by blank lines. The first section lists undocumented or incomplete symbols. The second section does the same for section docs. Incomplete entries are those, which have documentation, but where e.g. a new parameter has been added." +msgstr "" + +#: C/gtk-doc-manual.xml:1501(para) +msgid "The <package>-undeclared.txt file lists symbols given in the <package>-sections.txt but not found in the sources. Check if they have been removed or if they are misspelled." +msgstr "" + +#: C/gtk-doc-manual.xml:1508(para) +msgid "The <package>-unused.txt file lists symbol names, where the GTK-Doc scanner has found documentation, but does not know where to put it. This means that the symbol has not yet been added to the <package>-sections.txt file." +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:1516(para) +msgid "Enable or add the line in Makefile.am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during make check run." +msgstr "ஜிடிகே டாக் " + +#: C/gtk-doc-manual.xml:1523(para) +msgid "One can also look at the files produced by the source code scanner: <package>-decl-list.txt and <package>-decl.txt. The first and can be compared with the section file if that is manualy maintained. The second lists all declarations fromt he headers If a symbol is missing one could check if this file contains it." +msgstr "" + +#: C/gtk-doc-manual.xml:1532(para) +msgid "If the project is GObject based, one can also look into the files produced by the object scanner: <package>.args.txt, <package>.hierarchy.txt, <package>.interfaces.txt, <package>.prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask gtkdoc to keep the intermedia scanner file for further analysis, but running it as GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" + +#: C/gtk-doc-manual.xml:1547(title) +msgid "Frequently asked question" +msgstr "அடிக்கடி கேட்கும் கேள்விகள்" + +#: C/gtk-doc-manual.xml:1551(segtitle) +msgid "Question" +msgstr "கேள்வி" + +#: C/gtk-doc-manual.xml:1552(segtitle) +msgid "Answer" +msgstr "பதில்" + +#: C/gtk-doc-manual.xml:1554(seg) +msgid "No class hierarchy." +msgstr "வகுப்பு கட்டுமுறை இல்லை" + +#: C/gtk-doc-manual.xml:1556(function) +msgid "xxx_get_type()" +msgstr "\"\"xxx_get_type()" + +#: C/gtk-doc-manual.xml:1557(filename) +msgid "<package>.types" +msgstr "<package>.வகைகள்" + +#: C/gtk-doc-manual.xml:1555(seg) +msgid "The objects function has not been entered into the file." +msgstr " பொருட்கள் பங்ஷன் இன்னும் கோப்பில் உள்ளிடப்படவில்லை" + +#: C/gtk-doc-manual.xml:1561(seg) +msgid "Still no class hierarchy." +msgstr "இன்னும் வகுப்பு கட்டுமுறை இல்லை" + +#: C/gtk-doc-manual.xml:1563(filename) C/gtk-doc-manual.xml:1602(filename) C/gtk-doc-manual.xml:1610(filename) C/gtk-doc-manual.xml:1632(filename) +msgid "<package>-sections.txt" +msgstr "<package>-sections.txt" + +#: C/gtk-doc-manual.xml:1564(ulink) +msgid "explanation" +msgstr "விளக்கம்" + +#: C/gtk-doc-manual.xml:1562(seg) +msgid "Missing or wrong naming in file (see )." +msgstr " கோப்பில் தவறான பெயரிடுதல் அல்லது காணவில்லை (பார்க்க: )" + +#: C/gtk-doc-manual.xml:1568(seg) +msgid "Damn, I have still no class hierarchy." +msgstr "அடடா, இன்னும் வகுப்பு கட்டுமுறை இல்லை " + +#: C/gtk-doc-manual.xml:1570(type) C/gtk-doc-manual.xml:1611(type) +msgid "GtkWidget" +msgstr "ஜிடிகேவிட்செட்" + +#: C/gtk-doc-manual.xml:1569(seg) +msgid "Is the object name (name of the instance struct, e.g. ) part of the normal section (don't put this into Standard or Private subsections)." +msgstr "" + +#: C/gtk-doc-manual.xml:1576(seg) +msgid "No symbol index." +msgstr "சிம்பல் குறி அட்டவணை இல்லை" + +#: C/gtk-doc-manual.xml:1578(filename) C/gtk-doc-manual.xml:1593(filename) C/gtk-doc-manual.xml:1619(filename) +msgid "<package>-docs.{xml,sgml}" +msgstr "<package>-docs.{xml,sgml}" + +#: C/gtk-doc-manual.xml:1577(seg) +msgid "Does the contain a index that xi:includes the generated index?" +msgstr "" + +#: C/gtk-doc-manual.xml:1583(seg) +msgid "Symbols are not linked to their doc-section." +msgstr "" + +#: C/gtk-doc-manual.xml:1584(seg) +msgid "Is the doc-comment using the correct markup (added #,% or ())? Check if the gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" + +#: C/gtk-doc-manual.xml:1590(seg) +msgid "A new class does not appear in the docs." +msgstr "" + +#: C/gtk-doc-manual.xml:1591(seg) +msgid "Is the new page xi:included from ." +msgstr "" + +#: C/gtk-doc-manual.xml:1597(seg) +msgid "A new symbol does not appear in the docs." +msgstr "" + +#: C/gtk-doc-manual.xml:1598(seg) +msgid "Is the doc-comment properly formatted. Check for spelling mistakes in the begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable xrefs. Check if the symbol is correctly listed in the in a public subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1606(seg) +msgid "A type is missing from the class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1608(filename) +msgid "<package>.hierarchy" +msgstr "<package>.hierarchy" + +#: C/gtk-doc-manual.xml:1609(filename) +msgid "xml/tree_index.sgml" +msgstr "xml/tree_index.sgml" + +#: C/gtk-doc-manual.xml:1607(seg) +msgid "If the type is listed in but not in then double check that the type is correctly placed in the . If the type instance (e.g. ) is not listed or incidentialy makred private it will not be shown." +msgstr "" + +#: C/gtk-doc-manual.xml:1616(seg) +msgid "I get foldoc links for all gobject annotations." +msgstr "" + +#: C/gtk-doc-manual.xml:1618(filename) +msgid "xml/annotation-glossary.xml" +msgstr "xml/annotation-glossary.xml" + +#: C/gtk-doc-manual.xml:1617(seg) +msgid "Check that is xi:included from ." +msgstr "" + +#: C/gtk-doc-manual.xml:1625(seg) +msgid "Parameter described in source code comment block but does not exist" +msgstr "" + +#: C/gtk-doc-manual.xml:1626(seg) +msgid "Check if the prototype in the header has different parameter names as in the source." +msgstr "" + +#: C/gtk-doc-manual.xml:1631(seg) +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "" + +#: C/gtk-doc-manual.xml:1632(seg) +msgid "Symbol XYZ appears twice in file." +msgstr "" + +#: C/gtk-doc-manual.xml:1635(seg) +msgid "Element typename in namespace '' encountered in para, but no template matches." +msgstr "குறி XYZ இல் இரு முறை காண்கிறது." + +#: C/gtk-doc-manual.xml:12(releaseinfo) +msgid "Version 1.1, March 2000" +msgstr "பதிப்பு 1.1, மார்ச் 2000" + +#: C/gtk-doc-manual.xml:16(year) +msgid "2000" +msgstr "2000" + +#: C/gtk-doc-manual.xml:16(holder) +msgid "Free Software Foundation, Inc." +msgstr "Free Software Foundation, Inc." + +#: C/gtk-doc-manual.xml:19(para) +msgid "
    Free Software Foundation, Inc. 51 Franklin Street, Suite 330, Boston, MA02110-1301USA
    Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed." +msgstr "
    Free Software Foundation, Inc. 51 Franklin Street, Suite 330, Boston, MA02110-1301USA
    இந்த லைசென்ஸ் ஆவணத்தை அனவரும் பிரதி எடுத்து வினியோகிக்கலாம் ஆனால் மாற்றக்கூடாது." + +#: C/gtk-doc-manual.xml:28(title) +msgid "GNU Free Documentation License" +msgstr "க்னூ இலவச ஆவண லைசென்ஸ்" + +#: C/gtk-doc-manual.xml:31(title) +msgid "0. PREAMBLE" +msgstr "0. முன்னுரை (PREAMBLE)" + +#: C/gtk-doc-manual.xml:32(para) +msgid "The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others." +msgstr "" + +#: C/gtk-doc-manual.xml:43(para) +msgid "This License is a kind of copyleft, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software." +msgstr "" + +#: C/gtk-doc-manual.xml:50(para) +msgid "We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference." +msgstr "" + +#: C/gtk-doc-manual.xml:62(title) +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "" + +#: C/gtk-doc-manual.xml:63(para) +msgid "This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The Document, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as you." +msgstr "" + +#: C/gtk-doc-manual.xml:72(para) +msgid "A Modified Version of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language." +msgstr "" + +#: C/gtk-doc-manual.xml:79(para) +msgid "A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them." +msgstr "" + +#: C/gtk-doc-manual.xml:94(para) +msgid "The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:103(para) +msgid "The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:111(para) +msgid "A Transparent copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not Transparent is called Opaque." +msgstr "" + +#: C/gtk-doc-manual.xml:128(para) +msgid "Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only." +msgstr "" + +#: C/gtk-doc-manual.xml:141(para) +msgid "The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, Title Page means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text." +msgstr "" + +#: C/gtk-doc-manual.xml:153(title) +msgid "2. VERBATIM COPYING" +msgstr "" + +#: C/gtk-doc-manual.xml:154(para) +msgid "You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3." +msgstr "" + +#: C/gtk-doc-manual.xml:169(para) +msgid "You may also lend copies, under the same conditions stated above, and you may publicly display copies." +msgstr "" + +#: C/gtk-doc-manual.xml:176(title) +msgid "3. COPYING IN QUANTITY" +msgstr "" + +#: C/gtk-doc-manual.xml:177(para) +msgid "If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:195(para) +msgid "If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages." +msgstr "" + +#: C/gtk-doc-manual.xml:202(para) +msgid "If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public." +msgstr "" + +#: C/gtk-doc-manual.xml:222(para) +msgid "It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document." +msgstr "" + +#: C/gtk-doc-manual.xml:231(title) +msgid "4. MODIFICATIONS" +msgstr "4. மாற்றங்கள் (MODIFICATIONS)" + +#: C/gtk-doc-manual.xml:232(para) +msgid "You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:" +msgstr "நீங்கள் ஒரு Document ஆவணத்தின் மாற்றப்பட்ட பதிப்பு(Modified Version) ஐ கீழ் கண்ட தொகுதிகளின் விதிகளூக்கு இணங்க வினியோகிக்கலாம்: 2 and 3 கட்டுப்பாடு எது எனில் யாரிடம் எந்த பதிப்பு இருக்கிறதோ அதே லைசன்ஸ் கீழ் வெளியிட வேண்டும். மாற்றிய பதிப்பு ஆவணத்தின் பங்கை செய்ய வேண்டும். மேலும் பின் வருவனவற்றை மாற்றிய பதிப்பில் செய்ய வேண்டும்.:" + +#: C/gtk-doc-manual.xml:248(title) +msgid "A" +msgstr "A" + +#: C/gtk-doc-manual.xml:249(para) +msgid "Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission." +msgstr "முந்தைய பதிப்புகளின் வரலாற்றை ஆவணத்தின் வரலாற்றில் எழுதுக. இப்பதிப்புகளின் Title Page இலும் (அட்டைகள் இருப்பின் அதிலும்) Document இலும் முற்றிலும் மாறுபட்ட தலைப்பை பயன்படுத்தவும். " + +#: C/gtk-doc-manual.xml:264(title) +msgid "B" +msgstr "B" + +#: C/gtk-doc-manual.xml:265(para) +msgid "List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five)." +msgstr " Title Page, இல் ஆசிரியர்களாக பட்டியலிடப்பட்டதில் ஒருவரோ மேலுமோ யார் மாற்றங்களை செய்தனரோ அவரது பெயர்களையும் Modified Version இல் சேர்க்கவும். Document இன் ஆசிரியர்கள் ஐந்துக்கு குறைவாக இருப்பின் அனைத்து பெயர்களூம் அதிகமாக இருப்பின் குறைந்தது ஐந்து முக்கிய ஆசிரியர்கள் பெயர்களும் சேர்க்கப்பட வேண்டும்." + +#: C/gtk-doc-manual.xml:279(title) +msgid "C" +msgstr "C" + +#: C/gtk-doc-manual.xml:280(para) +msgid "State on the Title Page the name of the publisher of the Modified Version, as the publisher." +msgstr "Title Page இல் வெளியிடுவோர் பெயராக Modified Version ஐ வெளியிடுவோர் பெயரை குறிப்பிடுக." + +#: C/gtk-doc-manual.xml:291(title) +msgid "D" +msgstr "D" + +#: C/gtk-doc-manual.xml:292(para) +msgid "Preserve all the copyright notices of the Document." +msgstr "Document இன் காப்புரிமையை பாதுகாக்கவும்." + +#: C/gtk-doc-manual.xml:301(title) +msgid "E" +msgstr "E" + +#: C/gtk-doc-manual.xml:302(para) +msgid "Add an appropriate copyright notice for your modifications adjacent to the other copyright notices." +msgstr "காப்புரிமை அறிவிப்புக்கு அருகில் உங்கள் மாற்றங்களுக்கான காப்புரிமையை வெளியிடுக." + +#: C/gtk-doc-manual.xml:311(title) +msgid "F" +msgstr "F" + +#: C/gtk-doc-manual.xml:312(para) +msgid "Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below." +msgstr "உங்கள் காப்புரிமை அறிவிப்புக்கு பின்னாலேயே Modified Version ஐ பொது ஜனம் பயன்படுத்த பின் வரும் படிவத்தில் இந்த லைசென்ஸ் மூலம் அனுமதி வழங்குக." + +#: C/gtk-doc-manual.xml:324(title) +msgid "G" +msgstr "G" + +#: C/gtk-doc-manual.xml:325(para) +msgid "Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr " Invariant Sections களின் முழு பட்டியலை லைசென்ஸிலும் Document's மற்றும் லைசென்ஸ் நோட்டீசில் உள்ள தேவையானCover Texts களிலும் வைத்திருங்கள். " + +#: C/gtk-doc-manual.xml:337(title) +msgid "H" +msgstr "H" + +#: C/gtk-doc-manual.xml:338(para) +msgid "Include an unaltered copy of this License." +msgstr "இந்த லைசென்ஸின் மாற்றப்படாத வடிவத்தையும் ஒரு பிரதி வைத்திருங்கள். " + +#: C/gtk-doc-manual.xml:346(title) +msgid "I" +msgstr "I" + +#: C/gtk-doc-manual.xml:347(para) +msgid "Preserve the section entitled History, and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled History in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence." +msgstr "History எனக்குறித்த தொகுதி, அதன் தலைப்பு இவற்றை பாதுகாக்கவும். இதனுடன் Title Page. இல் தரப்பட்ட Modified Version இன் தலைப்பு, வருடம், புதிய ஆசிரியர்கள், வெளியிடுவோர் , ஆகியவற்றை சேர்க்கவும். Document இல் அப்படி History எனக்குறித்த தொகுதி இல்லாவிடில் வருடம், புதிய ஆசிரியர்கள், வெளியிடுவோர் , ஆகியவற்றை தலைப்பு பக்கத்தில் உள்ளபடி உருவாக்கி பின் புதிதாக முன் சொன்னவாறு மாற்றியதை சேர்க்கவும்.." + +#: C/gtk-doc-manual.xml:365(title) +msgid "J" +msgstr "J" + +#: C/gtk-doc-manual.xml:366(para) +msgid "Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the History section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission." +msgstr "" +"ஆவணத்தின் பிரதிக்கு பொதுஜன அணுகலுக்கு தரப்பட்ட Document இல் காணும் Transparent தொடுப்பை பாதுகாக்கவும்." +"அதேபோல முதைய பதிப்புகளில் உள்ள தொடுப்புகளையும் பாதுகாக்கவும். இவற்றை History பகுதியில் வைக்கலாம். ஆவணத்துக்கு நான்கு வருடங்கள் முன் வெளியிட்டவற்றையும் ஆசிரியர் நீக்கலாம் என அனுமதி தந்தவற்றையும் நீக்கலாம்." + +#: C/gtk-doc-manual.xml:383(title) +msgid "K" +msgstr "K" + +#: C/gtk-doc-manual.xml:384(para) +msgid "In any section entitled Acknowledgements or Dedications, preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein." +msgstr "Acknowledgements அல்லது Dedications எனக்குறித்த எந்த தொகுதியிலும் தொகுதியின் தலைப்பையும் அதில் உள்ளவற்றில் ஒவ்வொரு பங்கீடு அளித்தோரின் நன்றி அறிதல் /அர்ப்பணம் ஆகியவற்றின் சாரத்தையும் பாதுகாக்கவும் , " + +#: C/gtk-doc-manual.xml:396(title) +msgid "L" +msgstr "L" + +#: C/gtk-doc-manual.xml:397(para) +msgid "Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles." +msgstr "Document, இன் Invariant Sections of the Document களை உரை தலைப்புகளை மாற்றாமல் பாதுகாக்கவும். தொகுதி எண்களும் அல்லது அதன் சமானமானவையும் இதில் சேராது." + +#: C/gtk-doc-manual.xml:409(title) +msgid "M" +msgstr "M" + +#: C/gtk-doc-manual.xml:410(para) +msgid "Delete any section entitled Endorsements. Such a section may not be included in the Modified Version." +msgstr " Endorsements இல் உள்ளதை நீக்கவும். அப்படிப்பட்ட எந்த தொகுதியும் Modified Version இல் இருத்தலாகாது.." + +#: C/gtk-doc-manual.xml:421(title) +msgid "N" +msgstr "N" + +#: C/gtk-doc-manual.xml:422(para) +msgid "Do not retitle any existing section as Endorsements or to conflict in title with any Invariant Section." +msgstr "இருப்பிலுள்ள எந்த தொகுதியையும் Endorsements என் மறு பெயரிடவோ அல்லது Invariant Section உடன் மோதும் எதையும் செய்யலாகாது " + +#: C/gtk-doc-manual.xml:432(para) +msgid "If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles." +msgstr "" +"Modified Version" +"இல் புதிய விஷயம் இருந்தாலோ அல்லது Secondary Sections என அனுபந்தம் இருந்து அதில் ஆவணத்திலிருந்து பிரதி எடுத்த ஏதும் இல்லாமல் இருந்தாலோ நீங்கள் தேர்ந்தெடுத்து அவற்றை முழுதுமோ பகுடியோ மாறாதவை என குறிப்பிடலாம். இதை செய்ய அவற்றின் தலைப்புகளை மாற்றிய பதிப்பு நோட்டீசில் Invariant Sections பட்டியலில் சேர்க்கவும். இந்த தலைப்புகள் மற்ற தலைப்புகளீன் பெயரிலிருந்து மாறுபட்டு இருத்தல் வேண்டும்." + +#: C/gtk-doc-manual.xml:444(para) +msgid "You may add a section entitled Endorsements, provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard." +msgstr "சகாக்கள் எழுதிய விமர்சனங்கள், மதிப்புரைகள் அல்லது ஒரு நிறுவனம் உங்கள் Modified Version ஐ திறனாய்வு செய்து தகுதி சான்று கொடுத்து இருப்பின் அவை மட்டும் இருக்கும் பட்சத்தில் நீங்கள் Endorsements என தலைப்பிட்ட தொகுதி ஒன்றை சேர்க்கலாம்." + +#: C/gtk-doc-manual.xml:453(para) +msgid "You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one." +msgstr "Front-Cover Text ஆக நீங்கள் ஐந்து சொற்கள் வரை சேர்க்கலாம். Modified Version. இல் பட்டியலின் கடைசியில் Cover Texts Back-Cover Text ஆக 25, சொற்கள் சேர்க்கலாம். முன் அட்டை உரைக்கு ஒரு பாராவும் பின் அட்டைக்கு ஒரு உரையும் மட்டுமே உங்களாலோ அல்லது உங்கள் முன் அனுமதி பெற்றவராலோ சேர்க்கப்படலாம். Document இல் ஏற்கெனெவே அதே அட்டைக்கு உரை, உங்களாலோ அனுமதி பெற்றவராலோ முன்னேயே இடப்பட்டு இருப்பின், நீங்கள் மற்றொன்றை இடலாகாது. already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one." + +#: C/gtk-doc-manual.xml:470(para) +msgid "The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" + +#: C/gtk-doc-manual.xml:480(title) +msgid "5. COMBINING DOCUMENTS" +msgstr "" + +#: C/gtk-doc-manual.xml:481(para) +msgid "You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:492(para) +msgid "The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work." +msgstr "" + +#: C/gtk-doc-manual.xml:505(para) +msgid "In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled History; likewise combine any sections entitled Acknowledgements, and any sections entitled Dedications. You must delete all sections entitled Endorsements." +msgstr "" + +#: C/gtk-doc-manual.xml:516(title) +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "" + +#: C/gtk-doc-manual.xml:517(para) +msgid "You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:527(para) +msgid "You may extract a single document from such a collection, and dispbibute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document." +msgstr "" + +#: C/gtk-doc-manual.xml:537(title) +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "" + +#: C/gtk-doc-manual.xml:538(para) +msgid "A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an aggregate, and this License does not apply to the other self-contained works thus compiled with the Document , on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate." +msgstr "" + +#: C/gtk-doc-manual.xml:561(title) +msgid "8. TRANSLATION" +msgstr "8. மொழிபெயர்ப்பு" + +#: C/gtk-doc-manual.xml:562(para) +msgid "Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail." +msgstr "" + +#: C/gtk-doc-manual.xml:580(title) +msgid "9. TERMINATION" +msgstr "" + +#: C/gtk-doc-manual.xml:581(para) +msgid "You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document 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." +msgstr "" + +#: C/gtk-doc-manual.xml:594(title) +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "" + +#: C/gtk-doc-manual.xml:595(para) +msgid "The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" + +#: C/gtk-doc-manual.xml:606(para) +msgid "Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License or any later version applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" + +#: C/gtk-doc-manual.xml:621(title) +msgid "Addendum" +msgstr "" + +#: C/gtk-doc-manual.xml:622(para) +msgid "To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:" +msgstr "To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:" + +#: C/gtk-doc-manual.xml:629(para) +msgid "Copyright YEAR YOUR NAME." +msgstr "Copyright 2010, I. Felix." + +#: C/gtk-doc-manual.xml:632(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License." +msgstr "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License." + +#: C/gtk-doc-manual.xml:647(para) +msgid "If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts." + +#: C/gtk-doc-manual.xml:657(para) +msgid "If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software." +msgstr "உங்கள் ஆவணத்தில் முக்கியமல்லாத நிரல் குறியீட்டு உதாரணங்கள் இருப்பின் , எங்கள் பரிந்துரை: இவற்றின் இலவச பயனுக்கு இந்த உதாரணங்களை இணையாக மென்பொருள் அனுமதிக்கான உங்கள் தேர்வில் வெளியிடுங்கள்.மாதிரிக்கு: GNU General Public License," + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 +#: C/gtk-doc-manual.xml:0(None) +msgid "translator-credits" +msgstr "Dr.T.Vasudevan agnihot3@gmail.com" + + diff --git a/help/manual/ta/ta.stamp b/help/manual/ta/ta.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/ta/ta.stamp diff --git a/help/manual/te/fdl-appendix.xml b/help/manual/te/fdl-appendix.xml new file mode 100644 index 0000000..8589225 --- /dev/null +++ b/help/manual/te/fdl-appendix.xml @@ -0,0 +1,621 @@ + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    diff --git a/help/manual/te/index.docbook b/help/manual/te/index.docbook new file mode 100644 index 0000000..bdd3f61 --- /dev/null +++ b/help/manual/te/index.docbook @@ -0,0 +1,2752 @@ + + + + +included"> +]> + + + + GTK-Doc మాన్యుయల్ + 1.24.1 + GTK-Doc వినియోగపు సూచనలతో అభివృద్దికారుల కొరకు వినియోగదారి మాన్యుయల్. + + + Chris + Lyttle + +
    + chris@wilddev.net +
    +
    +
    + + Dan + Mueth + +
    + d-mueth@uchicago.edu +
    +
    +
    + + Stefan + Sauer (Kost) + +
    + ensonic@users.sf.net +
    +
    +
    +
    + + GTK-Doc project +
    gtk-doc-list@gnome.org
    +
    + + 2000, 2005 + Dan Mueth and Chris Lyttle + + + 2007-2015 + Stefan Sauer (Kost) + + + + + + ఎటువంటి ఫ్రంట్-కవర్ పాఠ్యములు, మరియు బ్యాక్-కవర్ పాఠ్యములు లేకుండా, ఫ్రీ సాఫ్టువేరు ఫౌండేషన్ ద్వారా ప్రచురితమైన వర్షన్ 1.1 లేదా దాని తర్వాత వర్షన్‌ GNU Free Documentation License నియమాలకు లోబడి ఈ పత్రమును నకలు తీయుటకు, పంపిణీ చేయుటకు మరియు/లేదా సవరించుటకు అనుమతి యివ్వబడింది. లైసెన్సు యొక్క నకలు చేర్చబడింది.న్ ద్వారా ప్రచురితమై, + కంపెనీలు వాటి వుత్పత్తులను మరియు సేవలను వర్గీకరించుటకు వుపయోగించు చాలా వరకు నామములు ట్రేడ్‌మార్కులుగా హక్కు కలిగివుంటాయి. అవి GNOME పత్రికీకరణనందు కనిపించునప్పుడు, మరియు GNOME Documentation Project సభ్యలు ఆ ట్రేడ్‌మార్కులను గుర్తించుటకు, ఆనామములు పెద్ద అక్షరములలో లేదా మొదటి అక్షరం పెద్ద అక్షరంగా ముద్రించబడతాయి. + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + + 1.27 + 07 Dec 2017 + ss + fine tuning of the python port + + + 1.26 + 11 Aug 2017 + ss + port all tools from perl/bash to python + + + 1.25 + 21 March 2016 + ss + bug fixes, test cleanups + + + 1.24 + 29 May 2015 + ss + bug fix + + + 1.23 + 17 May 2015 + ss + bug fix + + + 1.22 + 07 May 2015 + ss + bug fixes, dropping deprecated features + + + 1.21 + 17 Jul 2014 + ss + bug fixes, dropping deprecated features + + + 1.20 + 16 Feb 2014 + ss + bug fixes, markdown support, style improvements + + + 1.19 + 05 Jun 2013 + ss + bug fixes + + + 1.18 + 14 Sep 2011 + ss + bug fixes, speedups, markdown support + + + 1.17 + 26 Feb 2011 + sk + urgent bug fix update + + + 1.16 + 14 Jan 2011 + sk + bugfixes, layout improvements + + + 1.15 + 21 May 2010 + sk + bug and regression fixes + + + 1.14 + 28 March 2010 + sk + bugfixes and performance improvements + + + 1.13 + 18 December 2009 + sk + broken tarball update + + + 1.12 + 18 December 2009 + sk + new tool features and bugfixes + + + 1.11 + 16 November 2008 + mal + GNOME doc-utils migration + + + +
    + + + + + పరిచయం + + ఈ అధ్యాయము GTK-Docను పరిచయం చేస్తుంది మరియు అది యేమిచేస్తుంది దానిని యెలా వుపయోగించాలి అనేదానిపై సంక్షిప్తంగా వివరిస్తుంది. + + + GTK-Doc అంటే యేమిటి? + + GTK-Doc అనునది C కోడ్‌ను పత్రికీకరణ చేయుటకు వుపయోగించబడింది. ఇది ముఖ్యంగా GTK+ మరియు GNOME వంటి లైబ్రరీల పబ్లిక్ API పత్రికీకరణకు వుపయోగించబడింది. అయితే యిది అనువర్తనము కోడ్‌ను పత్రికీకరణ చేయుటకు కూడా వుపయోగించవచ్చును. + + + + GTK-Doc యెలా పనిచేయును? + + GTK-Doc అనునది మూలపు(సోర్స్) ఫైళ్ళ యొక్క ఫంక్షన్స్ నందు ప్రత్యేకించి-రూపొందించిన కామెంట్ బ్లాక్స్ నందలి పత్రికీకరణను వుపయోగించి పనిచేయును, లేదా GTK-Doc వుపయోగించే మాదిరి(టెంప్లేట్) ఫైళ్ళకు జతచేసిన పత్రికీకరణను వుపయోగించును (GTK-Doc హెడర్ ఫైళ్ళ నందు డిక్లేర్ చేసివున్న ఫంక్షన్లకు మాత్రమే పత్రికీకరణ యిచ్చును; అది స్టాటిక్ ఫంక్షన్ల కొరకు అవుట్పుట్ అందించదు). + + + GTK-Doc consists of a number of python scripts, each performing a different step + in the process. + + + అక్కడ కార్యక్రమమునందు 5 ముఖ్య స్టెప్పులు వున్నవి: + + + + + పత్రికీకరణను వ్రాయుట. మూలకర్త(ఆథర్) సోర్స్ ఫైళ్ళనందు ప్రతి ఫంక్షన్‌కు, మాక్రోకు, యూనియన్‌కు పత్రకీకరణను యిస్తాడు. (గతంలో సమాచారమును మాదిరి ఫైళ్ళనందు ప్రవేశపెట్టేవారు, యిది యిప్పడు సమర్ధించబడదు). + + + + + Gathering information about the code. + + gtkdoc-scan scans the header files of the + code looking for declarations of functions, macros, enums, structs, and unions. + It creates the file <module>-decl-list.txt containing a list of the + declarations, placing them into sections according to which header file they + are in. On the first run this file is copied to <module>-sections.txt. + The author can rearrange the sections, and the order of the + declarations within them, to produce the final desired order. + The second file it generates is <module>-decl.txt. + This file contains the full declarations found by the scanner. If for + some reason one would like some symbols to show up in the docs, where + the full declaration cannot be found by the scanner or the declaration + should appear differently, one can place entities similar to the ones in + <module>-decl.txt into <module>-overrides.txt. + + + gtkdoc-scangobj can also be used to dynamically query a library about + any GObject subclasses it exports. It saves information about each + object's position in the class hierarchy and about any GObject properties + and signals it provides. + + + gtkdoc-scanobj should not be used anymore. + It was needed in the past when GObject was still GtkObject inside gtk+. + + + + + + Generating the XML and HTML/PDF. + + gtkdoc-mkdb turns the template files into + XML files in the xml/ subdirectory. + If the source code contains documentation on functions, using the + special comment blocks, it gets merged in here. If there are no tmpl files used + it only reads docs from sources and introspection data. + + + gtkdoc-mkhtml turns the XML files into HTML + files in the html/ subdirectory. + Likewise gtkdoc-mkpdf turns the XML files into a PDF + document called <package>.pdf. + + + Files in xml/ and + html/ directories are always + overwritten. One should never edit them directly. + + + + + పత్రముల మధ్య క్రాస్-రిఫరెన్సెస్‌ను పరిష్కరించుచున్నది. HTML ఫైళ్ళను సంస్థాపించిన తర్వాత, వేరు వేరు పత్రముల మధ్య క్రాస్-రిఫరెన్సెస్‌ను అమర్చుటకు gtkdoc-fixxref నడుపవచ్చును. ఉదాహరణకు, GTK+ పత్రికీకరణ అనునది GLib మాన్యుయల్ నందు వుంచిన పత్రికీకరణకు చాలా క్రాస్-రిఫరెన్సెస్ కలిగివుంది. పంపిణీ కొరకు మూలపు టార్బాల్‌ను సృష్టించునప్పుడు, gtkdoc-rebase అనునది అన్ని బహిర్గత లింకులను వెబ్-లింకులకు మార్చును. పంపిణీచేసిన (ముందుగాజనియింపచేసిన) పత్రములను సంస్థాపించునప్పుడు అదే అనువర్తనము లింకులను స్థానిక లింకులకు (ఆ పత్రములు యెక్కడ సంస్థాపించబడినవో అక్కడికి) తిరిగివుంచుటకు ప్రయత్నించును. + + + + + + + GTK-Doc పొందుట + + + అవసరములు + + python 2/3 - the main scripts are written in python. + + + xsltproc - the xslt processor from libxslt + xmlsoft.org/XSLT/ + + + docbook-xsl - the docbook xsl stylesheets + sourceforge.net/projects/docbook/files/docbook-xsl + + + One of source-highlight, highlight or + vim - optional - used for syntax highlighting of examples + + + + + + GTK-Doc గురించి + + (FIXME) + + + (History, authors, web pages, mailing list, license, future plans, + comparison with other similar systems.) + + + + + + ఈ మాన్యుయల్ గురించి + + (FIXME) + + (ఇది యెవరి కొరకు, మీరు దీనిని యెచటనుండి పొందగలరు, లైసెన్స్) + + + + + + + మీ ప్రోజెక్టును అమర్చుట + + + The next sections describe what steps to perform to integrate GTK-Doc into + your project. Theses sections assume we work on a project called 'meep'. + This project contains a library called 'libmeep' and + an end-user app called 'meeper'. We also assume you will be using autoconf + and automake. In addition section plain + makefiles or other build systems will describe the basics needed to + work in a different build setup. + + + + స్కెల్టెన్ పత్రికీకరణను అమర్చుచున్నది + + మీ పై-స్థాయి ప్రోజెక్టు డైరెక్టరీ క్రింద docs/reference అను ఫోల్డర్లను సృష్టించుము (ఈ విధంగా మీరు docs/helpను అంత్య-వినియోగదారి పత్రికీకరణ కొరకు కలిగివుండవచ్చును). doc-package నామముతో వేరొక వుపసంచయంను సృష్టించుకొనుట సిఫార్సు చేయబడింది. కేవలం వొక లైబ్రరీ మాత్రమే వున్న ప్యాకేజీలకు యిది అవసరములేదు. + + + This can then look as shown below: + Example directory structure + + + + + + + autoconf తో విలీనం + + చాలా సులువు! మీ configure.ac స్క్రిప్టునకు వొక లైను మాత్రమే జతచేయుము. + + + autoconf తో విలీనం + + + + + + This will require all developers to have gtk-doc installed. If it is + okay for your project to have optional api-doc build setup, you can + solve this as below. Keep it as is, as gtkdocize is looking for + GTK_DOC_CHECK at the start of a line. + Keep gtk-doc optional + + + + + ఆకృతీకరణ సమయము వద్ద gtkdocversion కొరకు పరిశీలించుటకు మొదటి ఆర్గుమెంటు వుపయోగించబడింది. 2వది, gtkdocize చేత వుపయోగించబడిన ఐచ్చిక ఆర్గుమెంట్. GTK_DOC_CHECK మాక్రో చాలా ఆకృతీకరణ స్విచ్‌లను జతచేస్తుంది: + + --with-html-dir=PATH : సంస్థాపించిన పత్రములకు పాత్ + --enable-gtk-doc : పత్రికీకరణను నిర్మించుటకు gtk-doc వుపయోగించుము [default=no] + --enable-gtk-doc-html : పత్రికీకరణను html ఫార్మాట్‌నందు నిర్మించుము [default=yes] + --enable-gtk-doc-pdf : పత్రికీకరణను pdf ఫార్మాట్ నందు నిర్మించుము [default=no] + + + + GTK-Doc అప్రమేయంగా అచేతనము చేయబడింది! ఐచ్చికము ను తరువాతి configureకు నడుపుట మర్చిపోవద్దు. లేకపోతే ముందుగా జనియింపచేసిన పత్రికీకరణ సంస్థాపించబడుతుంది (ఇది వినియోగదారులకు వుపయోగకరం అయితే అభివృద్దికారులకు కాదు). + + + + Furthermore it is recommended that you have the following line inside + your configure.ac script. + This allows gtkdocize to automatically copy the + macro definition for GTK_DOC_CHECK to your project. + + + + gtkdocize కొరకు సన్నాహం + + + + + After all changes to configure.ac are made, update + the configure file. This can be done by re-running + autoreconf -i or autogen.sh. + + + + + automake తో విలీనం + + + First copy the Makefile.am from the + examples sub directory of the + gtkdoc-sources + to your project's API documentation directory ( + ./docs/reference/<package>). + A local copy should be available under e.g. + /usr/share/doc/gtk-doc-tools/examples/Makefile.am. + If you have multiple doc-packages repeat this for each one. + + + + The next step is to edit the settings inside the Makefile.am. + All the settings have a comment above that describes their purpose. + Most settings are extra flags passed to the respective tools. Every tool + has a variable of the form . + All the tools support to list the supported + parameters. + + + + + + + + autogen తో విలీనం + + వర్షన్ కంట్రోల్ సిస్టమ్ (cvs/svn/git వంటి) నుండి చెక్అవుట్ తర్వాత బుల్డ్ నిర్మాణం అమర్చుటకు చాలా ప్రోజెక్టులు autogen.sh స్క్రిప్టును కలిగివుంటాయి. GTK-Doc అనునది gtkdocize అనబడు సాధనంతో వస్తుంది దీనిని అటువంటి స్క్రిప్టు నందు వుపయోగించవచ్చును. ఇది autoheader, automake లేదా autoconf ముందు నడుపవలెను. + + + autogen.sh నుండి gtkdocize నడుపుతోంది + + + + + + When running gtkdocize it copies + gtk-doc.make to your project root (or any directory + specified by the option). + It also checks you configure script for the GTK_DOC_CHECK + invocation. This macro can be used to pass extra parameters to + gtkdocize. + + + + Historically GTK-Doc was generating template files where developers entered the docs. + This turned out to be not so good (e.g. the need for having generated + files under version control). + Since GTK-Doc 1.9 the tools can get all the information from source comments + and thus the templates can be avoided. We encourage people to keep + documentation in the code. gtkdocize supports now + a option that chooses a makefile that skips + tmpl usage totally. Besides adding the option directly to the command + invocation, they can be added also to an environment variable called GTKDOCIZE_FLAGS + or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. + If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, + please remove the directory (e.g. from version control system). + + + + + doc బుల్డును నడుపుట + + గతంలో జరిపిన స్టెప్పుల తర్వాత యిప్పుడు బుల్డును నడుపవలెను. ముందుగా మనము autogen.shను తిరిగి నడుపవలెను. ఈ స్క్రిప్టు మీ కొరకు ఆకృతీకరణను నడిపితే, దానికి ఐచ్చికాన్ని యివ్వుము. లేదా తరువాత ఈ ఐచ్చికముతో మానవీయంగా configureను నడుపుము. + + The first make run generates several additional files in the doc-directories. + The important ones are: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + doc బుల్డును నడుపుట + + + + ఇప్పుడు మీ బ్రౌజర్‌కు మీరు docs/reference/<package>/index.htmlను సూచించవచ్చును. అవును, యిప్పటికి యిది కొంత నిరుత్సాహపరుస్తోంది. అయితే ఆగండి, తరువాతి అధ్యాయమునందు పేజీలను యెలా నింపాలో చెబుతాము. + + + + వర్షన్ కంట్రోల్ సిస్టమ్‌తో విలీనం + + + As a rule of thumb, it's the files you edit which should go under + version control. For typical projects it's these files: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt, + Makefile.am. + + + Files in the xml/ and html/ + directories should not go under version control. Neither should any of + the .stamp files. + + + + + Integration with plain makefiles or other build systems + + + In the case one does not want to use automake and therefore + gtk-doc.mak one will need to call the gtkdoc tools + in the right order in own makefiles (or other build tools). + + + + Documentation build steps + +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir= +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html +]]> + + + + + One will need to look at the Makefile.am and + gtk-doc.mak to pick the extra options needed. + + + + + Integration with CMake build systems + + + GTK-Doc now provides a GtkDocConfig.cmake module + (and the corresponding GtkDocConfigVersion.cmake + module). This provides a gtk_doc_add_module + command that you can set in your CMakeLists.txt + file. + + + + The following example shows how to use this command. + Example of using GTK-Doc from CMake + + + + + + + + కోడ్‌ను పత్రికీకరణ చేయుట + + + GTK-Doc uses source code comment with a special syntax for code documentation. + Further it retrieves information about your project structure from other + sources. During the next section you will find all information about the + syntax of the comments. + + + + పత్రికీకరణ స్థానము + గతంలో చాలా వరకు పత్రికీకరణ అనునది tmpl డైరెక్టరీ క్రిందని ఫైళ్ళలో నింపవలసివుండేది. సమాచారము సరిగా నవీకరించబడక పోవుట మరియు ఆ ఫైలు వర్షన్ కంట్రోల్ సిస్టమ్సుతో విభేదించుట వంటి లోపాలను యిది కలిగివుంది. + ముందుగా తెలిపిన సమస్యలను తప్పించుటకు మేము పత్రికీకరణను మూలముల లోపలే వుంచమని సూచించుచున్నాము. ఈ మాన్యుయల్ ఈ విధంగా కోడ్ పత్రికీకరణను మాత్రమే వివరించును. + + + + The scanner can handle the majority of C headers fine. In the case of + receiving warnings from the scanner that look like a special case, one can + hint GTK-Doc to skip over them. + GTK-Doc comment block + + + + + + Limitations + + Note, that GTK-Doc's supports + #ifndef(__GTK_DOC_IGNORE__) but not + #if !defined(__GTK_DOC_IGNORE__) or other combinations. + + + + + + + పత్రికీకరణ వ్యాఖ్యలు + + + A multiline comment that starts with an additional '*' marks a + documentation block that will be processed by the GTK-Doc tools. + GTK-Doc comment block + + + + + 'identifier' అనునది వ్యాఖ్యకు సంభందించిన అంశము యొక్క నామముతో వుండు వొక వరుస. అంశము పై ఆధారపడి సిన్టాక్సు అనునది కొద్దిగా విభేదించును. (చేయవలసినది identifies చూపు పట్టికను జతచేయి) + + + The 'documentation' block is also different for each symbol type. Symbol + types that get parameters such as functions or macros have the parameter + description first followed by a blank line (just a '*'). + Afterwards follows the detailed description. All lines (outside program + listings and CDATA sections) just containing a ' *' (blank-asterisk) are + converted to paragraph breaks. + If you don't want a paragraph break, change that into ' * ' + (blank-asterisk-blank-blank). This is useful in preformatted text (code + listings). + + + + + When documenting code, describe two aspects: + + + + What it is: The name for a class or function can sometimes + be misleading for people coming from a different background. + + + + + What it does: Tell about common uses. Put it in relation + with the other API. + + + + + + + + One advantage of hyper-text over plain-text is the ability to have links + in the document. Writing the correct markup for a link can be tedious + though. GTK-Doc comes to help by providing several useful abbreviations. + + + + Use function() to refer to functions or macros which take arguments. + + + + + Use @param to refer to parameters. Also use this when referring to + parameters of other functions, related to the one being described. + + + + + Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS. + + + + + Use #symbol to refer to other types of symbol, e.g. structs and + enums and macros which don't take arguments. + + + + + Use #Object::signal to refer to a GObject signal. + + + + + Use #Object:property to refer to a GObject property. + + + + + Use #Struct.field to refer to a field inside a structure and + #GObjectClass.foo_bar() to refer to a vmethod. + + + + + + + మీరు ప్రత్యేక ఆక్షరములు '<', '>', '()', '@', '%', or '#'ను మీ పత్రికీకరణనందు GTK-Doc వాటిని మార్చకుండా వుపయోగించాలి అంటే మీరు XML మూలకములు "&lt;", "&gt;", "&lpar;", "&rpar;", "&commat;", "&percnt;" మరియు "&num;" వుపయోగించవచ్చు లేదా వాటిని '\' బాక్‌స్లాష్‌తో ఎస్కేప్ చేయుము. + + + + DocBook can do more than just links. One can also have lists, + examples, headings, and images. As of version 1.20, the + preferred way is to use a subset of the basic text formatting + syntax called + Markdown. + On older GTK-Doc versions any documentation that includes + Markdown will be rendered as is. For example, list items will + appear as lines starting with a dash. + + + + While markdown is now preferred one can mix both. One limitation here is + that one can use docbook xml within markdown, but markdown within + docbook xml is not supported. + + + + In older GTK-Doc releases, if you need support for additional + formatting, you would need to enable the usage of docbook + XML tags inside doc-comments by putting + (or ) in the variable + MKDB_OPTIONS inside Makefile.am. + + + + GTK-Doc comment block using Markdown + + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ +]]> + + + + + More examples of what markdown tags are supported can be found in the + GTK+ Documentation Markdown Syntax Reference. + + + + ముందుగా చెప్పినట్లుగా GTK-Doc అనునది పబ్లిక్ API పత్రికీకరణ కొరకు. స్థిర చిహ్నములకు వొక్కరే పత్రికీకరణ వ్రాయలేరు. ఆ చిహ్నములను కూడా వ్యాఖ్యానించుట మంచిది. ఇది యితరులు కూడా మీ కోడ్‌ను అర్ధము చేసుకొనుటకు సహాయపడును. అందుకని వీటిని సాదారణ వ్యాఖ్యలు (మొదటి వరుసనందు 2వ '*' లేకుండా) వుపయోగించి వ్యాఖ్యానించమని సూచించడమైంది. తరువాత ఆ ఫంక్షన్ పబ్లిక్‌గా మార్చవలసివుంటే, చేయవలసినదల్లా వేరొక '*'ను వ్యాఖ్య బ్లాక్ నందు చేర్చి మరియు చిహ్నపు నామాన్నివిభగాముల ఫైలునందు సరైన స్థానములో వుంచడమే. + + + + + పత్రికీకరణ విభాగములు + + పత్రికీకరణ యొక్క ప్రతి విభాగము వొక క్లాస్ లేదా మాడ్యూల్ గురించిన సమాచారమును కలిగివుంటుంది. మూలకాన్ని పరిచయం చేయుటకు వొకరు విభాగపు బ్లాక్‌ను వ్రాయవచ్చును. పొట్టి వివరణ అనునది పట్టిక యొక్క సారముల లోపలకూడా వుపయోగించబడును. అన్ని @fields ఐచ్చికమైనవి. + + + విభాగపు వ్యాఖ్య బ్లాక్ + + + + + + + SECTION:<name> + + + The name links the section documentation to the respective part in + the <package>-sections.txt file. The + name given here should match the <FILE> tag in the + <package>-sections.txt file. + + + + + @short_description + + విభాగము యొక్క వివరణ వొక్క వరుసలో, తరువాత అది TOC నందు లింక్సు తరువాత మరియు విభాగపు పేజీ పైన కనిపించును. + + + + @title + + విభాగపు శీర్షిక అనునది SECTION డిక్లరేషన్ నుండి <name> అప్రమేయం కాబడును. ఇది @title క్షేత్రము ద్వారా దిద్దివ్రాయబడును. + + + + @section_id + + + Overrides the use of title as a section identifier. For GObjects + the <title> is used as a section_id and for other sections + it is <MODULE>-<title>. + + + + + @see_also + + + A list of symbols that are related to this section. + + + + + @stability + + + An informal description of the stability level this API has. + We recommend the use of one of these terms: + + + + Stable + - The intention of a Stable interface is to enable arbitrary + third parties to develop applications to these interfaces, + release them, and have confidence that they will run on all + minor releases of the product (after the one in which the + interface was introduced, and within the same major release). + Even at a major release, incompatible changes are expected + to be rare, and to have strong justifications. + + + + + Unstable + - Unstable interfaces are experimental or transitional. + They are typically used to give outside developers early + access to new or rapidly changing technology, or to provide + an interim solution to a problem where a more general + solution is anticipated. + No claims are made about either source or binary + compatibility from one minor release to the next. + + + + + Private + - An interface that can be used within the GNOME stack + itself, but that is not documented for end-users. Such + functions should only be used in specified and documented + ways. + + + + + Internal + - An interface that is internal to a module and does not + require end-user documentation. Functions that are + undocumented are assumed to be Internal. + + + + + + + + @include + + విభాగపు సారాంశము నందు చూపుటకు #include ఫైళ్ళు (కామాతో వేరుచేయబడిన జాబితా), విభాగపు ఫైలు లేదా ఆదేశ వరుసనుండి గ్లోబల్ విలువను దిద్దివ్రాయుట. ఈ అంశము ఐచ్చికము. + + + + @image + + ఈ విభాగము కొరకు సూచనపేజీ పైన ప్రదర్శించుటకు ప్రతిబింబము. ఇది తరుచుగా వొక క్లాస్ యొక్క విజువల్ అప్పియరెన్స్ వివరించుటకు డయాగ్రమ్ వంటిది లేదా యితర క్లాసులతో దాని సంభందాన్ని తెలిపే డయాగ్రమ్. ఈ అంశము ఐచ్చికము. + + + + + + అనవసరపు రికంపైలేషన్‌ను విసర్జించుటకు doc-changes తర్వాత విభాగపు పత్రములను c-source నందు వీలైనచోట వుంచుము. + + + + + + చిహ్నముల పత్రికీకరణ + + + Each symbol (function, macro, struct, enum, signal and property) is + documented in a separate block. The block is best placed close to the + definition of the symbols so that it is easy to keep them in sync. + Thus functions are usually documented in the c-source and macros, + structs and enums in the header file. + + + సాధారణ టాగ్లు + + + You can add versioning information to all documentation elements to tell + when an API was introduced, or when it was deprecated. + + + వర్షనింగ్ టాగ్స్ + అప్పటినుంచి: + + కోడ్ యొక్క యే వర్షన్ నుండి API అందుబాటులోవుందో వివరణ. + + + తీసివేసిన: + + ఈ ఫంక్షన్ యికపై వుపయోగించుటలేదని పారాగ్రాఫ్ చెబుచున్నది. వివరణ చదువరిని కొత్త APIకు సూచించాలి. + + + + + + You can also add stability information to all documentation elements + to indicate whether API stability is guaranteed for them for all + future minor releases of the project. + + + + The default stability level for all documentation elements can be set + by passing the argument to + gtkdoc-mkdb with one of the values below. + + + Stability Tags + Stability: Stable + + + Mark the element as stable. This is for public APIs which are + guaranteed to remain stable for all future minor releases of the + project. + + + + Stability: Unstable + + + Mark the element as unstable. This is for public APIs which are + released as a preview before being stabilised. + + + + Stability: Private + + + Mark the element as private. This is for interfaces which can be + used by tightly coupled modules, but not by arbitrary third + parties. + + + + + + సాధారణ టాగ్లు + + + + + Annotations + + + Documentation blocks can contain annotation-tags. These tags will be + rendered with tooltips describing their meaning. The tags are used by + gobject-introspection to generate language bindings. A detailed list + of the supported tags can be found on + the wiki. + + + Annotations + + + + + ఫంక్షన్ వ్యాఖ్యానపు బ్లాక్ + + + Please remember to: + + + + Document whether returned objects, lists, strings, etc, should be + freed/unrefed/released. + + + + + Document whether parameters can be NULL, and what happens if they are. + + + + + Mention interesting pre-conditions and post-conditions where appropriate. + + + + + + Gtk-doc అన్ని చిహ్నములు (macros, functions) '_'తో ప్రారంభమగునవి వ్యక్తిగతమైనవని పరిగణించును. అవి స్టాటిక్ ఫంక్షన్సు వలె పరిగణించబడును. + + ఫంక్షన్ వ్యాఖ్యానపు బ్లాక్ + + + + ఫంక్షన్ టాగ్లు + తిరిగివచ్చినవి: + + పారాగ్రాఫ్ తిరిగివచ్చిన ఫలితాన్ని వివరిస్తుంది. + + + @...: + + ఒకవేళ ఫంక్షన్ వేరియాడిక్ ఆర్గుమెంట్లను కలిగివుంటే, మీరు ఈ టాగ్‌ను వుపయోగించాలి (@Varargs: చారిత్రక కారణాలకు కూడా పనిచేయును). + + + + + + + లక్షణము వ్యాఖ్యాము బ్లాక్ + + లక్షణము వ్యాఖ్యాము బ్లాక్ + + + + + + సంకేతపు వ్యాఖ్యానము బ్లాక్ + + + Please remember to: + + + + Document when the signal is emitted and whether it is emitted before + or after other signals. + + + + + Document what an application might do in the signal handler. + + + + + + సంకేతపు వ్యాఖ్యానము బ్లాక్ + + + + + + Struct వ్యాఖ్యానము బ్లాక్ + Struct వ్యాఖ్యానము బ్లాక్ + + + + + Use /*< private >*/ before the private struct fields + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + If the first field is "g_iface", "parent_instance" or "parent_class" + it will be considered private automatically and doesn't need to be + mentioned in the comment block. + + + + Struct comment blocks can also be used for GObjects and GObjectClasses. + It is usually a good idea to add a comment block for a class, if it has + vmethods (as this is how they can be documented). For the GObject + itself one can use the related section docs, having a separate block + for the instance struct would be useful if the instance has public + fields. One disadvantage here is that this creates two index entries + of the same name (the structure and the section). + + + + + Enum వ్యాఖ్యానము బ్లాక్ + Enum వ్యాఖ్యానము బ్లాక్ + */ + SOMETHING_COUNT +} Something; +]]> + + + + Use /*< private >*/ before the private enum values + you want to hide. Use /*< public >*/ for the reverse + behaviour. + + + + + + + + Inline program documentation + + You can document programs and their commandline interface using inline + documentation. + + + + Tags + + PROGRAM + + + + Defines the start of a program documentation. + + + + + + @short_description: + + + Defines a short description of the program. (Optional) + + + + + + @synopsis: + + + Defines the arguments, or list of arguments that the program can take. + (Optional) + + + + + + @see_also: + + + See Also manual page section. (Optional) + + + + + + @arg: + + + Argument(s) passed to the program and their description. (Optional) + + + + + + Description: + + + A longer description of the program. + + + + + + తిరిగివచ్చినవి: + + + Specificy what value(s) the program returns. (Optional) + + + + + + + + Example of program documentation. + Program documentation block + + + + + + + + ఉపయోగకర DocBook టాగ్స్ + + కోడ్‌ను పత్రికీకరణ చేయునప్పుడు యెక్కువ వుపయోగకరంగా వుండే మరికొన్ని DocBook టాగ్స్ యిక్కడ వున్నాయి. + + + To link to another section in the GTK docs: + + + Hash Tables +]]> + + The linkend is the SGML/XML id on the top item of the page you want to link to. + For most pages this is currently the part ("gtk", "gdk", "glib") and then + the page title ("Hash Tables"). For widgets it is just the class name. + Spaces and underscores are converted to '-' to conform to SGML/XML. + + + + To refer to an external function, e.g. a standard C function: + + ...
    +]]> + + + + + To include example code: + + + Using a GHashTable. + + ... + + +]]> + + or possibly this, for very short code fragments which don't need a title: + + + + ... + + +]]> + + For the latter GTK-Doc also supports an abbreviation: + + + + + To include bulleted lists: + + + + + ... + + + + + ... + + + +]]> + + + + + To include a note which stands out from the text: + + + + Make sure you free the data after use. + + +]]> + + + + + To refer to a type: + + unsigned char +]]> + + + + + To refer to an external structure (not one described in the GTK docs): + + XFontStruct +]]> + + + + + To refer to a field of a structure: + + len +]]> + + + + + To refer to a class name, we could possibly use: + + GtkWidget +]]> + + but you'll probably be using #GtkWidget instead (to automatically create + a link to the GtkWidget page - see the abbreviations). + + + + To emphasize text: + + This is important +]]> + + + + + For filenames use: + + /home/user/documents
    +]]> + + + + + To refer to keys use: + + ControlL +]]> + + + + + + + + Filling the extra files + + + There are a couple of extra files, that need to be maintained along with + the inline source code comments: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + + Editing the types file + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + Example types file snippet + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + + Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. + Just add "--rebuild-types" to SCAN_OPTIONS in Makefile.am. If you + use this approach you should not dist the types file nor have it under version control. + + + + + + Editing the master document + + + GTK-Doc produces documentation in DocBook SGML/XML. When processing the + inline source comments, the GTK-Doc tools generate one documentation + page per class or module as a separate file. The master document + includes them and place them in an order. + + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + + Do not create tutorials as extra documents. Just write extra chapters. + The benefit of directly embedding the tutorial for your library into + the API documentation is that it is easy to link for the tutorial to + symbol documentation. Apart chances are higher that the tutorial gets + updates along with the library. + + + + + So what are the things to change inside the master document? For a start + is only a little. There are some placeholders (text in square brackets) + there which you should take care of. + + + + Master document header + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + Editing the section file + + + The section file is used to organise the documentation output by + GTK-Doc. Here one specifies which symbol belongs to which module or + class and control the visibility (public or private). + + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + + The <TITLE> ... </TITLE> tag is used to specify the title of + the section. It is only useful before the templates (if used) are + initially created, since the title set in the template file overrides + this. Also if one uses SECTION comment in the sources, this is obsolete. + + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + + You can also use <INCLUDE> ... </INCLUDE> to specify the + #include files which are shown in the synopsis sections. + It contains a comma-separate list of #include files, without the angle + brackets. If you set it outside of any sections, it acts for all + sections until the end of the file. If you set it within a section, it + only applies to that section. + + +
    + +
    + + + Controlling the result + + + A GTK-Doc run generates report files inside the documentation directory. + The generated files are named: + <package>-undocumented.txt, + <package>-undeclared.txt and + <package>-unused.txt. + All those are plain text files that can be viewed and postprocessed easily. + + + + The <package>-undocumented.txt file starts with + the documentation coverage summary. Below are two sections divided by + blank lines. The first section lists undocumented or incomplete symbols. + The second section does the same for section docs. Incomplete entries are + those, which have documentation, but where e.g. a new parameter has been + added. + + + + The <package>-undeclared.txt file lists symbols + given in the <package>-sections.txt but not + found in the sources. Check if they have been removed or if they are + misspelled. + + + + The <package>-unused.txt file lists symbol + names, where the GTK-Doc scanner has found documentation, but does not + know where to put it. This means that the symbol has not yet been added to + the <package>-sections.txt file. + + + + + Enable or add the line in Makefile.am. + If at least GTK-Doc 1.9 is installed, this will run sanity checks during + make check run. + + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + Documenting other interfaces + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + Command line options and man pages + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + Document the tool + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + Adding the extra configure check + + + Extra configure checks + + + + + + + Adding the extra makefile rules + + + Extra configure checks + + + + + + + + DBus interfaces + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + Frequently asked questions + + + + Question + Answer + + No class hierarchy. + + The objects xxx_get_type() function has not been + entered into the <package>.types file. + + + + Still no class hierarchy. + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + Damn, I have still no class hierarchy. + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + No symbol index. + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + Symbols are not linked to their doc-section. + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + A new class does not appear in the docs. + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + A new symbol does not appear in the docs. + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + A type is missing from the class hierarchy. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + I get foldoc links for all gobject annotations. + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + Parameter described in source code comment block but does not exist + Check if the prototype in the header has different parameter names as in the source. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + Element typename in namespace '' encountered in para, but no template matches. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + + Version 1.1, March 2000 + + + 2000Free Software Foundation, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU Free Documentation License + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    + + + + + + + + + diff --git a/help/manual/te/te.po b/help/manual/te/te.po new file mode 100644 index 0000000..2a22073 --- /dev/null +++ b/help/manual/te/te.po @@ -0,0 +1,1502 @@ +# translation of gtk-doc-help.master.po to Telugu +# Krishna Babu K , 2010. +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc-help.master\n" +"POT-Creation-Date: 2010-01-25 11:38+0000\n" +"PO-Revision-Date: 2010-02-03 18:39+0530\n" +"Last-Translator: Krishna Babu K \n" +"Language-Team: Telugu \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n\n" +"\n" + +#: C/gtk-doc-manual.xml:12(title) +msgid "GTK-Doc Manual" +msgstr "GTK-Doc మాన్యుయల్" + +#: C/gtk-doc-manual.xml:13(edition) C/gtk-doc-manual.xml:92(revnumber) +msgid "1.12" +msgstr "1.12" + +#: C/gtk-doc-manual.xml:14(para) +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "GTK-Doc వినియోగపు సూచనలతో అభివృద్దికారుల కొరకు వినియోగదారి మాన్యుయల్." + +#: C/gtk-doc-manual.xml:17(firstname) +msgid "Chris" +msgstr "క్రిస్" + +#: C/gtk-doc-manual.xml:18(surname) +msgid "Lyttle" +msgstr "లిట్టిల్" + +#: C/gtk-doc-manual.xml:21(email) +msgid "chris@wilddev.net" +msgstr "chris@wilddev.net" + +#: C/gtk-doc-manual.xml:26(firstname) +msgid "Dan" +msgstr "డాన్" + +#: C/gtk-doc-manual.xml:27(surname) +msgid "Mueth" +msgstr "ముయెత్" + +#: C/gtk-doc-manual.xml:30(email) +msgid "d-mueth@uchicago.edu" +msgstr "d-mueth@uchicago.edu" + +#: C/gtk-doc-manual.xml:35(firstname) +msgid "Stefan" +msgstr "స్టిఫెన్" + +#: C/gtk-doc-manual.xml:36(surname) +msgid "Kost" +msgstr "కోస్ట్" + +#: C/gtk-doc-manual.xml:39(email) +msgid "ensonic@users.sf.net" +msgstr "ensonic@users.sf.net" + +#: C/gtk-doc-manual.xml:45(publishername) +msgid "GTK-Doc project" +msgstr "GTK-Doc ప్రోజెక్ట్" + +#: C/gtk-doc-manual.xml:46(email) +msgid "gtk-doc-list@gnome.org" +msgstr "gtk-doc-list@gnome.org" + +#: C/gtk-doc-manual.xml:49(year) +msgid "2000, 2005, 2007-2009" +msgstr "2000, 2005, 2007-2009" + +#: C/gtk-doc-manual.xml:50(holder) +msgid "Dan Mueth and Chris Lyttle and Stefan Kost" +msgstr "డాన్ ముయెత్ మరియు క్రిస్ లిట్టిల్ మరియు స్టిఫెన్ కోస్ట్" + +#: C/gtk-doc-manual.xml:61(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included." +msgstr "" +"ఎటువంటి ఫ్రంట్-కవర్ పాఠ్యములు, మరియు బ్యాక్-కవర్ పాఠ్యములు లేకుండా, ఫ్రీ సాఫ్టువేరు ఫౌండేషన్ ద్వారా " +"ప్రచురితమైన వర్షన్ 1.1 లేదా దాని తర్వాత వర్షన్‌ GNU Free Documentation License " +"నియమాలకు లోబడి ఈ పత్రమును నకలు తీయుటకు, పంపిణీ చేయుటకు మరియు/లేదా సవరించుటకు అనుమతి యివ్వబడింది. " +"లైసెన్సు యొక్క నకలు చేర్చబడింది.న్ ద్వారా ప్రచురితమై," + +#: C/gtk-doc-manual.xml:69(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps." +msgstr "" +"కంపెనీలు వాటి వుత్పత్తులను మరియు సేవలను వర్గీకరించుటకు వుపయోగించు చాలా వరకు నామములు ట్రేడ్‌మార్కులుగా " +"హక్కు కలిగివుంటాయి. అవి GNOME పత్రికీకరణనందు కనిపించునప్పుడు, మరియు GNOME Documentation " +"Project సభ్యలు ఆ ట్రేడ్‌మార్కులను గుర్తించుటకు, ఆనామములు పెద్ద అక్షరములలో లేదా మొదటి అక్షరం పెద్ద అక్షరంగా " +"ముద్రించబడతాయి." + +#: C/gtk-doc-manual.xml:80(revnumber) +msgid "1.14" +msgstr "1.14" + +#: C/gtk-doc-manual.xml:81(date) +msgid "19 December 2009" +msgstr "19 డిసెంబర్ 2009" + +#: C/gtk-doc-manual.xml:82(authorinitials) C/gtk-doc-manual.xml:88(authorinitials) C/gtk-doc-manual.xml:94(authorinitials) +msgid "sk" +msgstr "sk" + +#: C/gtk-doc-manual.xml:83(revremark) +msgid "development version" +msgstr "అభివృద్ది వర్షన్" + +#: C/gtk-doc-manual.xml:86(revnumber) +msgid "1.13" +msgstr "1.13" + +#: C/gtk-doc-manual.xml:87(date) C/gtk-doc-manual.xml:93(date) +msgid "18 December 2009" +msgstr "18 డిసెంబర్ 2009" + +#: C/gtk-doc-manual.xml:89(revremark) +msgid "broken tarball update" +msgstr "బ్రోకెన్ టార్బాల్ నవీకరణ" + +#: C/gtk-doc-manual.xml:95(revremark) +msgid "new tool features and bugfixes" +msgstr "కొత్త సాధనము సౌలభ్యాలు మరియు బగ్‌పరిష్కారములు" + +#: C/gtk-doc-manual.xml:98(revnumber) +msgid "1.11" +msgstr "1.11" + +#: C/gtk-doc-manual.xml:99(date) +msgid "16 Novemebr 2008" +msgstr "16 నవంబర్ 2008" + +#: C/gtk-doc-manual.xml:100(authorinitials) +msgid "mal" +msgstr "mal" + +#: C/gtk-doc-manual.xml:101(revremark) +msgid "GNOME doc-utils migration" +msgstr "GNOME doc-utils మైగ్రేషన్" + +#: C/gtk-doc-manual.xml:110(title) +msgid "Introduction" +msgstr "పరిచయం" + +#: C/gtk-doc-manual.xml:112(para) +msgid "This chapter introduces GTK-Doc and gives an overview of what it is and how it is used." +msgstr "" +"ఈ అధ్యాయము GTK-Docను పరిచయం చేస్తుంది మరియు అది యేమిచేస్తుంది దానిని యెలా వుపయోగించాలి అనేదానిపై " +"సంక్షిప్తంగా వివరిస్తుంది." + +#: C/gtk-doc-manual.xml:118(title) +msgid "What is GTK-Doc?" +msgstr "GTK-Doc అంటే యేమిటి?" + +#: C/gtk-doc-manual.xml:120(para) +msgid "GTK-Doc is used to document C code. It is typically used to document the public API of libraries, such as the GTK+ and GNOME libraries. But it can also be used to document application code." +msgstr "" +"GTK-Doc అనునది C కోడ్‌ను పత్రికీకరణ చేయుటకు వుపయోగించబడింది. ఇది ముఖ్యంగా GTK+ మరియు " +"GNOME వంటి లైబ్రరీల పబ్లిక్ API పత్రికీకరణకు వుపయోగించబడింది. అయితే యిది అనువర్తనము కోడ్‌ను " +"పత్రికీకరణ చేయుటకు కూడా వుపయోగించవచ్చును." + +#: C/gtk-doc-manual.xml:128(title) +msgid "How Does GTK-Doc Work?" +msgstr "GTK-Doc యెలా పనిచేయును?" + +#: C/gtk-doc-manual.xml:130(para) +msgid "GTK-Doc works by using documentation of functions placed inside the source files in specially-formatted comment blocks, or documentation added to the template files which GTK-Doc uses (though note that GTK-Doc will only document functions that are declared in header files; it won't produce output for static functions)." +msgstr "" +"GTK-Doc అనునది మూలపు(సోర్స్) ఫైళ్ళ యొక్క ఫంక్షన్స్ నందు ప్రత్యేకించి-రూపొందించిన కామెంట్ బ్లాక్స్ నందలి " +"పత్రికీకరణను వుపయోగించి పనిచేయును, లేదా GTK-Doc వుపయోగించే మాదిరి(టెంప్లేట్) ఫైళ్ళకు జతచేసిన " +"పత్రికీకరణను వుపయోగించును (GTK-Doc హెడర్ ఫైళ్ళ నందు డిక్లేర్ చేసివున్న ఫంక్షన్లకు మాత్రమే పత్రికీకరణ " +"యిచ్చును; అది స్టాటిక్ ఫంక్షన్ల కొరకు అవుట్పుట్ అందించదు)." + +#: C/gtk-doc-manual.xml:137(para) +msgid "GTK-Doc consists of a number of perl scripts, each performing a different step in the process." +msgstr "GTK-Doc చాలా పెర్ల్ స్క్రిప్టులను కలిగివుంది, ప్రతిది వేరువేరు స్టెప్పును కార్యక్రమమునందు జరుపును." + +#: C/gtk-doc-manual.xml:142(para) +msgid "There are 5 main steps in the process:" +msgstr "అక్కడ కార్యక్రమమునందు 5 ముఖ్య స్టెప్పులు వున్నవి:" + +#: C/gtk-doc-manual.xml:149(para) +msgid "Writing the documentation. The author fills in the source files with the documentation for each function, macro, union etc. (In the past information was entered in generated template files, which is not recommended anymore)." +msgstr "" +"పత్రికీకరణను వ్రాయుట. మూలకర్త(ఆథర్) సోర్స్ ఫైళ్ళనందు ప్రతి ఫంక్షన్‌కు, మాక్రోకు, " +"యూనియన్‌కు పత్రకీకరణను యిస్తాడు. (గతంలో సమాచారమును మాదిరి ఫైళ్ళనందు ప్రవేశపెట్టేవారు, యిది యిప్పడు " +"సమర్ధించబడదు)." + +#: C/gtk-doc-manual.xml:159(para) +msgid "Gathering information about the code.gtkdoc-scan scans the header files of the code looking for declarations of functions, macros, enums, structs, and unions. It creates the file <module>-decl-list.txt containg a list of the declarations, placing them into sections according to which header file they are in. On the first run this file is copied to <module>-sections.txt The author can rearrange the sections, and the order of the declarations within them, to produce the final desired order. The second file it generates is <module>-decl.txt. This file contains the full declarations found by the scanner. If for some reason one would like some sybols to show up in the docs, where the full declaration cannot be found by th scanner or the declaration should appear differently, one can place enties similar to the ones in <module>-decl.txt into <module>-overrides.txt. gtkdoc-scanobj can also be used to dynamically query a library about any GtkObject subclasses it exports. It saves information about each object's position in the class hierarchy and about any GTK Args and Signals it provides." +msgstr "" +"కోడ్ గురించిన సమాచారమును సేకరిస్తోంది.gtkdoc-scan ఫంక్షన్ల, మాక్రోల, ఈనమ్స్," +"స్ట్రక్ట్స్, మరియు యూనియన్స్ కొరకు కోడ్ లాకింగ్ యొక్క హెడర్ ఫైళ్ళను స్కాన్ చేస్తుంది. డిక్లరేషన్ల జాబితాను కలిగివున్న <module>-decl-list.txt ఫైలును యిది సృష్టిస్తుంది, అవి యే హెడర్ ఫైళ్ళనందు వున్నవో దానిని అనుసరించి వాటిని ఆయా విభాగములలో వుంచును. మొదటి సారి" +"నడిపినప్పుడు ఈ పైలు <module>-sections.txtకు నకలు తీయబడుతుంది. మూలకర్త విభాగములను తిరిగి" +"అమర్చగలడు, మరియు వాటి నందలి డిక్లరేషన్ల క్రమమును కూడా, తద్వార చివరిగా కావలసిన క్రమమును పొందును. ఇది జనియింపచేయు రెండవ ఫైలు" +"<module>-decl.txt. ఈ ఫైలు స్కానర్ ద్వారా కనుగొనబడిన పూర్తి డిక్లరేషన్లను కలిగివుంటుంది. ఏదోవొక కారణం" +"చేత యెవరైన పత్రములనందు చిహ్నములను చూపాలని అనుకొంటే, యెక్కడైతే పూర్తి డిక్లరేషన్ స్కానర్ నందు కనుబడదో లేదా డిక్లరేషన్ భిన్నంగా కనిపించాలో అక్కడ," +"యెవరైనా <module>-decl.txtనందు వున్న అంశములకు సమానంగా వున్న వాటిని <module>-overrides.txtకు వుంచవచ్చును. gtkdoc-scanobj అనునది అది యెగుమతి చేసిన GtkObject" +"సబ్‌క్లాసెస్ గురించిన లైబ్రరీను క్వరీ చేయుటకు కూడా వుపయోగించబడును. ఇది క్లాస్ హైరార్కీ నందలి ప్రతి ఆబ్జక్టు యొక్క స్థాన సమాచారాన్ని దాయును మరియు" +"అది అందించు GTK ఆర్గ్స్ మరియు సంకేతముల సమాచారమును దాయును." + +#: C/gtk-doc-manual.xml:184(para) +msgid "Generating the \"template\" files.gtkdoc-mktmpl creates a number of files in the tmpl/ subdirectory, using the information gathered in the first step. (Note that this can be run repeatedly. It will try to ensure that no documentation is ever lost.)" +msgstr "" +"\"template\" ఫైళ్ళను జనియింపచేస్తోంది. " +"gtkdoc-mktmpl అనునది ఫైళ్ళను tmpl/ వుపసంచయంనందు సృష్టించును, మొదటి స్టెప్పనందు " +"సేకరించిన సమాచారమును వుపయోగించి. (ఇది పునరావృతంగా నడుపవచ్చునని గమనించండి. ఇది యే పత్రముకూడా " +"యెప్పటికి పోకుండా వుంచుటకు చూస్తుంది.)" + +#: C/gtk-doc-manual.xml:193(para) +msgid "Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. If you have never changed file in tmpl by hand, please remove the dir (e.g. from version control system)." +msgstr "" +"GTK-Doc 1.9 నుండి మాదిరిలు వదిలివేయబడినవి. మేము అందరిని పత్రికీకరణను కోడ్‌నందు వుంచమని కోరుచున్నాము. " +"tmpl వినియోగాన్ని పూర్తిగా వదిలివేసే ఐచ్చికాన్ని యిప్పుడు " +"gtkdocize మద్దతించుచున్నది. tmpl నందలి ఫైలును మీరు మానవీయంగా " +"యెప్పుడూ మార్చివుండకపోతే, దయచేసి డైరెక్టరీను తీసివేయుము(ఉ.దా. వర్షన్ కంట్రోల్ సిస్టమ్ నుండి)." + +#: C/gtk-doc-manual.xml:205(para) +msgid "Generating the SGML/XML and HTML/PDF.gtkdoc-mkdb turns the template files into SGML or XML files in the sgml/ or xml/ subdirectory. If the source code contains documentation on functions, using the special comment blocks, it gets merged in here. If there are no tmpl files used it only reads takes docs from sources and introspection data." +msgstr "" +"SGML/XML మరియు HTML/PDF జనియింపచేయుట. " +"gtkdoc-mkdb అనునది sgml/ లేదా xml/ నందలి మాదిరి ఫైళ్ళను SGML లేదా XMLకు మార్చును. " +"ప్రత్యేక కామెంట్ బ్లాక్సు వుపయోగిస్తూ, సోర్సు కోడ్ ఫంక్షన్ల నందు పత్రకీకరణను కలిగివుంటే, అది యిక్కడ " +"కలుపబడును. tmpl ఫైళ్ళు వుపయోగించకపోతే యిది పత్రములను మూలాలనుండి మరియు లోపలి డాటానుండి " +"మాత్రమే చదివి తీసుకొనును." + +#: C/gtk-doc-manual.xml:215(para) +msgid "gtkdoc-mkhtml turns the SGML/XML files into HTML files in the html/ subdirectory. Likewise gtkdoc-mkpdf turns the SGML/XML files into a PDF docuemnt called <package>.pdf." +msgstr "" +"html/ వుపసంచయం నందలి SGML/XML ఫైళ్ళను " +"gtkdoc-mkhtml అనునది HTML ఫైళ్ళకు మార్చును. అలాగే " +"gtkdoc-mkpdf అనునది SGML/XML ఫైళ్ళను <package>.pdfగా పిలువబడే PDF పత్రమునకు మార్చును." + +#: C/gtk-doc-manual.xml:221(para) +msgid "Files in sgml/ or xml/ and html/ directories are always overwritten. One should never edit them directly." +msgstr "" +"sgml/ లేదా xml/ మరియు html/ డైరెక్టరీల నందలి ఫైళ్ళు యెల్లప్పుడూ " +"దిద్దివ్రాయబడును. ఎవరూ వాటిని యెప్పుడూ నేరుగా సరికూర్చకూడదు." + +#: C/gtk-doc-manual.xml:229(para) +msgid "Fixing up cross-references between documents. After installing the HTML files, gtkdoc-fixxref can be run to fix up any cross-references between separate documents. For example, the GTK+ documentation contains many cross-references to types documented in the GLib manual. When creating the source tarball for distribution, gtkdoc-rebase turns all external links into web-links. When installing distributed (pregenerated) docs the same application will try to turn links back to local links (where those docs are installed)." +msgstr "పత్రముల మధ్య క్రాస్-రిఫరెన్సెస్‌ను పరిష్కరించుచున్నది. HTML ఫైళ్ళను సంస్థాపించిన తర్వాత, వేరు వేరు పత్రముల మధ్య క్రాస్-రిఫరెన్సెస్‌ను అమర్చుటకు gtkdoc-fixxref నడుపవచ్చును. ఉదాహరణకు, GTK+ పత్రికీకరణ అనునది GLib మాన్యుయల్ నందు వుంచిన పత్రికీకరణకు చాలా క్రాస్-రిఫరెన్సెస్ కలిగివుంది. పంపిణీ కొరకు మూలపు టార్బాల్‌ను సృష్టించునప్పుడు, gtkdoc-rebase అనునది అన్ని బహిర్గత లింకులను వెబ్-లింకులకు మార్చును. పంపిణీచేసిన (ముందుగాజనియింపచేసిన) పత్రములను సంస్థాపించునప్పుడు అదే అనువర్తనము లింకులను స్థానిక లింకులకు (ఆ పత్రములు యెక్కడ సంస్థాపించబడినవో అక్కడికి) తిరిగివుంచుటకు ప్రయత్నించును." + +#: C/gtk-doc-manual.xml:247(title) +msgid "Getting GTK-Doc" +msgstr "GTK-Doc పొందుట" + +#: C/gtk-doc-manual.xml:250(title) +msgid "Requirements" +msgstr "అవసరములు" + +#: C/gtk-doc-manual.xml:251(para) +msgid "Perl v5 - the main scripts are in Perl." +msgstr "Perl v5 - ముఖ్య స్క్రిప్టులు Perl1 నందు వున్నవి." + +#: C/gtk-doc-manual.xml:254(para) +msgid "DocBook DTD v3.0 - This is the DocBook SGML DTD. http://www.ora.com/davenport" +msgstr "DocBook DTD v3.0 - ఇది DocBook SGML DTD. http://www.ora.com/davenport" + +#: C/gtk-doc-manual.xml:258(para) +msgid "Jade v1.1 - This is a DSSSL processor for converting SGML to various formats. http://www.jclark.com/jade" +msgstr "" +"Jade v1.1 - SGMLను వివిధ ఫార్మాట్ల లోనికి మార్చుటకు యిది DSSSL ప్రోసెసర్. " +"http://www.jclark.com/jade" + +#: C/gtk-doc-manual.xml:262(para) +msgid "Modular DocBook Stylesheets This is the DSSSL code to convert DocBook to HTML (and a few other formats). It's used together with jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to colour the program code listings/declarations, and to support global cross-reference indices in the generated HTML. http://nwalsh.com/docbook/dsssl" +msgstr "Modular DocBook Stylesheets DocBookను HTMLకు (యింకా కొన్ని యితర ఫార్మాట్లకు) మార్చుటకు యిది DSSSL కోడ్. ఇది jadeతో కలిపి వుపయోగించబడును. నేను DSSSL కోడ్‌ను కొద్దిగా మలచుకొనినాను, gtk-doc.dsl నందు, ప్రోగ్రామ్ కోడ్ జాబితాలు/డిక్లరేషన్లను రంగులో వుంచుటకు, మరియు జనియింపచేసిన HTML నందు గ్లోబల్ క్రాస్-రిఫరెన్సెస్ యిండిసెస్‌ను మద్దతించుటకు. http://nwalsh.com/docbook/dsssl" + +#: C/gtk-doc-manual.xml:271(para) +msgid "docbook-to-man - if you want to create man pages from the DocBook. I've customized the 'translation spec' slightly, to capitalise section headings and add the 'GTK Library' title at the top of the pages and the revision date at the bottom. There is a link to this on http://www.ora.com/davenport NOTE: This does not work yet." +msgstr "docbook-to-man - DocBook నుండి man పేజీలను సృష్టించాలని అనుకొంటే. నేను 'translation spec' ను కొద్దిగా మలచుకొనినాను, విభగాపు హెడ్డింగులను పెద్దఅక్షరములలో వుంచుకొనుటకు మరియు పేజీల యొక్క పైభాగమున 'GTK Library' శీర్షికను జతచేయుటకు మరియు క్రిందన పునఃపరిశీలన తేదీను వుంచుటకు. దీనికి http://www.ora.com/davenport పైన వొక లింకు వుంది. గమనిక: ఇంది యింకా పనిచేయుటలేదు." + +#: C/gtk-doc-manual.xml:282(title) +msgid "Installation" +msgstr "సంస్థాపన" + +#: C/gtk-doc-manual.xml:283(para) +msgid "There is no standard place where the DocBook Modular Stylesheets are installed." +msgstr "DocBook మాడ్యులర్ స్టైల్‌షీట్లు యిక్కడ సంస్థాపించాలని వొక ప్రామాణిక స్థలము యేమీలేదు." + +#: C/gtk-doc-manual.xml:286(para) +msgid "GTK-Doc's configure script searches these 3 directories automatically:" +msgstr "GTK-Doc యొక్క ఆకృతీకరణ స్క్రిప్టు ఈ 3 డైరెక్టరీలను స్వయంచాలకంగా శోధిస్తుంది:" + +#: C/gtk-doc-manual.xml:289(para) +msgid " /usr/lib/sgml/stylesheets/nwalsh-modular (used by RedHat)" +msgstr " /usr/lib/sgml/stylesheets/nwalsh-modular (RedHat ద్వారా వుపయోగించబడింది)" + +#: C/gtk-doc-manual.xml:292(para) +msgid " /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +msgstr " /usr/lib/dsssl/stylesheets/docbook (Debian ద్వారా వుపయోగించబడింది)" + +#: C/gtk-doc-manual.xml:295(para) +msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +msgstr " /usr/share/sgml/docbkdsl (SuSE ద్వారా వుపయోగించబడింది)" + +#: C/gtk-doc-manual.xml:298(para) +msgid "If you have the stylesheets installed somewhere else, you need to configure GTK-Doc using the option: --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +msgstr "" +"మీరు యెక్కడోవొకచోట స్టైల్‌షీట్లను సంస్థాపించివుంటే, మీరు GTK-Docను ఈ ఐచ్చికము వుపయోగించి ఆకృతీకరించవలసి " +"వుంటుంది: --with-dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " + +#: C/gtk-doc-manual.xml:322(title) +msgid "About GTK-Doc" +msgstr "GTK-Doc గురించి" + +#: C/gtk-doc-manual.xml:324(para) C/gtk-doc-manual.xml:338(para) +msgid "(FIXME)" +msgstr "(FIXME)" + +#: C/gtk-doc-manual.xml:328(para) +msgid "(History, authors, web pages, license, future plans, comparison with other similar systems.)" +msgstr "(చరిత్ర, మూలకర్తలు, వెబ్ పుటలు, లైసెన్స్, భవిష్య ప్రణాళికలు, సమానమైన యితర సిస్టమ్సుతో పోలిక.)" + +#: C/gtk-doc-manual.xml:336(title) +msgid "About this Manual" +msgstr "ఈ మాన్యుయల్ గురించి" + +#: C/gtk-doc-manual.xml:342(para) +msgid "(who it is meant for, where you can get it, license)" +msgstr "(ఇది యెవరి కొరకు, మీరు దీనిని యెచటనుండి పొందగలరు, లైసెన్స్)" + +#: C/gtk-doc-manual.xml:351(title) +msgid "Setting up your project" +msgstr "మీ ప్రోజెక్టును అమర్చుట" + +#: C/gtk-doc-manual.xml:353(para) +msgid "The next sections describe what steps to perform to integrate GTK-Doc into your project. Theses section assume we work on a project called 'meep'. This project contains a library called 'libmeep' and an end-user app called 'meeper'." +msgstr "" +"GTK-Doc మీ ప్రోజెక్టునకు చేర్చుటకు యే స్టెప్పులు జరుపవలెనో తరువాతి విభాగములు వివరిస్తాయి. " +"మనము 'meep' అను ప్రోజెక్టుపై పనిచేస్తున్నట్టు ఈ విభాగములనందు వద్దేశించడమైనది. ఈ " +"ప్రోజెక్టు 'libmeep' అను లైబ్రరీను మరియు 'meeper' అను అంత్య-వినియోగదారి అనువర్తనమును " +"కలిగివుంది." + +#: C/gtk-doc-manual.xml:361(title) +msgid "Setting up a skeleton documentation" +msgstr "స్కెల్టెన్ పత్రికీకరణను అమర్చుచున్నది" + +#: C/gtk-doc-manual.xml:363(para) +msgid "Under your top-level project directory create folders called docs/reference (this way you can also have docs/help for end-user documentation). It is recommended to create another subdirectory with the name of the doc-package. For packages with just one library this step is not necessary." +msgstr "" +"మీ పై-స్థాయి ప్రోజెక్టు డైరెక్టరీ క్రింద docs/reference అను ఫోల్డర్లను సృష్టించుము (ఈ విధంగా మీరు docs/helpను " +"అంత్య-వినియోగదారి పత్రికీకరణ కొరకు కలిగివుండవచ్చును). doc-package నామముతో వేరొక వుపసంచయంను " +"సృష్టించుకొనుట సిఫార్సు చేయబడింది. కేవలం వొక లైబ్రరీ మాత్రమే వున్న ప్యాకేజీలకు యిది అవసరములేదు." + +#: C/gtk-doc-manual.xml:372(title) +msgid "Example directory structure" +msgstr "ఉదాహరణ డైరెక్టరీ ఆకృతి" + +#: C/gtk-doc-manual.xml:370(para) +msgid "This can then look as show below: " +msgstr "ఇది అప్పుడు క్రింది చూపిన విధంగా కనబడుతుంది: " + +#: C/gtk-doc-manual.xml:390(title) C/gtk-doc-manual.xml:397(title) +msgid "Integration with autoconf" +msgstr "autoconf తో విలీనం" + +#: C/gtk-doc-manual.xml:392(para) +msgid "Very easy! Just add one line to your configure.ac script." +msgstr "చాలా సులువు! మీ configure.ac స్క్రిప్టునకు వొక లైను మాత్రమే జతచేయుము." + +#: C/gtk-doc-manual.xml:407(para) +msgid "The first argument is used to check for the gtkdocversion at configure time. The 2nd, optional argument is used by gtkdocize. The GTK_DOC_CHECK macro also adds several configure switches:" +msgstr "" +"ఆకృతీకరణ సమయము వద్ద gtkdocversion కొరకు పరిశీలించుటకు మొదటి ఆర్గుమెంటు వుపయోగించబడింది. " +"2వది, gtkdocize చేత వుపయోగించబడిన ఐచ్చిక ఆర్గుమెంట్. " +"GTK_DOC_CHECK మాక్రో చాలా ఆకృతీకరణ స్విచ్‌లను జతచేస్తుంది:" + +#: C/gtk-doc-manual.xml:413(para) +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=PATH : సంస్థాపించిన పత్రములకు పాత్" + +#: C/gtk-doc-manual.xml:414(para) +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "--enable-gtk-doc : పత్రికీకరణను నిర్మించుటకు gtk-doc వుపయోగించుము [default=no]" + +#: C/gtk-doc-manual.xml:415(para) +msgid "--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "--enable-gtk-doc-html : పత్రికీకరణను html ఫార్మాట్‌నందు నిర్మించుము [default=yes]" + +#: C/gtk-doc-manual.xml:416(para) +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "--enable-gtk-doc-pdf : పత్రికీకరణను pdf ఫార్మాట్ నందు నిర్మించుము [default=no]" + +#: C/gtk-doc-manual.xml:420(para) +msgid "GTK-Doc is disabled by default! Remember to pass the option to the next configure run. Otherwise pregenerated documentation is installed (which makes sense for users but not for developers)." +msgstr "" +"GTK-Doc అప్రమేయంగా అచేతనము చేయబడింది! ఐచ్చికము ను " +"తరువాతి configureకు నడుపుట మర్చిపోవద్దు. లేకపోతే ముందుగా జనియింపచేసిన " +"పత్రికీకరణ సంస్థాపించబడుతుంది (ఇది వినియోగదారులకు వుపయోగకరం అయితే అభివృద్దికారులకు కాదు)." + +#: C/gtk-doc-manual.xml:428(para) +msgid "Furthermore it is recommended that you have the following line inside you configure.ac script. This allows gtkdocize to automatically copy the macro definition for GTK_DOC_CHECK to your project." +msgstr "" +"మీ configure.ac స్క్రిప్టునందు ఈ క్రింది వరుసను కలిగివుండుట చాలామంచిది. " +"ఇది మీ ప్రోజెక్టునందు GTK_DOC_CHECK కొరకు స్వయంచాలకంగా మాక్రో నిర్వచనాన్ని " +"నకలు తీయుటకు gtkdocizeను అనుమతిస్తుంది." + +#: C/gtk-doc-manual.xml:436(title) +msgid "Preparation for gtkdocize" +msgstr "gtkdocize కొరకు సన్నాహం" + +#: C/gtk-doc-manual.xml:447(title) +msgid "Integration with automake" +msgstr "automake తో విలీనం" + +#: C/gtk-doc-manual.xml:449(para) +msgid "First copy the Makefile.am from the examples subdirectory of the gtkdoc-sources to your project's API documentation directory ( ./docs/reference/<package>). If you have multiple doc-packages repeat this for each one." +msgstr "" +"ముందుగా Makefile.amను gtkdoc-sources యొక్క వుదాహరణల వుపసంచయం " +"నుండి మీ ప్రోజెక్టు యొక్క API పత్రికీకరణ డైరెక్టరీనకు నకలుతీయుము (./docs/reference/<package>). మీరు బహుళ " +"doc-packages కలిగివుంటే ప్రతిదానికి యిలా చేయండి." + +#: C/gtk-doc-manual.xml:456(para) +msgid "The next step is to edit the setting inside the Makefile.am. All the settings have a comment above that describes their purpose. Most settings are extra flags passed to the respective tools. Every tool has a variable of the form . All the tools support to list the supported parameters." +msgstr "" +"తరువాతి స్టెప్పు Makefile.am నందలి అమరికను సరికూర్చుట. అన్ని అమరికలు " +"వాటి ప్రయోజనాన్ని వివరించే వ్యాఖ్యను కలిగివున్నాయి. చాలా వరకు అమరికలు వాటి సంభందిత సాధనముల ద్వారా " +"పంపబడే అదనపు ఫ్లాగ్స్. ప్రతి సాధనము " +"రూపపు వేరియబుల్‌ను కలిగివుంది. మద్దతించు పారామితులను జాబితా చేయుటకు అన్ని సాధనములు " +"ను మద్దతించును." + +#. FIXME: explain options ? +#: C/gtk-doc-manual.xml:467(para) +msgid "You may also want to enable GTK-Doc for the distcheckmake target. Just add then one-liner show in the next example to you top-level Makefile.am:" +msgstr "" +"మీరు GTK-Docను distcheckmake లక్ష్యము కొరకు చేతనము చేయవచ్చు. జతచేయి అప్పుడు తర్వాత వుదాహరణనందు " +"one-liner మీకు పై-స్థాయి Makefile.amను చూపును:" + +#: C/gtk-doc-manual.xml:474(title) +msgid "Enable GTK-Doc during make distcheck" +msgstr "distcheck చేయునప్పుడు GTK-Doc చేతనము చేయి" + +#: C/gtk-doc-manual.xml:486(title) +msgid "Integration with autogen" +msgstr "autogen తో విలీనం" + +#: C/gtk-doc-manual.xml:488(para) +msgid "Most projects will have an autogen.sh script to setup the build infrastructure after a checkout from version control system (such as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before autoheader, automake or autoconf." +msgstr "" +"వర్షన్ కంట్రోల్ సిస్టమ్ (cvs/svn/git వంటి) నుండి చెక్అవుట్ తర్వాత బుల్డ్ నిర్మాణం అమర్చుటకు చాలా ప్రోజెక్టులు " +"autogen.sh స్క్రిప్టును కలిగివుంటాయి. GTK-Doc అనునది " +"gtkdocize అనబడు సాధనంతో వస్తుంది దీనిని అటువంటి స్క్రిప్టు నందు " +"వుపయోగించవచ్చును. ఇది autoheader, automake లేదా autoconf ముందు నడుపవలెను." + +#: C/gtk-doc-manual.xml:497(title) +msgid "Running gtkdocize from autogen.sh" +msgstr "autogen.sh నుండి gtkdocize నడుపుతోంది" + +#: C/gtk-doc-manual.xml:506(para) +msgid "When running gtkdocize it copies gtk-doc.make to you project root (or any directory specified by the option). If also check you configure script for the GTK_DOC_CHECK invocation." +msgstr "" +"gtkdocize నడుపుచున్నప్పుడు అది " +"gtk-doc.makeను మీ ప్రోజెక్టు root (లేదా " +"ద్వారా తెలుపబడిన డైరెక్టరీ)కు నకలుతీయును. GTK_DOC_CHECK ఆమంత్రణం కొరకు యిది మీ ఆకృతీకరణ స్క్రిప్టును పరిశీలించును." + +#: C/gtk-doc-manual.xml:514(para) +msgid "Historically GTK-Doc was gerating template files where developers entered the docs. this turned out to be not so good. Since a few version GTK-Doc could also get all the information from source comments. Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep documentation in the code. gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. Besides adding the option directly to the command invocation, they can be added also to a environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, please remove the dir (e.g. from version control system)." +msgstr "" +"చారిత్రకంగా GTK-Doc అనునది మాదిరి ఫైళ్ళను అభివృద్దికారులు పత్రములు ప్రవేశపెట్టినచోట జనియింపచేయుచున్నది. ఇది అంత మంచిగా లేదు. కొద్ది GTK-Doc" +"వర్షన్లు మాత్రమే సమాచారమునంతటిని మూలపు వ్యాఖ్యలనుండి పొందగలిగివున్నవి కావున. GTK-Doc 1.9 నుండి మాదిరిలు వదిలివేయబడినవి. పత్రికీకరణను" +"కోడ్‌నందు కలిగివుంచుటకే మేము అందరిని ప్రోత్సహిస్తున్నాము. tmpl వినియోగాన్ని పూర్తిగా వదిలివేసే ఐచ్చికాన్ని యిప్పుడు " +"gtkdocize మద్దతించుచున్నది. ఐచ్చికాన్ని నేరుగా ఆదేశ ఆమంత్రీకరణకు జతచేయుటకు బదులుగా, అవి యెన్విరాన్మెంట్ వేరియబుల్‌ GTKDOCIZE_FLAGSకు జతచేయవచ్చును లేదా ఆకృతీకరణ స్క్రిప్టునందలి GTK_DOC_CHECK మాక్రో నందు 2వ పారామితిగా అమర్చుము. మీరు యెప్పుడూ tmpl నందలి ఫైలు మార్చివుండకపోతే మరియు gtkdoc వర్షన్లనుండి మైగ్రేట్ అవుతుంటే, దయచేసి dirను తీసివేయుము (ఉ.దా. వర్షన్ కంట్రోల్ సిస్టమ్ నుండి)." + +#: C/gtk-doc-manual.xml:530(title) C/gtk-doc-manual.xml:547(title) +msgid "Running the doc build" +msgstr "doc బుల్డును నడుపుట" + +#: C/gtk-doc-manual.xml:532(para) +msgid "After the previous steps it's time to run the build. First we need to rerun autogen.sh. If this script runs configure for you, then give it the option. Otherwise manually run configure with this option afterwards." +msgstr "" +"గతంలో జరిపిన స్టెప్పుల తర్వాత యిప్పుడు బుల్డును నడుపవలెను. ముందుగా మనము autogen.shను తిరిగి నడుపవలెను. ఈ స్క్రిప్టు మీ కొరకు ఆకృతీకరణను నడిపితే, " +"దానికి ఐచ్చికాన్ని యివ్వుము. లేదా తరువాత ఈ ఐచ్చికముతో " +"మానవీయంగా configureను నడుపుము." + +#: C/gtk-doc-manual.xml:539(para) +msgid "The first make run generates several additional files in the doc-dirs. The important ones are: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "" +"మొదటి make run అనునది doc-dirs నందు చాలా అదనపు ఫైళ్ళను జనియింపచేయును. ముఖ్యమైనవి: " +"<package>.types, <package>-docs.sgml, <package>-sections.txt." + +#: C/gtk-doc-manual.xml:556(para) +msgid "Now you can point your browser to docs/reference/<package>/index.html. Yes, it's a bit disappointing still. But hang-on, during the next chapter we tell you how to fill the pages with life." +msgstr "" +"ఇప్పుడు మీ బ్రౌజర్‌కు మీరు docs/reference/<package>/index.htmlను " +"సూచించవచ్చును. అవును, యిప్పటికి యిది కొంత నిరుత్సాహపరుస్తోంది. అయితే ఆగండి, తరువాతి అధ్యాయమునందు పేజీలను " +"యెలా నింపాలో చెబుతాము." + +#: C/gtk-doc-manual.xml:564(title) +msgid "Integration with version control systems" +msgstr "వర్షన్ కంట్రోల్ సిస్టమ్‌తో విలీనం" + +#: C/gtk-doc-manual.xml:566(para) +msgid "As a rule of the thumb, it's those files you edit, that should go under version control. For typical projects it's these files: <package>.types<package>-docs.sgml<package>-sections.txtMakefile.am" +msgstr "" +"thumb యొక్క నియమాన్ని అనుసరించి, యిది మీరు సరికూర్చిన ఫైళ్ళది, అది వర్షన్ కంట్రోల్ క్రిందకు వెళ్ళవలెను. " +"ముఖ్యమైన ప్రోజెక్టులకు ఈ ఫైళ్ళు:<package>.types<package>-docs.sgml<package>-sections.txtMakefile.am" + +#: C/gtk-doc-manual.xml:579(title) +msgid "Documenting the code" +msgstr "కోడ్‌ను పత్రికీకరణ చేయుట" + +#: C/gtk-doc-manual.xml:581(para) +msgid "GTK-Doc uses source code comment with a special syntax for code documentation. Further it retrieves information about your project structure from other sources. During the next section you find all information about the syntax of the comments." +msgstr "" +"కోడ్ పత్రికీకరణ కొరకు GTK-Doc అనునది సోర్స్ కోడ్ కామెంట్‌ను ప్రత్యేక సిన్టాక్సుతో వుపయోగిస్తుంది. ఇంకా యిది యితర " +"మూలములనుండి మీ ప్రోజెక్టు ఆకృతి గురించి సమాచారమును వెలికితీయును. తరువాతి విభాగమునందు మీరు మీ వ్యాఖ్యల " +"యొక్క సిన్టాక్సు గురించి సమాచారమును అంతటిని కనుగొంటారు." + +#: C/gtk-doc-manual.xml:589(title) +msgid "Documentation placement" +msgstr "పత్రికీకరణ స్థానము" + +#: C/gtk-doc-manual.xml:590(para) +msgid "In the past most documentation had to be filled into files residing inside the tmpl directory. This has the disadvantages that the information is often not updated and also that the file tend to cause conflicts with version control systems." +msgstr "" +"గతంలో చాలా వరకు పత్రికీకరణ అనునది tmpl డైరెక్టరీ క్రిందని ఫైళ్ళలో నింపవలసివుండేది. " +"సమాచారము సరిగా నవీకరించబడక పోవుట మరియు ఆ ఫైలు వర్షన్ కంట్రోల్ సిస్టమ్సుతో విభేదించుట వంటి లోపాలను యిది " +"కలిగివుంది." + +#: C/gtk-doc-manual.xml:596(para) +msgid "The avoid the aforementioned problems we suggest putting the documentation inside the sources. This manual will only describe this way of documenting code." +msgstr "" +"ముందుగా తెలిపిన సమస్యలను తప్పించుటకు మేము పత్రికీకరణను మూలముల లోపలే వుంచమని సూచించుచున్నాము. " +"ఈ మాన్యుయల్ ఈ విధంగా కోడ్ పత్రికీకరణను మాత్రమే వివరించును." + +#: C/gtk-doc-manual.xml:606(title) +msgid "Documentation comments" +msgstr "పత్రికీకరణ వ్యాఖ్యలు" + +#: C/gtk-doc-manual.xml:611(title) +msgid "GTK-Doc comment block" +msgstr "GTK-Doc వ్యాఖ్య బ్లాక్" + +#: C/gtk-doc-manual.xml:608(para) +msgid "A multiline comment that starts with an additional '*' marks a documentation block that will be processed by the GTK-Doc tools. " +msgstr "" +"బహుళ వరుసలు వుండి అదనపు '*' గుర్తులతో ప్రారంభించబడు వ్యాఖ్య పత్రికీకరణ బ్లాక్‌ను సూచించును అది GTK-Doc " +"సాధనముల ద్వారా నిర్వర్తించబడును. " + +#: C/gtk-doc-manual.xml:623(para) +msgid "The 'identifier' is one line with the name of the item the comment is related to. The syntax differs a little depending on the item. (TODO add table showing identifiers)" +msgstr "" +"'identifier' అనునది వ్యాఖ్యకు సంభందించిన అంశము యొక్క నామముతో వుండు వొక వరుస. అంశము పై ఆధారపడి " +"సిన్టాక్సు అనునది కొద్దిగా విభేదించును. (చేయవలసినది identifies చూపు పట్టికను జతచేయి)" + +#: C/gtk-doc-manual.xml:629(para) +msgid "The 'documentation' block is also different for each symbol type. Symbol types that get parameters such as functions or macros have the parameter description first followed by a blank line (just a '*'). Afterwards follows the detailed description. All lines (outside program- listings and CDATA sections) just containing a ' *' (blank-asterisk) are converted to paragraph breaks. If you don't want a paragraph break, change that into ' * ' (blank-asterisk-blank-blank)." +msgstr "" +"ప్రతి చిహ్నపు రకమునకు 'పత్రికీకరణ' బ్లాక్ భిన్నంగా వుంటుంది. ఫంక్షన్లు లేదా స్థూలములు పారామితి వివరణను కలిగివున్నవి ముందుగా " +"ఖాళీ వరుస (a '*') అనుసరించాలి. తరువాత విశదీకృత వివరణను అనుసరించాలి. అన్ని వరుసలు (ప్రోగ్రామ్ బయటవి- జాబితాలు " +"మరియు CDATA విభాగములు) ' *' (ఖాళీ-యాస్ట్రిక్) మాత్రమే కలిగివున్నవి పారాగ్రాఫ్ విరామాలుగా వుంచబడును. మీకు పారాగ్రాఫ్ " +"విరామాలు అక్కరలేకపోతే, దానిని ' * ' (blank-asterisk-blank-blank)కు మార్చుము." + +#: C/gtk-doc-manual.xml:646(para) +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "ఆర్గుమెంట్లను తీసుకొనే ఫంక్షన్లను లేదా మాక్రోలను సూచించుటకు function() వుపయోగించుము." + +#: C/gtk-doc-manual.xml:651(para) +msgid "Use @param to refer to parameters. Also use this when referring to parameters of other functions, related to the one being described." +msgstr "పారామితులను సూచించుటకు @param వుపయోగించుము. వివరించబడిన పారామితికి సంభందించిన యితర ఫంక్షన్ల పారామితులను సూచించుటకు కూడా దీనిని వుపయోగించుము." + +#: C/gtk-doc-manual.xml:657(para) +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "స్థిరరాశిని సూచించుటకు %constant వుపయోగించుము, ఉ.దా. %G_TRAVERSE_LEAFS." + +#: C/gtk-doc-manual.xml:662(para) +msgid "Use #symbol to refer to other types of symbol, e.g. structs and enums and macros which don't take arguments." +msgstr "ఇతర రకముల చిహ్నమును సూచించుటకు #symbol వుపయోగించుము, ఉ.దా. ఆర్గుమెంట్లు తీసుకొని structs మరియు enums మరియు macros వంటివి." + +#: C/gtk-doc-manual.xml:668(para) +msgid "Use #Object::signal to refer to a GObject signal" +msgstr "GObject సంకేతమును సూచించుటకు #Object::signal వుపయోగించుము" + +#: C/gtk-doc-manual.xml:673(para) +msgid "Use #Object:property to refer to a GObject property" +msgstr "GObject లక్షణమును సూచించుటకు #Object:property వుపయోగించుము" + +#: C/gtk-doc-manual.xml:678(para) +msgid "Use #Struct.field to refer to a field inside a structure." +msgstr "స్ట్రక్చర్ నందలి క్షేత్రమును సూచించుటకు #Struct.field వుపయోగించుము." + +#: C/gtk-doc-manual.xml:640(para) +msgid "One advantage of hyper-text over plain-text is the ability to have links in the document. Writing the correct markup for a link can be tedious though. GTK-Doc comes to help by providing several useful abbreviations. " +msgstr "" +"సాదా-పాఠ్యమునందు హైపర్-పాఠ్యమును కలిగివుండువలన వొక సౌకర్యము పత్రమునందు లింకులను కలిగివుండవచ్చును. " +"అయినను లింకు కొరకు సరైన మార్కప్ వ్రాయుట చికాకే. GTK-Doc నందు చాలా వుపయోగకర ఎబ్రివేషన్లు అందించబడుచున్నవి. " +"" + +#: C/gtk-doc-manual.xml:686(para) +msgid "If you need to use the special characters '<', '>', '()', '@', '%', or '#' in your documentation without GTK-Doc changing them you can use the XML entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" and \"&num;\" respectively or escape them with a backslash '\\'." +msgstr "" +"మీరు ప్రత్యేక ఆక్షరములు '<', '>', '()', '@', '%', or '#'ను మీ పత్రికీకరణనందు GTK-Doc వాటిని మార్చకుండా వుపయోగించాలి అంటే మీరు XML మూలకములు \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" మరియు \"&num;\" వుపయోగించవచ్చు లేదా వాటిని '\\' " +"బాక్‌స్లాష్‌తో ఎస్కేప్ చేయుము." + +#: C/gtk-doc-manual.xml:695(para) +msgid "DocBook can do more that just links. One can also have lists, tables and examples. To enable the usage of SGML/XML tags inside doc-comments you need to have in the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" +"DocBook లింకుల వలె చాలా చేయగలదు. ఒకరు జాబితాలనుకూడా కలిగివుండగలరు, పట్టికలు మరియు వుదాహరణలు కూడా. " +"doc-comments లోపల SGML/XML టాగ్స్ యొక్క వినియోగాన్ని చేతనము చేయుటకు మీరు Makefile.am నందలి MKDB_OPTIONS వేరియబుల్ " +"నందు కలిగివుండాలి." + +#: C/gtk-doc-manual.xml:703(para) +msgid "As already mentioned earlier GTK-Doc is for documenting public API. Thus one cannot write documentation for static symbols. Nevertheless it is good to comment those symbols too. This helps other to understand you code. Therefore we recommend to comment these using normal comments (without the 2nd '*' in the first line). If later the function needs to be made public, all one needs to do is to add another '*' in the comment block and insert the symbol name at the right place inside the sections file." +msgstr "" +"ముందుగా చెప్పినట్లుగా GTK-Doc అనునది పబ్లిక్ API పత్రికీకరణ కొరకు. స్థిర చిహ్నములకు వొక్కరే పత్రికీకరణ వ్రాయలేరు. ఆ చిహ్నములను కూడా వ్యాఖ్యానించుట మంచిది. ఇది యితరులు కూడా మీ కోడ్‌ను అర్ధము చేసుకొనుటకు సహాయపడును. అందుకని వీటిని సాదారణ వ్యాఖ్యలు (మొదటి వరుసనందు 2వ '*' లేకుండా) వుపయోగించి వ్యాఖ్యానించమని సూచించడమైంది. తరువాత ఆ ఫంక్షన్ పబ్లిక్‌గా మార్చవలసివుంటే, చేయవలసినదల్లా వేరొక '*'ను వ్యాఖ్య బ్లాక్ నందు చేర్చి మరియు చిహ్నపు నామాన్ని" +"విభగాముల ఫైలునందు సరైన స్థానములో వుంచడమే." + +#: C/gtk-doc-manual.xml:717(title) +msgid "Documenting sections" +msgstr "పత్రికీకరణ విభాగములు" + +#: C/gtk-doc-manual.xml:719(para) +msgid "Each section of the documentation contains information about one class or module. To introduce the component one can write a section block. The short description is also used inside the table of contents. All the @fields are optional." +msgstr "" +"పత్రికీకరణ యొక్క ప్రతి విభాగము వొక క్లాస్ లేదా మాడ్యూల్ గురించిన సమాచారమును కలిగివుంటుంది. మూలకాన్ని " +"పరిచయం చేయుటకు వొకరు విభాగపు బ్లాక్‌ను వ్రాయవచ్చును. పొట్టి వివరణ అనునది పట్టిక యొక్క సారముల లోపలకూడా " +"వుపయోగించబడును. అన్ని @fields ఐచ్చికమైనవి." + +#: C/gtk-doc-manual.xml:727(title) +msgid "Section comment block" +msgstr "విభాగపు వ్యాఖ్య బ్లాక్" + +#: C/gtk-doc-manual.xml:749(term) +msgid "SECTION:<name>" +msgstr "SECTION:<name>" + +#: C/gtk-doc-manual.xml:751(para) +msgid "The name links the section documentation to the respective part in the <package>-sections.txt file. The name give here should match the <FILE> tag in the <package>-sections.txt file." +msgstr "" +"నామము అనునది విభాగపు పత్రికీకరణను <package>-sections.txt ఫైలునందలి " +"సంభందిత భాగమునకు లింకుచేయును. ఇక్కడ యిచ్చిన నామము <package>-sections.txt ఫైలునందలి <FILE> టాగ్‌తో సరిపోలవలెను." + +#: C/gtk-doc-manual.xml:760(term) +msgid "@short_description" +msgstr "@short_description" + +#: C/gtk-doc-manual.xml:762(para) +msgid "A one line description of the section, that later will appear after the links in the TOC and at the top of the section page." +msgstr "విభాగము యొక్క వివరణ వొక్క వరుసలో, తరువాత అది TOC నందు లింక్సు తరువాత మరియు విభాగపు పేజీ పైన కనిపించును." + +#: C/gtk-doc-manual.xml:769(term) +msgid "@title" +msgstr "@title" + +#: C/gtk-doc-manual.xml:771(para) +msgid "The section title defaults to <name> from the SECTION declaration. It can be overridden with the @title field." +msgstr "" +"విభాగపు శీర్షిక అనునది SECTION డిక్లరేషన్ నుండి <name> అప్రమేయం కాబడును. ఇది @title క్షేత్రము " +"ద్వారా దిద్దివ్రాయబడును." + +#: C/gtk-doc-manual.xml:778(term) +msgid "@section_id" +msgstr "@section_id" + +#: C/gtk-doc-manual.xml:780(para) +msgid "Overrides the use of title as a section identifier. For GObjects the <title> is used as a section_id and for other section it is <MODULE>-<title>." +msgstr "" +"శీర్షిక యొక్క వుపయోగాన్ని విభాగపు గుర్తింపుకారి వలె దిద్దివ్రాయును. GObjects కొరకు <title> అనునది " +"section_id వలె మరియు యితర విభాగమునకు <MODULE>-<title> వలె వుపయోగించబడును." + +#: C/gtk-doc-manual.xml:788(term) +msgid "@see_also" +msgstr "@see_also" + +#: C/gtk-doc-manual.xml:790(para) +msgid "A list of symbols that are related to this section.." +msgstr "ఈ విభాగమునకు సంభందించిన చిహ్నముల యొక్క జాబితా..." + +#: C/gtk-doc-manual.xml:796(term) +msgid "@stability" +msgstr "@stability" + +#: C/gtk-doc-manual.xml:803(para) +msgid "Stable - The intention of a Stable interface is to enable arbitrary third parties to develop applications to these interfaces, release them, and have confidence that they will run on all minor releases of the product (after the one in which the interface was introduced, and within the same major release). Even at a major release, incompatible changes are expected to be rare, and to have strong justifications." +msgstr "" +"స్థిరమైన - స్థిరమైన యింటర్ఫేస్ ముఖ్యోద్దేశం మూడోవ్యక్తి అనువర్తనములను యీ యింటర్ఫేసులకు కొరకు అభివృద్దిపరచుట, విడుదల చేయుట, మరియు ఆ వుత్పాదన యొక్క" +"అన్ని చిన్న విడుదలలనందు(పెద్ద విడుదల క్రిందన విడుదలగునవి) నడుచునట్లు చూచుకొనుటను చేతన పరచుట. ముఖ్య విడుదలనందు కూడా, సారూప్యతా మార్పులు అనునవి తగ్గించుటకు, ఖచ్చితమైన నిర్ధారణలను కలిగివుండుట." + +#: C/gtk-doc-manual.xml:815(para) +msgid "Unstable - Unstable interfaces are experimental or transitional. They are typically used to give outside developers early access to new or rapidly changing technology, or to provide an interim solution to a problem where a more general solution is anticipated. No claims are made about either source or binary compatibility from one minor release to the next." +msgstr "" +"అస్థిరమైన - అస్థిరమైన యింటర్ఫేస్‌లు ప్రయోగాత్మకమైనవి లేదా బదలీకరణ పొందునవి. అవి ముఖ్యంగా బయటి అభివృద్దికారులకు " +"కొత్తవి లేదా వేగంగా మారుతున్న సాంకేతికతపై యాక్సెస్ యిచ్చుటకు వుపయోగించబడును, లేదా వొక సమస్య కొరకు యెక్కువ సహజమైన పరిష్కారము కొరకు యెదురు చూడబడుతోందో అక్కడ మధ్యంతర పరిష్కారము యిచ్చుటకు. ఒక చిన్న విడుదలనుండి " +"తర్వాత దానికి యెటువంటి క్లైమ్స్ సోర్స్ గురించికాని లేదా బైనరీ సారూప్యత గురించికాని చేయబడవు." + +#: C/gtk-doc-manual.xml:827(para) +msgid "Private - An interface that can be used within the GNOME stack itself, but that is not documented for end-users. Such functions should only be used in specified and documented ways." +msgstr "" +"వ్యక్తిగత - GNOME స్టాక్ లోపలే వుపయోగించగల యింటర్ఫేస్, అయితే అది అంత్య-వినియోగదారుల కొరకు పత్రికీకరణ " +"చేయబడదు. అటువంటి ఫంక్షన్లు తెలుపబడిన మరియు పత్రికీకరణ మార్గములలోనే వుపయోగించాలి." + +#: C/gtk-doc-manual.xml:836(para) +msgid "Internal - An interface that is internal to a module and does not require end-user documentation. Functions that are undocumented are assumed to be Internal." +msgstr "" +"అంతర్గత - మాడ్యూల్‌కు అంతర్గతమైన మాడ్యూల్ మరియు అంత్య-వినియోగదారి పత్రికీకరణ అవసరములేనిది. " +"పత్రికీకరణ చేయని ఫంక్షన్లు అంతర్గతమైనవిగా పరిగణించాలి." + +#: C/gtk-doc-manual.xml:798(para) +msgid "A informal description of the stability level this API has. We recommend the use of one of these terms: " +msgstr "" +"ఈ API కలిగివున్న స్థిరత్వపు స్థాయి యొక్క సాధారణ వివరణ. ఈ పదములలో వొక దానిని వుపయోగించుట మేము సిఫార్సు " +"చేయుచున్నాము: " + +#: C/gtk-doc-manual.xml:848(term) +msgid "@include" +msgstr "@include" + +#: C/gtk-doc-manual.xml:850(para) +msgid "The #include files to show in the section synopsis (a comma separated list), overriding the global value from the section file or command line. This item is optional." +msgstr "విభాగపు సారాంశము నందు చూపుటకు #include ఫైళ్ళు (కామాతో వేరుచేయబడిన జాబితా), విభాగపు ఫైలు లేదా ఆదేశ వరుసనుండి గ్లోబల్ విలువను దిద్దివ్రాయుట. ఈ అంశము ఐచ్చికము." + +#: C/gtk-doc-manual.xml:859(term) +msgid "@image" +msgstr "@image" + +#: C/gtk-doc-manual.xml:861(para) +msgid "The image to display at the top of the reference page for this section. This will often be some sort of a diagram to illustrate the visual appearance of a class or a diagram of its relationship to other classes. This item is optional." +msgstr "" +"ఈ విభాగము కొరకు సూచనపేజీ పైన ప్రదర్శించుటకు ప్రతిబింబము. ఇది తరుచుగా వొక క్లాస్ యొక్క విజువల్ అప్పియరెన్స్ " +"వివరించుటకు డయాగ్రమ్ వంటిది లేదా యితర క్లాసులతో దాని సంభందాన్ని తెలిపే డయాగ్రమ్. ఈ అంశము ఐచ్చికము." + +#: C/gtk-doc-manual.xml:872(para) +msgid "To avoid unnecessary recompilation after doc-changes put the section docs into the c-source where possible." +msgstr "" +"అనవసరపు రికంపైలేషన్‌ను విసర్జించుటకు doc-changes తర్వాత విభాగపు పత్రములను c-source నందు " +"వీలైనచోట వుంచుము." + +#: C/gtk-doc-manual.xml:881(title) +msgid "Documenting symbols" +msgstr "చిహ్నముల పత్రికీకరణ" + +#: C/gtk-doc-manual.xml:883(para) +msgid "Each symbol (function, macro, struct, enum, signal and property) is documented in a separate block. The block is best placed close to the definition of the symbols so that it is easy to keep them in sync. Thus function are usually documented in the c-source and macros, struct and enum in the header file." +msgstr "" +"ప్రతి చిహ్నము (function, macro, struct, enum, signal మరియు property) విడివిడి బ్లాక్ నందు పత్రికీకరణ " +"చేయబడినవి. బ్లాక్ అనునది చిహ్నము యొక్క నిర్వచనముకు దగ్గరా వుంచబడినది అలా వాటిని సింక్‌లో వుంచుట సులువు. " +"ఫంక్షన్ సాధారణంగా c-source నందు మరియు macros, stuct మరియు enumలు హెడర్ ఫైలునందు పత్రికీకరణ " +"చేయబడతాయి." + +#: C/gtk-doc-manual.xml:891(title) C/gtk-doc-manual.xml:920(title) +msgid "General tags" +msgstr "సాధారణ టాగ్లు" + +#: C/gtk-doc-manual.xml:893(para) +msgid "You can add versioning information to all documentation elements to tell when an api was introduced, or when it was deprecated." +msgstr "" +"మీరు వర్షనింగ్ సమాచారమును అన్ని పత్రికీకరణ మూలకాలకు జతచేయవచ్చును, api యెప్పుడు పరిచయం చేయబడిందో " +"చెప్పుటకు, లేదా యెప్పుడు తీసివేయబడిందో చెప్పుటకు." + +#: C/gtk-doc-manual.xml:898(title) +msgid "Versioning Tags" +msgstr "వర్షనింగ్ టాగ్స్" + +#: C/gtk-doc-manual.xml:899(term) +msgid "Since:" +msgstr "అప్పటినుంచి:" + +#: C/gtk-doc-manual.xml:901(para) +msgid "Description since which version of the code the API is available." +msgstr "కోడ్ యొక్క యే వర్షన్ నుండి API అందుబాటులోవుందో వివరణ." + +#: C/gtk-doc-manual.xml:906(term) +msgid "Deprecated:" +msgstr "తీసివేసిన:" + +#: C/gtk-doc-manual.xml:908(para) +msgid "Paragraph denoting that this function should no be used anymore. The description should point the reader to the new API." +msgstr "ఈ ఫంక్షన్ యికపై వుపయోగించుటలేదని పారాగ్రాఫ్ చెబుచున్నది. వివరణ చదువరిని కొత్త APIకు సూచించాలి." + +#: C/gtk-doc-manual.xml:916(para) +msgid "(FIXME : Stability information)" +msgstr "(FIXME : స్థిరత్వ సమాచారము)" + +#: C/gtk-doc-manual.xml:943(title) C/gtk-doc-manual.xml:979(title) +msgid "Function comment block" +msgstr "ఫంక్షన్ వ్యాఖ్యానపు బ్లాక్" + +#: C/gtk-doc-manual.xml:949(para) +msgid "Document whether returned objects, lists, strings, etc, should be freed/unrefed/released." +msgstr "తిరిగివచ్చిన objects, lists, strings, మొదలగునవి, freed/unrefed/released చేయాలా వద్దా అనేదానిపై పత్రము." + +#: C/gtk-doc-manual.xml:955(para) +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "పారామితులు NULL కావచ్చా, వొకవేళ అయితే యేమి జరుగును అనేదానిపై పత్రము." + +#: C/gtk-doc-manual.xml:960(para) +msgid "Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "తగుచోట్ల ఆసక్తికరమైన ప్రి-కండీషన్లు మరియు పోస్ట్-కండీషన్లను తెలుపుము." + +#: C/gtk-doc-manual.xml:945(para) C/gtk-doc-manual.xml:1042(para) +msgid "Please remember to: " +msgstr "దయచేసి దీనికి గుర్తువుంచండి: " + +#: C/gtk-doc-manual.xml:967(para) +msgid "Gtk-doc assumes all symbols (macros, functions) starting with '_' are private. They are treated like static functions." +msgstr "" +"Gtk-doc అన్ని చిహ్నములు (macros, functions) '_'తో ప్రారంభమగునవి వ్యక్తిగతమైనవని పరిగణించును. " +"అవి స్టాటిక్ ఫంక్షన్సు వలె పరిగణించబడును." + +#: C/gtk-doc-manual.xml:972(para) +msgid "Also, take a look at gobject introspection annotation tags: http://live.gnome.org/GObjectIntrospection/Annotations" +msgstr "" +"gobject యింట్రోస్పెక్షన్ యెన్నోయేషన్ టాగ్స్ వద్ద కూడా చూడండి: " +"http://live.gnome.org/GObjectIntrospection/Annotations" + +#: C/gtk-doc-manual.xml:1003(title) +msgid "Function tags" +msgstr "ఫంక్షన్ టాగ్లు" + +#: C/gtk-doc-manual.xml:1004(term) +msgid "Returns:" +msgstr "తిరిగివచ్చినవి:" + +#: C/gtk-doc-manual.xml:1006(para) +msgid "Paragraph describing the returned result." +msgstr "పారాగ్రాఫ్ తిరిగివచ్చిన ఫలితాన్ని వివరిస్తుంది." + +#: C/gtk-doc-manual.xml:1011(term) +msgid "@...:" +msgstr "@...:" + +#: C/gtk-doc-manual.xml:1013(para) +msgid "In case the function has variadic arguments, you should use this tag (@Varargs: does also work for historic reasons)." +msgstr "" +"ఒకవేళ ఫంక్షన్ వేరియాడిక్ ఆర్గుమెంట్లను కలిగివుంటే, మీరు ఈ టాగ్‌ను వుపయోగించాలి (@Varargs: చారిత్రక కారణాలకు " +"కూడా పనిచేయును)." + +#: C/gtk-doc-manual.xml:1023(title) C/gtk-doc-manual.xml:1025(title) +msgid "Property comment block" +msgstr "లక్షణము వ్యాఖ్యాము బ్లాక్" + +#: C/gtk-doc-manual.xml:1040(title) C/gtk-doc-manual.xml:1059(title) +msgid "Signal comment block" +msgstr "సంకేతపు వ్యాఖ్యానము బ్లాక్" + +#: C/gtk-doc-manual.xml:1046(para) +msgid "Document when the signal is emitted and whether it is emitted before or after other signals." +msgstr "సంకేతము యెప్పుడు వెలువడింది మరియు అది సంకేతముల ముందు వెలువడిందా లేదా తర్వాత అనేది పత్రికీకరణ చేయును." + +#: C/gtk-doc-manual.xml:1052(para) +msgid "Document what an application might do in the signal handler." +msgstr "సంకేత సంభాలిక నందు వొక అనువర్తనము యేమి చేయవచ్చును అనే పత్రము." + +#: C/gtk-doc-manual.xml:1079(title) C/gtk-doc-manual.xml:1080(title) +msgid "Struct comment block" +msgstr "Struct వ్యాఖ్యానము బ్లాక్" + +#: C/gtk-doc-manual.xml:1100(para) +msgid "Use /*< private >*/ before the private struct fields you want to hide. Use /*< public >*/ for the reverse behavirour." +msgstr "మీరు మరుగున వుంచాలని అనుకొంటే private struct క్షేత్రముల ముందు /*< private >*/ వుపయోగించు. విలోమ ప్రవర్తన కొరకు /*< public >*/ వుపయోగించు." + +#: C/gtk-doc-manual.xml:1108(title) C/gtk-doc-manual.xml:1109(title) +msgid "Enum comment block" +msgstr "Enum వ్యాఖ్యానము బ్లాక్" + +#: C/gtk-doc-manual.xml:1130(para) +msgid "Use /*< private >*/ before the private enum values you want to hide. Use /*< public >*/ for the reverse behavirour." +msgstr "మీరు మరుగున వుంచాలని అనుకొంటే private enum విలువుల ముందు /*< private >*/ వుపయోగించు. విలోమ ప్రవర్తన కొరకు /*< public >*/ వుపయోగించు." + +#: C/gtk-doc-manual.xml:1140(title) +msgid "Useful DocBook tags" +msgstr "ఉపయోగకర DocBook టాగ్స్" + +#: C/gtk-doc-manual.xml:1142(para) +msgid "Here are some DocBook tags which are most useful when documenting the code." +msgstr "కోడ్‌ను పత్రికీకరణ చేయునప్పుడు యెక్కువ వుపయోగకరంగా వుండే మరికొన్ని DocBook టాగ్స్ యిక్కడ వున్నాయి." + +#: C/gtk-doc-manual.xml:1147(para) +msgid "To link to another section in the GTK docs: The linkend is the SGML/XML id on the top item of the page you want to link to. For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and then the page title (\"Hash Tables\"). For widgets it is just the class name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "GTK docs నందు వేరొక విభాగమునకు లింకు చేయుటకు: మీరు లింకు యేర్పరచాలని కొరుకొనుచున్న పేజీ యొక్క పై అంశముపై SGML/XML idయే linkend. చాలా పేజీలకు ప్రస్తుతం యిదే పార్ట్ (\"gtk\", \"gdk\", \"glib\") మరియు పేజీ శీర్షిక (\"Hash Tables\"). విడ్జట్లకు యిది క్లాస్ నామము మాత్రమే. SGML/XML నిర్ధారించుటకు ఖాళీలు మరియు అండర్‌స్కోర్లు '-'గా మార్చబడినవి." + +#: C/gtk-doc-manual.xml:1163(para) +msgid "To refer to an external function, e.g. a standard C function: " +msgstr "బాహ్య ఫంక్షన్‌ను సూచించుటకు, ఉ.దా. ప్రామాణిక C ఫంక్షన్: " + +#: C/gtk-doc-manual.xml:1174(para) +msgid "To include example code: or possibly this, for very short code fragments which don't need a title: For the latter GTK-Doc also supports an abbreviation: " +msgstr "ఉదాహరణ కోడ్‌ను చేర్చుటకు: లేదా, శీర్షిక అవసరములేని చాలా చిన్న కోడ్ ముక్కల కొరకు: తరువాతి GTK-Doc కూడా అబ్రివేషన్‌ను మద్దతించును: " + +#: C/gtk-doc-manual.xml:1208(para) +msgid "To include bulleted lists: " +msgstr "" + +#: C/gtk-doc-manual.xml:1230(para) +msgid "To include a note which stands out from the text: " +msgstr "" + +#: C/gtk-doc-manual.xml:1245(para) +msgid "To refer to a type: " +msgstr "" + +#: C/gtk-doc-manual.xml:1256(para) +msgid "To refer to an external structure (not one described in the GTK docs): " +msgstr "" + +#: C/gtk-doc-manual.xml:1267(para) +msgid "To refer to a field of a structure: " +msgstr "" + +#: C/gtk-doc-manual.xml:1278(para) +msgid "To refer to a class name, we could possibly use: but you'll probably be using #GtkWidget instead (to automatically create a link to the GtkWidget page - see the abbreviations)." +msgstr "" + +#: C/gtk-doc-manual.xml:1291(para) +msgid "To emphasize text: " +msgstr "" + +#: C/gtk-doc-manual.xml:1302(para) +msgid "For filenames use: " +msgstr "" + +#: C/gtk-doc-manual.xml:1313(para) +msgid "To refer to keys use: " +msgstr "" + +#: C/gtk-doc-manual.xml:1328(title) +msgid "Filling the extra files" +msgstr "" + +#: C/gtk-doc-manual.xml:1330(para) +msgid "There are a couple of extra files, that need to be maintained along with the inline source code comments: <package>.types, <package>-docs.sgml, <package>-sections.txt." +msgstr "" + +#: C/gtk-doc-manual.xml:1339(title) +msgid "Editing the types file" +msgstr "" + +#: C/gtk-doc-manual.xml:1341(para) +msgid "If your library or application includes GtkObjects/GObjects, you want their signals, arguments/parameters and position in the hierarchy to be shown in the documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <package>.types file." +msgstr "" + +#: C/gtk-doc-manual.xml:1350(title) +msgid "Example types file snippet" +msgstr "" + +#: C/gtk-doc-manual.xml:1364(para) +msgid "Since GTK-Doc 1.8 gtkdoc-scan can generate this list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in Makefile.am. If you use this approach you should not dist the types file nor have it under version control." +msgstr "" + +#: C/gtk-doc-manual.xml:1373(title) +msgid "Editing the master document" +msgstr "" + +#: C/gtk-doc-manual.xml:1375(para) +msgid "GTK-Doc produces documentation in DocBook SGML/XML. When processing the inline source comments, the GTK-Doc tools generate one documentation page per class or module as a separate file. The master document includes them and place them in a order." +msgstr "" + +#: C/gtk-doc-manual.xml:1382(para) +msgid "While GTK-Doc creates a template master document for you, later run will not touch it again. This means that one can freely structure the documentation. That includes grouping pages and adding extra pages. GTK-Doc has now a test suite, where also the master-document is recreated from scratch. Its a good idea to look at this from time to time to see if there are some new goodies introduced there." +msgstr "" + +#: C/gtk-doc-manual.xml:1392(para) +msgid "Do not create tutorials as extra documents. Just write extra chapters. The benefit of directly embedding the tutorial for your library into the API documentation is that it is easy to link for the tutorial to symbol documentation. Apart chances are higher that the tutorial gets updates along with the library." +msgstr "" + +#: C/gtk-doc-manual.xml:1401(para) +msgid "So what are the things to change inside the master document? For a start is only a little. There are some placeholders (text in square brackets) there which you should take care of." +msgstr "" + +#: C/gtk-doc-manual.xml:1408(title) +msgid "Master document header" +msgstr "" + +#: C/gtk-doc-manual.xml:1430(title) +msgid "Editing the section file" +msgstr "" + +#: C/gtk-doc-manual.xml:1432(para) +msgid "The section file is used to organise the documentation output by GTK-Doc. Here one specifies which symbol belongs to which module or class and control the visibility (public or private)." +msgstr "" + +#: C/gtk-doc-manual.xml:1438(para) +msgid "The section file is a plain test file with xml like syntax (using tags). Blank lines are ignored and lines starting with a '#' are treated as comment lines." +msgstr "" + +#: C/gtk-doc-manual.xml:1444(para) +msgid "The <FILE> ... </FILE> tag is used to specify the file name, without any suffix. For example, using '<FILE>gnome-config</FILE>' will result in the section declarations being output in the template file tmpl/gnome-config.sgml, which will be converted into the DocBook SGML/XML file sgml/gnome-config.sgml or .DocBook XML file xml/gnome-config.xml. (The name of the html file is based on the module name and the section title, or for gobjects it is based on the gobjects class name converted to lower case)." +msgstr "" + +#: C/gtk-doc-manual.xml:1456(para) +msgid "The <TITLE> ... </TITLE> tag is used to specify the title of the section. It is only useful before the templates (if used) are initially created, since the title set in the template file overrides this. Also if one uses SECTION comment in the sources, this is obsolete." +msgstr "" + +#: C/gtk-doc-manual.xml:1463(para) +msgid "You can group items in the section by using the <SUBSECTION> tag. Currently it outputs a blank line between subsections in the synopsis section. You can also use <SUBSECTION Standard> for standard GObject declarations (e.g. the functions like g_object_get_type and macros like G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the documentation. You can also use <SUBSECTION Private> for private declarations which will not be output (It is a handy way to avoid warning messages about unused declarations.). If your library contains private types which you don't want to appear in the object hierarchy and the list of implemented or required interfaces, add them to a Private subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1479(para) +msgid "You can also use <INCLUDE> ... </INCLUDE> to specify the #include files which are shown in the synopsis sections. It contains a comma-separate list of #include files, without the angle brackets. If you set it outside of any sections, it acts for all sections until the end of the file. If you set it within a section, it only applies to that section." +msgstr "" + +#: C/gtk-doc-manual.xml:1493(title) +msgid "Controlling the result" +msgstr "" + +#: C/gtk-doc-manual.xml:1495(para) +msgid "A GTK-Doc run generates report files inside the documentation directory. The generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and <package>-unused.txt. All those are plain text files that can be viewed and postprocessed easily." +msgstr "" + +#: C/gtk-doc-manual.xml:1504(para) +msgid "The <package>-undocumented.txt file starts with the documentation coverage summary. Below are two sections divided by blank lines. The first section lists undocumented or incomplete symbols. The second section does the same for section docs. Incomplete entries are those, which have documentation, but where e.g. a new parameter has been added." +msgstr "" + +#: C/gtk-doc-manual.xml:1513(para) +msgid "The <package>-undeclared.txt file lists symbols given in the <package>-sections.txt but not found in the sources. Check if they have been removed or if they are misspelled." +msgstr "" + +#: C/gtk-doc-manual.xml:1520(para) +msgid "The <package>-unused.txt file lists symbol names, where the GTK-Doc scanner has found documentation, but does not know where to put it. This means that the symbol has not yet been added to the <package>-sections.txt file." +msgstr "" + +#: C/gtk-doc-manual.xml:1528(para) +msgid "Enable or add the line in Makefile.am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during make check run." +msgstr "" + +#: C/gtk-doc-manual.xml:1535(para) +msgid "One can also look at the files produced by the source code scanner: <package>-decl-list.txt and <package>-decl.txt. The first and can be compared with the section file if that is manualy maintained. The second lists all declarations fromt he headers If a symbol is missing one could check if this file contains it." +msgstr "" + +#: C/gtk-doc-manual.xml:1544(para) +msgid "If the project is GObject based, one can also look into the files produced by the object scanner: <package>.args.txt, <package>.hierarchy.txt, <package>.interfaces.txt, <package>.prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask gtkdoc to keep the intermedia scanner file for further analysis, but running it as GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" + +#: C/gtk-doc-manual.xml:1559(title) +msgid "Frequently asked question" +msgstr "" + +#: C/gtk-doc-manual.xml:1563(segtitle) +msgid "Question" +msgstr "" + +#: C/gtk-doc-manual.xml:1564(segtitle) +msgid "Answer" +msgstr "" + +#: C/gtk-doc-manual.xml:1566(seg) +msgid "No class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1568(function) +msgid "xxx_get_type()" +msgstr "" + +#: C/gtk-doc-manual.xml:1569(filename) +msgid "<package>.types" +msgstr "" + +#: C/gtk-doc-manual.xml:1567(seg) +msgid "The objects function has not been entered into the file." +msgstr "" + +#: C/gtk-doc-manual.xml:1573(seg) +msgid "Still no class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1575(filename) C/gtk-doc-manual.xml:1614(filename) C/gtk-doc-manual.xml:1622(filename) C/gtk-doc-manual.xml:1644(filename) +msgid "<package>-sections.txt" +msgstr "" + +#: C/gtk-doc-manual.xml:1576(ulink) +msgid "explanation" +msgstr "" + +#: C/gtk-doc-manual.xml:1574(seg) +msgid "Missing or wrong naming in file (see )." +msgstr "" + +#: C/gtk-doc-manual.xml:1580(seg) +msgid "Damn, I have still no class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1582(type) C/gtk-doc-manual.xml:1623(type) +msgid "GtkWidget" +msgstr "" + +#: C/gtk-doc-manual.xml:1581(seg) +msgid "Is the object name (name of the instance struct, e.g. ) part of the normal section (don't put this into Standard or Private subsections)." +msgstr "" + +#: C/gtk-doc-manual.xml:1588(seg) +msgid "No symbol index." +msgstr "" + +#: C/gtk-doc-manual.xml:1590(filename) C/gtk-doc-manual.xml:1605(filename) C/gtk-doc-manual.xml:1631(filename) +msgid "<package>-docs.{xml,sgml}" +msgstr "" + +#: C/gtk-doc-manual.xml:1589(seg) +msgid "Does the contain a index that xi:includes the generated index?" +msgstr "" + +#: C/gtk-doc-manual.xml:1595(seg) +msgid "Symbols are not linked to their doc-section." +msgstr "" + +#: C/gtk-doc-manual.xml:1596(seg) +msgid "Is the doc-comment using the correct markup (added #,% or ())? Check if the gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" + +#: C/gtk-doc-manual.xml:1602(seg) +msgid "A new class does not appear in the docs." +msgstr "" + +#: C/gtk-doc-manual.xml:1603(seg) +msgid "Is the new page xi:included from ." +msgstr "" + +#: C/gtk-doc-manual.xml:1609(seg) +msgid "A new symbol does not appear in the docs." +msgstr "" + +#: C/gtk-doc-manual.xml:1610(seg) +msgid "Is the doc-comment properly formatted. Check for spelling mistakes in the begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable xrefs. Check if the symbol is correctly listed in the in a public subsection." +msgstr "" + +#: C/gtk-doc-manual.xml:1618(seg) +msgid "A type is missing from the class hierarchy." +msgstr "" + +#: C/gtk-doc-manual.xml:1620(filename) +msgid "<package>.hierarchy" +msgstr "" + +#: C/gtk-doc-manual.xml:1621(filename) +msgid "xml/tree_index.sgml" +msgstr "" + +#: C/gtk-doc-manual.xml:1619(seg) +msgid "If the type is listed in but not in then double check that the type is correctly placed in the . If the type instance (e.g. ) is not listed or incidentialy makred private it will not be shown." +msgstr "" + +#: C/gtk-doc-manual.xml:1628(seg) +msgid "I get foldoc links for all gobject annotations." +msgstr "" + +#: C/gtk-doc-manual.xml:1630(filename) +msgid "xml/annotation-glossary.xml" +msgstr "" + +#: C/gtk-doc-manual.xml:1629(seg) +msgid "Check that is xi:included from ." +msgstr "" + +#: C/gtk-doc-manual.xml:1637(seg) +msgid "Parameter described in source code comment block but does not exist" +msgstr "" + +#: C/gtk-doc-manual.xml:1638(seg) +msgid "Check if the prototype in the header has different parameter names as in the source." +msgstr "" + +#: C/gtk-doc-manual.xml:1643(seg) +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "" + +#: C/gtk-doc-manual.xml:1644(seg) +msgid "Symbol XYZ appears twice in file." +msgstr "" + +#: C/gtk-doc-manual.xml:1647(seg) +msgid "Element typename in namespace '' encountered in para, but no template matches." +msgstr "" + +#: C/gtk-doc-manual.xml:12(releaseinfo) +msgid "Version 1.1, March 2000" +msgstr "" + +#: C/gtk-doc-manual.xml:16(year) +msgid "2000" +msgstr "" + +#: C/gtk-doc-manual.xml:16(holder) +msgid "Free Software Foundation, Inc." +msgstr "" + +#: C/gtk-doc-manual.xml:19(para) +msgid "
    Free Software Foundation, Inc. 51 Franklin Street, Suite 330, Boston, MA02110-1301USA
    Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed." +msgstr "" + +#: C/gtk-doc-manual.xml:28(title) +msgid "GNU Free Documentation License" +msgstr "" + +#: C/gtk-doc-manual.xml:31(title) +msgid "0. PREAMBLE" +msgstr "" + +#: C/gtk-doc-manual.xml:32(para) +msgid "The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others." +msgstr "" + +#: C/gtk-doc-manual.xml:43(para) +msgid "This License is a kind of copyleft, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software." +msgstr "" + +#: C/gtk-doc-manual.xml:50(para) +msgid "We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference." +msgstr "" + +#: C/gtk-doc-manual.xml:62(title) +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "" + +#: C/gtk-doc-manual.xml:63(para) +msgid "This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The Document, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as you." +msgstr "" + +#: C/gtk-doc-manual.xml:72(para) +msgid "A Modified Version of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language." +msgstr "" + +#: C/gtk-doc-manual.xml:79(para) +msgid "A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them." +msgstr "" + +#: C/gtk-doc-manual.xml:94(para) +msgid "The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:103(para) +msgid "The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/gtk-doc-manual.xml:111(para) +msgid "A Transparent copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not Transparent is called Opaque." +msgstr "" + +#: C/gtk-doc-manual.xml:128(para) +msgid "Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only." +msgstr "" + +#: C/gtk-doc-manual.xml:141(para) +msgid "The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, Title Page means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text." +msgstr "" + +#: C/gtk-doc-manual.xml:153(title) +msgid "2. VERBATIM COPYING" +msgstr "" + +#: C/gtk-doc-manual.xml:154(para) +msgid "You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3." +msgstr "" + +#: C/gtk-doc-manual.xml:169(para) +msgid "You may also lend copies, under the same conditions stated above, and you may publicly display copies." +msgstr "" + +#: C/gtk-doc-manual.xml:176(title) +msgid "3. COPYING IN QUANTITY" +msgstr "" + +#: C/gtk-doc-manual.xml:177(para) +msgid "If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:195(para) +msgid "If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages." +msgstr "" + +#: C/gtk-doc-manual.xml:202(para) +msgid "If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public." +msgstr "" + +#: C/gtk-doc-manual.xml:222(para) +msgid "It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document." +msgstr "" + +#: C/gtk-doc-manual.xml:231(title) +msgid "4. MODIFICATIONS" +msgstr "" + +#: C/gtk-doc-manual.xml:232(para) +msgid "You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:" +msgstr "" + +#: C/gtk-doc-manual.xml:248(title) +msgid "A" +msgstr "" + +#: C/gtk-doc-manual.xml:249(para) +msgid "Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission." +msgstr "" + +#: C/gtk-doc-manual.xml:264(title) +msgid "B" +msgstr "" + +#: C/gtk-doc-manual.xml:265(para) +msgid "List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five)." +msgstr "" + +#: C/gtk-doc-manual.xml:279(title) +msgid "C" +msgstr "" + +#: C/gtk-doc-manual.xml:280(para) +msgid "State on the Title Page the name of the publisher of the Modified Version, as the publisher." +msgstr "" + +#: C/gtk-doc-manual.xml:291(title) +msgid "D" +msgstr "" + +#: C/gtk-doc-manual.xml:292(para) +msgid "Preserve all the copyright notices of the Document." +msgstr "" + +#: C/gtk-doc-manual.xml:301(title) +msgid "E" +msgstr "" + +#: C/gtk-doc-manual.xml:302(para) +msgid "Add an appropriate copyright notice for your modifications adjacent to the other copyright notices." +msgstr "" + +#: C/gtk-doc-manual.xml:311(title) +msgid "F" +msgstr "" + +#: C/gtk-doc-manual.xml:312(para) +msgid "Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below." +msgstr "" + +#: C/gtk-doc-manual.xml:324(title) +msgid "G" +msgstr "" + +#: C/gtk-doc-manual.xml:325(para) +msgid "Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:337(title) +msgid "H" +msgstr "" + +#: C/gtk-doc-manual.xml:338(para) +msgid "Include an unaltered copy of this License." +msgstr "" + +#: C/gtk-doc-manual.xml:346(title) +msgid "I" +msgstr "" + +#: C/gtk-doc-manual.xml:347(para) +msgid "Preserve the section entitled History, and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled History in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence." +msgstr "" + +#: C/gtk-doc-manual.xml:365(title) +msgid "J" +msgstr "" + +#: C/gtk-doc-manual.xml:366(para) +msgid "Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the History section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission." +msgstr "" + +#: C/gtk-doc-manual.xml:383(title) +msgid "K" +msgstr "" + +#: C/gtk-doc-manual.xml:384(para) +msgid "In any section entitled Acknowledgements or Dedications, preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein." +msgstr "" + +#: C/gtk-doc-manual.xml:396(title) +msgid "L" +msgstr "" + +#: C/gtk-doc-manual.xml:397(para) +msgid "Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles." +msgstr "" + +#: C/gtk-doc-manual.xml:409(title) +msgid "M" +msgstr "" + +#: C/gtk-doc-manual.xml:410(para) +msgid "Delete any section entitled Endorsements. Such a section may not be included in the Modified Version." +msgstr "" + +#: C/gtk-doc-manual.xml:421(title) +msgid "N" +msgstr "" + +#: C/gtk-doc-manual.xml:422(para) +msgid "Do not retitle any existing section as Endorsements or to conflict in title with any Invariant Section." +msgstr "" + +#: C/gtk-doc-manual.xml:432(para) +msgid "If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles." +msgstr "" + +#: C/gtk-doc-manual.xml:444(para) +msgid "You may add a section entitled Endorsements, provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard." +msgstr "" + +#: C/gtk-doc-manual.xml:453(para) +msgid "You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one." +msgstr "" + +#: C/gtk-doc-manual.xml:470(para) +msgid "The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" + +#: C/gtk-doc-manual.xml:480(title) +msgid "5. COMBINING DOCUMENTS" +msgstr "" + +#: C/gtk-doc-manual.xml:481(para) +msgid "You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice." +msgstr "" + +#: C/gtk-doc-manual.xml:492(para) +msgid "The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work." +msgstr "" + +#: C/gtk-doc-manual.xml:505(para) +msgid "In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled History; likewise combine any sections entitled Acknowledgements, and any sections entitled Dedications. You must delete all sections entitled Endorsements." +msgstr "" + +#: C/gtk-doc-manual.xml:516(title) +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "" + +#: C/gtk-doc-manual.xml:517(para) +msgid "You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects." +msgstr "" + +#: C/gtk-doc-manual.xml:527(para) +msgid "You may extract a single document from such a collection, and dispbibute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document." +msgstr "" + +#: C/gtk-doc-manual.xml:537(title) +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "" + +#: C/gtk-doc-manual.xml:538(para) +msgid "A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an aggregate, and this License does not apply to the other self-contained works thus compiled with the Document , on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate." +msgstr "" + +#: C/gtk-doc-manual.xml:561(title) +msgid "8. TRANSLATION" +msgstr "" + +#: C/gtk-doc-manual.xml:562(para) +msgid "Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail." +msgstr "" + +#: C/gtk-doc-manual.xml:580(title) +msgid "9. TERMINATION" +msgstr "" + +#: C/gtk-doc-manual.xml:581(para) +msgid "You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document 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." +msgstr "" + +#: C/gtk-doc-manual.xml:594(title) +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "" + +#: C/gtk-doc-manual.xml:595(para) +msgid "The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" + +#: C/gtk-doc-manual.xml:606(para) +msgid "Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License or any later version applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" + +#: C/gtk-doc-manual.xml:621(title) +msgid "Addendum" +msgstr "" + +#: C/gtk-doc-manual.xml:622(para) +msgid "To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:" +msgstr "" + +#: C/gtk-doc-manual.xml:629(para) +msgid "Copyright YEAR YOUR NAME." +msgstr "" + +#: C/gtk-doc-manual.xml:632(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License." +msgstr "" + +#: C/gtk-doc-manual.xml:647(para) +msgid "If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" + +#: C/gtk-doc-manual.xml:657(para) +msgid "If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software." +msgstr "" + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 +#: C/gtk-doc-manual.xml:0(None) +msgid "translator-credits" +msgstr "" + diff --git a/help/manual/te/te.stamp b/help/manual/te/te.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/te/te.stamp diff --git a/help/manual/zh_CN/fdl-appendix.xml b/help/manual/zh_CN/fdl-appendix.xml new file mode 100644 index 0000000..1aae724 --- /dev/null +++ b/help/manual/zh_CN/fdl-appendix.xml @@ -0,0 +1,621 @@ + + + + + + Version 1.1, March 2000 + + + 2000自由软件基金会, Inc. + + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU 自由文档许可证 + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. 修改 + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    diff --git a/help/manual/zh_CN/index.docbook b/help/manual/zh_CN/index.docbook new file mode 100644 index 0000000..10352de --- /dev/null +++ b/help/manual/zh_CN/index.docbook @@ -0,0 +1,2642 @@ + + + + +included"> +]> + + + + GTK-Doc 手册 + 1.24.1 + 为开发人员提供 GTK-Doc 用法说明的用户手册。 + + Chris Lyttle
    chris@wilddev.net
    + Dan Mueth
    d-mueth@uchicago.edu
    + + Stefan + Sauer (Kost) + +
    + ensonic@users.sf.net +
    +
    +
    +
    + GTK-Doc 项目
    gtk-doc-list@gnome.org
    + 2000, 2005 Dan Mueth and Chris Lyttle + + 2007-2015 + Stefan Sauer (Kost) + + + + + + 允许在GNU 自由文档认证书的规范下复制,发布或者/并且修改本文档,由自由软件基金会出版的1.1版或更新版本的无变更的部分,无封面文本,以及无背面文本。取得证书的制件included. + 公司使用的区别于它们的许多产品及服务的名字就称为商标. 这些名字出现在任何GNOME文档中, 而且那些商标会提示GNOME文档项目成员, 那些名字会打印在封面或初始页面中. + + + + + 1.28 + 24 Mar 2018 + ss + bug fixes + + + 1.27 + 07 Dec 2017 + ss + fine tuning of the python port + + + 1.26 + 11 Aug 2017 + ss + port all tools from perl/bash to python + + + 1.25 + 21 March 2016 + ss + bug fixes, test cleanups + + + 1.24 + 29 May 2015 + ss + bug fix + + + 1.23 + 17 May 2015 + ss + bug fix + + + 1.22 + 07 May 2015 + ss + bug fixes, dropping deprecated features + + + 1.21 + 17 Jul 2014 + ss + bug fixes, dropping deprecated features + + + 1.20 + 16 Feb 2014 + ss + bug fixes, markdown support, style improvements + + + 1.19 + 05 Jun 2013 + ss + bug fixes + + + 1.18 + 14 Sep 2011 + ss + bug fixes, speedups, markdown support + + 1.17 2011年2月26 sk 紧急问题修复更新 + 1.16 2011年1月14 sk 修复问题,布局改进 + 1.15 2010年5月21 sk 问题和退化修复 + 1.14 2010年3月28 sk 问题修复和性能提高 + 1.13 2009年10月18 sk 损坏的档案包更新 + 1.12 2009年10月18 sk 新工具功能和问题修复 + 1.11 2008年10月16 mal GNOME doc-utils 迁移 + + + + + + LuYanbo + + 767344148@qq.com + + + + 2011 + + LuYanbo + + + + + 黄世海 + + rochester_h@163.com + + + + 2012 + + 黄世海 + + + + + Wylmer Wang + + wantinghard@gmail.com + + + + 2012 + + Wylmer Wang + +
    + + + + + 介绍 + + 本章介绍 GTK-Doc,并概述了它是什么以及如何使用它。 + + + 什么是 GTK-Doc? + + GTK-Doc 用于为C代码编写文档。典型地用于编写库的公共API,如GTK+与GNOME库。不过它也可以用于书写应用程序代码文档。 + + + + GTK Doc 是怎样工作的? + + + GTK-Doc works by using documentation of functions placed inside the source files in + specially-formatted comment blocks, or documentation added to the template files + which GTK-Doc uses (though note that GTK-Doc will only document functions that + are declared in header files; it won't produce output for static functions). + + + + GTK-Doc consists of a number of python scripts, each performing a different step + in the process. + + + 这个进程有五个主要步骤: + + + + + + Writing the documentation. + + The author fills in the source files with the documentation for each + function, macro, union etc. (In the past information was entered in + generated template files, which is not recommended anymore). + + + + + + Gathering information about the code. + + gtkdoc-scan scans the header files of the + code looking for declarations of functions, macros, enums, structs, and unions. + It creates the file <module>-decl-list.txt containing a list of the + declarations, placing them into sections according to which header file they + are in. On the first run this file is copied to <module>-sections.txt. + The author can rearrange the sections, and the order of the + declarations within them, to produce the final desired order. + The second file it generates is <module>-decl.txt. + This file contains the full declarations found by the scanner. If for + some reason one would like some symbols to show up in the docs, where + the full declaration cannot be found by the scanner or the declaration + should appear differently, one can place entities similar to the ones in + <module>-decl.txt into <module>-overrides.txt. + + + gtkdoc-scangobj can also be used to dynamically query a library about + any GObject subclasses it exports. It saves information about each + object's position in the class hierarchy and about any GObject properties + and signals it provides. + + + gtkdoc-scanobj should not be used anymore. + It was needed in the past when GObject was still GtkObject inside gtk+. + + + + + + Generating the XML and HTML/PDF. + + gtkdoc-mkdb turns the template files into + XML files in the xml/ subdirectory. + If the source code contains documentation on functions, using the + special comment blocks, it gets merged in here. If there are no tmpl files used + it only reads docs from sources and introspection data. + + + gtkdoc-mkhtml turns the XML files into HTML + files in the html/ subdirectory. + Likewise gtkdoc-mkpdf turns the XML files into a PDF + document called <package>.pdf. + + + Files in xml/ and + html/ directories are always + overwritten. One should never edit them directly. + + + + + + Fixing up cross-references between documents. + + After installing the HTML files, gtkdoc-fixxref can be run to fix up any + cross-references between separate documents. For example, the GTK+ + documentation contains many cross-references to types documented in the GLib manual. + + When creating the source tarball for distribution, gtkdoc-rebase + turns all external links into web-links. When installing distributed (pregenerated) docs + the same application will try to turn links back to local links + (where those docs are installed). + + + + + + + + 获取 GTK-Doc + + + 要求 + + python 2/3 - the main scripts are written in python. + + + xsltproc - the xslt processor from libxslt + xmlsoft.org/XSLT/ + + + docbook-xsl - the docbook xsl stylesheets + sourceforge.net/projects/docbook/files/docbook-xsl + + + One of source-highlight, highlight or + vim - optional - used for syntax highlighting of examples + + + + + + 关于 GTK-Doc + + + (FIXME) + + + + (History, authors, web pages, mailing list, license, future plans, + comparison with other similar systems.) + + + + + + 关于此手册 + + + (FIXME) + + + (它意味着什么,你可以从哪里获得它, 许可证) + + + + + + + 设置您的项目 + + + The next sections describe what steps to perform to integrate GTK-Doc into + your project. Theses sections assume we work on a project called 'meep'. + This project contains a library called 'libmeep' and + an end-user app called 'meeper'. We also assume you will be using autoconf + and automake. In addition section plain + makefiles or other build systems will describe the basics needed to + work in a different build setup. + + + + 设置一个框架文档 + + + Under your top-level project directory create folders called docs/reference + (this way you can also have docs/help for end-user documentation). + It is recommended to create another subdirectory with the name of the doc-package. + For packages with just one library this step is not necessary. + + + 目录结构将会如下所示:范例目录结构 + + + + + + 与autoconf集成 + + 非常容易!只需在您的 configure.ac 脚本中添加一行。 + + + 与autoconf集成 + + + + + + This will require all developers to have gtk-doc installed. If it is + okay for your project to have optional api-doc build setup, you can + solve this as below. Keep it as is, as gtkdocize is looking for + GTK_DOC_CHECK at the start of a line. + Keep gtk-doc optional + + + + + + The first argument is used to check for the gtkdocversion at configure time. + The 2nd, optional argument is used by gtkdocize. + The GTK_DOC_CHECK macro also adds several configure switches: + + + --with-html-dir=PATH : 安装文档的路径 + --enable-gtk-doc : 用gtk-doc构建文档[默认值:no] + --enable-gtk-doc-html :用html格式构建文档[默认值:yes] + --enable-gtk-doc-pdf : 以PDF格式构建文档[默认值:no] + + + + GTK-Doc在默认情况下是关闭的!请记得给文本configure运作时传递选项。否则,将会安装预先生成的文档(对用户有意义但对开发人员没用处)。 + + + + Furthermore it is recommended that you have the following line inside + your configure.ac script. + This allows gtkdocize to automatically copy the + macro definition for GTK_DOC_CHECK to your project. + + + + 准备gtkdocize + + + + + After all changes to configure.ac are made, update + the configure file. This can be done by re-running + autoreconf -i or autogen.sh. + + + + + 与automake集成 + + + First copy the Makefile.am from the + examples sub directory of the + gtkdoc-sources + to your project's API documentation directory ( + ./docs/reference/<package>). + A local copy should be available under e.g. + /usr/share/doc/gtk-doc-tools/examples/Makefile.am. + If you have multiple doc-packages repeat this for each one. + + + + The next step is to edit the settings inside the Makefile.am. + All the settings have a comment above that describes their purpose. + Most settings are extra flags passed to the respective tools. Every tool + has a variable of the form . + All the tools support to list the supported + parameters. + + + + + + + + 与autogen集成 + + + Most projects will have an autogen.sh script to + setup the build infrastructure after a checkout from version control + system (such as cvs/svn/git). GTK-Doc comes with a tool called + gtkdocize which can be used in such a script. + It should be run before autoheader, automake or autoconf. + + + + 从autogen.sh中运行gtkdocize + + + + + + When running gtkdocize it copies + gtk-doc.make to your project root (or any directory + specified by the option). + It also checks you configure script for the GTK_DOC_CHECK + invocation. This macro can be used to pass extra parameters to + gtkdocize. + + + + Historically GTK-Doc was generating template files where developers entered the docs. + This turned out to be not so good (e.g. the need for having generated + files under version control). + Since GTK-Doc 1.9 the tools can get all the information from source comments + and thus the templates can be avoided. We encourage people to keep + documentation in the code. gtkdocize supports now + a option that chooses a makefile that skips + tmpl usage totally. Besides adding the option directly to the command + invocation, they can be added also to an environment variable called GTKDOCIZE_FLAGS + or set as a 2nd parameter in GTK_DOC_CHECK macro in the configure script. + If you have never changed file in tmpl by hand and migrating from older gtkdoc versions, + please remove the directory (e.g. from version control system). + + + + + 运行文档构建 + + + After the previous steps it's time to run the build. First we need to + rerun autogen.sh. If this script runs configure for + you, then give it the option. + Otherwise manually run configure with this option + afterwards. + + + The first make run generates several additional files in the doc-directories. + The important ones are: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt. + + + 运行文档构建 + + + + + Now you can point your browser to docs/reference/<package>/index.html. + Yes, it's a bit disappointing still. But hang-on, during the next chapter we + tell you how to fill the pages with life. + + + + + 与版本控制系统集成 + + + As a rule of thumb, it's the files you edit which should go under + version control. For typical projects it's these files: + <package>.types, + <package>-docs.xml (in the past .sgml), + <package>-sections.txt, + Makefile.am. + + + Files in the xml/ and html/ + directories should not go under version control. Neither should any of + the .stamp files. + + + + + 与普通makefile或其它构建系统整合 + + + In the case one does not want to use automake and therefore + gtk-doc.mak one will need to call the gtkdoc tools + in the right order in own makefiles (or other build tools). + + + + 文档构建步骤 + +gtkdoc-scangobj --module=$(DOC_MODULE) +gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir= +// xml files have changed +mkdir html +cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml +gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html +]]> + + + + 您必须查阅Makefile.amgtk-doc.mak以获取所须的额外选项。 + + + + Integration with CMake build systems + + + GTK-Doc now provides a GtkDocConfig.cmake module + (and the corresponding GtkDocConfigVersion.cmake + module). This provides a gtk_doc_add_module + command that you can set in your CMakeLists.txt + file. + + + + The following example shows how to use this command. + Example of using GTK-Doc from CMake + + + + + + + + 编写代码文档 + + + GTK-Doc uses source code comment with a special syntax for code documentation. + Further it retrieves information about your project structure from other + sources. During the next section you will find all information about the + syntax of the comments. + + + + 文档位置 + 在过去,多数文档不得不写入驻留在tmpl目录的文件中。这样会出现一些糟糕的情况:其信息常常没有更新,而且文件也倾向于与版本控制系统发生冲突。 + 为避免上述的问题,我们建议把注释文档放入源代码中去。本手册仅描述此种编写代码文档的方法。 + + + + The scanner can handle the majority of C headers fine. In the case of + receiving warnings from the scanner that look like a special case, one can + hint GTK-Doc to skip over them. + GTK-Doc comment block + + + + + + Limitations + + Note, that GTK-Doc's supports + #ifndef(__GTK_DOC_IGNORE__) but not + #if !defined(__GTK_DOC_IGNORE__) or other combinations. + + + + + + + 文档注释 + + + A multiline comment that starts with an additional '*' marks a + documentation block that will be processed by the GTK-Doc tools. + GTK-Doc comment block + + + + + + The 'identifier' is one line with the name of the item the comment is + related to. The syntax differs a little depending on the item. + (TODO add table showing identifiers) + + + + The 'documentation' block is also different for each symbol type. Symbol + types that get parameters such as functions or macros have the parameter + description first followed by a blank line (just a '*'). + Afterwards follows the detailed description. All lines (outside program + listings and CDATA sections) just containing a ' *' (blank-asterisk) are + converted to paragraph breaks. + If you don't want a paragraph break, change that into ' * ' + (blank-asterisk-blank-blank). This is useful in preformatted text (code + listings). + + + + + When documenting code, describe two aspects: + + + + What it is: The name for a class or function can sometimes + be misleading for people coming from a different background. + + + + + What it does: Tell about common uses. Put it in relation + with the other API. + + + + + + + 与纯文本相比,超文本的优势在于可以在文档内部有链接。但为一个链接编写正确的标记可能是件枯燥的差事。GTK-Doc提供了几个有用的简化方法帮你解决这个麻烦。 + + 用function()来指示带有参数的函数或宏。 + + + 用@param指示参数。同样也可以指示其它函数的参数,与所描述的对象有关。 + + + 用%constant指示常量,比如:%G_TRAVERSE_LEAFS。 + + + 用#symbol指示其它符号类型,比如:结构,枚举与不带参数的宏。 + + + + Use #Object::signal to refer to a GObject signal. + + + + + Use #Object:property to refer to a GObject property. + + + + + Use #Struct.field to refer to a field inside a structure and + #GObjectClass.foo_bar() to refer to a vmethod. + + + + + + 如果你要在文档里面使用一些特殊的字符'<', '>', '()', '@', '%', or '#' 且不用GTK-Doc来修改它们,你可以相应地用XML 实体 "&lt;", "&gt;", "&lpar;", "&rpar;", "&commat;", "&percnt;" 以及 "&num;"或者用一个反斜线'\'来转义它们。 + + + + DocBook can do more than just links. One can also have lists, + examples, headings, and images. As of version 1.20, the + preferred way is to use a subset of the basic text formatting + syntax called + Markdown. + On older GTK-Doc versions any documentation that includes + Markdown will be rendered as is. For example, list items will + appear as lines starting with a dash. + + + + While markdown is now preferred one can mix both. One limitation here is + that one can use docbook xml within markdown, but markdown within + docbook xml is not supported. + + + + In older GTK-Doc releases, if you need support for additional + formatting, you would need to enable the usage of docbook + XML tags inside doc-comments by putting + (or ) in the variable + MKDB_OPTIONS inside Makefile.am. + + + + GTK-Doc comment block using Markdown + + * GtkWidget *label = gtk_label_new ("Gorgeous!"); + * ]| + */ +]]> + + + + + More examples of what markdown tags are supported can be found in the + GTK+ Documentation Markdown Syntax Reference. + + + + 如早先所述,GTK-Doc是为编写公共的API而作的。所以你不能够为静态符号编写文档。尽管如此,它也可以很好地为那些符号作注释。这有助于他人理解你的代码。因此我们建议你用普通的注释来注释它们(不使用第一行的第二个'*'号)。如果以后函数须要作为public,你须做的只是在注释块中加入另一个 '*'号并且在区段文件里插入正确的标识符名称。 + + + + + 文档章节 + + 文档的每个章节都包含着关于一个类或模块的信息。要介绍它的组件,你可以编写一节注释块。在内容表格中也可以使用简短的描述。所有的@fields都是可选的。 + + + 节注释块 + + + + + + + SECTION:<name> + + + The name links the section documentation to the respective part in + the <package>-sections.txt file. The + name given here should match the <FILE> tag in the + <package>-sections.txt file. + + + + + @short_description + + 该节的单行描述,不久将出现在TOC里的链接后和该节页面的顶部。 + + + + @title + + 段落的标题在SECTION声明里默认是 <name> 。它可以由@title字段替换。 + + + + @section_id + + 替换标题的用途作为一个段落指示器。对于GObjects,<title>用作section_id且对于其它的段落它是<MODULE>-<title>。 + + + + @see_also + + 与本节相关的标识符。 + + + + @stability + + + An informal description of the stability level this API has. + We recommend the use of one of these terms: + + + + Stable + - The intention of a Stable interface is to enable arbitrary + third parties to develop applications to these interfaces, + release them, and have confidence that they will run on all + minor releases of the product (after the one in which the + interface was introduced, and within the same major release). + Even at a major release, incompatible changes are expected + to be rare, and to have strong justifications. + + + + + Unstable + - Unstable interfaces are experimental or transitional. + They are typically used to give outside developers early + access to new or rapidly changing technology, or to provide + an interim solution to a problem where a more general + solution is anticipated. + No claims are made about either source or binary + compatibility from one minor release to the next. + + + + + Private + - An interface that can be used within the GNOME stack + itself, but that is not documented for end-users. Such + functions should only be used in specified and documented + ways. + + + + + Internal + - An interface that is internal to a module and does not + require end-user documentation. Functions that are + undocumented are assumed to be Internal. + + + + + + + + @include + + + The #include files to show in the section + synopsis (a comma separated list), overriding the global + value from the section + file or command line. This item is optional. + + + + + @image + + 本章节的参考页顶部显示的图像。这常常是某些用于阐释一个类或者图表与其它类之间关系的可视化图示。这个项是可选的。 + + + + + + 为避免不必要的重编译,在文档改动后尽可能把段落文档放入C代码中合适的位置。 + + + + + + 编写符号文档 + + 每个符号(函数,宏,结构,枚举,信号及属性)都在各自独立的块中描述。这些块最好放置于接近标识符定义的地方,这样可以容易地让它们保持同步。因此函数通常在C代码中定义,宏和结构及枚举在头文件里定义。 + + 一般标记 + + 你可以为所有的文档元素加入版本信息,表明何时引入或废弃了某个API。 + + 版本标记 + 始于: + + 描述从哪个版本的代码开始加入了该API。 + + + 废弃: + + 表明这个函数不应再使用的一段文档。描述文字应向读者介绍新的API。 + + + + + + You can also add stability information to all documentation elements + to indicate whether API stability is guaranteed for them for all + future minor releases of the project. + + + + The default stability level for all documentation elements can be set + by passing the argument to + gtkdoc-mkdb with one of the values below. + + + Stability Tags + Stability: Stable + + + Mark the element as stable. This is for public APIs which are + guaranteed to remain stable for all future minor releases of the + project. + + + + Stability: Unstable + + + Mark the element as unstable. This is for public APIs which are + released as a preview before being stabilised. + + + + Stability: Private + + + Mark the element as private. This is for interfaces which can be + used by tightly coupled modules, but not by arbitrary third + parties. + + + + + + 一般标记 + + + + + Annotations + + + Documentation blocks can contain annotation-tags. These tags will be + rendered with tooltips describing their meaning. The tags are used by + gobject-introspection to generate language bindings. A detailed list + of the supported tags can be found on + the wiki. + + + Annotations + + + + + 函数注释块 + + 请记得: + + 描述返回的对象、列表、字符串等是否应释放内存(freed)/解除引用/释放(released)。 + + + 描述参数可否为NULL,如果是的话会发生什么。 + + + 在适当时提及相关的前提条件与后续条件。 + + + + Gtk-doc 假定所有以'_'符开头的符号(宏,函数)是私有的并视它们为静态函数。 + + 函数注释块 + + + + 函数标记 + 返回值: + + 描述返回结果的段落。 + + + @...: + + 如果函数有变长参数列表,你应当使用这个标记(@Varargs: 由于历史原因确实也管用)。 + + + + + + + 属性注释块 + + 属性注释块 + + + + + + 信号注释块 + + 请记得: + + 描述信号何时发射(emitted)及在其它信号之前还是之后发射。 + + + 描述应用程序在信号处理函数中能做些什么。 + + + + 信号注释块 + + + + + + 结构注释块 + 结构注释块 + + + + 在你需要隐藏的私有结构字段之前使用/*< private >*/ 。反之使用/*< public >*/. + + + If the first field is "g_iface", "parent_instance" or "parent_class" + it will be considered private automatically and doesn't need to be + mentioned in the comment block. + + + 结构注释块也可以用于GObjects与GObjectClasses。为一个类添加注释块通常是个极好的主意,如果它有vmethod(因为这是怎样制作它的文档的方法)。对于GObject自身而言,你可以使用相关的章节文档,如果对象实例有公共字段,为每个实例结构体单独块注释是非常有用的。缺点是这会为同一名字创建两个索引记录(结构与章节)。 + + + + 枚举注释块 + 枚举注释块 + */ + SOMETHING_COUNT +} Something; +]]> + + + 在你要隐藏的枚举数值前使用/*< private >*/。反之使用/*< public >*/ + + + + + + + Inline program documentation + + You can document programs and their commandline interface using inline + documentation. + + + + Tags + + PROGRAM + + + + Defines the start of a program documentation. + + + + + + @short_description: + + + Defines a short description of the program. (Optional) + + + + + + @synopsis: + + + Defines the arguments, or list of arguments that the program can take. + (Optional) + + + + + + @see_also: + + + See Also manual page section. (Optional) + + + + + + @arg: + + + Argument(s) passed to the program and their description. (Optional) + + + + + + Description: + + + A longer description of the program. + + + + + + 返回值: + + + Specificy what value(s) the program returns. (Optional) + + + + + + + + Example of program documentation. + Program documentation block + + + + + + + + 有用的DocBook标记 + + 这些是在编写代码文档时非常有用处的DocBook标记。 + + + To link to another section in the GTK docs: + + + Hash Tables +]]> + + The linkend is the SGML/XML id on the top item of the page you want to link to. + For most pages this is currently the part ("gtk", "gdk", "glib") and then + the page title ("Hash Tables"). For widgets it is just the class name. + Spaces and underscores are converted to '-' to conform to SGML/XML. + + + 引用一个外部函数,比如一个标准 C 函数: + ...
    +]]> + + + 要包含示例代码: + + Using a GHashTable. + + ... + + +]]> + 或类似的,很短的不需要标题的代码段: + + + ... + + +]]> + 对后者,GTK-Doc 还支持一种缩写方式:|[ ... ]| + + 要包含符号列表: + + + + ... + + + + + ... + + + +]]> + + + 要包含一条文字中突出显示的注解: + + + Make sure you free the data after use. + + +]]> + + + 要引用一个类型: + unsigned char +]]> + + + 引用一个外部结构(不是在GTK 文档中描述的): + XFontStruct +]]> + + + 要引用一个结构字段: + len +]]> + + + 要引用一个类的名字,你可能会使用: + GtkWidget +]]> + 但是你可能正在使用#GtkWidget(要自动创建一个到GtkWidget 页面的链接-请参阅缩写)。 + + 要强调文本: + This is important +]]> + + + 对于文件名,使用: + /home/user/documents
    +]]> + + + 要引用键值,使用: + ControlL +]]> + + + + + + + 填充额外的文件 + + 另有几个文件要和内嵌源代码注释一起维护:<package>.types, <package>-docs.xml (原为 .sgml), <package>-sections.txt + + + 编辑类型文件 + + + If your library or application includes GObjects, you want + their signals, arguments/parameters and position in the hierarchy to be + shown in the documentation. All you need to do, is to list the + xxx_get_type functions together with their include + inside the <package>.types file. + + + + 示例类型文件代码段 + + +gtk_accel_label_get_type +gtk_adjustment_get_type +gtk_alignment_get_type +gtk_arrow_get_type +]]> + + + + 从GTK-Doc 1.8开始gtkdoc-scan能够自动生成这个列表。只要往Makefile.am文件中的SCAN_OPTIONS项加入“--rebuild-types”即可。如果你要使用它请保证不发行类型文件也不将它置于版本控制系统的管理之下。 + + + + + 编辑主文档 + + GTK-Doc 以 DocBook SGML/XML 格式生成文档。当处理源代码内嵌注释时, GTK-Doc 工具以独立文件为每个类或模块生成一个文档页。主文档包含了它们并且将它们按顺序排列。 + + + While GTK-Doc creates a template master document for you, later runs will + not touch it again. This means that one can freely structure the + documentation. That includes grouping pages and adding extra pages. + GTK-Doc has now a test suite, where also the master-document is recreated from scratch. + Its a good idea to look at this from time to time to see if there are + some new goodies introduced there. + + + + 不要把教程(tutorial)当作额外的文档来编写。写成额外的章节即可。把你的库教程直接放入API文档的好处就是教程与符号文档之间的链接很容易。另外教程与库一同升级时分离的机会也更高。 + + + 那么什么是主文档内部要修改的东西呢?开始只是一点点东西。有一些占位标识(在方括号内部的文本)你应当多留意。 + + + 主文档头部 + + MODULENAME Reference Manual + + for MODULENAME [VERSION] + The latest version of this documentation can be found on-line at + http://[SERVER]/MODULENAME/. + + + + + [Insert title here] +]]> + + + + + In addition a few option elements are created in commented form. You can + review these and enable them as you like. + + + + Optional part in the master document + + --> +]]> + + + + + Finally you need to add new section whenever you introduce one. The + gtkdoc-check tool will + remind you of newly generated xml files that are not yet included into + the doc. + + + + Including generated sections + + my library + + ... +]]> + + + + + + + 编辑节文件(section file) + + 节文件用于组织由GTK-Doc输出的文档。在此你指定哪个符号属于哪个类或模块,并控制它是否可见(公共的或私有的)。 + + + The section file is a plain text file with tags delimiting sections. + Blank lines are ignored and lines starting with a '#' are treated as + comment lines. + + + + + While the tags make the file look like xml, it is not. Please do not + close tags like <SUBSECTION>. + + + + + Including generated sections + libmeep/meep.h + +
    +meepapp +MeepApp +MeepApp + +MEEP_APP +... +MeepAppClass +meep_app_get_type +
    +]]>
    +
    +
    + + + The <FILE> ... </FILE> tag is used to specify the file name, + without any suffix. For example, using '<FILE>gnome-config</FILE>' + will result in the section declarations being output in the template + file tmpl/gnome-config.sgml, which will be + converted into the DocBook XML file xml/gnome-config.sgml + or the DocBook XML file xml/gnome-config.xml. + (The name of the HTML file is based on the module name and the section + title, or for GObjects it is based on the GObjects class name converted + to lower case). + + + <TITLE> ... </TITLE>标记用于节的标题。它只在模板(如果使用的话)最初创建之前有用,因为设置在模板文件内的标题覆盖了它。或者如果你在源代码中使用了SECTION注释(此功能已过时)。 + + + You can group items in the section by using the <SUBSECTION> tag. + Currently it outputs a blank line between subsections in the synopsis + section. + You can also use <SUBSECTION Standard> for standard GObject + declarations (e.g. the functions like g_object_get_type and macros like + G_OBJECT(), G_IS_OBJECT() etc.). + Currently these are left out of the documentation. + You can also use <SUBSECTION Private> for private declarations + which will not be output (it is a handy way to avoid warning messages + about unused declarations). + If your library contains private types which you don't want to appear in + the object hierarchy and the list of implemented or required interfaces, + add them to a Private subsection. + Whether you would place GObject and GObjectClass like structs in public + or Standard section depends if they have public entries (variables, + vmethods). + + + + You can also use <INCLUDE> ... </INCLUDE> to specify the + #include files which are shown in the synopsis sections. + It contains a comma-separate list of #include files, without the angle + brackets. If you set it outside of any sections, it acts for all + sections until the end of the file. If you set it within a section, it + only applies to that section. + + +
    + +
    + + + 控制结果 + + + A GTK-Doc run generates report files inside the documentation directory. + The generated files are named: + <package>-undocumented.txt, + <package>-undeclared.txt and + <package>-unused.txt. + All those are plain text files that can be viewed and postprocessed easily. + + + + The <package>-undocumented.txt file starts with + the documentation coverage summary. Below are two sections divided by + blank lines. The first section lists undocumented or incomplete symbols. + The second section does the same for section docs. Incomplete entries are + those, which have documentation, but where e.g. a new parameter has been + added. + + + + The <package>-undeclared.txt file lists symbols + given in the <package>-sections.txt but not + found in the sources. Check if they have been removed or if they are + misspelled. + + + + The <package>-unused.txt file lists symbol + names, where the GTK-Doc scanner has found documentation, but does not + know where to put it. This means that the symbol has not yet been added to + the <package>-sections.txt file. + + + + + Enable or add the line in Makefile.am. + If at least GTK-Doc 1.9 is installed, this will run sanity checks during + make check run. + + + + + One can also look at the files produced by the source code scanner: + <package>-decl-list.txt and + <package>-decl.txt. The first one can be + compared with the section file if that is manually maintained. The second + lists all declarations from the headers. If a symbol is missing one could + check if this file contains it. + + + + If the project is GObject based, one can also look into the files produced + by the object scanner: + <package>.args.txt, + <package>.hierarchy.txt, + <package>.interfaces.txt, + <package>.prerequisites.txt and + <package>.signals.txt. If there are missing + symbols in any of those, one can ask GTK-Doc to keep the intermediate + scanner file for further analysis, by running it as + GTK_DOC_KEEP_INTERMEDIATE=1 make. + + + + + Modernizing the documentation + + + GTK-Doc has been around for quite some time. In this section we list new + features together with the version since when it is available. + + + + GTK-Doc 1.9 + + + When using xml instead of sgml, one can actually name the master + document <package>-docs.xml. + + + + This version supports + in Makefile.am. When this is enabled, the + <package>-sections.txt is autogenerated and + can be removed from the vcs. This only works nicely for projects that + have a very regular structure (e.g. each .{c,h} pair will create new + section). If one organize a project close to that updating a manually + maintained section file can be as simple as running + meld <package>-decl-list.txt <package>-sections.txt. + + + + Version 1.8 already introduced the syntax for documenting sections in + the sources instead of the separate files under tmpl. + This version adds options to switch the whole doc module to not use the + extra tmpl build step at all, by using + in configure.ac. If you don't have a tmpl + checked into your source control system and haven't yet switched, just + add the flag to configure.ac and you are done. + + + + + GTK-Doc 1.10 + + + This version supports in + Makefile.am. When this is enabled, the + <package>.types is autogenerated and can be + removed from the vcs. When using this feature it is important to also + setup the IGNORE_HFILES in + Makefile.am for code that is build conditionally. + + + + + GTK-Doc 1.16 + + + This version includes a new tool called gtkdoc-check. This tool can run + a set of sanity checks on your documentation. It is enabled by adding + these lines to the end of Makefile.am. + Enable gtkdoc-check + + + + + + + GTK-Doc 1.20 + + + Version 1.18 brought some initial markdown support. Using markdown in + doc comments is less intrusive than writing docbook xml. This version + improves a lot on this and add a lot more styles. The section that + explains the comment syntax + has all the details. + + + + + GTK-Doc 1.25 + + + The makefiles shipped with this version generate an entity file at xml/gtkdocentities.ent, + containing entities for e.g. package_name and package_version. You can + use this e.g. in the main xml file to avoid hardcoding the version + number. Below is an example that shows how the entity file is included + and how the entities are used. The entities can also be used in all + generated files, GTK-Doc will use the same xml header in generated xml + files. + Use pre-generated entities + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + +]]> + + + + + + + 为其它接口书写文档 + + + So far we have been using GTK-Doc to document the API of code. The next + sections contain suggestions how the tools can be used to document other + interfaces too. + + + + 命令行选项与 man 页面 + + + As one can generate man pages for a docbook refentry as well, it sounds + like a good idea to use it for that purpose. This way the interface is + part of the reference and one gets the man-page for free. + + + + 为工具书写文档 + + + Create one refentry file per tool. Following + our example we would call it + meep/docs/reference/meeper/meep.xml. For the xml + tags that should be used and can look at generated file in the xml + subdirectory as well as examples e.g. in glib. + + + + + 添加额外的配置检查 + + + 额外的配置检查 + + + + + + + 添加额外的makefile规则 + + + 额外的配置检查 + + + + + + + + DBus接口 + + + (FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, +http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus) + + + + + + + 常见问题 + + + + 问题 + 答案 + + 无类继承关系。 + 对象的 xxx_get_type() 函数未进入 <package>.types 文件。 + + + 仍无类继承关系。 + + Missing or wrong naming in <package>-sections.txt + file (see explanation). + + + + 该死,我仍然没有类继承关系。 + + Is the object name (name of the instance struct, e.g. GtkWidget) + part of the normal section (don't put this into Standard or Private + subsections). + + + + 无标识符索引。 + + Does the <package>-docs.{xml,sgml} contain a + index that xi:includes the generated index? + + + + Symbols are not linked to their doc-section. + + Is the doc-comment using the correct markup (added #,% or ())? + Check if the gtkdoc-fixxref warns about unresolvable xrefs. + + + + A new class does not appear in the docs. + + Is the new page xi:included from + <package>-docs.{xml,sgml}. + + + + A new symbol does not appear in the docs. + + Is the doc-comment properly formatted. Check for spelling mistakes in + the begin of the comment. Check if the gtkdoc-fixxref warns about + unresolvable xrefs. Check if the symbol is correctly listed in the + <package>-sections.txt in a public subsection. + + + + A type is missing from the class hierarchy. + + If the type is listed in <package>.hierarchy + but not in xml/tree_index.sgml then double check + that the type is correctly placed in the <package>-sections.txt. + If the type instance (e.g. GtkWidget) is not listed or + incidentally marked private it will not be shown. + + + + I get foldoc links for all gobject annotations. + + Check that xml/annotation-glossary.xml is + xi:included from <package>-docs.{xml,sgml}. + + + + + + Parameter described in source code comment block but does not exist + Check if the prototype in the header has different parameter names as in the source. + + + + + multiple "IDs" for constraint linkend: XYZ + Symbol XYZ appears twice in <package>-sections.txt file. + + + Element typename in namespace '' encountered in para, but no template matches. + + + + + + + Tools related to gtk-doc + + + GtkDocPlugin - a Trac GTK-Doc + integration plugin, that adds API docs to a trac site and integrates with + the trac search. + + + Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since + tags in the API to determine the minimum required version. + + + + + + + + + + + Version 1.1, March 2000 + + 2000Free Software Foundation, Inc. + + +
    Free Software Foundation, Inc. 51 Franklin Street, + Suite 330, Boston, MA + 02110-1301 USA
    + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. +
    +
    +
    + GNU 自由文档许可证 + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or + other written document free in the sense of + freedom: to assure everyone the effective freedom to copy and + redistribute it, with or without modifying it, either + commercially or noncommercially. Secondarily, this License + preserves for the author and publisher a way to get credit for + their work, while not being considered responsible for + modifications made by others. + + + + This License is a kind of copyleft, which means + that derivative works of the document must themselves be free in + the same sense. It complements the GNU General Public License, + which is a copyleft license designed for free software. + + + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same + freedoms that the software does. But this License is not limited + to software manuals; it can be used for any textual work, + regardless of subject matter or whether it is published as a + printed book. We recommend this License principally for works + whose purpose is instruction or reference. + + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be + distributed under the terms of this License. The + Document, below, refers to any such manual or + work. Any member of the public is a licensee, and is addressed + as you. + + + + A Modified Version of the Document means any work + containing the Document or a portion of it, either copied + verbatim, or with modifications and/or translated into another + language. + + + + A Secondary Section is a named appendix or a + front-matter section of the Document that deals exclusively + with the relationship of the publishers or authors of the + Document to the Document's overall subject (or to related + matters) and contains nothing that could fall directly within + that overall subject. (For example, if the Document is in part a + textbook of mathematics, a Secondary Section may not explain any + mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of + legal, commercial, philosophical, ethical or political position + regarding them. + + + + The Invariant Sections are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the + notice that says that the Document is released under this + License. + + + + The Cover Texts are certain short passages of + text that are listed, as Front-Cover Texts or Back-Cover Texts, + in the notice that says that the Document is released under this + License. + + + + A Transparent copy of the Document means a machine-readable + copy, represented in a format whose specification is available + to the general public, whose contents can be viewed and edited + directly and straightforwardly with generic text editors or (for + images composed of pixels) generic paint programs or (for + drawings) some widely available drawing editor, and that is + suitable for input to text formatters or for automatic + translation to a variety of formats suitable for input to text + formatters. A copy made in an otherwise Transparent file format + whose markup has been designed to thwart or discourage + subsequent modification by readers is not Transparent. A copy + that is not Transparent is called + Opaque. + + + + Examples of suitable formats for Transparent copies include + plain ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human + modification. Opaque formats include PostScript, PDF, + proprietary formats that can be read and edited only by + proprietary word processors, SGML or XML for which the DTD + and/or processing tools are not generally available, and the + machine-generated HTML produced by some word processors for + output purposes only. + + + + The Title Page means, for a printed book, the + title page itself, plus such following pages as are needed to + hold, legibly, the material this License requires to appear in + the title page. For works in formats which do not have any title + page as such, Title Page means the text near the + most prominent appearance of the work's title, preceding the + beginning of the body of the text. + + + + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that + you add no other conditions whatsoever to those of this + License. You may not use technical measures to obstruct or + control the reading or further copying of the copies you make or + distribute. However, you may accept compensation in exchange for + copies. If you distribute a large enough number of copies you + must also follow the conditions in section 3. + + + + You may also lend copies, under the same conditions stated + above, and you may publicly display copies. + + + + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than 100, + and the Document's license notice requires Cover Texts, you must enclose + the copies in covers that carry, clearly and legibly, all these + Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also + clearly and legibly identify you as the publisher of these + copies. The front cover must present the full title with all + words of the title equally prominent and visible. You may add + other material on the covers in addition. Copying with changes + limited to the covers, as long as they preserve the title of the + Document and satisfy these + conditions, can be treated as verbatim copying in other + respects. + + + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + + + If you publish or distribute Opaque copies of the Document numbering more than 100, + you must either include a machine-readable Transparent copy along with + each Opaque copy, or state in or with each Opaque copy a + publicly-accessible computer-network location containing a + complete Transparent copy of the Document, free of added + material, which the general network-using public has access to + download anonymously at no charge using public-standard network + protocols. If you use the latter option, you must take + reasonably prudent steps, when you begin distribution of Opaque + copies in quantity, to ensure that this Transparent copy will + remain thus accessible at the stated location until at least one + year after the last time you distribute an Opaque copy (directly + or through your agents or retailers) of that edition to the + public. + + + + It is requested, but not required, that you contact the authors + of the Document well before + redistributing any large number of copies, to give them a chance + to provide you with an updated version of the Document. + + + + + 4. 修改 + + You may copy and distribute a Modified Version of the Document under the conditions of + sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the + Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version + to whoever possesses a copy of it. In addition, you must do + these things in the Modified Version: + + + + + + A + + Use in the Title + Page (and on the covers, if any) a title distinct + from that of the Document, and from those of + previous versions (which should, if there were any, be + listed in the History section of the Document). You may + use the same title as a previous version if the original + publisher of that version gives permission. + + + + + + + B + + List on the Title + Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the + Modified Version, + together with at least five of the principal authors of + the Document (all of + its principal authors, if it has less than five). + + + + + + + C + + State on the Title + Page the name of the publisher of the Modified Version, as the + publisher. + + + + + + + D + + Preserve all the copyright notices of the Document. + + + + + + + E + + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + + + + + + F + + Include, immediately after the copyright notices, a + license notice giving the public permission to use the + Modified Version under + the terms of this License, in the form shown in the + Addendum below. + + + + + + + G + + Preserve in that license notice the full lists of Invariant Sections and + required Cover + Texts given in the Document's license notice. + + + + + + + H + + Include an unaltered copy of this License. + + + + + + + I + + Preserve the section entitled History, and + its title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on + the Title Page. If + there is no section entitled History in the + Document, create one + stating the title, year, authors, and publisher of the + Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + + + + + + + J + + Preserve the network location, if any, given in the Document for public access + to a Transparent + copy of the Document, and likewise the network locations + given in the Document for previous versions it was based + on. These may be placed in the History + section. You may omit a network location for a work that + was published at least four years before the Document + itself, or if the original publisher of the version it + refers to gives permission. + + + + + + + K + + In any section entitled Acknowledgements or + Dedications, preserve the section's title, + and preserve in the section all the substance and tone of + each of the contributor acknowledgements and/or + dedications given therein. + + + + + + + L + + Preserve all the Invariant + Sections of the Document, unaltered in their + text and in their titles. Section numbers or the + equivalent are not considered part of the section titles. + + + + + + + M + + Delete any section entitled + Endorsements. Such a section may not be + included in the Modified + Version. + + + + + + + N + + Do not retitle any existing section as + Endorsements or to conflict in title with + any Invariant + Section. + + + + + + + If the Modified Version + includes new front-matter sections or appendices that qualify as + Secondary Sections and + contain no material copied from the Document, you may at your + option designate some or all of these sections as invariant. To + do this, add their titles to the list of Invariant Sections in the + Modified Version's license notice. These titles must be + distinct from any other section titles. + + + + You may add a section entitled Endorsements, + provided it contains nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + + + You may add a passage of up to five words as a Front-Cover Text, and a passage + of up to 25 words as a Back-Cover Text, to the end of + the list of Cover Texts + in the Modified Version. + Only one passage of Front-Cover Text and one of Back-Cover Text + may be added by (or through arrangements made by) any one + entity. If the Document + already includes a cover text for the same cover, previously + added by you or by arrangement made by the same entity you are + acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version . + + + + + 5. COMBINING DOCUMENTS + + You may combine the Document + with other documents released under this License, under the + terms defined in section 4 + above for modified versions, provided that you include in the + combination all of the Invariant + Sections of all of the original documents, unmodified, + and list them all as Invariant Sections of your combined work in + its license notice. + + + + The combined work need only contain one copy of this License, + and multiple identical Invariant + Sections may be replaced with a single copy. If there are + multiple Invariant Sections with the same name but different + contents, make the title of each such section unique by adding + at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique + number. Make the same adjustment to the section titles in the + list of Invariant Sections in the license notice of the combined + work. + + + + In the combination, you must combine any sections entitled + History in the various original documents, + forming one section entitled History; likewise + combine any sections entitled Acknowledgements, + and any sections entitled Dedications. You must + delete all sections entitled Endorsements. + + + + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies + of this License in the various documents with a single copy that + is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you + insert a copy of this License into the extracted document, and + follow this License in all other respects regarding verbatim + copying of that document. + + + + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with + other separate and independent documents or works, in or on a + volume of a storage or distribution medium, does not as a whole + count as a Modified Version + of the Document, provided no compilation copyright is claimed + for the compilation. Such a compilation is called an + aggregate, and this License does not apply to the + other self-contained works thus compiled with the Document , on + account of their being thus compiled, if they are not themselves + derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may + be placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + + + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with + translations requires special permission from their copyright + holders, but you may include translations of some or all + Invariant Sections in addition to the original versions of these + Invariant Sections. You may include a translation of this + License provided that you also include the original English + version of this License. In case of a disagreement between the + translation and the original English version of this License, + the original English version will prevail. + + + + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except as expressly + provided for under this License. Any other attempt to copy, + modify, sublicense or distribute the Document 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. + + + + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software + Foundation may publish new, revised versions of the GNU + Free Documentation 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. See http://www.gnu.org/copyleft/. + + + + Each version of the License is given a distinguishing version + number. If the Document + specifies that a particular numbered version of this License + or any later version applies to it, you have the + option of following the terms and conditions either of that + specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by + the Free Software Foundation. + + + + + Addendum + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + +
    + + Copyright YEAR YOUR NAME. + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the + Free Software Foundation; with the Invariant Sections being LIST + THEIR TITLES, with the Front-Cover Texts being LIST, + and with the Back-Cover + Texts being LIST. A copy of the license is included in + the section entitled GNU Free Documentation + License. + +
    + + + If you have no Invariant + Sections, write with no Invariant Sections + instead of saying which ones are invariant. If you have no + Front-Cover Texts, write + no Front-Cover Texts instead of + Front-Cover Texts being LIST; likewise for Back-Cover Texts. + + + + If your document contains nontrivial examples of program code, + we recommend releasing these examples in parallel under your + choice of free software license, such as the GNU General Public + License, to permit their use in free software. + +
    +
    + + + + + + + + + diff --git a/help/manual/zh_CN/zh_CN.po b/help/manual/zh_CN/zh_CN.po new file mode 100644 index 0000000..1823819 --- /dev/null +++ b/help/manual/zh_CN/zh_CN.po @@ -0,0 +1,4241 @@ +# Chinese (China) translation for gtk-doc. +# Copyright (C) 2011 gtk-doc's COPYRIGHT HOLDER +# This file is distributed under the same license as the gtk-doc package. +# LuYanbo <767344148@qq.com>, 2011. +# 黄世海 , 2012. +# Wylmer Wang , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: gtk-doc master\n" +"POT-Creation-Date: 2013-04-16 14:58+0000\n" +"PO-Revision-Date: 2012-11-02 12:12+0800\n" +"Last-Translator: Wylmer Wang \n" +"Language-Team: Chinese (China) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Bookmarks: 236,211,220,228,94,235,-1,-1,-1,-1\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-Language: Chinese\n" +"X-Poedit-Country: CHINA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "" +"LuYanbo <767344148@qq.com>, 2011\n" +"黄世海 , 2012\n" +"Wylmer Wang , 2012" + +#: C/index.docbook:12(bookinfo/title) +msgid "GTK-Doc Manual" +msgstr "GTK-Doc 手册" + +#: C/index.docbook:13(bookinfo/edition) +msgid "1.18.1" +msgstr "1.18.1" + +#: C/index.docbook:14(abstract/para) +msgid "User manual for developers with instructions of GTK-Doc usage." +msgstr "为开发人员提供 GTK-Doc 用法说明的用户手册。" + +#: C/index.docbook:16(authorgroup/author) +msgid "" +"Chris Lyttle " +"
    chris@wilddev.net
    " +msgstr "" +"Chris Lyttle " +"
    chris@wilddev.net
    " + +#: C/index.docbook:25(authorgroup/author) +msgid "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " +msgstr "" +"Dan Mueth
    " +"d-mueth@uchicago.edu
    " + +#: C/index.docbook:34(authorgroup/author) +msgid "" +"Stefan Kost " +"
    ensonic@users.sf.net
    " +msgstr "" +"Stefan Kost " +"
    ensonic@users.sf.net
    " + +#: C/index.docbook:45(publisher/publishername) +msgid "GTK-Doc project" +msgstr "GTK-Doc 项目" + +#: C/index.docbook:44(bookinfo/publisher) +msgid "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " +msgstr "" +"<_:publishername-1/>
    gtk-doc-list@gnome.org
    " + +#: C/index.docbook:48(bookinfo/copyright) +msgid "2000, 2005 Dan Mueth and Chris Lyttle" +msgstr "2000, 2005 Dan Mueth and Chris Lyttle" + +#: C/index.docbook:52(bookinfo/copyright) +msgid "2007-2011 Stefan Sauer (Kost)" +msgstr "2007-2011 Stefan Sauer (Kost)" + +#: C/index.docbook:65(legalnotice/para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, " +"Version 1.1 or any later version published by the Free Software Foundation " +"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A " +"copy of the license is included." +msgstr "" +"允许在GNU 自由文档认证书的规范下复制,发布或者/并且修" +"改本文档,由自由软件基金会出版的1.1版或更新版本的无变更的部分,无封面文本,以" +"及无背面文本。取得证书的制件included." + +#: C/index.docbook:73(legalnotice/para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and those trademarks are made aware to the members of the " +"GNOME Documentation Project, the names have been printed in caps or initial " +"caps." +msgstr "" +"公司使用的区别于它们的许多产品及服务的名字就称为商标. 这些名字出现在任何GNOME" +"文档中, 而且那些商标会提示GNOME文档项目成员, 那些名字会打印在封面或初始页面" +"中." + +#: C/index.docbook:83(revhistory/revision) +msgid "" +"1.18.1 20 Sep 2011 ss development version" +msgstr "" +"1.18.1 2011年9月20 ss 开发版本" + +#: C/index.docbook:89(revhistory/revision) +msgid "" +"1.18 14 sep 2011 ss bug fixes, speedups, markdown support" +msgstr "" +"1.18 2011年9月14 ss 修复问题,速度优化、markdown 支持" + +#: C/index.docbook:95(revhistory/revision) +msgid "" +"1.17 26 Feb 2011 sk urgent bug fix update" +msgstr "" +"1.17 2011年2月26 sk 紧急问题修复更新" + +#: C/index.docbook:101(revhistory/revision) +msgid "" +"1.16 14 Jan 2011 sk bugfixes, layout improvements" +msgstr "" +"1.16 2011年1月14 sk 修复问题,布局改进" + +#: C/index.docbook:107(revhistory/revision) +msgid "" +"1.15 21 May 2010 sk bug and regression fixes" +msgstr "" +"1.15 2010年5月21 sk 问题和退化修复" + +#: C/index.docbook:113(revhistory/revision) +msgid "" +"1.14 28 March 2010 sk bugfixes and performance improvements" +msgstr "" +"1.14 2010年3月28 sk 问题修复和性能提高" + +#: C/index.docbook:119(revhistory/revision) +msgid "" +"1.13 18 December 2009 " +"sk broken tarball update" +msgstr "" +"1.13 2009年10月18 sk 损坏的档案包更新" + +#: C/index.docbook:125(revhistory/revision) +msgid "" +"1.12 18 December 2009 " +"sk new tool features and " +"bugfixes" +msgstr "" +"1.12 2009年10月18 sk 新工具功能和问题修复" + +#: C/index.docbook:131(revhistory/revision) +msgid "" +"1.11 16 November 2008 " +"mal GNOME doc-utils migration" +msgstr "" +"1.11 2008年10月16 mal GNOME doc-utils 迁移" + +#: C/index.docbook:144(chapter/title) +msgid "Introduction" +msgstr "介绍" + +#: C/index.docbook:146(chapter/para) +msgid "" +"This chapter introduces GTK-Doc and gives an overview of what it is and how " +"it is used." +msgstr "本章介绍 GTK-Doc,并概述了它是什么以及如何使用它。" + +#: C/index.docbook:152(sect1/title) +msgid "What is GTK-Doc?" +msgstr "什么是 GTK-Doc?" + +#: C/index.docbook:154(sect1/para) +msgid "" +"GTK-Doc is used to document C code. It is typically used to document the " +"public API of libraries, such as the GTK+ and GNOME libraries. But it can " +"also be used to document application code." +msgstr "" +"GTK-Doc 用于为C代码编写文档。典型地用于编写库的公共API,如GTK+与GNOME库。不过" +"它也可以用于书写应用程序代码文档。" + +#: C/index.docbook:162(sect1/title) +msgid "How Does GTK-Doc Work?" +msgstr "GTK Doc 是怎样工作的?" + +#: C/index.docbook:164(sect1/para) +#, fuzzy +msgid "" +"GTK-Doc works by using documentation of functions placed inside the source " +"files in specially-formatted comment blocks, or documentation added to the " +"template files which GTK-Doc uses (though note that GTK-Doc will only " +"document functions that are declared in header files; it won't produce " +"output for static functions)." +msgstr "" +"GTK-Doc通过使用放置于源文件内特殊格式的注释块的函数文档工作,或者添加在GTK-" +"Doc使用的模板文件中。" + +#: C/index.docbook:171(sect1/para) +msgid "" +"GTK-Doc consists of a number of perl scripts, each performing a different " +"step in the process." +msgstr "GTK-Doc由一些perl脚本组成,每个脚本完成这一过程中不同的步骤。" + +#: C/index.docbook:176(sect1/para) +msgid "There are 5 main steps in the process:" +msgstr "这个进程有五个主要步骤:" + +#: C/index.docbook:183(listitem/para) +#, fuzzy +msgid "" +"Writing the documentation. The author fills in the " +"source files with the documentation for each function, macro, union etc. (In " +"the past information was entered in generated template files, which is not " +"recommended anymore)." +msgstr "" +"书写文档。作者在源文件中为每个函数,宏,联合体等对象书写" +"了文档(在以往的消息里它进入到已完成的模板文件中,现已经不再介绍了)。" + +#: C/index.docbook:193(listitem/para) +#, fuzzy +msgid "" +"Gathering information about the code. " +"gtkdoc-scan scans the header files of the code " +"looking for declarations of functions, macros, enums, structs, and unions. " +"It creates the file <module>-decl-list.txt " +"containing a list of the declarations, placing them into sections according " +"to which header file they are in. On the first run this file is copied to " +"<module>-sections.txt. The author can rearrange " +"the sections, and the order of the declarations within them, to produce the " +"final desired order. The second file it generates is <" +"module>-decl.txt. This file contains the full declarations " +"found by the scanner. If for some reason one would like some symbols to show " +"up in the docs, where the full declaration cannot be found by the scanner or " +"the declaration should appear differently, one can place entities similar to " +"the ones in <module>-decl.txt into <" +"module>-overrides.txt." +msgstr "" +"收集关于源代码的信息.gtkdoc-扫描扫描代码的头文件寻找函数,宏,枚举,结构与联合体的声明。它创建包" +"含一系列声明的文件:<module>-decl-list.txt,并按照" +"它们所在的头文件把它们放入特定的部分中。在第一次运行时这个文件会复制到" +"<module>-sections.txt中。作者可以重新安排这些部分" +"及在它们当中的声明顺序,以便产生最后所需的顺序。它产生的第二个文件是:" +"<module>-decl.txt。这个文件包含了扫描器找到的全声" +"明。如果基于某种原因你需要在文档中显示出一些符号,扫描器无法在全声明中找到或" +"者声明会呈现出不同的形态,你可以把相似的实体<:module>-decl." +"txt放入<module>-overrides.txt中去。" + +#: C/index.docbook:210(listitem/para) +#, fuzzy +msgid "" +"gtkdoc-scangobj can also be used to dynamically " +"query a library about any GObject subclasses it exports. It saves " +"information about each object's position in the class hierarchy and about " +"any GObject properties and signals it provides." +msgstr "" +"gtkdoc-scangobj也可以用于动态查询关于任何它导出的" +"GObject子类的一个库。它保存在关于每个对象在继承关系以及它所提供关于任何" +"GObject属性与信号的位置。" + +#: C/index.docbook:216(listitem/para) +#, fuzzy +msgid "" +"gtkdoc-scanobj should not be used anymore. It was " +"needed in the past when GObject was still GtkObject inside gtk+." +msgstr "" +"gtkdoc-scanobj可能不再使用了。它在过去GObject仍就" +"是gtk+中的GtkObject的时候是需要的。" + +#: C/index.docbook:223(listitem/para) +#, fuzzy +msgid "" +"Generating the \"template\" files. gtkdoc-" +"mktmpl creates a number of files in the tmpl/ subdirectory, using the information gathered " +"in the first step. (Note that this can be run repeatedly. It will try to " +"ensure that no documentation is ever lost.)" +msgstr "" +"生成文件 \"模板\" .gtkdoc-mktmpl用在第一步收集的信息,在filename class=\"directory\">tmpl/子目录中创建一定数量的文件。(注意:它能够良好地运行,它将保障没有任" +"何文档丢失。)" + +#: C/index.docbook:232(note/para) +#, fuzzy +msgid "" +"Since GTK-Doc 1.9 the templates can be avoided. We encourage people to keep " +"documentation in the code. gtkdocize supports now " +"a option that chooses a makefile that " +"skips tmpl usage totally. If you have never changed file in tmpl by hand, " +"please remove the directory (e.g. from version control system)." +msgstr "" +"由于GTK-Doc 1.9模板可以避免使用,我们鼓励人们在代码中保留文档。" +"gtkdocize支持这" +"个选项,以跳过tpml目录的使用来选择一个makefile文件。如果你从未手动修改过tpml" +"里的文件,请删除这个目录(比如:在版本控制系统中做这件事)。" + +#: C/index.docbook:244(listitem/para) +#, fuzzy +msgid "" +"Generating the SGML/XML and HTML/PDF. " +"gtkdoc-mkdb turns the template files into SGML or " +"XML files in the sgml/ or xml/ subdirectory. If the source code " +"contains documentation on functions, using the special comment blocks, it " +"gets merged in here. If there are no tmpl files used it only reads docs from " +"sources and introspection data. We recommend to use Docbook XML." +msgstr "" +"生成 SGML/XML and HTML/PDF文件.gtkdoc-" +"mkdbsgml/ or " +"xml/子目录中的模板文件转换为 SGML " +"或 XML格式的文件。如果源代码中包含了用特殊的注释块书写的函数文档,它会在此合" +"并。如果没有使用tmpl文件,它只从数据源与自检数据中读出文档。我们建议您使用" +"Docbook XML。" + +#: C/index.docbook:255(listitem/para) +#, fuzzy +msgid "" +"gtkdoc-mkhtml turns the SGML/XML files into HTML " +"files in the html/ subdirectory. " +"Likewise gtkdoc-mkpdf turns the SGML/XML files " +"into a PDF document called <package>.pdf." +msgstr "" +"gtkdoc-mkhtmlhtml/ 子目录中的SGML/XML文件转换为HTML文件。就如同" +"application>gtkdoc-mkpdf把SGML/XML文件转换为称为<" +"package>.pdf的PDF文档一样。" + +#: C/index.docbook:261(listitem/para) +#, fuzzy +msgid "" +"Files in sgml/ or xml/ and html/ directories are always overwritten. One should never edit them " +"directly." +msgstr "" +"在sgml/或者 xml/html/目录中的文件常常被覆盖。任何人都不能直接编辑它们。" + +#: C/index.docbook:269(listitem/para) +#, fuzzy +msgid "" +"Fixing up cross-references between documents. After " +"installing the HTML files, gtkdoc-fixxref can be " +"run to fix up any cross-references between separate documents. For example, " +"the GTK+ documentation contains many cross-references to types documented in " +"the GLib manual. When creating the source tarball for distribution, " +"gtkdoc-rebase turns all external links into web-" +"links. When installing distributed (pregenerated) docs the same application " +"will try to turn links back to local links (where those docs are installed)." +msgstr "" +"Fixing up cross-references between documents. ,在安装" +"HTML文件时,gtkdoc-fixxref能够用于修复任何独立文档" +"之间的交叉链接。例如:GTK+文档包含了许多交叉链接来显示GLib手册中的文档。在为" +"发行软件创建tarball源时,gtkdoc-rebase会把所有的外" +"部链接转换为网页链接。在安装发行文档(事先生成的)时,应用程序会试着把这些链" +"接换回到本地链接(在那些文档安装的地方)。" + +#: C/index.docbook:287(sect1/title) +msgid "Getting GTK-Doc" +msgstr "获取 GTK-Doc" + +#: C/index.docbook:290(sect2/title) +msgid "Requirements" +msgstr "要求" + +#: C/index.docbook:291(sect2/para) +msgid "Perl v5 - the main scripts are in Perl." +msgstr "Perl v5- 主脚本是Perl格式。" + +#: C/index.docbook:294(sect2/para) +msgid "" +"DocBook DTD v3.0 - This is the DocBook SGML DTD. http://www.ora.com/" +"davenport" +msgstr "" +"DocBook DTD v3.0 - 这是DocBook SGML DTD的链接. http://www.ora.com/" +"davenport" + +#: C/index.docbook:298(sect2/para) +msgid "" +"Jade v1.1 - This is a DSSSL processor for converting " +"SGML to various formats. http://www.jclark.com/jade" +msgstr "" +"Jade v1.1 -这是一个DSSSL处理器,用来把SGML转换为各种格" +"式。http://www." +"jclark.com/jade" + +#: C/index.docbook:302(sect2/para) +#, fuzzy +msgid "" +"Modular DocBook Stylesheets This is the DSSSL code to " +"convert DocBook to HTML (and a few other formats). It's used together with " +"jade. I've customized the DSSSL code slightly, in gtk-doc.dsl, to colour the " +"program code listings/declarations, and to support global cross-reference " +"indices in the generated HTML. http://nwalsh.com/docbook/dsssl" +msgstr "" +"Modular DocBook Stylesheets 这是把DocBook转换为HTML(和" +"一些其它格式)格式的DSSSL代码。它与jade共同使用。我稍微地修改了DSSSL代码,在 " +"gtk-doc.dsl中,用于给程序代码的列表/声明,并且支持在已生成的HTML文档中的全局" +"链接。http://" +"nwalsh.com/docbook/dsssl。" + +#: C/index.docbook:311(sect2/para) +#, fuzzy +msgid "" +"docbook-to-man - if you want to create man pages from " +"the DocBook. I've customized the 'translation spec' slightly, to capitalise " +"section headings and add the 'GTK Library' title at the top of the pages and " +"the revision date at the bottom. There is a link to this on http://www.ora.com/davenport NOTE: This does not work yet." +msgstr "" +"docbook-to-man-如果你想用DocBook创建用户手册。我已经稍" +"微地修改了'translation spec',以便描述文件头部和第页顶部的 'GTK Library'标题" +"与底部的修订时间。这里有一个到它的链接:http://www.ora.com/davenport注意:它可能已" +"经无效了。" + +#: C/index.docbook:322(sect2/title) +msgid "Installation" +msgstr "安装" + +#: C/index.docbook:323(sect2/para) +msgid "" +"There is no standard place where the DocBook Modular Stylesheets are " +"installed." +msgstr "DocBook Modular Stylesheets没有标准的安装位置。" + +#: C/index.docbook:326(sect2/para) +msgid "GTK-Doc's configure script searches these 3 directories automatically:" +msgstr "GTK-Doc 的配置脚本会自动地查找这三个目录:" + +#: C/index.docbook:329(sect2/para) +msgid "" +" /usr/lib/sgml/stylesheets/nwalsh-modular (used by " +"RedHat)" +msgstr "" +" /usr/lib/sgml/stylesheets/nwalsh-modular (在 RedHat 中" +"使用)" + +#: C/index.docbook:332(sect2/para) +msgid "" +" /usr/lib/dsssl/stylesheets/docbook (used by Debian)" +msgstr "" +" /usr/lib/dsssl/stylesheets/docbook (在 Debian 中使用)" + +#: C/index.docbook:335(sect2/para) +msgid " /usr/share/sgml/docbkdsl (used by SuSE)" +msgstr " /usr/share/sgml/docbkdsl (在 SuSE 中使用)" + +#: C/index.docbook:338(sect2/para) +msgid "" +"If you have the stylesheets installed somewhere else, you need to configure " +"GTK-Doc using the option: --with-dsssl-dir=<" +"PATH_TO_TOPLEVEL_STYLESHEETS_DIR> " +msgstr "" +"如果把样式表安装在其它地方,您必须用这个选项来配置GTK-Doc: --with-" +"dsssl-dir=<PATH_TO_TOPLEVEL_STYLESHEETS_DIR> 。" + +#: C/index.docbook:362(sect1/title) +msgid "About GTK-Doc" +msgstr "关于 GTK-Doc" + +#: C/index.docbook:364(sect1/para) C/index.docbook:378(sect1/para) +#, fuzzy +msgid "(FIXME)" +msgstr "(FIXME)" + +#: C/index.docbook:368(sect1/para) +#, fuzzy +msgid "" +"(History, authors, web pages, license, future plans, comparison with other " +"similar systems.)" +msgstr "(历史, 作者, 网页, 认证, 未来计划, 与其它相似系统的比较.)" + +#: C/index.docbook:376(sect1/title) +msgid "About this Manual" +msgstr "关于此手册" + +#: C/index.docbook:382(sect1/para) +msgid "(who it is meant for, where you can get it, license)" +msgstr "(它意味着什么,你可以从哪里获得它, 许可证)" + +#: C/index.docbook:391(chapter/title) +msgid "Setting up your project" +msgstr "设置您的项目" + +#: C/index.docbook:393(chapter/para) +#, fuzzy +msgid "" +"The next sections describe what steps to perform to integrate GTK-Doc into " +"your project. Theses sections assume we work on a project called 'meep'. " +"This project contains a library called 'libmeep' and an end-user app called " +"'meeper'. We also assume you will be using autoconf and automake. In " +"addition section plain makefiles or other " +"build systems will describe the basics needed to work in a different " +"build setup." +msgstr "" +"下面这些部分描述了要在你的项目中实现完整的GTK-Doc应当经历哪些步骤。这些部分假" +"定我们在做一个名为'meep'的项目。该项目包含了一个叫做 'libmeep' 的库和一个称" +"为'meeper'的终端用户应用程序。我们同样也假定你使用autoconf与automake。在附加" +"的部分plain makefiles or other build " +"systems 将描述构建一个不同的项目所需的基本的工作." + +#: C/index.docbook:404(sect1/title) +msgid "Setting up a skeleton documentation" +msgstr "设置一个框架文档" + +#: C/index.docbook:406(sect1/para) +#, fuzzy +msgid "" +"Under your top-level project directory create folders called docs/reference " +"(this way you can also have docs/help for end-user documentation). It is " +"recommended to create another subdirectory with the name of the doc-package. " +"For packages with just one library this step is not necessary." +msgstr "" +"在你的项目的顶级目录里创建一些名字叫做docs/reference的文件夹(用这种方法也可" +"以为终端用户建立docs/help文件夹)。建议你以文件包的名字创建另一个子目录。仅一" +"个库对应多个包,这一步骤是没有必要的。" + +#: C/index.docbook:415(example/title) +msgid "Example directory structure" +msgstr "范例目录结构" + +#: C/index.docbook:416(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"meep/\n" +" docs/\n" +" reference/\n" +" libmeep/\n" +" meeper/\n" +" src/\n" +" libmeep/\n" +" meeper/\n" +"\n" +" " + +#: C/index.docbook:413(sect1/para) +msgid "This can then look as shown below: <_:example-1/>" +msgstr "目录结构将会如下所示:<_:example-1/>" + +#: C/index.docbook:433(sect1/title) C/index.docbook:440(example/title) +msgid "Integration with autoconf" +msgstr "与autoconf集成" + +#: C/index.docbook:435(sect1/para) +msgid "" +"Very easy! Just add one line to your configure.ac " +"script." +msgstr "" +"非常容易!只需在您的 configure.ac 脚本中添加一行。" + +#: C/index.docbook:441(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"# check for gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"# 检查 gtk-doc\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"\n" +" " + +#: C/index.docbook:455(example/title) +msgid "Keep gtk-doc optional" +msgstr "让gtk-doc为可选" + +#: C/index.docbook:456(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"# check for gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"# 检查 gtk-doc\n" +"m4_ifdef([GTK_DOC_CHECK], [\n" +"GTK_DOC_CHECK([1.14],[--flavour no-tmpl])\n" +"],[\n" +"AM_CONDITIONAL([ENABLE_GTK_DOC], false)\n" +"])\n" +"\n" +" " + +#: C/index.docbook:450(sect1/para) +#, fuzzy +msgid "" +"This will require all developers to have gtk-doc installed. If it is okay " +"for your project to have optional api-doc build setup, you can solve this as " +"below. Keep it as is, as gtkdocize is looking for GTK_DOC_CHECK at the start of a line. <_:example-1/>" +msgstr "" +"这将要求所有的开发人员都安装了gtk-doc。如果对于你的项目拥有可选的api-doc构建" +"是可行的,你可以像下面一样解决问题。让它保持正确,就像gtkdocize在一个行的起始" +"寻找GTK_DOC_CHECK一样。 " + +#: C/index.docbook:469(sect1/para) +#, fuzzy +msgid "" +"The first argument is used to check for the gtkdocversion at configure time. " +"The 2nd, optional argument is used by gtkdocize. " +"The GTK_DOC_CHECK macro also adds several configure " +"switches:" +msgstr "" +"第一个参数用来在配置时检查gtkdoc的版本。第二个可选参数由" +"gtkdocize使用。GTK_DOC_CHECK宏也" +"会加入几个配置开关。" + +#: C/index.docbook:475(listitem/para) +msgid "--with-html-dir=PATH : path to installed docs" +msgstr "--with-html-dir=PATH : 安装文档的路径" + +#: C/index.docbook:476(listitem/para) +msgid "--enable-gtk-doc : use gtk-doc to build documentation [default=no]" +msgstr "--enable-gtk-doc : 用gtk-doc构建文档[默认值:no]" + +#: C/index.docbook:477(listitem/para) +msgid "" +"--enable-gtk-doc-html : build documentation in html format [default=yes]" +msgstr "--enable-gtk-doc-html :用html格式构建文档[默认值:yes]" + +#: C/index.docbook:478(listitem/para) +msgid "--enable-gtk-doc-pdf : build documentation in pdf format [default=no]" +msgstr "--enable-gtk-doc-pdf : 以PDF格式构建文档[默认值:no]" + +#: C/index.docbook:482(important/para) +msgid "" +"GTK-Doc is disabled by default! Remember to pass the option to the next configure run. " +"Otherwise pregenerated documentation is installed (which makes sense for " +"users but not for developers)." +msgstr "" +"GTK-Doc在默认情况下是关闭的!请记得给文本configure运作时" +"传递选项。否则,将会安装预先生成的文档(对" +"用户有意义但对开发人员没用处)。" + +#: C/index.docbook:490(sect1/para) +msgid "" +"Furthermore it is recommended that you have the following line inside you " +"configure.ac script. This allows " +"gtkdocize to automatically copy the macro " +"definition for GTK_DOC_CHECK to your project." +msgstr "" +"而且建议你在configure.ac脚本里拥有这样一行。它允许" +"gtkdocizeGTK_DOC_CHECK的宏" +"定义复制到您的项目中去。" + +#: C/index.docbook:498(example/title) +msgid "Preparation for gtkdocize" +msgstr "准备gtkdocize" + +#: C/index.docbook:499(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"AC_CONFIG_MACRO_DIR(m4)\n" +"\n" +" " + +#: C/index.docbook:509(sect1/title) +msgid "Integration with automake" +msgstr "与automake集成" + +#: C/index.docbook:511(sect1/para) +#, fuzzy +msgid "" +"First copy the Makefile.am from the examples " +"subdirectory of the gtkdoc-sources to your project's API documentation " +"directory ( ./docs/reference/<package>). If you have multiple doc-packages repeat this for each one." +msgstr "" +"首先从gtkdoc-sources的示例子目录及你项目的 API文档目录中复制" +"Makefile.am ( ./docs/" +"reference/<package>).如果你的每个目录都有多份doc-packages复" +"件的话。" + +#: C/index.docbook:518(sect1/para) +#, fuzzy +msgid "" +"The next step is to edit the settings inside the Makefile.am. All the settings have a comment above that describes their " +"purpose. Most settings are extra flags passed to the respective tools. Every " +"tool has a variable of the form . " +"All the tools support to list the supported " +"parameters." +msgstr "" +"下一步是编辑Makefile.am内部的设置了。所有的设置上面都有" +"用于描述其目的的注释。多数设置是传递给各个工具的额外标志。第各工具有各种各样" +"的表格.所有的工具都支持选项以列出它支持的参数。" + +#: C/index.docbook:529(sect1/para) +#, fuzzy +msgid "" +"You may also want to enable GTK-Doc for the distcheck make target. Just add " +"the one line shown in the next example to your top-level Makefile." +"am:" +msgstr "" +"你可能也需要打开GTK-Doc为distcheck制造目标。只要加入一行像下个例子展示的,你" +"的顶级Makefile.am:" + +#: C/index.docbook:536(example/title) +msgid "Enable GTK-Doc during make distcheck" +msgstr "在make distcheck过程中启用GTK-Doc" + +#: C/index.docbook:537(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc\n" +"\n" +" " + +#: C/index.docbook:548(sect1/title) +msgid "Integration with autogen" +msgstr "与autogen集成" + +#: C/index.docbook:550(sect1/para) +#, fuzzy +msgid "" +"Most projects will have an autogen.sh script to setup " +"the build infrastructure after a checkout from version control system (such " +"as cvs/svn/git). GTK-Doc comes with a tool called gtkdocize which can be used in such a script. It should be run before " +"autoheader, automake or autoconf." +msgstr "" +"在经过版本控制系统(比如 cvs/svn/git)的检查之后,多数项目会有一个" +"autogen.sh脚本来设置构建基础结构。GTK-Doc便带着一个名叫" +"gtkdocize的可以用在这样一个脚本中的工具出炉了。" + +#: C/index.docbook:559(example/title) +msgid "Running gtkdocize from autogen.sh" +msgstr "从autogen.sh中运行gtkdocize" + +#: C/index.docbook:560(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"gtkdocize || exit 1\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"gtkdocize || exit 1\n" +"\n" +" " + +#: C/index.docbook:568(sect1/para) +#, fuzzy +msgid "" +"When running gtkdocize it copies gtk-" +"doc.make to your project root (or any directory specified by the " +" option). It also checks you configure script for " +"the GTK_DOC_CHECK invocation. This macro can be used to " +"pass extra parameters to gtkdocize." +msgstr "" +"当gtkdocize 运行时它复制文件gtk-doc." +"make到你的项目的根目录(或者由选项指定的任" +"何目录)。它也为GTK_DOC_CHECK 调用器检查你的配置脚本。这" +"个宏可以用于向gtkdocize传递参数。" + +#: C/index.docbook:577(sect1/para) +#, fuzzy +msgid "" +"Historically GTK-Doc was generating template files where developers entered " +"the docs. This turned out to be not so good (e.g. the need for having " +"generated files under version control). Since GTK-Doc 1.9 the tools can get " +"all the information from source comments and thus the templates can be " +"avoided. We encourage people to keep documentation in the code. " +"gtkdocize supports now a option that chooses a makefile that skips tmpl usage totally. " +"Besides adding the option directly to the command invocation, they can be " +"added also to an environment variable called GTKDOCIZE_FLAGS or set as a 2nd parameter in GTK_DOC_CHECK macro in " +"the configure script. If you have never changed file in tmpl by hand and " +"migrating from older gtkdoc versions, please remove the directory (e.g. from " +"version control system)." +msgstr "" +"历史上,GTK-Doc在开发人员进入文档时生成模板文件。这样的结果是不是那么好的(比" +"如:在版本控制下生成文件的需求)。由于GTK-Doc 1.9 工具能从源代码中获得所有的" +"信息从而可以获得模板。我们鼓励人们在代码中保留文档。gtkdocize 支持现在的一个选项用以选择一个" +"makefile来完整地跳过tmpl的使用。除了给命令调用直接加入此选项之外,它们也能添" +"加到一个名为GTKDOCIZE_FLAGS的环境变量中。或者在配置脚本中作" +"为GTK_DOC_CHECK宏的第二个参数。如果你从未手工修改过tmpl目录" +"里的文件以及从旧版本的gtkdoc中迁移过文件,请删除这个目录(比如从版本控制系" +"统)。" + +#: C/index.docbook:594(sect1/title) C/index.docbook:611(example/title) +msgid "Running the doc build" +msgstr "运行文档构建" + +#: C/index.docbook:596(sect1/para) +#, fuzzy +msgid "" +"After the previous steps it's time to run the build. First we need to rerun " +"autogen.sh. If this script runs configure for you, then " +"give it the option. Otherwise manually run " +"configure with this option afterwards." +msgstr "" +"在完成前面的几步之后是运行构建的时间了。首先我们得重新运行autogen." +"sh.如果这个脚本为你运行了configure,那么给它一个选项。不然用这个选项手动运行configure紧" +"随其后。 " + +#: C/index.docbook:603(sect1/para) +#, fuzzy +msgid "" +"The first make run generates several additional files in the doc-" +"directories. The important ones are: <package>.types, <package>-docs.xml (in the past ." +"sgml), <package>-sections.txt." +msgstr "" +"第一次运行make时在文档目录里生成几个额外的文件。其中几个重要的文件是:" +"<package>.types, <package>-docs." +"xml (in the past .sgml), <package>-sections.txt." + +#: C/index.docbook:612(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"./autogen.sh --enable-gtk-doc\n" +"make\n" +"\n" +" " + +#: C/index.docbook:620(sect1/para) +#, fuzzy +msgid "" +"Now you can point your browser to docs/reference/<package>/" +"index.html. Yes, it's a bit disappointing still. But hang-on, " +"during the next chapter we tell you how to fill the pages with life." +msgstr "" +"现在你可以用你的浏览器指向docs/reference/<package>/index." +"html了.是的,它仍有一点小小遗憾。不过请你坚持住,在下一章里我们会" +"告诉你怎样用文件来填充页面。 " + +#: C/index.docbook:628(sect1/title) +msgid "Integration with version control systems" +msgstr "与版本控制系统集成" + +#: C/index.docbook:630(sect1/para) +#, fuzzy +msgid "" +"As a rule of the thumb, it's those files you edit, that should go under " +"version control. For typical projects it's these files: <" +"package>.types, <package>-docs.xml " +"(in the past .sgml), <package>-sections.txt, " +"Makefile.am" +msgstr "" +"作为首要的规则,你编辑的文件都必须进行版本控制。对于典型的项目它是这些文件:" +"<package>.types, <package>-docs.." +"xml (in the past .sgml), <package>-sections.txt, Makefile.am" + +#: C/index.docbook:641(sect1/title) +msgid "Integration with plain makefiles or other build systems" +msgstr "与普通makefile或其它构建系统整合" + +#: C/index.docbook:643(sect1/para) +#, fuzzy +msgid "" +"In the case one does not want to use automake and therefore gtk-" +"doc.mak one will need to call the gtkdoc tools in the right order " +"in own makefiles (or other build tools)." +msgstr "" +"在本例中某人不想用automake,因此gtk-doc.mak就必须在自己" +"的makefiles(或其它构建工具)里用正确的顺序调用gtkdoc工具里面。" + +#: C/index.docbook:650(example/title) +msgid "Documentation build steps" +msgstr "文档构建步骤" + +#: C/index.docbook:651(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"DOC_MODULE=meep\n" +"// sources have changed\n" +"gtkdoc-scan --module=$(DOC_MODULE) --source-dir=...\n" +"gtkdoc-scangobj --module=$(DOC_MODULE)\n" +"gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml\n" +"// xml files have changed\n" +"mkdir html\n" +"cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml\n" +"gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html\n" +"\n" +" " +msgstr "" + +#: C/index.docbook:667(sect1/para) +msgid "" +"One will need to look at the Makefile.am and " +"gtk-doc.mak to pick the extra options needed." +msgstr "" +"您必须查阅Makefile.amgtk-doc.mak以获取所须的额外选项。" + +#: C/index.docbook:676(chapter/title) +msgid "Documenting the code" +msgstr "编写代码文档" + +#: C/index.docbook:678(chapter/para) +#, fuzzy +msgid "" +"GTK-Doc uses source code comment with a special syntax for code " +"documentation. Further it retrieves information about your project structure " +"from other sources. During the next section you will find all information " +"about the syntax of the comments." +msgstr "" +"GTK-Doc用一种带有特殊语法的源代码注释来编写代码文档。而且它会从其它代码中收" +"集有关你的项目结构的信息。在下一章节里你将找到有关其注释语法的全部信息。" + +#: C/index.docbook:686(note/title) +msgid "Documentation placement" +msgstr "文档位置" + +#: C/index.docbook:687(note/para) +msgid "" +"In the past most documentation had to be filled into files residing inside " +"the tmpl directory. This has the disadvantages that the " +"information is often not updated and also that the file tend to cause " +"conflicts with version control systems." +msgstr "" +"在过去,多数文档不得不写入驻留在tmpl目录的文件中。这样会" +"出现一些糟糕的情况:其信息常常没有更新,而且文件也倾向于与版本控制系统发生冲" +"突。" + +#: C/index.docbook:693(note/para) +msgid "" +"The avoid the aforementioned problems we suggest putting the documentation " +"inside the sources. This manual will only describe this way of documenting " +"code." +msgstr "" +"为避免上述的问题,我们建议把注释文档放入源代码中去。本手册仅描述此种编写代码" +"文档的方法。" + +#: C/index.docbook:704(example/title) C/index.docbook:723(example/title) +msgid "GTK-Doc comment block" +msgstr "GTK-Doc 注释块" + +#: C/index.docbook:705(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* unparseable code here */\n" +"#endif\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"#ifndef __GTK_DOC_IGNORE__\n" +"/* 这里放置无法解析的代码 */\n" +"#endif\n" +"\n" +" " + +#: C/index.docbook:700(chapter/para) +#, fuzzy +msgid "" +"The scanner can handle the majority of C headers fine. In the case of " +"receiving warnings from the scanner that look like a special case, one can " +"hint GTK-Doc to skip over them. <_:example-1/>" +msgstr "" +"代码扫描程序能够很好地处理主要的C语言头文件。接收扫描程序发出的警告的过程看起" +"来像个特殊案例,你可以示意GTK-Doc忽略它们。" + +#: C/index.docbook:718(sect1/title) +msgid "Documentation comments" +msgstr "文档注释" + +#: C/index.docbook:724(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * identifier:\n" +" * documentation ...\n" +" */\n" +"\n" +" " + +#: C/index.docbook:720(sect1/para) +#, fuzzy +msgid "" +"A multiline comment that starts with an additional '*' marks a documentation " +"block that will be processed by the GTK-Doc tools. <_:example-1/>" +msgstr "" +"一个以'*'号起始的多行注释标注了一个将由GTK-Doc工具处理的文档块。" +"" + +#: C/index.docbook:735(sect1/para) +#, fuzzy +msgid "" +"The 'identifier' is one line with the name of the item the comment is " +"related to. The syntax differs a little depending on the item. (TODO add " +"table showing identifiers)" +msgstr "" +"'identifier'是指示注释相关项的名字的行。其语法因其项的不同而而有一点差异。" +"(TODO add table showing identifiers)" + +#: C/index.docbook:741(sect1/para) +#, fuzzy +msgid "" +"The 'documentation' block is also different for each symbol type. Symbol " +"types that get parameters such as functions or macros have the parameter " +"description first followed by a blank line (just a '*'). Afterwards follows " +"the detailed description. All lines (outside program listings and CDATA " +"sections) just containing a ' *' (blank-asterisk) are converted to paragraph " +"breaks. If you don't want a paragraph break, change that into ' * ' (blank-" +"asterisk-blank-blank). This is useful in preformatted text (code listings)." +msgstr "" +"'documentation'块也会因标识符类型而不同。标识符类型取得参数如函数与宏一个空行" +"之后有其参数的描述(只是一个'*'号)。然后紧跟着它的细节描述。所有的行" +"( program- 列 与 CDATA 段除外)只包括一个 ' *' (空格-星号)会转化为段落分割符。" +"如果你不想要段落分割符,可以把它改为' * '(空格-星号-空格-空格)。" + +#: C/index.docbook:758(listitem/para) +#, fuzzy +msgid "" +"What it is: The name for a class or function can sometimes be misleading for " +"people coming from a different background." +msgstr "这就是:有时候来自不同文明的人会误解类或函数。" + +#: C/index.docbook:764(listitem/para) +#, fuzzy +msgid "" +"What it does: Tell about common uses. Put it in relation with the other API." +msgstr "它做的是:告知普通的用法。把它与其它的API发生联系。" + +#: C/index.docbook:754(tip/para) +#, fuzzy +msgid "When documenting code, describe two aspects: <_:itemizedlist-1/>" +msgstr "在编写代码文档时,描述两种方向:" + +#: C/index.docbook:779(listitem/para) +msgid "Use function() to refer to functions or macros which take arguments." +msgstr "用function()来指示带有参数的函数或宏。" + +#: C/index.docbook:784(listitem/para) +msgid "" +"Use @param to refer to parameters. Also use this when referring to " +"parameters of other functions, related to the one being described." +msgstr "用@param指示参数。同样也可以指示其它函数的参数,与所描述的对象有关。" + +#: C/index.docbook:790(listitem/para) +msgid "Use %constant to refer to a constant, e.g. %G_TRAVERSE_LEAFS." +msgstr "用%constant指示常量,比如:%G_TRAVERSE_LEAFS。" + +#: C/index.docbook:795(listitem/para) +msgid "" +"Use #symbol to refer to other types of symbol, e.g. structs and enums and " +"macros which don't take arguments." +msgstr "用#symbol指示其它符号类型,比如:结构,枚举与不带参数的宏。" + +#: C/index.docbook:801(listitem/para) +#, fuzzy +#| msgid "Use #Object::signal to refer to a GObject signal" +msgid "Use #Object::signal to refer to a GObject signal." +msgstr "用#Object::signal指示一个GObject信号" + +#: C/index.docbook:806(listitem/para) +#, fuzzy +#| msgid "Use #Object:property to refer to a GObject property" +msgid "Use #Object:property to refer to a GObject property." +msgstr "用#Object::property指示一个#Object属性" + +#: C/index.docbook:811(listitem/para) +msgid "Use #Struct.field to refer to a field inside a structure." +msgstr "用#Struct.field指示结构体的字段。" + +#: C/index.docbook:773(sect1/para) +msgid "" +"One advantage of hyper-text over plain-text is the ability to have links in " +"the document. Writing the correct markup for a link can be tedious though. " +"GTK-Doc comes to help by providing several useful abbreviations. <_:" +"itemizedlist-1/>" +msgstr "" +"与纯文本相比,超文本的优势在于可以在文档内部有链接。但为一个链接编写正确的标" +"记可能是件枯燥的差事。GTK-Doc提供了几个有用的简化方法帮你解决这个麻烦。<_:" +"itemizedlist-1/>" + +#: C/index.docbook:819(tip/para) +msgid "" +"If you need to use the special characters '<', '>', '()', '@', '%', or " +"'#' in your documentation without GTK-Doc changing them you can use the XML " +"entities \"&lt;\", \"&gt;\", \"&lpar;\", \"&rpar;\", \"&" +"commat;\", \"&percnt;\" and \"&num;\" respectively or escape them " +"with a backslash '\\'." +msgstr "" +"如果你要在文档里面使用一些特殊的字符'<', '>', '()', '@', '%', or '#' 且" +"不用GTK-Doc来修改它们,你可以相应地用XML 实体 \"&lt;\", \"&gt;\", " +"\"&lpar;\", \"&rpar;\", \"&commat;\", \"&percnt;\" 以及 " +"\"&num;\"或者用一个反斜线'\\'来转义它们。" + +#: C/index.docbook:828(sect1/para) +msgid "" +"DocBook can do more than just links. One can also have lists, tables and " +"examples. To enable the usage of docbook SGML/XML tags inside doc-comments " +"you need to have or " +"in the variable MKDB_OPTIONS inside Makefile.am." +msgstr "" +"DocBook可以做比链接多得多的事情。你可以有列表,表格和示例。要在doc-comments中" +"激活docbook SGML/XML标识的使用,你得往Makefile.am文件中" +"的变量MKDB_OPTIONS上加入 或 " +"选项。" + +#: C/index.docbook:842(example/title) +msgid "GTK-Doc comment block using markdown" +msgstr "使用markdown进行GTK-Doc块注释" + +#: C/index.docbook:843(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * identifier:\n" +" *\n" +" * documentation ...\n" +" *\n" +" * # Sub heading #\n" +" *\n" +" * more documentation:\n" +" * - list item 1\n" +" * - list item 2\n" +" *\n" +" * Even more docs.\n" +" */\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * 标识符:\n" +" *\n" +" * 文档内容 ...\n" +" *\n" +" * # 小标题 #\n" +" *\n" +" * 更多文档:\n" +" * - 列表项1\n" +" * - 列表项2\n" +" *\n" +" * 其余更多文档。\n" +" */\n" +"\n" +" " + +#: C/index.docbook:836(sect1/para) +msgid "" +"Since GTK-Doc-1.18 the tool supports a subset or the markdown language. One can " +"use it for sub-headings and simple itemized lists. On older GTK-Doc versions " +"the content will be rendered as it (the list items will appear in one line " +"separated by dashes). <_:example-1/>" +msgstr "" +"从 GTK-Doc-1.18 版本开始,该工具支持 markdown 标记语言 的一个子集。可以用它定义小标题" +"和简单的项目列表。在较早的 GTK-Doc 版本中,内容会原样渲染(列表项会显示在一" +"行,以短划线隔开)。<_:example-1/>" + +#: C/index.docbook:864(tip/para) +msgid "" +"As already mentioned earlier GTK-Doc is for documenting public API. Thus one " +"cannot write documentation for static symbols. Nevertheless it is good to " +"comment those symbols too. This helps other to understand you code. " +"Therefore we recommend to comment these using normal comments (without the " +"2nd '*' in the first line). If later the function needs to be made public, " +"all one needs to do is to add another '*' in the comment block and insert " +"the symbol name at the right place inside the sections file." +msgstr "" +"如早先所述,GTK-Doc是为编写公共的API而作的。所以你不能够为静态符号编写文档。" +"尽管如此,它也可以很好地为那些符号作注释。这有助于他人理解你的代码。因此我们" +"建议你用普通的注释来注释它们(不使用第一行的第二个'*'号)。如果以后函数须要作" +"为public,你须做的只是在注释块中加入另一个 '*'号并且在区段文件里插入正确的标" +"识符名称。" + +#: C/index.docbook:878(sect1/title) +msgid "Documenting sections" +msgstr "文档章节" + +#: C/index.docbook:880(sect1/para) +msgid "" +"Each section of the documentation contains information about one class or " +"module. To introduce the component one can write a section block. The short " +"description is also used inside the table of contents. All the @fields are " +"optional." +msgstr "" +"文档的每个章节都包含着关于一个类或模块的信息。要介绍它的组件,你可以编写一节" +"注释块。在内容表格中也可以使用简短的描述。所有的@fields都是可选的。" + +#: C/index.docbook:888(example/title) +msgid "Section comment block" +msgstr "节注释块" + +#: C/index.docbook:889(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: the application class\n" +" * @title: Meep application\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * The application class handles ...\n" +" */\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * SECTION:meepapp\n" +" * @short_description: the application class\n" +" * @title: Meep application\n" +" * @section_id:\n" +" * @see_also: #MeepSettings\n" +" * @stability: Stable\n" +" * @include: meep/app.h\n" +" * @image: application.png\n" +" *\n" +" * The application class handles ...\n" +" */\n" +"\n" +" " + +#: C/index.docbook:910(varlistentry/term) +msgid "SECTION:<name>" +msgstr "SECTION:<name>" + +#: C/index.docbook:912(listitem/para) +msgid "" +"The name links the section documentation to the respective part in the " +"<package>-sections.txt file. The name give here " +"should match the <FILE> tag in the <package>-sections." +"txt file." +msgstr "" +"名字链接这节文档到文件<package>-sections.txt中对应" +"的部分。这里的名字应匹配<package>-sections.txt文件" +"中的<FILE>标识。" + +#: C/index.docbook:921(varlistentry/term) +msgid "@short_description" +msgstr "@short_description" + +#: C/index.docbook:923(listitem/para) +msgid "" +"A one line description of the section, that later will appear after the " +"links in the TOC and at the top of the section page." +msgstr "该节的单行描述,不久将出现在TOC里的链接后和该节页面的顶部。" + +#: C/index.docbook:930(varlistentry/term) +msgid "@title" +msgstr "@title" + +#: C/index.docbook:932(listitem/para) +msgid "" +"The section title defaults to <name> from the SECTION declaration. It " +"can be overridden with the @title field." +msgstr "" +"段落的标题在SECTION声明里默认是 <name> 。它可以由@title字段替换。" + +#: C/index.docbook:939(varlistentry/term) +msgid "@section_id" +msgstr "@section_id" + +#: C/index.docbook:941(listitem/para) +msgid "" +"Overrides the use of title as a section identifier. For GObjects the <" +"title> is used as a section_id and for other sections it is <" +"MODULE>-<title>." +msgstr "" +"替换标题的用途作为一个段落指示器。对于GObjects,<title>用作section_id且" +"对于其它的段落它是<MODULE>-<title>。" + +#: C/index.docbook:949(varlistentry/term) +msgid "@see_also" +msgstr "@see_also" + +#: C/index.docbook:951(listitem/para) +msgid "A list of symbols that are related to this section." +msgstr "与本节相关的标识符。" + +#: C/index.docbook:957(varlistentry/term) +msgid "@stability" +msgstr "@stability" + +#: C/index.docbook:964(listitem/para) +#, fuzzy +msgid "" +"Stable - The intention of a Stable interface is to enable arbitrary third " +"parties to develop applications to these interfaces, release them, and have " +"confidence that they will run on all minor releases of the product (after " +"the one in which the interface was introduced, and within the same major " +"release). Even at a major release, incompatible changes are expected to be " +"rare, and to have strong justifications." +msgstr "" +"稳定版-一个稳定版本软件界面的目的是让任意第三方开发者为这些界面开发应用程" +"序,发行它们,并且确信它们的产品可以在所有的小版本号发布版上运行(after the " +"one in which the interface was introduced, and within the same major " +"release)。即使在一个主发行版,兼容的修改也是非常稀少的,并且要有大量的修正。" + +#: C/index.docbook:976(listitem/para) +#, fuzzy +msgid "" +"Unstable - Unstable interfaces are experimental or transitional. They are " +"typically used to give outside developers early access to new or rapidly " +"changing technology, or to provide an interim solution to a problem where a " +"more general solution is anticipated. No claims are made about either source " +"or binary compatibility from one minor release to the next." +msgstr "" +"不稳定版-不稳定版本的界面是用于体验或者过渡的软件版本。它们通常是给外部开发" +"人员早期访问新的或快速改变的技术,或者为已获得预期的更普遍的方案提供一个内部" +"解决方案。以保证从一个镜像发行版到另一个之间没有源代码与二进制代码兼容性的问" +"题。" + +#: C/index.docbook:988(listitem/para) +#, fuzzy +msgid "" +"Private - An interface that can be used within the GNOME stack itself, but " +"that is not documented for end-users. Such functions should only be used in " +"specified and documented ways." +msgstr "" +"个人版-一种可以离开GNOME堆栈而自己运行的界面,但是并没有正式声明给终端用户使" +"用。这样的函数只能以指定的且正式声明的方法来使用它。" + +#: C/index.docbook:997(listitem/para) +msgid "" +"Internal - An interface that is internal to a module and does not require " +"end-user documentation. Functions that are undocumented are assumed to be " +"Internal." +msgstr "" +"内部版-一种为一个模块而设计的内部界面,并且不需要终端用户文档。未正式声明的" +"函数假定是属于内部的。" + +#: C/index.docbook:959(listitem/para) +#, fuzzy +#| msgid "" +#| "A informal description of the stability level this API has. We recommend " +#| "the use of one of these terms: <_:itemizedlist-1/>" +msgid "" +"An informal description of the stability level this API has. We recommend " +"the use of one of these terms: <_:itemizedlist-1/>" +msgstr "" +"对这个API对稳定级别的一个非正式的描述。我们建议你使用以下术语:<_:" +"itemizedlist-1/>" + +#: C/index.docbook:1009(varlistentry/term) +msgid "@include" +msgstr "@include" + +#: C/index.docbook:1011(listitem/para) +#, fuzzy +msgid "" +"The #include files to show in the section synopsis (a " +"comma separated list), overriding the global value from the section file or command line. This item is " +"optional." +msgstr "" +"#include 文件在段落提纲内部显现(一个由分号‘;’分隔的列" +"表),从section file或者命令行中" +"取代全局数值。这是个可选项。" + +#: C/index.docbook:1020(varlistentry/term) +msgid "@image" +msgstr "@image" + +#: C/index.docbook:1022(listitem/para) +msgid "" +"The image to display at the top of the reference page for this section. This " +"will often be some sort of a diagram to illustrate the visual appearance of " +"a class or a diagram of its relationship to other classes. This item is " +"optional." +msgstr "" +"本章节的参考页顶部显示的图像。这常常是某些用于阐释一个类或者图表与其它类之间" +"关系的可视化图示。这个项是可选的。" + +#: C/index.docbook:1033(tip/para) +msgid "" +"To avoid unnecessary recompilation after doc-changes put the section docs " +"into the c-source where possible." +msgstr "" +"为避免不必要的重编译,在文档改动后尽可能把段落文档放入C代码中合适的位置。" + +#: C/index.docbook:1042(sect1/title) +msgid "Documenting symbols" +msgstr "编写符号文档" + +#: C/index.docbook:1044(sect1/para) +msgid "" +"Each symbol (function, macro, struct, enum, signal and property) is " +"documented in a separate block. The block is best placed close to the " +"definition of the symbols so that it is easy to keep them in sync. Thus " +"functions are usually documented in the c-source and macros, structs and " +"enums in the header file." +msgstr "" +"每个符号(函数,宏,结构,枚举,信号及属性)都在各自独立的块中描述。这些块最" +"好放置于接近标识符定义的地方,这样可以容易地让它们保持同步。因此函数通常在C代" +"码中定义,宏和结构及枚举在头文件里定义。" + +#: C/index.docbook:1052(sect2/title) C/index.docbook:1081(example/title) +msgid "General tags" +msgstr "一般标记" + +#: C/index.docbook:1054(sect2/para) +msgid "" +"You can add versioning information to all documentation elements to tell " +"when an API was introduced, or when it was deprecated." +msgstr "你可以为所有的文档元素加入版本信息,表明何时引入或废弃了某个API。" + +#: C/index.docbook:1059(variablelist/title) +msgid "Versioning Tags" +msgstr "版本标记" + +#: C/index.docbook:1060(varlistentry/term) +msgid "Since:" +msgstr "始于:" + +#: C/index.docbook:1062(listitem/para) +msgid "Description since which version of the code the API is available." +msgstr "描述从哪个版本的代码开始加入了该API。" + +#: C/index.docbook:1067(varlistentry/term) +msgid "Deprecated:" +msgstr "废弃:" + +#: C/index.docbook:1069(listitem/para) +msgid "" +"Paragraph denoting that this function should no be used anymore. The " +"description should point the reader to the new API." +msgstr "表明这个函数不应再使用的一段文档。描述文字应向读者介绍新的API。" + +#: C/index.docbook:1077(sect2/para) +msgid "(FIXME : Stability information)" +msgstr "(FIXME : 稳定性信息)" + +#: C/index.docbook:1082(example/programlisting) +#, fuzzy, no-wrap +#| msgid "" +#| "\n" +#| "\n" +#| "/**\n" +#| " * foo_get_bar:\n" +#| " * @foo: some foo\n" +#| " *\n" +#| " * Retrieves @foo's bar.\n" +#| " *\n" +#| " * Returns: @foo's bar\n" +#| " *\n" +#| " * Since: 2.6\n" +#| " * Deprecated: 2.12: Use foo_baz_get_bar() instead.\n" +#| " **/\n" +#| "Bar *\n" +#| "foo_get_bar(Foo *foo)\n" +#| "{\n" +#| "...\n" +#| "\n" +#| " " +msgid "" +"\n" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * Returns: @foo's bar\n" +" *\n" +" * Since: 2.6\n" +" * Deprecated: 2.12: Use foo_baz_get_bar() instead.\n" +" */\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * foo_get_bar:\n" +" * @foo: some foo\n" +" *\n" +" * Retrieves @foo's bar.\n" +" *\n" +" * 返回值: @foo's bar\n" +" *\n" +" * 始于: 2.6\n" +" * 废弃: 2.12: 请转用 foo_baz_get_bar()。\n" +" **/\n" +"Bar *\n" +"foo_get_bar(Foo *foo)\n" +"{\n" +"...\n" +"\n" +" " + +#: C/index.docbook:1104(sect2/title) C/index.docbook:1140(example/title) +msgid "Function comment block" +msgstr "函数注释块" + +#: C/index.docbook:1110(listitem/para) +msgid "" +"Document whether returned objects, lists, strings, etc, should be freed/" +"unrefed/released." +msgstr "" +"描述返回的对象、列表、字符串等是否应释放内存(freed)/解除引用/释放(released)。" + +#: C/index.docbook:1116(listitem/para) +msgid "Document whether parameters can be NULL, and what happens if they are." +msgstr "描述参数可否为NULL,如果是的话会发生什么。" + +#: C/index.docbook:1121(listitem/para) +msgid "" +"Mention interesting pre-conditions and post-conditions where appropriate." +msgstr "在适当时提及相关的前提条件与后续条件。" + +#: C/index.docbook:1106(sect2/para) C/index.docbook:1203(sect2/para) +msgid "Please remember to: <_:itemizedlist-1/>" +msgstr "请记得:<_:itemizedlist-1/>" + +#: C/index.docbook:1128(sect2/para) +msgid "" +"Gtk-doc assumes all symbols (macros, functions) starting with '_' are " +"private. They are treated like static functions." +msgstr "" +"Gtk-doc 假定所有以'_'符开头的符号(宏,函数)是私有的并视它们为静态函数。" + +#: C/index.docbook:1133(sect2/para) +#, fuzzy +#| msgid "" +#| "Also, take a look at gobject introspection annotation tags: http://live." +#| "gnome.org/GObjectIntrospection/Annotations" +msgid "" +"Also, take a look at GObject Introspection annotation tags: http://live." +"gnome.org/GObjectIntrospection/Annotations" +msgstr "" +"另请参阅gobject内省(introspection)标记的介绍:http://live.gnome.org/" +"GObjectIntrospection/Annotations" + +#: C/index.docbook:1141(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * function_name:\n" +" * @par1: description of parameter 1. These can extend over more than\n" +" * one line.\n" +" * @par2: description of parameter 2\n" +" * @...: a %NULL-terminated list of bars\n" +" *\n" +" * The function description goes here. You can use @par1 to refer to parameters\n" +" * so that they are highlighted in the output. You can also use %constant\n" +" * for constants, function_name2() for functions and #GtkWidget for links to\n" +" * other declarations (which may be documented elsewhere).\n" +" *\n" +" * Returns: an integer.\n" +" *\n" +" * Since: 2.2\n" +" * Deprecated: 2.18: Use other_function() instead.\n" +" */\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * function_name:\n" +" * @par1: 对参数 1 的描述。\n" +" * 可超过一行。\n" +" * @par2: 对参数 2 的描述\n" +" * @...: 一个以 %NULL 终止的 bars 列表\n" +" *\n" +" * 这里是函数描述。您可以用 @par1 引用参数,这样在输出中它们会突出显示。\n" +" * 您也可以使用 %constant 代表常量,function_name2() 代表函数,#GtkWidget \n" +" * 代表指向指向其他声明的链接(可能在其他位置描述)。\n" +" *\n" +" * 返回值: 一个整型值。\n" +" *\n" +" * 始于: 2.2\n" +" * 废弃: 2.18: 请转用 other_function()。\n" +" */\n" +"\n" +" " + +#: C/index.docbook:1164(variablelist/title) +msgid "Function tags" +msgstr "函数标记" + +#: C/index.docbook:1165(varlistentry/term) +msgid "Returns:" +msgstr "返回值:" + +#: C/index.docbook:1167(listitem/para) +msgid "Paragraph describing the returned result." +msgstr "描述返回结果的段落。" + +#: C/index.docbook:1172(varlistentry/term) +msgid "@...:" +msgstr "@...:" + +#: C/index.docbook:1174(listitem/para) +msgid "" +"In case the function has variadic arguments, you should use this tag " +"(@Varargs: does also work for historic reasons)." +msgstr "" +"如果函数有变长参数列表,你应当使用这个标记(@Varargs: 由于历史原因确实也管" +"用)。" + +#: C/index.docbook:1184(sect2/title) C/index.docbook:1186(example/title) +msgid "Property comment block" +msgstr "属性注释块" + +#: C/index.docbook:1187(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * SomeWidget:some-property:\n" +" *\n" +" * Here you can document a property.\n" +" */\n" +"g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * SomeWidget:some-property:\n" +" *\n" +" * 这里您可以描述一个属性。\n" +" */\n" +"g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);\n" +"\n" +" " + +#: C/index.docbook:1201(sect2/title) C/index.docbook:1220(example/title) +msgid "Signal comment block" +msgstr "信号注释块" + +#: C/index.docbook:1207(listitem/para) +msgid "" +"Document when the signal is emitted and whether it is emitted before or " +"after other signals." +msgstr "描述信号何时发射(emitted)及在其它信号之前还是之后发射。" + +#: C/index.docbook:1213(listitem/para) +msgid "Document what an application might do in the signal handler." +msgstr "描述应用程序在信号处理函数中能做些什么。" + +#: C/index.docbook:1221(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * FooWidget::foobarized:\n" +" * @widget: the widget that received the signal\n" +" * @foo: some foo\n" +" * @bar: some bar\n" +" *\n" +" * The ::foobarized signal is emitted each time someone tries to foobarize @widget.\n" +" */\n" +"foo_signals[FOOBARIZE] =\n" +" g_signal_new (\"foobarize\",\n" +" ...\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * FooWidget::foobarized:\n" +" * @widget: 接受信号的窗口部件\n" +" * @foo: some foo\n" +" * @bar: some bar\n" +" *\n" +" * ::foobarized 信号在每次有人尝试 foobarize @widget 时发射。\n" +" */\n" +"foo_signals[FOOBARIZE] =\n" +" g_signal_new (\"foobarize\",\n" +" ...\n" +"\n" +" " + +#: C/index.docbook:1240(sect2/title) C/index.docbook:1241(example/title) +msgid "Struct comment block" +msgstr "结构注释块" + +#: C/index.docbook:1242(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: some #gboolean\n" +" *\n" +" * This is the best widget, ever.\n" +" */\n" +"typedef struct _FooWidget {\n" +" /*< private >*/\n" +" GtkWidget parent;\n" +"\n" +" /*< public >*/\n" +" gboolean bar;\n" +"} FooWidget;\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * FooWidget:\n" +" * @bar: some #gboolean\n" +" *\n" +" * 这是史上最好的窗口部件。\n" +" */\n" +"typedef struct _FooWidget {\n" +" /*< private >*/\n" +" GtkWidget parent;\n" +"\n" +" /*< public >*/\n" +" gboolean bar;\n" +"} FooWidget;\n" +"\n" +" " + +#: C/index.docbook:1261(sect2/para) +msgid "" +"Use /*< private >*/ before the private struct fields you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"在你需要隐藏的私有结构字段之前使用/*< private >*/ 。反之使" +"用/*< public >*/." + +# 什么是vmethod?难以理解。 +#: C/index.docbook:1267(sect2/para) +msgid "" +"Struct comment blocks can also be used for GObjects and GObjectClasses. It " +"is usually a good idea to add a comment block for a class, if it has " +"vmethods (as this is how they can be documented). For the GObject itself one " +"can use the related section docs, having a separate block for the instance " +"struct would be useful if the instance has public fields. One disadvantage " +"here is that this creates two index entries of the same name (the structure " +"and the section)." +msgstr "" +"结构注释块也可以用于GObjects与GObjectClasses。为一个类添加注释块通常是个极好" +"的主意,如果它有vmethod(因为这是怎样制作它的文档的方法)。对于GObject自身而" +"言,你可以使用相关的章节文档,如果对象实例有公共字段,为每个实例结构体单独块" +"注释是非常有用的。缺点是这会为同一名字创建两个索引记录(结构与章节)。" + +#: C/index.docbook:1279(sect2/title) C/index.docbook:1280(example/title) +msgid "Enum comment block" +msgstr "枚举注释块" + +#: C/index.docbook:1281(example/programlisting) +#, fuzzy, no-wrap +#| msgid "" +#| "\n" +#| "\n" +#| "/**\n" +#| " * Something:\n" +#| " * @SOMETHING_FOO: something foo\n" +#| " * @SOMETHING_BAR: something bar\n" +#| " *\n" +#| " * Enum values used for the thing, to specify the thing.\n" +#| " *\n" +#| " **/\n" +#| "typedef enum {\n" +#| " SOMETHING_FOO,\n" +#| " SOMETHING_BAR,\n" +#| " /*< private >*/\n" +#| " SOMETHING_COUNT\n" +#| "} Something;\n" +#| "\n" +#| " " +msgid "" +"\n" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: something foo\n" +" * @SOMETHING_BAR: something bar\n" +" *\n" +" * Enum values used for the thing, to specify the thing.\n" +" */\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"/**\n" +" * Something:\n" +" * @SOMETHING_FOO: something foo\n" +" * @SOMETHING_BAR: something bar\n" +" *\n" +" * 用来解决问题和指定事物的枚举值。\n" +" *\n" +" **/\n" +"typedef enum {\n" +" SOMETHING_FOO,\n" +" SOMETHING_BAR,\n" +" /*< private >*/\n" +" SOMETHING_COUNT\n" +"} Something;\n" +"\n" +" " + +#: C/index.docbook:1300(sect2/para) +msgid "" +"Use /*< private >*/ before the private enum values you " +"want to hide. Use /*< public >*/ for the reverse " +"behaviour." +msgstr "" +"在你要隐藏的枚举数值前使用/*< private >*/。反之使用/" +"*< public >*/ 。" + +#: C/index.docbook:1310(sect1/title) +msgid "Useful DocBook tags" +msgstr "有用的DocBook标记" + +#: C/index.docbook:1312(sect1/para) +msgid "" +"Here are some DocBook tags which are most useful when documenting the code." +msgstr "这些是在编写代码文档时非常有用处的DocBook标记。" + +#: C/index.docbook:1321(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hash Tables</link>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<link linkend=\"glib-Hash-Tables\">Hash Tables</link>\n" +"\n" +" " + +#: C/index.docbook:1317(sect1/para) +#, fuzzy +msgid "" +"To link to another section in the GTK docs: <_:informalexample-1/> The " +"linkend is the SGML/XML id on the top item of the page you want to link to. " +"For most pages this is currently the part (\"gtk\", \"gdk\", \"glib\") and " +"then the page title (\"Hash Tables\"). For widgets it is just the class " +"name. Spaces and underscores are converted to '-' to conform to SGML/XML." +msgstr "" +"在GTK文档中链接到另一章节:<_:informalexample-1/> 链接尾部是你要链接的页面顶" +"部选项上的SGML/XML id。目前对于大多页面,它是(\"gtk\", \"gdk\", \"glib\") 部" +"分与页面标题(\"Hash Tables\")。对于widgets它只是类和名称而已。空格字符和下划" +"线都转换成 '-' 以适应SGML/XML.。" + +#: C/index.docbook:1336(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<function>...</function>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<function>...</function>\n" +"\n" +" " + +#: C/index.docbook:1333(sect1/para) +msgid "" +"To refer to an external function, e.g. a standard C function: <_:" +"informalexample-1/>" +msgstr "引用一个外部函数,比如一个标准 C 函数:<_:informalexample-1/>" + +#: C/index.docbook:1347(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<example>\n" +" <title>Using a GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<example>\n" +" <title>Using a GHashTable.</title>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</example>\n" +"\n" +" " + +#: C/index.docbook:1360(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<informalexample>\n" +" <programlisting>\n" +" ...\n" +" </programlisting>\n" +"</informalexample>\n" +"\n" +" " + +#: C/index.docbook:1344(sect1/para) +msgid "" +"To include example code: <_:informalexample-1/> or possibly this, for very " +"short code fragments which don't need a title: <_:informalexample-2/> For " +"the latter GTK-Doc also supports an abbreviation: |[ ... ]|" +msgstr "" +"要包含示例代码:<_:informalexample-1/> 或类似的,很短的不需要标题的代码段:" +"<_:informalexample-2/> 对后者,GTK-Doc 还支持一种缩写方式:|[ ... ]|" + +#: C/index.docbook:1381(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<itemizedlist>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +" <listitem>\n" +" <para>\n" +" ...\n" +" </para>\n" +" </listitem>\n" +"</itemizedlist>\n" +"\n" +" " + +#: C/index.docbook:1378(sect1/para) +msgid "To include bulleted lists: <_:informalexample-1/>" +msgstr "要包含符号列表:<_:informalexample-1/>" + +#: C/index.docbook:1403(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<note>\n" +" <para>\n" +" Make sure you free the data after use.\n" +" </para>\n" +"</note>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<note>\n" +" <para>\n" +" Make sure you free the data after use.\n" +" </para>\n" +"</note>\n" +"\n" +" " + +#: C/index.docbook:1400(sect1/para) +msgid "" +"To include a note which stands out from the text: <_:informalexample-1/>" +msgstr "要包含一条文字中突出显示的注解:<_:informalexample-1/>" + +#: C/index.docbook:1418(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<type>unsigned char</type>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<type>unsigned char</type>\n" +"\n" +" " + +#: C/index.docbook:1415(sect1/para) +msgid "To refer to a type: <_:informalexample-1/>" +msgstr "要引用一个类型:<_:informalexample-1/>" + +#: C/index.docbook:1429(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<structname>XFontStruct</structname>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<structname>XFontStruct</structname>\n" +"\n" +" " + +#: C/index.docbook:1426(sect1/para) +msgid "" +"To refer to an external structure (not one described in the GTK docs): <_:" +"informalexample-1/>" +msgstr "引用一个外部结构(不是在GTK 文档中描述的):<_:informalexample-1/>" + +#: C/index.docbook:1440(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<structfield>len</structfield>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<structfield>len</structfield>\n" +"\n" +" " + +#: C/index.docbook:1437(sect1/para) +msgid "To refer to a field of a structure: <_:informalexample-1/>" +msgstr "要引用一个结构字段:<_:informalexample-1/>" + +#: C/index.docbook:1451(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<classname>GtkWidget</classname>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<classname>GtkWidget</classname>\n" +"\n" +" " + +#: C/index.docbook:1448(sect1/para) +msgid "" +"To refer to a class name, we could possibly use: <_:informalexample-1/> but " +"you'll probably be using #GtkWidget instead (to automatically create a link " +"to the GtkWidget page - see the " +"abbreviations)." +msgstr "" +"要引用一个类的名字,你可能会使用:<_:informalexample-1/> 但是你可能正在使用" +"#GtkWidget(要自动创建一个到GtkWidget 页面的链接-请参阅缩写)。" + +#: C/index.docbook:1464(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<emphasis>This is important</emphasis>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<emphasis>This is important</emphasis>\n" +"\n" +" " + +#: C/index.docbook:1461(sect1/para) +msgid "To emphasize text: <_:informalexample-1/>" +msgstr "要强调文本:<_:informalexample-1/>" + +#: C/index.docbook:1475(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<filename>/home/user/documents</filename>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<filename>/home/user/documents</filename>\n" +"\n" +" " + +#: C/index.docbook:1472(sect1/para) +msgid "For filenames use: <_:informalexample-1/>" +msgstr "对于文件名,使用:<_:informalexample-1/>" + +#: C/index.docbook:1486(informalexample/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>\n" +"\n" +" " + +#: C/index.docbook:1483(sect1/para) +msgid "To refer to keys use: <_:informalexample-1/>" +msgstr "要引用键值,使用:<_:informalexample-1/>" + +#: C/index.docbook:1498(chapter/title) +msgid "Filling the extra files" +msgstr "填充额外的文件" + +#: C/index.docbook:1500(chapter/para) +msgid "" +"There are a couple of extra files, that need to be maintained along with the " +"inline source code comments: <package>.types, " +"<package>-docs.xml (in the past .sgml), " +"<package>-sections.txt." +msgstr "" +"另有几个文件要和内嵌源代码注释一起维护:<package>.types, <package>-docs.xml (原为 .sgml), " +"<package>-sections.txt。" + +#: C/index.docbook:1509(sect1/title) +msgid "Editing the types file" +msgstr "编辑类型文件" + +#: C/index.docbook:1511(sect1/para) +#, fuzzy +msgid "" +"If your library or application includes GObjects, you want their signals, " +"arguments/parameters and position in the hierarchy to be shown in the " +"documentation. All you need to do, is to list the xxx_get_type functions together with their include inside the <" +"package>.types file." +msgstr "" +"如果你的厍或应用程序包含了GtkObjects/GObjects,想把它们的信号,形式参数/实际" +"参数以及在继承关系中所在位置都写入文档,只需将xxx_get_type及其引用在<package>.types 文件中列出。" + +#: C/index.docbook:1520(example/title) +msgid "Example types file snippet" +msgstr "示例类型文件代码段" + +#: C/index.docbook:1521(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"#include <gtk/gtk.h>\n" +"\n" +"gtk_accel_label_get_type\n" +"gtk_adjustment_get_type\n" +"gtk_alignment_get_type\n" +"gtk_arrow_get_type\n" +"\n" +" " + +#: C/index.docbook:1534(sect1/para) +msgid "" +"Since GTK-Doc 1.8 gtkdoc-scan can generate this " +"list for you. Just add \"--rebuild-types\" to SCAN_OPTIONS in " +"Makefile.am. If you use this approach you should not " +"dist the types file nor have it under version control." +msgstr "" +"从GTK-Doc 1.8开始gtkdoc-scan能够自动生成这个列表。" +"只要往Makefile.am文件中的SCAN_OPTIONS项加入“--rebuild-" +"types”即可。如果你要使用它请保证不发行类型文件也不将它置于版本控制系统的管理" +"之下。" + +#: C/index.docbook:1543(sect1/title) +msgid "Editing the master document" +msgstr "编辑主文档" + +#: C/index.docbook:1545(sect1/para) +msgid "" +"GTK-Doc produces documentation in DocBook SGML/XML. When processing the " +"inline source comments, the GTK-Doc tools generate one documentation page " +"per class or module as a separate file. The master document includes them " +"and place them in an order." +msgstr "" +"GTK-Doc 以 DocBook SGML/XML 格式生成文档。当处理源代码内嵌注释时, GTK-Doc 工" +"具以独立文件为每个类或模块生成一个文档页。主文档包含了它们并且将它们按顺序排" +"列。" + +#: C/index.docbook:1552(sect1/para) +msgid "" +"While GTK-Doc creates a template master document for you, later run will not " +"touch it again. This means that one can freely structure the documentation. " +"That includes grouping pages and adding extra pages. GTK-Doc has now a test " +"suite, where also the master-document is recreated from scratch. Its a good " +"idea to look at this from time to time to see if there are some new goodies " +"introduced there." +msgstr "" +"GTK-Doc为你创建一个模板主文档,之后的运行就不会再动它了。这意味着你可以自由地" +"组织这个文档,包括分组页和加入的额外页面。GTK-Doc现在有一个测试套件,它的主文" +"档也重新生成。建议您经常关注它,又了解是否引入了新的功能特性。" + +#: C/index.docbook:1562(tip/para) +msgid "" +"Do not create tutorials as extra documents. Just write extra chapters. The " +"benefit of directly embedding the tutorial for your library into the API " +"documentation is that it is easy to link for the tutorial to symbol " +"documentation. Apart chances are higher that the tutorial gets updates along " +"with the library." +msgstr "" +"不要把教程(tutorial)当作额外的文档来编写。写成额外的章节即可。把你的库教程直" +"接放入API文档的好处就是教程与符号文档之间的链接很容易。另外教程与库一同升级时" +"分离的机会也更高。" + +#: C/index.docbook:1571(sect1/para) +msgid "" +"So what are the things to change inside the master document? For a start is " +"only a little. There are some placeholders (text in square brackets) there " +"which you should take care of." +msgstr "" +"那么什么是主文档内部要修改的东西呢?开始只是一点点东西。有一些占位标识(在方" +"括号内部的文本)你应当多留意。" + +#: C/index.docbook:1578(example/title) +msgid "Master document header" +msgstr "主文档头部" + +#: C/index.docbook:1579(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"<bookinfo>\n" +" <title>MODULENAME Reference Manual</title>\n" +" <releaseinfo>\n" +" for MODULENAME [VERSION]\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULENAME/index.html\">http://[SERVER]/MODULENAME/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insert title here]</title>\n" +"\n" +" " +msgstr "" +"\n" +"\n" +"<bookinfo>\n" +" <title>MODULENAME Reference Manual</title>\n" +" <releaseinfo>\n" +" for MODULENAME [VERSION]\n" +" The latest version of this documentation can be found on-line at\n" +" <ulink role=\"online-location\" url=\"http://[SERVER]/MODULENAME/index.html\">http://[SERVER]/MODULENAME/</ulink>.\n" +" </releaseinfo>\n" +"</bookinfo>\n" +"\n" +"<chapter>\n" +" <title>[Insert title here]</title>\n" +"\n" +" " + +#: C/index.docbook:1600(sect1/title) +msgid "Editing the section file" +msgstr "编辑节文件(section file)" + +#: C/index.docbook:1602(sect1/para) +msgid "" +"The section file is used to organise the documentation output by GTK-Doc. " +"Here one specifies which symbol belongs to which module or class and control " +"the visibility (public or private)." +msgstr "" +"节文件用于组织由GTK-Doc输出的文档。在此你指定哪个符号属于哪个类或模块,并控制" +"它是否可见(公共的或私有的)。" + +#: C/index.docbook:1608(sect1/para) +#, fuzzy +#| msgid "" +#| "The section file is a plain test file with xml like syntax (using tags). " +#| "Blank lines are ignored and lines starting with a '#' are treated as " +#| "comment lines." +msgid "" +"The section file is a plain text file with XML-like syntax (using tags). " +"Blank lines are ignored and lines starting with a '#' are treated as comment " +"lines." +msgstr "" +"节文件是一个类xml语法的纯文本文件(使用标记)。忽略空白行且以'#' 起始的行视为" +"注释行。" + +#: C/index.docbook:1614(sect1/para) +#, fuzzy +#| msgid "" +#| "The <FILE> ... </FILE> tag is used to specify the file name, " +#| "without any suffix. For example, using '<FILE>gnome-config</" +#| "FILE>' will result in the section declarations being output in the " +#| "template file tmpl/gnome-config.sgml, which will be " +#| "converted into the DocBook SGML/XML file sgml/gnome-config." +#| "sgml or .DocBook XML file xml/gnome-config.xml. (The name of the html file is based on the module name and the " +#| "section title, or for gobjects it is based on the gobjects class name " +#| "converted to lower case)." +msgid "" +"The <FILE> ... </FILE> tag is used to specify the file name, " +"without any suffix. For example, using '<FILE>gnome-config</" +"FILE>' will result in the section declarations being output in the " +"template file tmpl/gnome-config.sgml, which will be " +"converted into the DocBook SGML/XML file sgml/gnome-config.sgml or the DocBook XML file xml/gnome-config.xml. " +"(The name of the HTML file is based on the module name and the section " +"title, or for GObjects it is based on the GObjects class name converted to " +"lower case)." +msgstr "" +"<FILE> ... </FILE>标记用于指定文件名,不加任何后缀。例如:用'<" +"FILE>gnome-config</FILE>' 会导致段落声明输出到模板文件" +"tmpl/gnome-config.sgml中去,它将会转换为DocBook SGML/XML" +"文件sgml/gnome-config.sgml或者 .DocBook XML文件" +"xml/gnome-config.xml。(html文件的名字是基于模块名字与节" +"标题形成的,或者对gobjects是基于转换为小写的gobjects类名字形成的。)" + +#: C/index.docbook:1626(sect1/para) +msgid "" +"The <TITLE> ... </TITLE> tag is used to specify the title of the " +"section. It is only useful before the templates (if used) are initially " +"created, since the title set in the template file overrides this. Also if " +"one uses SECTION comment in the sources, this is obsolete." +msgstr "" +"<TITLE> ... </TITLE>标记用于节的标题。它只在模板(如果使用的话)" +"最初创建之前有用,因为设置在模板文件内的标题覆盖了它。或者如果你在源代码中使" +"用了SECTION注释(此功能已过时)。" + +#: C/index.docbook:1633(sect1/para) +msgid "" +"You can group items in the section by using the <SUBSECTION> tag. " +"Currently it outputs a blank line between subsections in the synopsis " +"section. You can also use <SUBSECTION Standard> for standard GObject " +"declarations (e.g. the functions like g_object_get_type and macros like " +"G_OBJECT(), G_IS_OBJECT() etc.). Currently these are left out of the " +"documentation. You can also use <SUBSECTION Private> for private " +"declarations which will not be output (it is a handy way to avoid warning " +"messages about unused declarations). If your library contains private types " +"which you don't want to appear in the object hierarchy and the list of " +"implemented or required interfaces, add them to a Private subsection. " +"Whether you would place GObject and GObjectClass like structs in public or " +"Standard section depends if they have public entries (variables, vmethods)." +msgstr "" + +#: C/index.docbook:1652(sect1/para) +msgid "" +"You can also use <INCLUDE> ... </INCLUDE> to specify the " +"#include files which are shown in the synopsis sections. It contains a comma-" +"separate list of #include files, without the angle brackets. If you set it " +"outside of any sections, it acts for all sections until the end of the file. " +"If you set it within a section, it only applies to that section." +msgstr "" + +#: C/index.docbook:1666(chapter/title) +msgid "Controlling the result" +msgstr "控制结果" + +#: C/index.docbook:1668(chapter/para) +msgid "" +"A GTK-Doc run generates report files inside the documentation directory. The " +"generated files are named: <package>-undocumented.txt, <package>-undeclared.txt and " +"<package>-unused.txt. All those are plain text " +"files that can be viewed and postprocessed easily." +msgstr "" + +#: C/index.docbook:1677(chapter/para) +msgid "" +"The <package>-undocumented.txt file starts with " +"the documentation coverage summary. Below are two sections divided by blank " +"lines. The first section lists undocumented or incomplete symbols. The " +"second section does the same for section docs. Incomplete entries are those, " +"which have documentation, but where e.g. a new parameter has been added." +msgstr "" + +#: C/index.docbook:1686(chapter/para) +msgid "" +"The <package>-undeclared.txt file lists symbols " +"given in the <package>-sections.txt but not found " +"in the sources. Check if they have been removed or if they are misspelled." +msgstr "" + +#: C/index.docbook:1693(chapter/para) +msgid "" +"The <package>-unused.txt file lists symbol names, " +"where the GTK-Doc scanner has found documentation, but does not know where " +"to put it. This means that the symbol has not yet been added to the " +"<package>-sections.txt file." +msgstr "" + +#: C/index.docbook:1701(tip/para) +msgid "" +"Enable or add the line in Makefile." +"am. If at least GTK-Doc 1.9 is installed, this will run sanity checks during " +"make check run." +msgstr "" + +#: C/index.docbook:1708(chapter/para) +msgid "" +"One can also look at the files produced by the source code scanner: " +"<package>-decl-list.txt and <" +"package>-decl.txt. The first one can be compared with the " +"section file if that is manually maintained. The second lists all " +"declarations from the headers. If a symbol is missing one could check if " +"this file contains it." +msgstr "" + +#: C/index.docbook:1717(chapter/para) +msgid "" +"If the project is GObject based, one can also look into the files produced " +"by the object scanner: <package>.args.txt, " +"<package>.hierarchy.txt, <" +"package>.interfaces.txt, <package>." +"prerequisites.txt and <package>.signals.txt. If there are missing symbols in any of those, one can ask gtkdoc " +"to keep the intermediate scanner file for further analysis, by running it as " +"GTK_DOC_KEEP_INTERMEDIATE=1 make." +msgstr "" + +#: C/index.docbook:1732(chapter/title) +msgid "Documenting other interfaces" +msgstr "为其它接口书写文档" + +#: C/index.docbook:1734(chapter/para) +msgid "" +"So far we have been using GTK-Doc to document the API of code. The next " +"sections contain suggestions how the tools can be used to document other " +"interfaces too." +msgstr "" + +#: C/index.docbook:1741(sect1/title) +msgid "Command line options and man pages" +msgstr "命令行选项与 man 页面" + +#: C/index.docbook:1743(sect1/para) +msgid "" +"As one can generate man pages for a docbook refentry as well, it sounds like " +"a good idea to use it for that purpose. This way the interface is part of " +"the reference and one gets the man-page for free." +msgstr "" + +#: C/index.docbook:1750(sect2/title) +msgid "Document the tool" +msgstr "为工具书写文档" + +#: C/index.docbook:1752(sect2/para) +msgid "" +"Create one refentry file per tool. Following our example we would call it meep/" +"docs/reference/meeper/meep.xml. For the xml tags that should be " +"used and can look at generated file in the xml subdirectory as well as " +"examples e.g. in glib." +msgstr "" + +#: C/index.docbook:1762(sect2/title) +msgid "Adding the extra configure check" +msgstr "添加额外的配置检查" + +#: C/index.docbook:1765(example/title) C/index.docbook:1785(example/title) +msgid "Extra configure checks" +msgstr "额外的配置检查" + +#: C/index.docbook:1766(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"AC_ARG_ENABLE(man,\n" +" [AC_HELP_STRING([--enable-man],\n" +" [regenerate man pages from Docbook [default=no]])],enable_man=yes,\n" +" enable_man=no)\n" +"\n" +"AC_PATH_PROG([XSLTPROC], [xsltproc])\n" +"AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)\n" +"\n" +" " +msgstr "" + +#: C/index.docbook:1782(sect2/title) +msgid "Adding the extra makefile rules" +msgstr "添加额外的makefile规则" + +#: C/index.docbook:1786(example/programlisting) +#, no-wrap +msgid "" +"\n" +"\n" +"man_MANS = \\\n" +" meeper.1\n" +"\n" +"if ENABLE_GTK_DOC\n" +"if ENABLE_MAN\n" +"\n" +"%.1 : %.xml\n" +" @XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<\n" +"\n" +"endif\n" +"endif\n" +"\n" +"BUILT_EXTRA_DIST = $(man_MANS)\n" +"EXTRA_DIST += meep.xml\n" +"\n" +" " +msgstr "" + +#: C/index.docbook:1810(sect1/title) +msgid "DBus interfaces" +msgstr "DBus接口" + +#: C/index.docbook:1812(sect1/para) +msgid "" +"(FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://" +"cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)" +msgstr "" + +#: C/index.docbook:1821(chapter/title) +msgid "Frequently asked questions" +msgstr "常见问题" + +#: C/index.docbook:1825(segmentedlist/segtitle) +msgid "Question" +msgstr "问题" + +#: C/index.docbook:1826(segmentedlist/segtitle) +msgid "Answer" +msgstr "答案" + +#: C/index.docbook:1828(seglistitem/seg) +msgid "No class hierarchy." +msgstr "无类继承关系。" + +#: C/index.docbook:1829(seglistitem/seg) +msgid "" +"The objects xxx_get_type() function has not been " +"entered into the <package>.types file." +msgstr "" +"对象的 xxx_get_type() 函数未进入 <" +"package>.types 文件。" + +#: C/index.docbook:1835(seglistitem/seg) +msgid "Still no class hierarchy." +msgstr "仍无类继承关系。" + +#: C/index.docbook:1836(seglistitem/seg) +msgid "" +"Missing or wrong naming in <package>-sections.txt " +"file (see explanation)." +msgstr "" + +#: C/index.docbook:1842(seglistitem/seg) +msgid "Damn, I have still no class hierarchy." +msgstr "该死,我仍然没有类继承关系。" + +#: C/index.docbook:1843(seglistitem/seg) +msgid "" +"Is the object name (name of the instance struct, e.g. GtkWidget) part of the normal section (don't put this into Standard or Private " +"subsections)." +msgstr "" + +#: C/index.docbook:1850(seglistitem/seg) +msgid "No symbol index." +msgstr "无标识符索引。" + +#: C/index.docbook:1851(seglistitem/seg) +msgid "" +"Does the <package>-docs.{xml,sgml} contain a " +"index that xi:includes the generated index?" +msgstr "" + +#: C/index.docbook:1857(seglistitem/seg) +msgid "Symbols are not linked to their doc-section." +msgstr "" + +#: C/index.docbook:1858(seglistitem/seg) +msgid "" +"Is the doc-comment using the correct markup (added #,% or ())? Check if the " +"gtkdoc-fixxref warns about unresolvable xrefs." +msgstr "" + +#: C/index.docbook:1864(seglistitem/seg) +msgid "A new class does not appear in the docs." +msgstr "" + +#: C/index.docbook:1865(seglistitem/seg) +msgid "" +"Is the new page xi:included from <package>-docs.{xml,sgml}." +msgstr "" + +#: C/index.docbook:1871(seglistitem/seg) +msgid "A new symbol does not appear in the docs." +msgstr "" + +#: C/index.docbook:1872(seglistitem/seg) +msgid "" +"Is the doc-comment properly formatted. Check for spelling mistakes in the " +"begin of the comment. Check if the gtkdoc-fixxref warns about unresolvable " +"xrefs. Check if the symbol is correctly listed in the <" +"package>-sections.txt in a public subsection." +msgstr "" + +#: C/index.docbook:1880(seglistitem/seg) +msgid "A type is missing from the class hierarchy." +msgstr "" + +#: C/index.docbook:1881(seglistitem/seg) +msgid "" +"If the type is listed in <package>.hierarchy but " +"not in xml/tree_index.sgml then double check that the " +"type is correctly placed in the <package>-sections.txt. If the type instance (e.g. GtkWidget) is not listed " +"or incidentialy makred private it will not be shown." +msgstr "" + +#: C/index.docbook:1890(seglistitem/seg) +msgid "I get foldoc links for all gobject annotations." +msgstr "" + +#: C/index.docbook:1891(seglistitem/seg) +msgid "" +"Check that xml/annotation-glossary.xml is xi:included " +"from <package>-docs.{xml,sgml}." +msgstr "" + +#: C/index.docbook:1899(seglistitem/seg) +msgid "Parameter described in source code comment block but does not exist" +msgstr "" + +#: C/index.docbook:1900(seglistitem/seg) +msgid "" +"Check if the prototype in the header has different parameter names as in the " +"source." +msgstr "" + +#: C/index.docbook:1905(seglistitem/seg) +msgid "multiple \"IDs\" for constraint linkend: XYZ" +msgstr "" + +#: C/index.docbook:1906(seglistitem/seg) +msgid "" +"Symbol XYZ appears twice in <package>-sections.txt file." +msgstr "" + +#: C/index.docbook:1909(seglistitem/seg) +msgid "" +"Element typename in namespace '' encountered in para, but no template " +"matches." +msgstr "" + +#: C/index.docbook:1916(chapter/title) +msgid "Tools related to gtk-doc" +msgstr "" + +#: C/index.docbook:1918(chapter/para) +msgid "" +"GtkDocPlugin - a Trac " +"GTK-Doc integration plugin, that adds API docs to a trac site and " +"integrates with the trac search." +msgstr "" + +#: C/index.docbook:1923(chapter/para) +msgid "" +"Gtkdoc-depscan - a tool (part of gtk-doc) to check used API against since " +"tags in the API to determine the minimum required version." +msgstr "" + +#: C/index.docbook:12(appendixinfo/releaseinfo) +#: C/fdl-appendix.xml:12(appendixinfo/releaseinfo) +msgid "Version 1.1, March 2000" +msgstr "" + +#: C/index.docbook:15(appendixinfo/copyright) +msgid "2000Free Software Foundation, Inc." +msgstr "2000Free Software Foundation, Inc." + +#: C/index.docbook:20(para/address) +#, no-wrap +msgid "" +"Free Software Foundation, Inc. 51 Franklin Street, \n" +" Suite 330, Boston, MA \n" +" 02110-1301 USA" +msgstr "" + +#: C/index.docbook:19(legalnotice/para) +#: C/fdl-appendix.xml:19(legalnotice/para) +msgid "" +"<_:address-1/> Everyone is permitted to copy and distribute verbatim copies " +"of this license document, but changing it is not allowed." +msgstr "" + +#: C/index.docbook:28(appendix/title) C/fdl-appendix.xml:28(appendix/title) +#: C/fdl-appendix.xml:642(para/quote) +msgid "GNU Free Documentation License" +msgstr "GNU 自由文档许可证" + +#: C/index.docbook:31(sect1/title) C/fdl-appendix.xml:31(sect1/title) +msgid "0. PREAMBLE" +msgstr "" + +#: C/index.docbook:32(sect1/para) +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document free in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" + +#: C/index.docbook:43(sect1/para) +msgid "" +"This License is a kind of copyleft, which means that " +"derivative works of the document must themselves be free in the same sense. " +"It complements the GNU General Public License, which is a copyleft license " +"designed for free software." +msgstr "" + +#: C/index.docbook:50(sect1/para) C/fdl-appendix.xml:50(sect1/para) +msgid "" +"We have designed this License in order to use it for manuals for free " +"software, because free software needs free documentation: a free program " +"should come with manuals providing the same freedoms that the software does. " +"But this License is not limited to software manuals; it can be used for any " +"textual work, regardless of subject matter or whether it is published as a " +"printed book. We recommend this License principally for works whose purpose " +"is instruction or reference." +msgstr "" + +#: C/index.docbook:62(sect1/title) C/fdl-appendix.xml:62(sect1/title) +msgid "1. APPLICABILITY AND DEFINITIONS" +msgstr "" + +#: C/index.docbook:63(sect1/para) +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The Document, below, refers to any such " +"manual or work. Any member of the public is a licensee, and is addressed as " +"you." +msgstr "" + +#: C/index.docbook:72(sect1/para) +msgid "" +"A Modified Version of the Document means any work containing " +"the Document or a portion of it, either copied verbatim, or with " +"modifications and/or translated into another language." +msgstr "" + +#: C/index.docbook:79(sect1/para) +msgid "" +"A Secondary Section is a named appendix or a front-matter " +"section of the Document that deals " +"exclusively with the relationship of the publishers or authors of the " +"Document to the Document's overall subject (or to related matters) and " +"contains nothing that could fall directly within that overall subject. (For " +"example, if the Document is in part a textbook of mathematics, a Secondary " +"Section may not explain any mathematics.) The relationship could be a matter " +"of historical connection with the subject or with related matters, or of " +"legal, commercial, philosophical, ethical or political position regarding " +"them." +msgstr "" + +#: C/index.docbook:94(sect1/para) +msgid "" +"The Invariant Sections are certain Secondary Sections whose titles are designated, as being " +"those of Invariant Sections, in the notice that says that the Document is released under this License." +msgstr "" + +#: C/index.docbook:103(sect1/para) +msgid "" +"The Cover Texts are certain short passages of text that are " +"listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says " +"that the Document is released under " +"this License." +msgstr "" + +#: C/index.docbook:111(sect1/para) +msgid "" +"A Transparent copy of the " +"Document means a machine-readable copy, represented in a format whose " +"specification is available to the general public, whose contents can be " +"viewed and edited directly and straightforwardly with generic text editors " +"or (for images composed of pixels) generic paint programs or (for drawings) " +"some widely available drawing editor, and that is suitable for input to text " +"formatters or for automatic translation to a variety of formats suitable for " +"input to text formatters. A copy made in an otherwise Transparent file " +"format whose markup has been designed to thwart or discourage subsequent " +"modification by readers is not Transparent. A copy that is not " +"Transparent is called Opaque." +msgstr "" + +#: C/index.docbook:128(sect1/para) C/fdl-appendix.xml:128(sect1/para) +msgid "" +"Examples of suitable formats for Transparent copies include plain ASCII " +"without markup, Texinfo input format, LaTeX input format, SGML or XML using " +"a publicly available DTD, and standard-conforming simple HTML designed for " +"human modification. Opaque formats include PostScript, PDF, proprietary " +"formats that can be read and edited only by proprietary word processors, " +"SGML or XML for which the DTD and/or processing tools are not generally " +"available, and the machine-generated HTML produced by some word processors " +"for output purposes only." +msgstr "" + +#: C/index.docbook:141(sect1/para) +msgid "" +"The Title Page means, for a printed book, the title page " +"itself, plus such following pages as are needed to hold, legibly, the " +"material this License requires to appear in the title page. For works in " +"formats which do not have any title page as such, Title Page " +"means the text near the most prominent appearance of the work's title, " +"preceding the beginning of the body of the text." +msgstr "" + +#: C/index.docbook:153(sect1/title) C/fdl-appendix.xml:153(sect1/title) +msgid "2. VERBATIM COPYING" +msgstr "" + +#: C/index.docbook:154(sect1/para) +msgid "" +"You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that " +"this License, the copyright notices, and the license notice saying this " +"License applies to the Document are reproduced in all copies, and that you " +"add no other conditions whatsoever to those of this License. You may not use " +"technical measures to obstruct or control the reading or further copying of " +"the copies you make or distribute. However, you may accept compensation in " +"exchange for copies. If you distribute a large enough number of copies you " +"must also follow the conditions in section 3." +msgstr "" + +#: C/index.docbook:169(sect1/para) C/fdl-appendix.xml:169(sect1/para) +msgid "" +"You may also lend copies, under the same conditions stated above, and you " +"may publicly display copies." +msgstr "" + +#: C/index.docbook:176(sect1/title) C/fdl-appendix.xml:176(sect1/title) +msgid "3. COPYING IN QUANTITY" +msgstr "" + +#: C/index.docbook:177(sect1/para) +msgid "" +"If you publish printed copies of the Document numbering more than 100, and the Document's license " +"notice requires Cover Texts, you " +"must enclose the copies in covers that carry, clearly and legibly, all these " +"Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on " +"the back cover. Both covers must also clearly and legibly identify you as " +"the publisher of these copies. The front cover must present the full title " +"with all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as " +"verbatim copying in other respects." +msgstr "" + +#: C/index.docbook:195(sect1/para) C/fdl-appendix.xml:195(sect1/para) +msgid "" +"If the required texts for either cover are too voluminous to fit legibly, " +"you should put the first ones listed (as many as fit reasonably) on the " +"actual cover, and continue the rest onto adjacent pages." +msgstr "" + +#: C/index.docbook:202(sect1/para) +msgid "" +"If you publish or distribute Opaque " +"copies of the Document numbering more " +"than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state " +"in or with each Opaque copy a publicly-accessible computer-network location " +"containing a complete Transparent copy of the Document, free of added " +"material, which the general network-using public has access to download " +"anonymously at no charge using public-standard network protocols. If you use " +"the latter option, you must take reasonably prudent steps, when you begin " +"distribution of Opaque copies in quantity, to ensure that this Transparent " +"copy will remain thus accessible at the stated location until at least one " +"year after the last time you distribute an Opaque copy (directly or through " +"your agents or retailers) of that edition to the public." +msgstr "" + +#: C/index.docbook:222(sect1/para) +msgid "" +"It is requested, but not required, that you contact the authors of the Document well before redistributing any " +"large number of copies, to give them a chance to provide you with an updated " +"version of the Document." +msgstr "" + +#: C/index.docbook:231(sect1/title) C/fdl-appendix.xml:231(sect1/title) +msgid "4. MODIFICATIONS" +msgstr "4. 修改" + +#: C/index.docbook:232(sect1/para) +msgid "" +"You may copy and distribute a Modified " +"Version of the Document under " +"the conditions of sections 2 and 3 above, provided that you release the " +"Modified Version under precisely this License, with the Modified Version " +"filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" + +#: C/index.docbook:248(formalpara/title) +#: C/fdl-appendix.xml:248(formalpara/title) +msgid "A" +msgstr "A" + +#: C/index.docbook:249(formalpara/para) +msgid "" +"Use in the Title Page (and on the " +"covers, if any) a title distinct from that of the Document, and from those of previous versions (which " +"should, if there were any, be listed in the History section of the " +"Document). You may use the same title as a previous version if the original " +"publisher of that version gives permission." +msgstr "" + +#: C/index.docbook:264(formalpara/title) +#: C/fdl-appendix.xml:264(formalpara/title) +msgid "B" +msgstr "B" + +#: C/index.docbook:265(formalpara/para) +msgid "" +"List on the Title Page, as authors, " +"one or more persons or entities responsible for authorship of the " +"modifications in the Modified Version, " +"together with at least five of the principal authors of the Document (all of its principal authors, if it has " +"less than five)." +msgstr "" + +#: C/index.docbook:279(formalpara/title) +#: C/fdl-appendix.xml:279(formalpara/title) +msgid "C" +msgstr "C" + +#: C/index.docbook:280(formalpara/para) +msgid "" +"State on the Title Page the name of " +"the publisher of the Modified Version, " +"as the publisher." +msgstr "" + +#: C/index.docbook:291(formalpara/title) +#: C/fdl-appendix.xml:291(formalpara/title) +msgid "D" +msgstr "D" + +#: C/index.docbook:292(formalpara/para) +msgid "" +"Preserve all the copyright notices of the Document." +msgstr "" + +#: C/index.docbook:301(formalpara/title) +#: C/fdl-appendix.xml:301(formalpara/title) +msgid "E" +msgstr "E" + +#: C/index.docbook:302(formalpara/para) +#: C/fdl-appendix.xml:302(formalpara/para) +msgid "" +"Add an appropriate copyright notice for your modifications adjacent to the " +"other copyright notices." +msgstr "" + +#: C/index.docbook:311(formalpara/title) +#: C/fdl-appendix.xml:311(formalpara/title) +msgid "F" +msgstr "F" + +#: C/index.docbook:312(formalpara/para) +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the Modified " +"Version under the terms of this License, in the form shown in the " +"Addendum below." +msgstr "" + +#: C/index.docbook:324(formalpara/title) +#: C/fdl-appendix.xml:324(formalpara/title) +msgid "G" +msgstr "G" + +#: C/index.docbook:325(formalpara/para) +msgid "" +"Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice." +msgstr "" + +#: C/index.docbook:337(formalpara/title) +#: C/fdl-appendix.xml:337(formalpara/title) +msgid "H" +msgstr "H" + +#: C/index.docbook:338(formalpara/para) +#: C/fdl-appendix.xml:338(formalpara/para) +msgid "Include an unaltered copy of this License." +msgstr "" + +#: C/index.docbook:346(formalpara/title) +#: C/fdl-appendix.xml:346(formalpara/title) +msgid "I" +msgstr "I" + +#: C/index.docbook:347(formalpara/para) +msgid "" +"Preserve the section entitled History, and its title, and add " +"to it an item stating at least the title, year, new authors, and publisher " +"of the Modified Version as given on " +"the Title Page. If there is no " +"section entitled History in the Document, create one stating the title, year, authors, and " +"publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" + +#: C/index.docbook:365(formalpara/title) +#: C/fdl-appendix.xml:365(formalpara/title) +msgid "J" +msgstr "J" + +#: C/index.docbook:366(formalpara/para) +msgid "" +"Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the " +"network locations given in the Document for previous versions it was based " +"on. These may be placed in the History section. You may omit " +"a network location for a work that was published at least four years before " +"the Document itself, or if the original publisher of the version it refers " +"to gives permission." +msgstr "" + +#: C/index.docbook:383(formalpara/title) +#: C/fdl-appendix.xml:383(formalpara/title) +msgid "K" +msgstr "K" + +#: C/index.docbook:384(formalpara/para) +msgid "" +"In any section entitled Acknowledgements or " +"Dedications, preserve the section's title, and preserve in " +"the section all the substance and tone of each of the contributor " +"acknowledgements and/or dedications given therein." +msgstr "" + +#: C/index.docbook:396(formalpara/title) +#: C/fdl-appendix.xml:396(formalpara/title) +msgid "L" +msgstr "L" + +#: C/index.docbook:397(formalpara/para) +msgid "" +"Preserve all the Invariant Sections " +"of the Document, unaltered in their " +"text and in their titles. Section numbers or the equivalent are not " +"considered part of the section titles." +msgstr "" + +#: C/index.docbook:409(formalpara/title) +#: C/fdl-appendix.xml:409(formalpara/title) +msgid "M" +msgstr "M" + +#: C/index.docbook:410(formalpara/para) +msgid "" +"Delete any section entitled Endorsements. Such a section may " +"not be included in the Modified Version." +msgstr "" + +#: C/index.docbook:421(formalpara/title) +#: C/fdl-appendix.xml:421(formalpara/title) +msgid "N" +msgstr "N" + +#: C/index.docbook:422(formalpara/para) +msgid "" +"Do not retitle any existing section as Endorsements or to " +"conflict in title with any Invariant " +"Section." +msgstr "" + +#: C/index.docbook:432(sect1/para) +msgid "" +"If the Modified Version includes new " +"front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from " +"the Document, you may at your option designate some or all of these sections " +"as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's " +"license notice. These titles must be distinct from any other section titles." +msgstr "" + +#: C/index.docbook:444(sect1/para) +msgid "" +"You may add a section entitled Endorsements, provided it " +"contains nothing but endorsements of your Modified Version by various parties--for example, statements of " +"peer review or that the text has been approved by an organization as the " +"authoritative definition of a standard." +msgstr "" + +#: C/index.docbook:453(sect1/para) +msgid "" +"You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list " +"of Cover Texts in the Modified Version. Only one passage of Front-Cover " +"Text and one of Back-Cover Text may be added by (or through arrangements " +"made by) any one entity. If the Document already includes a cover text for the same cover, previously added by " +"you or by arrangement made by the same entity you are acting on behalf of, " +"you may not add another; but you may replace the old one, on explicit " +"permission from the previous publisher that added the old one." +msgstr "" + +#: C/index.docbook:470(sect1/para) +msgid "" +"The author(s) and publisher(s) of the Document do not by this License give permission to use their names " +"for publicity for or to assert or imply endorsement of any Modified Version ." +msgstr "" + +#: C/index.docbook:480(sect1/title) C/fdl-appendix.xml:480(sect1/title) +msgid "5. COMBINING DOCUMENTS" +msgstr "" + +#: C/index.docbook:481(sect1/para) +msgid "" +"You may combine the Document with " +"other documents released under this License, under the terms defined in " +"section 4 above for modified versions, " +"provided that you include in the combination all of the Invariant Sections of all of the original documents, " +"unmodified, and list them all as Invariant Sections of your combined work in " +"its license notice." +msgstr "" + +#: C/index.docbook:492(sect1/para) +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical Invariant Sections may be " +"replaced with a single copy. If there are multiple Invariant Sections with " +"the same name but different contents, make the title of each such section " +"unique by adding at the end of it, in parentheses, the name of the original " +"author or publisher of that section if known, or else a unique number. Make " +"the same adjustment to the section titles in the list of Invariant Sections " +"in the license notice of the combined work." +msgstr "" + +#: C/index.docbook:505(sect1/para) +msgid "" +"In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled " +"History; likewise combine any sections entitled " +"Acknowledgements, and any sections entitled " +"Dedications. You must delete all sections entitled " +"Endorsements." +msgstr "" + +#: C/index.docbook:516(sect1/title) C/fdl-appendix.xml:516(sect1/title) +msgid "6. COLLECTIONS OF DOCUMENTS" +msgstr "" + +#: C/index.docbook:517(sect1/para) +msgid "" +"You may make a collection consisting of the Document and other documents released under this License, and " +"replace the individual copies of this License in the various documents with " +"a single copy that is included in the collection, provided that you follow " +"the rules of this License for verbatim copying of each of the documents in " +"all other respects." +msgstr "" + +#: C/index.docbook:527(sect1/para) C/fdl-appendix.xml:527(sect1/para) +msgid "" +"You may extract a single document from such a collection, and dispbibute it " +"individually under this License, provided you insert a copy of this License " +"into the extracted document, and follow this License in all other respects " +"regarding verbatim copying of that document." +msgstr "" + +#: C/index.docbook:537(sect1/title) C/fdl-appendix.xml:537(sect1/title) +msgid "7. AGGREGATION WITH INDEPENDENT WORKS" +msgstr "" + +#: C/index.docbook:538(sect1/para) +msgid "" +"A compilation of the Document or its " +"derivatives with other separate and independent documents or works, in or on " +"a volume of a storage or distribution medium, does not as a whole count as a " +"Modified Version of the Document, " +"provided no compilation copyright is claimed for the compilation. Such a " +"compilation is called an aggregate, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the Cover Text requirement of section 3 is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" + +#: C/index.docbook:561(sect1/title) C/fdl-appendix.xml:561(sect1/title) +msgid "8. TRANSLATION" +msgstr "" + +#: C/index.docbook:562(sect1/para) +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the Document under the " +"terms of section 4. Replacing Invariant Sections with translations " +"requires special permission from their copyright holders, but you may " +"include translations of some or all Invariant Sections in addition to the " +"original versions of these Invariant Sections. You may include a translation " +"of this License provided that you also include the original English version " +"of this License. In case of a disagreement between the translation and the " +"original English version of this License, the original English version will " +"prevail." +msgstr "" + +#: C/index.docbook:580(sect1/title) C/fdl-appendix.xml:580(sect1/title) +msgid "9. TERMINATION" +msgstr "" + +#: C/index.docbook:581(sect1/para) +msgid "" +"You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this " +"License. Any other attempt to copy, modify, sublicense or distribute the " +"Document 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." +msgstr "" + +#: C/index.docbook:594(sect1/title) C/fdl-appendix.xml:594(sect1/title) +msgid "10. FUTURE REVISIONS OF THIS LICENSE" +msgstr "" + +#: C/index.docbook:595(sect1/para) +msgid "" +"The Free " +"Software Foundation may publish new, revised versions of the GNU " +"Free Documentation 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. See http://www.gnu.org/copyleft/." +msgstr "" + +#: C/index.docbook:606(sect1/para) +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"Document specifies that a particular " +"numbered version of this License or any later version applies " +"to it, you have the option of following the terms and conditions either of " +"that specified version or of any later version that has been published (not " +"as a draft) by the Free Software Foundation. If the Document does not " +"specify a version number of this License, you may choose any version ever " +"published (not as a draft) by the Free Software Foundation." +msgstr "" + +#: C/index.docbook:621(sect1/title) C/fdl-appendix.xml:621(sect1/title) +msgid "Addendum" +msgstr "" + +#: C/index.docbook:622(sect1/para) C/fdl-appendix.xml:622(sect1/para) +msgid "" +"To use this License in a document you have written, include a copy of the " +"License in the document and put the following copyright and license notices " +"just after the title page:" +msgstr "" + +#: C/index.docbook:629(blockquote/para) +#: C/fdl-appendix.xml:629(blockquote/para) +msgid "Copyright YEAR YOUR NAME." +msgstr "" + +#: C/index.docbook:632(blockquote/para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with " +"the Front-Cover Texts being LIST, " +"and with the Back-Cover Texts being " +"LIST. A copy of the license is included in the section entitled GNU " +"Free Documentation License." +msgstr "" + +#: C/index.docbook:647(sect1/para) +msgid "" +"If you have no Invariant Sections, " +"write with no Invariant Sections instead of saying which ones " +"are invariant. If you have no Front-Cover " +"Texts, write no Front-Cover Texts instead of " +"Front-Cover Texts being LIST; likewise for Back-Cover Texts." +msgstr "" + +#: C/index.docbook:657(sect1/para) +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the GNU General Public License, to permit their use in free " +"software." +msgstr "" + +#: C/fdl-appendix.xml:16(copyright/year) +msgid "2000" +msgstr "2000" + +#: C/fdl-appendix.xml:16(copyright/holder) +msgid "Free Software Foundation, Inc." +msgstr "自由软件基金会, Inc." + +#: C/fdl-appendix.xml:20(address/street) +msgid "51 Franklin Street, Suite 330" +msgstr "" + +#: C/fdl-appendix.xml:21(address/city) +msgid "Boston" +msgstr "" + +#: C/fdl-appendix.xml:21(address/state) +msgid "MA" +msgstr "MA" + +#: C/fdl-appendix.xml:22(address/postcode) +msgid "02110-1301" +msgstr "02110-1301" + +#: C/fdl-appendix.xml:22(address/country) +msgid "USA" +msgstr "USA" + +#: C/fdl-appendix.xml:20(para/address) +msgid "" +"Free Software Foundation, Inc. <_:street-1/>, <_:city-2/>, <_:state-3/> <_:" +"postcode-4/> <_:country-5/>" +msgstr "" + +#: C/fdl-appendix.xml:34(para/quote) +msgid "free" +msgstr "" + +#: C/fdl-appendix.xml:32(sect1/para) +msgid "" +"The purpose of this License is to make a manual, textbook, or other written " +"document <_:quote-1/> in the sense of freedom: to assure everyone the " +"effective freedom to copy and redistribute it, with or without modifying it, " +"either commercially or noncommercially. Secondarily, this License preserves " +"for the author and publisher a way to get credit for their work, while not " +"being considered responsible for modifications made by others." +msgstr "" + +#: C/fdl-appendix.xml:44(para/quote) +msgid "copyleft" +msgstr "copyleft" + +#: C/fdl-appendix.xml:43(sect1/para) +msgid "" +"This License is a kind of <_:quote-1/>, which means that derivative works of " +"the document must themselves be free in the same sense. It complements the " +"GNU General Public License, which is a copyleft license designed for free " +"software." +msgstr "" + +#: C/fdl-appendix.xml:67(para/quote) C/fdl-appendix.xml:82(para/link) +#: C/fdl-appendix.xml:99(para/link) C/fdl-appendix.xml:107(para/link) +#: C/fdl-appendix.xml:113(para/link) C/fdl-appendix.xml:156(para/link) +#: C/fdl-appendix.xml:179(para/link) C/fdl-appendix.xml:190(para/link) +#: C/fdl-appendix.xml:205(para/link) C/fdl-appendix.xml:224(para/link) +#: C/fdl-appendix.xml:235(para/link) C/fdl-appendix.xml:253(para/link) +#: C/fdl-appendix.xml:271(para/link) C/fdl-appendix.xml:294(para/link) +#: C/fdl-appendix.xml:354(para/link) C/fdl-appendix.xml:368(para/link) +#: C/fdl-appendix.xml:400(para/link) C/fdl-appendix.xml:462(para/link) +#: C/fdl-appendix.xml:472(para/link) C/fdl-appendix.xml:482(para/link) +#: C/fdl-appendix.xml:519(para/link) C/fdl-appendix.xml:540(para/link) +#: C/fdl-appendix.xml:565(para/link) C/fdl-appendix.xml:583(para/link) +#: C/fdl-appendix.xml:608(para/link) +msgid "Document" +msgstr "文档" + +#: C/fdl-appendix.xml:69(para/quote) +msgid "you" +msgstr "" + +#: C/fdl-appendix.xml:63(sect1/para) +msgid "" +"This License applies to any manual or other work that contains a notice " +"placed by the copyright holder saying it can be distributed under the terms " +"of this License. The <_:quote-1/>, below, refers to any such manual or work. " +"Any member of the public is a licensee, and is addressed as <_:quote-2/>." +msgstr "" + +#: C/fdl-appendix.xml:73(para/quote) C/fdl-appendix.xml:234(para/link) +#: C/fdl-appendix.xml:269(para/link) C/fdl-appendix.xml:283(para/link) +#: C/fdl-appendix.xml:315(para/link) C/fdl-appendix.xml:351(para/link) +#: C/fdl-appendix.xml:413(para/link) C/fdl-appendix.xml:433(para/link) +#: C/fdl-appendix.xml:447(para/link) C/fdl-appendix.xml:459(para/link) +#: C/fdl-appendix.xml:475(para/link) C/fdl-appendix.xml:543(para/link) +msgid "Modified Version" +msgstr "" + +#: C/fdl-appendix.xml:72(sect1/para) +msgid "" +"A <_:quote-1/> of the Document means any work containing the Document or a " +"portion of it, either copied verbatim, or with modifications and/or " +"translated into another language." +msgstr "" + +#: C/fdl-appendix.xml:80(para/quote) +msgid "Secondary Section" +msgstr "" + +#: C/fdl-appendix.xml:79(sect1/para) +msgid "" +"A <_:quote-1/> is a named appendix or a front-matter section of the <_:" +"link-2/> that deals exclusively with the relationship of the publishers or " +"authors of the Document to the Document's overall subject (or to related " +"matters) and contains nothing that could fall directly within that overall " +"subject. (For example, if the Document is in part a textbook of mathematics, " +"a Secondary Section may not explain any mathematics.) The relationship could " +"be a matter of historical connection with the subject or with related " +"matters, or of legal, commercial, philosophical, ethical or political " +"position regarding them." +msgstr "" + +#: C/fdl-appendix.xml:95(para/quote) C/fdl-appendix.xml:327(para/link) +#: C/fdl-appendix.xml:398(para/link) C/fdl-appendix.xml:439(para/link) +#: C/fdl-appendix.xml:486(para/link) C/fdl-appendix.xml:494(para/link) +#: C/fdl-appendix.xml:567(para/link) C/fdl-appendix.xml:637(para/link) +#: C/fdl-appendix.xml:648(para/link) +msgid "Invariant Sections" +msgstr "" + +#: C/fdl-appendix.xml:96(para/link) C/fdl-appendix.xml:435(para/link) +msgid "Secondary Sections" +msgstr "" + +#: C/fdl-appendix.xml:94(sect1/para) +msgid "" +"The <_:quote-1/> are certain <_:link-2/> whose titles are designated, as " +"being those of Invariant Sections, in the notice that says that the <_:" +"link-3/> is released under this License." +msgstr "" + +#: C/fdl-appendix.xml:104(para/quote) C/fdl-appendix.xml:181(para/link) +#: C/fdl-appendix.xml:328(para/link) C/fdl-appendix.xml:458(para/link) +msgid "Cover Texts" +msgstr "" + +#: C/fdl-appendix.xml:103(sect1/para) +msgid "" +"The <_:quote-1/> are certain short passages of text that are listed, as " +"Front-Cover Texts or Back-Cover Texts, in the notice that says that the <_:" +"link-2/> is released under this License." +msgstr "" + +#: C/fdl-appendix.xml:112(para/quote) C/fdl-appendix.xml:124(para/quote) +#: C/fdl-appendix.xml:207(para/link) C/fdl-appendix.xml:369(para/link) +msgid "Transparent" +msgstr "" + +#: C/fdl-appendix.xml:125(para/quote) C/fdl-appendix.xml:204(para/link) +msgid "Opaque" +msgstr "" + +#: C/fdl-appendix.xml:111(sect1/para) +msgid "" +"A <_:quote-1/> copy of the <_:link-2/> means a machine-readable copy, " +"represented in a format whose specification is available to the general " +"public, whose contents can be viewed and edited directly and " +"straightforwardly with generic text editors or (for images composed of " +"pixels) generic paint programs or (for drawings) some widely available " +"drawing editor, and that is suitable for input to text formatters or for " +"automatic translation to a variety of formats suitable for input to text " +"formatters. A copy made in an otherwise Transparent file format whose markup " +"has been designed to thwart or discourage subsequent modification by readers " +"is not Transparent. A copy that is not <_:quote-3/> is called <_:quote-4/>." +msgstr "" + +#: C/fdl-appendix.xml:142(para/quote) C/fdl-appendix.xml:146(para/quote) +#: C/fdl-appendix.xml:250(para/link) C/fdl-appendix.xml:266(para/link) +#: C/fdl-appendix.xml:281(para/link) C/fdl-appendix.xml:352(para/link) +msgid "Title Page" +msgstr "" + +#: C/fdl-appendix.xml:141(sect1/para) +msgid "" +"The <_:quote-1/> means, for a printed book, the title page itself, plus such " +"following pages as are needed to hold, legibly, the material this License " +"requires to appear in the title page. For works in formats which do not have " +"any title page as such, <_:quote-2/> means the text near the most prominent " +"appearance of the work's title, preceding the beginning of the body of the " +"text." +msgstr "" + +#: C/fdl-appendix.xml:166(para/link) C/fdl-appendix.xml:551(para/link) +msgid "section 3" +msgstr "" + +#: C/fdl-appendix.xml:154(sect1/para) +msgid "" +"You may copy and distribute the <_:link-1/> in any medium, either " +"commercially or noncommercially, provided that this License, the copyright " +"notices, and the license notice saying this License applies to the Document " +"are reproduced in all copies, and that you add no other conditions " +"whatsoever to those of this License. You may not use technical measures to " +"obstruct or control the reading or further copying of the copies you make or " +"distribute. However, you may accept compensation in exchange for copies. If " +"you distribute a large enough number of copies you must also follow the " +"conditions in <_:link-2/>." +msgstr "" + +#: C/fdl-appendix.xml:177(sect1/para) +msgid "" +"If you publish printed copies of the <_:link-1/> numbering more than 100, " +"and the Document's license notice requires <_:link-2/>, you must enclose the " +"copies in covers that carry, clearly and legibly, all these Cover Texts: " +"Front-Cover Texts on the front cover, and Back-Cover Texts on the back " +"cover. Both covers must also clearly and legibly identify you as the " +"publisher of these copies. The front cover must present the full title with " +"all words of the title equally prominent and visible. You may add other " +"material on the covers in addition. Copying with changes limited to the " +"covers, as long as they preserve the title of the <_:link-3/> and satisfy " +"these conditions, can be treated as verbatim copying in other respects." +msgstr "" + +#: C/fdl-appendix.xml:202(sect1/para) +msgid "" +"If you publish or distribute <_:link-1/> copies of the <_:link-2/> numbering " +"more than 100, you must either include a machine-readable <_:link-3/> copy " +"along with each Opaque copy, or state in or with each Opaque copy a publicly-" +"accessible computer-network location containing a complete Transparent copy " +"of the Document, free of added material, which the general network-using " +"public has access to download anonymously at no charge using public-standard " +"network protocols. If you use the latter option, you must take reasonably " +"prudent steps, when you begin distribution of Opaque copies in quantity, to " +"ensure that this Transparent copy will remain thus accessible at the stated " +"location until at least one year after the last time you distribute an " +"Opaque copy (directly or through your agents or retailers) of that edition " +"to the public." +msgstr "" + +#: C/fdl-appendix.xml:222(sect1/para) +msgid "" +"It is requested, but not required, that you contact the authors of the <_:" +"link-1/> well before redistributing any large number of copies, to give them " +"a chance to provide you with an updated version of the Document." +msgstr "" + +#: C/fdl-appendix.xml:236(para/link) +msgid "2" +msgstr "2" + +#: C/fdl-appendix.xml:237(para/link) +msgid "3" +msgstr "3" + +#: C/fdl-appendix.xml:232(sect1/para) +msgid "" +"You may copy and distribute a <_:link-1/> of the <_:link-2/> under the " +"conditions of sections <_:link-3/> and <_:link-4/> above, provided that you " +"release the Modified Version under precisely this License, with the Modified " +"Version filling the role of the Document, thus licensing distribution and " +"modification of the Modified Version to whoever possesses a copy of it. In " +"addition, you must do these things in the Modified Version:" +msgstr "" + +#: C/fdl-appendix.xml:249(formalpara/para) +msgid "" +"Use in the <_:link-1/> (and on the covers, if any) a title distinct from " +"that of the <_:link-2/>, and from those of previous versions (which should, " +"if there were any, be listed in the History section of the Document). You " +"may use the same title as a previous version if the original publisher of " +"that version gives permission." +msgstr "" + +#: C/fdl-appendix.xml:265(formalpara/para) +msgid "" +"List on the <_:link-1/>, as authors, one or more persons or entities " +"responsible for authorship of the modifications in the <_:link-2/>, together " +"with at least five of the principal authors of the <_:link-3/> (all of its " +"principal authors, if it has less than five)." +msgstr "" + +#: C/fdl-appendix.xml:280(formalpara/para) +msgid "" +"State on the <_:link-1/> the name of the publisher of the <_:link-2/>, as " +"the publisher." +msgstr "" + +#: C/fdl-appendix.xml:292(formalpara/para) +msgid "Preserve all the copyright notices of the <_:link-1/>." +msgstr "" + +#: C/fdl-appendix.xml:312(formalpara/para) +msgid "" +"Include, immediately after the copyright notices, a license notice giving " +"the public permission to use the <_:link-1/> under the terms of this " +"License, in the form shown in the Addendum below." +msgstr "" + +#: C/fdl-appendix.xml:330(para/link) +msgid "Document's" +msgstr "" + +#: C/fdl-appendix.xml:325(formalpara/para) +msgid "" +"Preserve in that license notice the full lists of <_:link-1/> and required " +"<_:link-2/> given in the <_:link-3/> license notice." +msgstr "" + +#: C/fdl-appendix.xml:348(para/quote) C/fdl-appendix.xml:353(para/quote) +#: C/fdl-appendix.xml:372(para/quote) C/fdl-appendix.xml:507(para/quote) +#: C/fdl-appendix.xml:508(para/quote) +msgid "History" +msgstr "" + +#: C/fdl-appendix.xml:347(formalpara/para) +msgid "" +"Preserve the section entitled <_:quote-1/>, and its title, and add to it an " +"item stating at least the title, year, new authors, and publisher of the <_:" +"link-2/> as given on the <_:link-3/>. If there is no section entitled <_:" +"quote-4/> in the <_:link-5/>, create one stating the title, year, authors, " +"and publisher of the Document as given on its Title Page, then add an item " +"describing the Modified Version as stated in the previous sentence." +msgstr "" + +#: C/fdl-appendix.xml:366(formalpara/para) +msgid "" +"Preserve the network location, if any, given in the <_:link-1/> for public " +"access to a <_:link-2/> copy of the Document, and likewise the network " +"locations given in the Document for previous versions it was based on. These " +"may be placed in the <_:quote-3/> section. You may omit a network location " +"for a work that was published at least four years before the Document " +"itself, or if the original publisher of the version it refers to gives " +"permission." +msgstr "" + +#: C/fdl-appendix.xml:385(para/quote) C/fdl-appendix.xml:509(para/quote) +msgid "Acknowledgements" +msgstr "" + +#: C/fdl-appendix.xml:386(para/quote) C/fdl-appendix.xml:510(para/quote) +msgid "Dedications" +msgstr "" + +#: C/fdl-appendix.xml:384(formalpara/para) +msgid "" +"In any section entitled <_:quote-1/> or <_:quote-2/>, preserve the section's " +"title, and preserve in the section all the substance and tone of each of the " +"contributor acknowledgements and/or dedications given therein." +msgstr "" + +#: C/fdl-appendix.xml:397(formalpara/para) +msgid "" +"Preserve all the <_:link-1/> of the <_:link-2/>, unaltered in their text and " +"in their titles. Section numbers or the equivalent are not considered part " +"of the section titles." +msgstr "" + +#: C/fdl-appendix.xml:412(para/quote) C/fdl-appendix.xml:424(para/quote) +#: C/fdl-appendix.xml:445(para/quote) +msgid "Endorsements" +msgstr "" + +#: C/fdl-appendix.xml:410(formalpara/para) +msgid "" +"Delete any section entitled <_:quote-1/>. Such a section may not be included " +"in the <_:link-2/>." +msgstr "" + +#: C/fdl-appendix.xml:425(para/link) +msgid "Invariant Section" +msgstr "" + +#: C/fdl-appendix.xml:422(formalpara/para) +msgid "" +"Do not retitle any existing section as <_:quote-1/> or to conflict in title " +"with any <_:link-2/>." +msgstr "" + +#: C/fdl-appendix.xml:432(sect1/para) +msgid "" +"If the <_:link-1/> includes new front-matter sections or appendices that " +"qualify as <_:link-2/> and contain no material copied from the Document, you " +"may at your option designate some or all of these sections as invariant. To " +"do this, add their titles to the list of <_:link-3/> in the Modified " +"Version's license notice. These titles must be distinct from any other " +"section titles." +msgstr "" + +#: C/fdl-appendix.xml:444(sect1/para) +msgid "" +"You may add a section entitled <_:quote-1/>, provided it contains nothing " +"but endorsements of your <_:link-2/> by various parties--for example, " +"statements of peer review or that the text has been approved by an " +"organization as the authoritative definition of a standard." +msgstr "" + +#: C/fdl-appendix.xml:455(para/link) +msgid "Front-Cover Text" +msgstr "" + +#: C/fdl-appendix.xml:457(para/link) +msgid "Back-Cover Text" +msgstr "" + +#: C/fdl-appendix.xml:453(sect1/para) +msgid "" +"You may add a passage of up to five words as a <_:link-1/>, and a passage of " +"up to 25 words as a <_:link-2/>, to the end of the list of <_:link-3/> in " +"the <_:link-4/>. Only one passage of Front-Cover Text and one of Back-Cover " +"Text may be added by (or through arrangements made by) any one entity. If " +"the <_:link-5/> already includes a cover text for the same cover, previously " +"added by you or by arrangement made by the same entity you are acting on " +"behalf of, you may not add another; but you may replace the old one, on " +"explicit permission from the previous publisher that added the old one." +msgstr "" + +#: C/fdl-appendix.xml:470(sect1/para) +msgid "" +"The author(s) and publisher(s) of the <_:link-1/> do not by this License " +"give permission to use their names for publicity for or to assert or imply " +"endorsement of any <_:link-2/>." +msgstr "" + +#: C/fdl-appendix.xml:484(para/link) C/fdl-appendix.xml:566(para/link) +msgid "section 4" +msgstr "" + +#: C/fdl-appendix.xml:481(sect1/para) +msgid "" +"You may combine the <_:link-1/> with other documents released under this " +"License, under the terms defined in <_:link-2/> above for modified versions, " +"provided that you include in the combination all of the <_:link-3/> of all " +"of the original documents, unmodified, and list them all as Invariant " +"Sections of your combined work in its license notice." +msgstr "" + +#: C/fdl-appendix.xml:492(sect1/para) +msgid "" +"The combined work need only contain one copy of this License, and multiple " +"identical <_:link-1/> may be replaced with a single copy. If there are " +"multiple Invariant Sections with the same name but different contents, make " +"the title of each such section unique by adding at the end of it, in " +"parentheses, the name of the original author or publisher of that section if " +"known, or else a unique number. Make the same adjustment to the section " +"titles in the list of Invariant Sections in the license notice of the " +"combined work." +msgstr "" + +#: C/fdl-appendix.xml:511(para/quote) +msgid "Endorsements." +msgstr "" + +#: C/fdl-appendix.xml:505(sect1/para) +msgid "" +"In the combination, you must combine any sections entitled <_:quote-1/> in " +"the various original documents, forming one section entitled <_:quote-2/>; " +"likewise combine any sections entitled <_:quote-3/>, and any sections " +"entitled <_:quote-4/>. You must delete all sections entitled <_:quote-5/>" +msgstr "" + +#: C/fdl-appendix.xml:517(sect1/para) +msgid "" +"You may make a collection consisting of the <_:link-1/> and other documents " +"released under this License, and replace the individual copies of this " +"License in the various documents with a single copy that is included in the " +"collection, provided that you follow the rules of this License for verbatim " +"copying of each of the documents in all other respects." +msgstr "" + +#: C/fdl-appendix.xml:546(para/quote) +msgid "aggregate" +msgstr "" + +#: C/fdl-appendix.xml:550(para/link) +msgid "Cover Text" +msgstr "" + +#: C/fdl-appendix.xml:538(sect1/para) +msgid "" +"A compilation of the <_:link-1/> or its derivatives with other separate and " +"independent documents or works, in or on a volume of a storage or " +"distribution medium, does not as a whole count as a <_:link-2/> of the " +"Document, provided no compilation copyright is claimed for the compilation. " +"Such a compilation is called an <_:quote-3/>, and this License does not " +"apply to the other self-contained works thus compiled with the Document , on " +"account of their being thus compiled, if they are not themselves derivative " +"works of the Document. If the <_:link-4/> requirement of <_:link-5/> is " +"applicable to these copies of the Document, then if the Document is less " +"than one quarter of the entire aggregate, the Document's Cover Texts may be " +"placed on covers that surround only the Document within the aggregate. " +"Otherwise they must appear on covers around the whole aggregate." +msgstr "" + +#: C/fdl-appendix.xml:562(sect1/para) +msgid "" +"Translation is considered a kind of modification, so you may distribute " +"translations of the <_:link-1/> under the terms of <_:link-2/>. Replacing <_:" +"link-3/> with translations requires special permission from their copyright " +"holders, but you may include translations of some or all Invariant Sections " +"in addition to the original versions of these Invariant Sections. You may " +"include a translation of this License provided that you also include the " +"original English version of this License. In case of a disagreement between " +"the translation and the original English version of this License, the " +"original English version will prevail." +msgstr "" + +#: C/fdl-appendix.xml:581(sect1/para) +msgid "" +"You may not copy, modify, sublicense, or distribute the <_:link-1/> except " +"as expressly provided for under this License. Any other attempt to copy, " +"modify, sublicense or distribute the Document 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." +msgstr "" + +#: C/fdl-appendix.xml:597(para/ulink) +msgid "Free Software Foundation" +msgstr "Free Software Foundation" + +#: C/fdl-appendix.xml:603(para/ulink) +msgid "http://www.gnu.org/copyleft/" +msgstr "" + +#: C/fdl-appendix.xml:595(sect1/para) +msgid "" +"The <_:ulink-1/> may publish new, revised versions of the GNU Free " +"Documentation 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. See <_:ulink-2/>." +msgstr "" + +#: C/fdl-appendix.xml:610(para/quote) +msgid "or any later version" +msgstr "" + +#: C/fdl-appendix.xml:606(sect1/para) +msgid "" +"Each version of the License is given a distinguishing version number. If the " +"<_:link-1/> specifies that a particular numbered version of this License <_:" +"quote-2/> applies to it, you have the option of following the terms and " +"conditions either of that specified version or of any later version that has " +"been published (not as a draft) by the Free Software Foundation. If the " +"Document does not specify a version number of this License, you may choose " +"any version ever published (not as a draft) by the Free Software Foundation." +msgstr "" + +#: C/fdl-appendix.xml:639(para/link) C/fdl-appendix.xml:651(para/link) +msgid "Front-Cover Texts" +msgstr "" + +#: C/fdl-appendix.xml:640(para/link) C/fdl-appendix.xml:654(para/link) +msgid "Back-Cover Texts" +msgstr "" + +#: C/fdl-appendix.xml:632(blockquote/para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License, Version 1.1 or any later " +"version published by the Free Software Foundation; with the <_:link-1/> " +"being LIST THEIR TITLES, with the <_:link-2/> being LIST, and with the <_:" +"link-3/> being LIST. A copy of the license is included in the section " +"entitled <_:quote-4/>." +msgstr "" + +#: C/fdl-appendix.xml:649(para/quote) +msgid "with no Invariant Sections" +msgstr "" + +#: C/fdl-appendix.xml:652(para/quote) +msgid "no Front-Cover Texts" +msgstr "" + +#: C/fdl-appendix.xml:653(para/quote) +msgid "Front-Cover Texts being LIST" +msgstr "" + +#: C/fdl-appendix.xml:647(sect1/para) +msgid "" +"If you have no <_:link-1/>, write <_:quote-2/> instead of saying which ones " +"are invariant. If you have no <_:link-3/>, write <_:quote-4/> instead of <_:" +"quote-5/>; likewise for <_:link-6/>." +msgstr "" + +#: C/fdl-appendix.xml:661(para/ulink) +msgid "GNU General Public License" +msgstr "GNU 自由文档许可证" + +#: C/fdl-appendix.xml:657(sect1/para) +msgid "" +"If your document contains nontrivial examples of program code, we recommend " +"releasing these examples in parallel under your choice of free software " +"license, such as the <_:ulink-1/>, to permit their use in free software." +msgstr "" + +#~ msgid "Chris" +#~ msgstr "Chris" + +#~ msgid "Lyttle" +#~ msgstr "Lyttle" + +#~ msgid "chris@wilddev.net" +#~ msgstr "chris@wilddev.net" + +#~ msgid "Dan" +#~ msgstr "Dan" + +#~ msgid "Mueth" +#~ msgstr "Mueth" + +#~ msgid "d-mueth@uchicago.edu" +#~ msgstr "d-mueth@uchicago.edu" + +#~ msgid "Stefan" +#~ msgstr "Stefan" + +#~ msgid "Kost" +#~ msgstr "Kost" + +#~ msgid "ensonic@users.sf.net" +#~ msgstr "ensonic@users.sf.net" + +#~ msgid "gtk-doc-list@gnome.org" +#~ msgstr "gtk-doc-list@gnome.org" + +#~| msgid "2000, 2005, 2007-2009" +#~ msgid "2000, 2005" +#~ msgstr "2000, 2005" + +#~| msgid "Dan Mueth and Chris Lyttle and Stefan Kost" +#~ msgid "Dan Mueth and Chris Lyttle" +#~ msgstr "Dan Mueth and Chris Lyttle" + +#~| msgid "2000" +#~ msgid "2007-2011" +#~ msgstr "2007-2011" + +#~ msgid "Stefan Sauer (Kost)" +#~ msgstr "Stefan Sauer (Kost)" + +#~| msgid "26 Feb 2011" +#~ msgid "20 Sep 2011" +#~ msgstr "2011年二月二十日" + +#~ msgid "ss" +#~ msgstr "ss" + +#~ msgid "development version" +#~ msgstr "开发版本" + +#~| msgid "1.15" +#~ msgid "1.18" +#~ msgstr "1.18" + +#~| msgid "14 Jan 2011" +#~ msgid "14 sep 2011" +#~ msgstr "2011年一月十四日" + +#~ msgid "bug fixes, speedups, markdown support" +#~ msgstr "补漏, speedups, markdown support" + +#~ msgid "1.17" +#~ msgstr "1.17" + +#~ msgid "26 Feb 2011" +#~ msgstr "2011年二月二十六日" + +#~ msgid "sk" +#~ msgstr "sk" + +#~ msgid "urgent bug fix update" +#~ msgstr "紧急的bug修复更新" + +#~ msgid "1.16" +#~ msgstr "1.16" + +#~ msgid "14 Jan 2011" +#~ msgstr "2011年一月十四日" + +#~ msgid "bugfixes, layout improvements" +#~ msgstr "错误修正,布局的改进" + +#~ msgid "1.15" +#~ msgstr "1.15" + +#~ msgid "21 May 2010" +#~ msgstr "2010年五月二十一日" + +#~ msgid "bug and regression fixes" +#~ msgstr "错误与复原修补" + +#~ msgid "1.14" +#~ msgstr "1.14" + +#~ msgid "28 March 2010" +#~ msgstr "2010三月二十八日" + +#~ msgid "bugfixes and performance improvements" +#~ msgstr "补漏与性能提高" + +#~ msgid "1.13" +#~ msgstr "1.13" + +#~ msgid "18 December 2009" +#~ msgstr "2009年十二月十八日" + +#~ msgid "broken tarball update" +#~ msgstr "不完整的tarball升级" + +#~ msgid "1.12" +#~ msgstr "1.12" + +#~ msgid "new tool features and bugfixes" +#~ msgstr "工具的新功能和错误修正" + +#~ msgid "1.11" +#~ msgstr "1.11" + +#~ msgid "16 Novemebr 2008" +#~ msgstr "2008年十一月十六日" + +#~ msgid "mal" +#~ msgstr "不良品" + +#~ msgid "GNOME doc-utils migration" +#~ msgstr "GNOME文档组件迁移" + +#~ msgid "xxx_get_type()" +#~ msgstr "xxx_get_type()" + +#~ msgid "<package>.types" +#~ msgstr "<package>.types" + +#~ msgid "<package>-sections.txt" +#~ msgstr "<package>-sections.txt" + +#~ msgid "explanation" +#~ msgstr "解释" + +#~ msgid "" +#~ "Missing or wrong naming in file (see )." +#~ msgstr "在文件中缺失或错误的命名(参看)." + +#~ msgid "GtkWidget" +#~ msgstr "GtkWidget" + +#~ msgid "<package>-docs.{xml,sgml}" +#~ msgstr "<package>-docs.{xml,sgml}" diff --git a/help/manual/zh_CN/zh_CN.stamp b/help/manual/zh_CN/zh_CN.stamp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/help/manual/zh_CN/zh_CN.stamp diff --git a/m4/gtkdoc_jh_check_xml_catalog.m4 b/m4/gtkdoc_jh_check_xml_catalog.m4 new file mode 100644 index 0000000..618c1c9 --- /dev/null +++ b/m4/gtkdoc_jh_check_xml_catalog.m4 @@ -0,0 +1,16 @@ +dnl Checks if a particular URI appears in the XML catalog +dnl Usage: +dnl JH_CHECK_XML_CATALOG(URI, [FRIENDLY-NAME], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +AC_DEFUN([JH_CHECK_XML_CATALOG], +[ + AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl + AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog]) + if $jh_found_xmlcatalog && \ + AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then + AC_MSG_RESULT([found]) + ifelse([$3],,,[$3]) + else + AC_MSG_RESULT([not found]) + ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4]) + fi +]) diff --git a/m4/gtkdoc_jh_path_xml_catalog.m4 b/m4/gtkdoc_jh_path_xml_catalog.m4 new file mode 100644 index 0000000..cca2267 --- /dev/null +++ b/m4/gtkdoc_jh_path_xml_catalog.m4 @@ -0,0 +1,61 @@ +dnl Checks the location of the XML Catalog +dnl Usage: +dnl JH_PATH_XML_CATALOG([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl Defines XMLCATALOG and XML_CATALOG_FILE substitutions +AC_DEFUN([JH_PATH_XML_CATALOG], +[ + dnl check for the presence of the XML catalog + AC_ARG_WITH([xml-catalog], + AS_HELP_STRING([--with-xml-catalog=CATALOG], + [path to xml catalog to use]),, + [with_xml_catalog='']) + AC_MSG_CHECKING([for XML catalog]) + if test -n "$with_xml_catalog"; then + dnl path was explicitly given. check that it exists. + if test -f "$with_xml_catalog"; then + jh_found_xmlcatalog=true + else + jh_found_xmlcatalog=false + fi + else + dnl if one was not explicitly specified, try some guesses + dnl we look first in /etc/xml/catalog, then XDG_DATA_DIRS/xml/catalog + if test -z "$XDG_DATA_DIRS"; then + dnl if we have no XDG_DATA_DIRS, use the default + jh_xml_catalog_searchdirs="/etc:/usr/local/share:/usr/share" + else + jh_xml_catalog_searchdirs="/etc:$XDG_DATA_DIRS" + fi + jh_found_xmlcatalog=false + dnl take care to iterate based on ':', allowing whitespace to appear in paths + jh_xml_catalog_saved_ifs="$IFS" + IFS=':' + for d in $jh_xml_catalog_searchdirs; do + if test -f "$d/xml/catalog"; then + with_xml_catalog="$d/xml/catalog" + jh_found_xmlcatalog=true + break + fi + done + IFS="$jh_xml_catalog_saved_ifs" + fi + if $jh_found_xmlcatalog; then + AC_MSG_RESULT([$with_xml_catalog]) + else + AC_MSG_RESULT([not found]) + fi + XML_CATALOG_FILE="$with_xml_catalog" + AC_SUBST([XML_CATALOG_FILE]) + + dnl check for the xmlcatalog program + AC_PATH_PROG(XMLCATALOG, xmlcatalog, no) + if test "x$XMLCATALOG" = xno; then + jh_found_xmlcatalog=false + fi + + if $jh_found_xmlcatalog; then + ifelse([$1],,[:],[$1]) + else + ifelse([$2],,[AC_MSG_ERROR([could not find XML catalog])],[$2]) + fi +]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 0000000..ee80844 --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,8387 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ 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 yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 0000000..94b0829 --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 0000000..48bc934 --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 0000000..fa04b52 --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 0000000..c6b26f8 --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/style/home.png b/style/home.png new file mode 100644 index 0000000..9346b33 Binary files /dev/null and b/style/home.png differ diff --git a/style/left-insensitive.png b/style/left-insensitive.png new file mode 100644 index 0000000..3269393 Binary files /dev/null and b/style/left-insensitive.png differ diff --git a/style/left.png b/style/left.png new file mode 100644 index 0000000..2abde03 Binary files /dev/null and b/style/left.png differ diff --git a/style/right-insensitive.png b/style/right-insensitive.png new file mode 100644 index 0000000..4c95785 Binary files /dev/null and b/style/right-insensitive.png differ diff --git a/style/right.png b/style/right.png new file mode 100644 index 0000000..76260ec Binary files /dev/null and b/style/right.png differ diff --git a/style/style.css b/style/style.css new file mode 100644 index 0000000..4be4ede --- /dev/null +++ b/style/style.css @@ -0,0 +1,483 @@ +body +{ + font-family: cantarell, sans-serif; +} +.synopsis, .classsynopsis +{ + /* tango:aluminium 1/2 */ + background: #eeeeec; + background: rgba(238, 238, 236, 0.5); + border: solid 1px rgb(238, 238, 236); + padding: 0.5em; +} +.programlisting +{ + /* tango:sky blue 0/1 */ + /* fallback for no rgba support */ + background: #e6f3ff; + border: solid 1px #729fcf; + background: rgba(114, 159, 207, 0.1); + border: solid 1px rgba(114, 159, 207, 0.2); + padding: 0.5em; +} +.variablelist +{ + padding: 4px; + margin-left: 3em; +} +.variablelist td:first-child +{ + vertical-align: top; +} + +span.nowrap { + white-space: nowrap; +} + +div.gallery-float +{ + float: left; + padding: 10px; +} +div.gallery-float img +{ + border-style: none; +} +div.gallery-spacer +{ + clear: both; +} + +a, a:visited +{ + text-decoration: none; + /* tango:sky blue 2 */ + color: #3465a4; +} +a:hover +{ + text-decoration: underline; + /* tango:sky blue 1 */ + color: #729fcf; +} + +div.informaltable table +{ + border-collapse: separate; + border-spacing: 1em 0.3em; + border: none; +} + +div.informaltable table td, div.informaltable table th +{ + vertical-align: top; +} + +.function_type, +.variable_type, +.property_type, +.signal_type, +.parameter_name, +.struct_member_name, +.union_member_name, +.define_keyword, +.datatype_keyword, +.typedef_keyword +{ + text-align: right; +} + +/* dim non-primary columns */ +.c_punctuation, +.function_type, +.variable_type, +.property_type, +.signal_type, +.define_keyword, +.datatype_keyword, +.typedef_keyword, +.property_flags, +.signal_flags, +.parameter_annotations, +.enum_member_annotations, +.struct_member_annotations, +.union_member_annotations +{ + color: #888a85; +} + +.function_type a, +.function_type a:visited, +.function_type a:hover, +.property_type a, +.property_type a:visited, +.property_type a:hover, +.signal_type a, +.signal_type a:visited, +.signal_type a:hover, +.signal_flags a, +.signal_flags a:visited, +.signal_flags a:hover +{ + color: #729fcf; +} + +td p +{ + margin: 0.25em; +} + +div.table table +{ + border-collapse: collapse; + border-spacing: 0px; + /* tango:aluminium 3 */ + border: solid 1px #babdb6; +} + +div.table table td, div.table table th +{ + /* tango:aluminium 3 */ + border: solid 1px #babdb6; + padding: 3px; + vertical-align: top; +} + +div.table table th +{ + /* tango:aluminium 2 */ + background-color: #d3d7cf; +} + +h4 +{ + color: #555753; + margin-top: 1em; + margin-bottom: 1em; +} + +hr +{ + /* tango:aluminium 1 */ + color: #d3d7cf; + background: #d3d7cf; + border: none 0px; + height: 1px; + clear: both; + margin: 2.0em 0em 2.0em 0em; +} + +dl.toc dt +{ + padding-bottom: 0.25em; +} + +dl.toc > dt +{ + padding-top: 0.25em; + padding-bottom: 0.25em; + font-weight: bold; +} + +dl.toc > dl +{ + padding-bottom: 0.5em; +} + +.parameter +{ + font-style: normal; +} + +.footer +{ + padding-top: 3.5em; + /* tango:aluminium 3 */ + color: #babdb6; + text-align: center; + font-size: 80%; +} + +.informalfigure, +.figure +{ + margin: 1em; +} + +.informalexample, +.example +{ + margin-top: 1em; + margin-bottom: 1em; +} + +.warning +{ + /* tango:orange 0/1 */ + background: #ffeed9; + background: rgba(252, 175, 62, 0.1); + border-color: #ffb04f; + border-color: rgba(252, 175, 62, 0.2); +} +.note +{ + /* tango:chameleon 0/0.5 */ + background: #d8ffb2; + background: rgba(138, 226, 52, 0.1); + border-color: #abf562; + border-color: rgba(138, 226, 52, 0.2); +} +div.blockquote +{ + border-color: #eeeeec; +} +.note, .warning, div.blockquote +{ + padding: 0.5em; + border-width: 1px; + border-style: solid; + margin: 2em; +} +.note p, .warning p +{ + margin: 0; +} + +div.warning h3.title, +div.note h3.title +{ + display: none; +} + +p + div.section +{ + margin-top: 1em; +} + +div.refnamediv, +div.refsynopsisdiv, +div.refsect1, +div.refsect2, +div.toc, +div.section +{ + margin-bottom: 1em; +} + +/* blob links */ +h2 .extralinks, h3 .extralinks +{ + float: right; + /* tango:aluminium 3 */ + color: #babdb6; + font-size: 80%; + font-weight: normal; +} + +.lineart +{ + color: #d3d7cf; + font-weight: normal; +} + +.annotation +{ + /* tango:aluminium 5 */ + color: #555753; + font-weight: normal; +} + +.structfield +{ + font-style: normal; + font-weight: normal; +} + +acronym,abbr +{ + border-bottom: 1px dotted gray; +} + +/* code listings */ + +.listing_code .programlisting .normal, +.listing_code .programlisting .normal a, +.listing_code .programlisting .number, +.listing_code .programlisting .cbracket, +.listing_code .programlisting .symbol { color: #555753; } +.listing_code .programlisting .comment, +.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ +.listing_code .programlisting .function, +.listing_code .programlisting .function a, +.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ +.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ +.listing_code .programlisting .keyword, +.listing_code .programlisting .usertype, +.listing_code .programlisting .type, +.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ + +.listing_frame { + /* tango:sky blue 1 */ + border: solid 1px #729fcf; + border: solid 1px rgba(114, 159, 207, 0.2); + padding: 0px; +} + +.listing_lines, .listing_code { + margin-top: 0px; + margin-bottom: 0px; + padding: 0.5em; +} +.listing_lines { + /* tango:sky blue 0.5 */ + background: #a6c5e3; + background: rgba(114, 159, 207, 0.2); + /* tango:aluminium 6 */ + color: #2e3436; +} +.listing_code { + /* tango:sky blue 0 */ + background: #e6f3ff; + background: rgba(114, 159, 207, 0.1); +} +.listing_code .programlisting { + /* override from previous */ + border: none 0px; + padding: 0px; + background: none; +} +.listing_lines pre, .listing_code pre { + margin: 0px; +} + +@media screen { + /* these have a as a first child, but since there are no parent selectors + * we can't use that. */ + a.footnote + { + position: relative; + top: 0em ! important; + } + /* this is needed so that the local anchors are displayed below the naviagtion */ + div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] + { + display: inline-block; + position: relative; + top:-5em; + } + /* this seems to be a bug in the xsl style sheets when generating indexes */ + div.index div.index + { + top: 0em; + } + /* make space for the fixed navigation bar and add space at the bottom so that + * link targets appear somewhat close to top + */ + body + { + padding-top: 2.5em; + padding-bottom: 500px; + max-width: 60em; + } + p + { + max-width: 60em; + } + /* style and size the navigation bar */ + table.navigation#top + { + position: fixed; + background: #e2e2e2; + border-bottom: solid 1px #babdb6; + border-spacing: 5px; + margin-top: 0; + margin-bottom: 0; + top: 0; + left: 0; + z-index: 10; + } + table.navigation#top td + { + padding-left: 6px; + padding-right: 6px; + } + .navigation a, .navigation a:visited + { + /* tango:sky blue 3 */ + color: #204a87; + } + .navigation a:hover + { + /* tango:sky blue 2 */ + color: #3465a4; + } + td.shortcuts + { + /* tango:sky blue 2 */ + color: #3465a4; + font-size: 80%; + white-space: nowrap; + } + td.shortcuts .dim + { + color: #babdb6; + } + .navigation .title + { + font-size: 80%; + max-width: none; + margin: 0px; + font-weight: normal; + } +} +@media screen and (min-width: 60em) { + /* screen larger than 60em */ + body { margin: auto; } +} +@media screen and (max-width: 60em) { + /* screen less than 60em */ + #nav_hierarchy { display: none; } + #nav_interfaces { display: none; } + #nav_prerequisites { display: none; } + #nav_derived_interfaces { display: none; } + #nav_implementations { display: none; } + #nav_child_properties { display: none; } + #nav_style_properties { display: none; } + #nav_index { display: none; } + #nav_glossary { display: none; } + .gallery_image { display: none; } + .property_flags { display: none; } + .signal_flags { display: none; } + .parameter_annotations { display: none; } + .enum_member_annotations { display: none; } + .struct_member_annotations { display: none; } + .union_member_annotations { display: none; } + /* now that a column is hidden, optimize space */ + col.parameters_name { width: auto; } + col.parameters_description { width: auto; } + col.struct_members_name { width: auto; } + col.struct_members_description { width: auto; } + col.enum_members_name { width: auto; } + col.enum_members_description { width: auto; } + col.union_members_name { width: auto; } + col.union_members_description { width: auto; } + .listing_lines { display: none; } +} +@media print { + table.navigation { + visibility: collapse; + display: none; + } + div.titlepage table.navigation { + visibility: visible; + display: table; + background: #e2e2e2; + border: solid 1px #babdb6; + margin-top: 0; + margin-bottom: 0; + top: 0; + left: 0; + height: 3em; + } +} + diff --git a/style/up-insensitive.png b/style/up-insensitive.png new file mode 100644 index 0000000..f404986 Binary files /dev/null and b/style/up-insensitive.png differ diff --git a/style/up.png b/style/up.png new file mode 100644 index 0000000..80b4b37 Binary files /dev/null and b/style/up.png differ diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 0000000..429f2f4 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,46 @@ +## Process this file with automake to produce Makefile.in + +# we need to run '.' last so that sanity processes the generated docs +# maybe move it to a subdir? +SUBDIRS = annotations bugs empty fail gobject program repro . + +if BUILD_TESTS + +TESTS = \ + check.py common.py mk_to_db.py \ + tools.sh gobject.sh bugs.sh annotations.sh fail.sh empty.sh sanity.sh \ + program.sh +TESTS_ENVIRONMENT = \ + BUILDDIR=$(abs_builddir) \ + SRCDIR=$(abs_srcdir) \ + ABS_TOP_BUILDDIR=$(abs_top_builddir) \ + ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ + PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + GLIB_PREFIX="$(glib_prefix)" +TEST_EXTENSIONS = .py +PY_LOG_COMPILER = $(PYTHON) +endif + +EXTRA_DIST = gtkdoctest.sh $(TESTS) + +# run any given test by running make .check +%.check: % + @$(TESTS_ENVIRONMENT) \ + ./$* + +snapshot: + @for dir in $(SUBDIRS); do \ + rm -rf $$dir/docs/html.ref; \ + if test -d $$dir/docs/html; then \ + cp -r $$dir/docs/html $$dir/docs/html.ref; \ + fi; \ + rm -rf $$dir/docs/xml.ref; \ + if test -d $$dir/docs/xml; then \ + cp -r $$dir/docs/xml $$dir/docs/xml.ref; \ + fi; \ + done + +.PHONY: snapshot + +-include $(top_srcdir)/git.mk diff --git a/tests/Makefile.in b/tests/Makefile.in new file mode 100644 index 0000000..e70de14 --- /dev/null +++ b/tests/Makefile.in @@ -0,0 +1,1112 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = tools.sh +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + check recheck distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +TEST_SUITE_LOG = test-suite.log +LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.py.log=.log) +PY_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver +PY_LOG_COMPILE = $(PY_LOG_COMPILER) $(AM_PY_LOG_FLAGS) $(PY_LOG_FLAGS) +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/tools.sh.in \ + $(top_srcdir)/build-aux/test-driver +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# we need to run '.' last so that sanity processes the generated docs +# maybe move it to a subdir? +SUBDIRS = annotations bugs empty fail gobject program repro . +@BUILD_TESTS_TRUE@TESTS = \ +@BUILD_TESTS_TRUE@ check.py common.py mk_to_db.py \ +@BUILD_TESTS_TRUE@ tools.sh gobject.sh bugs.sh annotations.sh fail.sh empty.sh sanity.sh \ +@BUILD_TESTS_TRUE@ program.sh + +@BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = \ +@BUILD_TESTS_TRUE@ BUILDDIR=$(abs_builddir) \ +@BUILD_TESTS_TRUE@ SRCDIR=$(abs_srcdir) \ +@BUILD_TESTS_TRUE@ ABS_TOP_BUILDDIR=$(abs_top_builddir) \ +@BUILD_TESTS_TRUE@ ABS_TOP_SRCDIR=$(abs_top_srcdir) \ +@BUILD_TESTS_TRUE@ PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ +@BUILD_TESTS_TRUE@ PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ +@BUILD_TESTS_TRUE@ GLIB_PREFIX="$(glib_prefix)" + +@BUILD_TESTS_TRUE@TEST_EXTENSIONS = .py +@BUILD_TESTS_TRUE@PY_LOG_COMPILER = $(PYTHON) +EXTRA_DIST = gtkdoctest.sh $(TESTS) +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .log .py .py$(EXEEXT) .trs +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +tools.sh: $(top_builddir)/config.status $(srcdir)/tools.sh.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ + fi; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + elif test -n "$$redo_logs"; then \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ + else \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ + fi; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ + else \ + color_start= color_end=; \ + fi; \ + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +tools.sh.log: tools.sh + @p='tools.sh'; \ + b='tools.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +gobject.sh.log: gobject.sh + @p='gobject.sh'; \ + b='gobject.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +bugs.sh.log: bugs.sh + @p='bugs.sh'; \ + b='bugs.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +annotations.sh.log: annotations.sh + @p='annotations.sh'; \ + b='annotations.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +fail.sh.log: fail.sh + @p='fail.sh'; \ + b='fail.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +empty.sh.log: empty.sh + @p='empty.sh'; \ + b='empty.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +sanity.sh.log: sanity.sh + @p='sanity.sh'; \ + b='sanity.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +program.sh.log: program.sh + @p='program.sh'; \ + b='program.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.py.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(PY_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_PY_LOG_DRIVER_FLAGS) $(PY_LOG_DRIVER_FLAGS) -- $(PY_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.py$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(PY_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_PY_LOG_DRIVER_FLAGS) $(PY_LOG_DRIVER_FLAGS) -- $(PY_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-TESTS check-am clean clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \ + uninstall uninstall-am + +.PRECIOUS: Makefile + + +# run any given test by running make .check +%.check: % + @$(TESTS_ENVIRONMENT) \ + ./$* + +snapshot: + @for dir in $(SUBDIRS); do \ + rm -rf $$dir/docs/html.ref; \ + if test -d $$dir/docs/html; then \ + cp -r $$dir/docs/html $$dir/docs/html.ref; \ + fi; \ + rm -rf $$dir/docs/xml.ref; \ + if test -d $$dir/docs/xml; then \ + cp -r $$dir/docs/xml $$dir/docs/xml.ref; \ + fi; \ + done + +.PHONY: snapshot + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/annotations.sh b/tests/annotations.sh new file mode 100755 index 0000000..c2cdc48 --- /dev/null +++ b/tests/annotations.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +gtkdoctest.sh annotations + diff --git a/tests/annotations/Makefile.am b/tests/annotations/Makefile.am new file mode 100644 index 0000000..1653011 --- /dev/null +++ b/tests/annotations/Makefile.am @@ -0,0 +1,11 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = . src docs + +if BUILD_TESTS + +check-local: clean + +endif + +-include $(top_srcdir)/git.mk diff --git a/tests/annotations/Makefile.in b/tests/annotations/Makefile.in new file mode 100644 index 0000000..2d9c96f --- /dev/null +++ b/tests/annotations/Makefile.in @@ -0,0 +1,656 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/annotations +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = . src docs +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/annotations/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/annotations/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +@BUILD_TESTS_FALSE@check-local: +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am check-local clean clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +@BUILD_TESTS_TRUE@check-local: clean + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/annotations/docs/Makefile.am b/tests/annotations/docs/Makefile.am new file mode 100644 index 0000000..7f8a752 --- /dev/null +++ b/tests/annotations/docs/Makefile.am @@ -0,0 +1,76 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE=tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/tests/annotations/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS=--deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --ignore-decorators="GLIB_VAR" + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS=--xml-mode + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS=--extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB=$(top_srcdir)/tests/annotations/src/*.h +CFILE_GLOB=$(top_srcdir)/tests/annotations/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES=config.h + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/annotations/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/annotations/src/libtester.la + +# include generic part +include $(top_srcdir)/tests/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += + +CLEANFILES += \ + $(DOC_MODULE)-overrides.txt + +if BUILD_TESTS +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ + PERL5LIB=$(abs_top_builddir):$(PERL5LIB) +endif + +-include $(top_srcdir)/git.mk diff --git a/tests/annotations/docs/Makefile.in b/tests/annotations/docs/Makefile.in new file mode 100644 index 0000000..65e370b --- /dev/null +++ b/tests/annotations/docs/Makefile.in @@ -0,0 +1,762 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 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@ + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/annotations/docs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/tests/gtk-doc.make +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE = tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR = $(top_srcdir)/tests/annotations/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS = --deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --ignore-decorators="GLIB_VAR" + + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS = --xml-mode + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS = + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS = --extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB = $(top_srcdir)/tests/annotations/src/*.h +CFILE_GLOB = $(top_srcdir)/tests/annotations/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES = config.h + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/annotations/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/annotations/src/libtester.la +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# we don't install anything in tests +#TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + + +# include generic part + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) +DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \ + $(DOC_MODULE).pdf ts gtkdoc-scan.log gtkdoc-scangobj.log \ + gtkdoc-mkdb.log gtkdoc-mkhtml.log gtkdoc-mkpdf.log \ + gtkdoc-fixxref.log $(DOC_MODULE)-overrides.txt +GITIGNOREFILES = \ + html.ref xml.ref + +@BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = \ +@BUILD_TESTS_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ +@BUILD_TESTS_TRUE@ PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ +@BUILD_TESTS_TRUE@ PERL5LIB=$(abs_top_builddir):$(PERL5LIB) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/tests/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/annotations/docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/annotations/docs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/tests/gtk-doc.make $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-am check-local clean clean-generic \ + clean-libtool clean-local cscopelist-am ctags-am distclean \ + distclean-generic distclean-libtool distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +check-local: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +docs: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +$(REPORT_FILES): sgml-build.stamp + +ts: + @echo >ts `date $(TS_FMT)`; + +#### setup #### + +setup-build.stamp: ts + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo ' DOC Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + @touch setup-build.stamp + +#### scan #### + +scan-build.stamp: ts setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Scanning header files" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)" >gtkdoc-scan.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) 2>&1 | tee -a gtkdoc-scan.log + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Introspecting gobjects"; \ + scanobj_options=""; \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + echo "gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options" >gtkdoc-scangobj.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options 2>&1 | tee -a gtkdoc-scangobj.log; \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + @touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building XML" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)" >gtkdoc-mkdb.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) 2>&1 | tee -a gtkdoc-mkdb.log + @touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + @$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building HTML" + @rm -rf html + @mkdir html + @mkhtml_options=""; \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + echo "gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)" >gtkdoc-mkhtml.log; \ + cd html && PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) 2>&1 | tee -a ../gtkdoc-mkhtml.log + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Fixing cross-references" + @echo "gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)" >gtkdoc-fixxref.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) 2>&1 | tee -a gtkdoc-fixxref.log + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building PDF" + @rm -f $(DOC_MODULE).pdf + @mkpdf_options=""; \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + echo "gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)" >gtkdoc-mkpdf.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) 2>&1 | tee -a gtkdoc-mkpdf.log + @touch pdf-build.stamp + +############## + +# we need to enforce a rebuild for the tests +clean-local: + @rm -f *~ *.bak ts gtkdoc-*.log + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + $(MAKE) distclean-local + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +.PHONY : dist-hook-local docs + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/annotations/docs/tester-docs.xml b/tests/annotations/docs/tester-docs.xml new file mode 100644 index 0000000..7d80f9d --- /dev/null +++ b/tests/annotations/docs/tester-docs.xml @@ -0,0 +1,59 @@ + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + + + + API Reference + + Tests + + + + + + Appendix + + + API Index + + + + Index of deprecated API + + + + + Glossary + X + + XML + + Extensible Markup Language + + + + XSL + + XML Stylesheet Language + + + + + + + + diff --git a/tests/annotations/docs/tester-overrides.txt b/tests/annotations/docs/tester-overrides.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/annotations/docs/tester-overrides.txt diff --git a/tests/annotations/docs/tester-sections.txt b/tests/annotations/docs/tester-sections.txt new file mode 100644 index 0000000..3b33f0b --- /dev/null +++ b/tests/annotations/docs/tester-sections.txt @@ -0,0 +1,33 @@ +
    +tester +GtkdocTester +GtkdocAnnotation +annotation_array_length +annotation_allow_none +annotation_nullable +annotation_not_nullable +annotation_elementtype +annotation_elementtype_transfer +annotation_elementtype_returns +annotation_outparams +annotation_outparams_nullable +annotation_outparams_not_nullable +annotation_outparams_optional +annotation_outparams_not_optional +annotation_outparams_optional_nullable +annotation_outparams_not_optional_nullable +annotation_outparams_optional_not_nullable +annotation_outparams_not_optional_not_nullable +annotation_skip +annotation_skip_return +annotation_scope +annotation_rename_to +annotation_attributes_single +annotation_attributes_single_eq +stability_unstable +annotation_multiline_on_function +annotation_multiline_on_function2 + + +
    + diff --git a/tests/annotations/src/Makefile.am b/tests/annotations/src/Makefile.am new file mode 100644 index 0000000..77f9241 --- /dev/null +++ b/tests/annotations/src/Makefile.am @@ -0,0 +1,15 @@ +## Process this file with automake to produce Makefile.in + +if BUILD_TESTS + +noinst_LTLIBRARIES = libtester.la + +libtester_la_SOURCES = tester.c tester.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) + +AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) + +endif + + +-include $(top_srcdir)/git.mk diff --git a/tests/annotations/src/Makefile.in b/tests/annotations/src/Makefile.in new file mode 100644 index 0000000..1103d55 --- /dev/null +++ b/tests/annotations/src/Makefile.in @@ -0,0 +1,623 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/annotations/src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libtester_la_LIBADD = +am__libtester_la_SOURCES_DIST = tester.c tester.h +@BUILD_TESTS_TRUE@am_libtester_la_OBJECTS = tester.lo +libtester_la_OBJECTS = $(am_libtester_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +@BUILD_TESTS_TRUE@am_libtester_la_rpath = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libtester_la_SOURCES) +DIST_SOURCES = $(am__libtester_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@BUILD_TESTS_TRUE@noinst_LTLIBRARIES = libtester.la +@BUILD_TESTS_TRUE@libtester_la_SOURCES = tester.c tester.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) +@BUILD_TESTS_TRUE@AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/annotations/src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/annotations/src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libtester.la: $(libtester_la_OBJECTS) $(libtester_la_DEPENDENCIES) $(EXTRA_libtester_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libtester_la_rpath) $(libtester_la_OBJECTS) $(libtester_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tester.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/annotations/src/tester.c b/tests/annotations/src/tester.c new file mode 100644 index 0000000..ae38512 --- /dev/null +++ b/tests/annotations/src/tester.c @@ -0,0 +1,354 @@ +/** + * SECTION:tester + * @short_description: module for gtk-doc unit test + * @stability: stable + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ + +#include +#include + +#include "tester.h" + +/** + * annotation_array_length: + * @list: a #GtkListStore + * @n_columns: number of columns + * @types: (array length=n_columns): list of types + * + * Document parameter relation for array length. + */ +void +annotation_array_length (GObject *list, + gint n_columns, + GType *types) +{ +} + + +/** + * annotation_allow_none: + * @uri: a uri + * @label: (allow-none): an optional string, which is used in ways too + * complicated to describe in a single line, making it necessary to wrap it + * + * Document optional parameters. + * + * Returns: (transfer full) (allow-none): Returns stuff which you have to + * free after use, whose description is also rather long + */ +gchar * +annotation_allow_none (const gchar *uri, + const gchar *label) +{ + return NULL; +} + +/** + * annotation_nullable: + * @uri: a uri + * @label: (nullable): an optional string, which is used in ways too + * complicated to describe in a single line, making it necessary to wrap it + * + * Document optional parameters. + * + * Returns: (transfer full) (nullable): Returns stuff which you have to + * free after use, whose description is also rather long + */ +gchar * +annotation_nullable (const gchar *uri, + const gchar *label) +{ + return NULL; +} + +/** + * annotation_not_nullable: + * @uri: a uri + * @label: (not nullable): a non-optional string, which is used in ways too + * complicated to describe in a single line, making it necessary to wrap it + * + * Document non-nullable parameters. + * + * Returns: (transfer full) (not nullable): Returns stuff which you have to + * free after use, whose description is also rather long + */ +gchar * +annotation_not_nullable (const gchar *uri, + const gchar *label) +{ + return NULL; +} + +/** + * annotation_elementtype: + * @list: (element-type GObject): list of #GObject instances to search + * + * Document optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_elementtype (const GList *list) +{ + return TRUE; +} + +/** + * annotation_elementtype_transfer: + * @list: (element-type utf8) (transfer full): list of #GObject instances to search + * + * Document optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_elementtype_transfer (const GList *list) +{ + return TRUE; +} + +/** + * annotation_elementtype_returns: + * + * Document optional parameters. + * + * Returns: (element-type GObject): A list of #GObject instances. + */ +GList * +annotation_elementtype_returns (void) +{ + return NULL; +} + +/** + * annotation_outparams: + * @list: (out) (transfer none): a pointer to take a list + * + * Document optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams (GList **list) +{ + return TRUE; +} + +/** + * annotation_outparams_optional: + * @list: (out) (transfer none) (optional): a pointer to take a list, or %NULL + * + * Document optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams_optional (GList **list) +{ + return TRUE; +} + +/** + * annotation_outparams_not_optional: + * @list: (out) (transfer none) (not optional): a pointer to take a list + * + * Document optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams_not_optional (GList **list) +{ + return TRUE; +} + +/** + * annotation_outparams_nullable: + * @list: (out) (transfer none) (nullable): a pointer to take a list; but %NULL + * may also be returned + * + * Document optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams_nullable (GList **list) +{ + return TRUE; +} + +/** + * annotation_outparams_not_nullable: + * @list: (out) (transfer none) (not nullable): a pointer to take a list; %NULL + * must not be returned + * + * Document optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams_not_nullable (GList **list) +{ + return TRUE; +} + +/** + * annotation_outparams_optional_nullable: + * @list: (out) (transfer none) (optional) (nullable): a pointer to take a + * list, or %NULL; but %NULL may also be returned in @list — isn’t that cool? + * + * Document non-optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams_optional_nullable (GList **list) +{ + return TRUE; +} + +/** + * annotation_outparams_not_optional_nullable: + * @list: (out) (transfer none) (not optional) (nullable): a pointer to take a + * list, not %NULL; but %NULL may also be returned in @list — isn’t that cool? + * + * Document non-optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams_not_optional_nullable (GList **list) +{ + return TRUE; +} + +/** + * annotation_outparams_optional_not_nullable: + * @list: (out) (transfer none) (optional) (not nullable): a pointer to take a + * list, not %NULL; and %NULL must not be returned in @list — isn’t that cool? + * + * Document non-optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams_optional_not_nullable (GList **list) +{ + return TRUE; +} + +/** + * annotation_outparams_not_optional_not_nullable: + * @list: (out) (transfer none) (not optional) (not nullable): a pointer to take a + * list, not %NULL; and %NULL must not be returned in @list — isn’t that cool? + * + * Document non-optional parameters. + * + * Returns: %TRUE for success + */ +gboolean +annotation_outparams_not_optional_not_nullable (GList **list) +{ + return TRUE; +} + +/** + * annotation_skip: (skip) + * @list: a pointer to take a list + * + * Documentation for this function. + */ +void +annotation_skip (GList *list) +{ +} + +/** + * annotation_skip_return: (skip) + * @list: a pointer to take a list + * + * Documentation for this function. + * + * Returns: (skip): %TRUE for success + */ +gboolean +annotation_skip_return (GList *list) +{ + return TRUE; +} + +/** + * annotation_scope: + * @callback: (scope async): a callback + * @user_data: data to pass to callback + * + * Documentation for this function. + */ +void +annotation_scope (GCallback *callback, gpointer user_data) +{ +} + +/** + * annotation_rename_to: (rename-to annotation_scope) + * + * Documentation for this function. + */ +void +annotation_rename_to (void) +{ +} + +/** + * annotation_attributes_single: (attributes key value) + * + * Documentation for this function. + */ +void +annotation_attributes_single (void) +{ +} + +/** + * annotation_attributes_single_eq: (attributes key=value) + * + * Documentation for this function. + */ +void +annotation_attributes_single_eq (void) +{ +} + +/** + * stability_unstable: + * + * An experimental function. + * + * Stability: unstable + */ +void +stability_unstable(void) +{ +} + +/** + * annotation_multiline_on_function: (rename-to annotation_scope) + * (skip) + * + * Documentation for this function. + */ +void annotation_multiline_on_function (void) +{ +} + +/** + * annotation_multiline_on_function2: + * (rename-to annotation_scope)(skip) + * + * Documentation for this function. + */ +void annotation_multiline_on_function2 (void) +{ +} diff --git a/tests/annotations/src/tester.h b/tests/annotations/src/tester.h new file mode 100644 index 0000000..1a4a68b --- /dev/null +++ b/tests/annotations/src/tester.h @@ -0,0 +1,53 @@ +#ifndef GTKDOC_TESTER_H +#define GTKDOC_TESTER_H + +#include +#include + +/** + * GtkdocAnnotation: + * @that: (allow-none): eventualy points to something + * + * small struct + */ +struct _GtkdocAnnotation { + gpointer that; +}; + +void annotation_array_length (GObject *list, gint n_columns, GType *types); + +gchar * annotation_allow_none (const gchar *uri, const gchar *label); +gchar * annotation_nullable (const gchar *uri, const gchar *label); +gchar * annotation_not_nullable (const gchar *uri, const gchar *label); + +gboolean annotation_elementtype (const GList *list); +gboolean annotation_elementtype_transfer (const GList *list); +GList *annotation_elementtype_returns (void); + +gboolean annotation_outparams (GList **list); +gboolean annotation_outparams_optional (GList **list); +gboolean annotation_outparams_not_optional (GList **list); +gboolean annotation_outparams_nullable (GList **list); +gboolean annotation_outparams_not_nullable (GList **list); +gboolean annotation_outparams_optional_nullable (GList **list); +gboolean annotation_outparams_not_optional_nullable (GList **list); +gboolean annotation_outparams_optional_not_nullable (GList **list); +gboolean annotation_outparams_not_optional_not_nullable (GList **list); + +void annotation_skip (GList *list); +gboolean annotation_skip_return (GList *list); + +void annotation_scope (GCallback *callback, gpointer user_data); + +void annotation_rename_to (void); + +void annotation_attributes_single (void); +void annotation_attributes_single_eq (void); + +void stability_unstable(void); + +void annotation_multiline_on_function (void); +void annotation_multiline_on_function2 (void); + +#endif // GTKDOC_TESTER_H + diff --git a/tests/bugs.sh b/tests/bugs.sh new file mode 100755 index 0000000..6cfef4c --- /dev/null +++ b/tests/bugs.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +gtkdoctest.sh bugs + diff --git a/tests/bugs/Makefile.am b/tests/bugs/Makefile.am new file mode 100644 index 0000000..ad34ec6 --- /dev/null +++ b/tests/bugs/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = . src docs + +if BUILD_TESTS + +check-local: clean + +endif + + +-include $(top_srcdir)/git.mk diff --git a/tests/bugs/Makefile.in b/tests/bugs/Makefile.in new file mode 100644 index 0000000..b640c3d --- /dev/null +++ b/tests/bugs/Makefile.in @@ -0,0 +1,656 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bugs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = . src docs +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bugs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bugs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +@BUILD_TESTS_FALSE@check-local: +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am check-local clean clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +@BUILD_TESTS_TRUE@check-local: clean + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/bugs/docs/Makefile.am b/tests/bugs/docs/Makefile.am new file mode 100644 index 0000000..97c4702 --- /dev/null +++ b/tests/bugs/docs/Makefile.am @@ -0,0 +1,78 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE=tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/tests/bugs/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS=--deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --ignore-decorators='GLIB_VAR|GTKDOC_GNUC_CONST|BUG_711598_DEPRECATED_FOR\(.+\)' \ + --rebuild-types + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS=--xml-mode + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS=--extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB=$(top_srcdir)/tests/bugs/src/*.h +CFILE_GLOB=$(top_srcdir)/tests/bugs/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES=config.h + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/bugs/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/bugs/src/libtester.la + +# include generic part +include $(top_srcdir)/tests/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += + +CLEANFILES += \ + $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE).types + +if BUILD_TESTS +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ + PERL5LIB=$(abs_top_builddir):$(PERL5LIB) +endif + +-include $(top_srcdir)/git.mk diff --git a/tests/bugs/docs/Makefile.in b/tests/bugs/docs/Makefile.in new file mode 100644 index 0000000..2121504 --- /dev/null +++ b/tests/bugs/docs/Makefile.in @@ -0,0 +1,764 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 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@ + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bugs/docs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/tests/gtk-doc.make +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE = tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR = $(top_srcdir)/tests/bugs/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS = --deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --ignore-decorators='GLIB_VAR|GTKDOC_GNUC_CONST|BUG_711598_DEPRECATED_FOR\(.+\)' \ + --rebuild-types + + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS = --xml-mode + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS = + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS = --extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB = $(top_srcdir)/tests/bugs/src/*.h +CFILE_GLOB = $(top_srcdir)/tests/bugs/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES = config.h + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/bugs/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/bugs/src/libtester.la +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# we don't install anything in tests +#TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + + +# include generic part + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) +DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \ + $(DOC_MODULE).pdf ts gtkdoc-scan.log gtkdoc-scangobj.log \ + gtkdoc-mkdb.log gtkdoc-mkhtml.log gtkdoc-mkpdf.log \ + gtkdoc-fixxref.log $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE).types +GITIGNOREFILES = \ + html.ref xml.ref + +@BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = \ +@BUILD_TESTS_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ +@BUILD_TESTS_TRUE@ PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ +@BUILD_TESTS_TRUE@ PERL5LIB=$(abs_top_builddir):$(PERL5LIB) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/tests/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bugs/docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bugs/docs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/tests/gtk-doc.make $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-am check-local clean clean-generic \ + clean-libtool clean-local cscopelist-am ctags-am distclean \ + distclean-generic distclean-libtool distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +check-local: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +docs: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +$(REPORT_FILES): sgml-build.stamp + +ts: + @echo >ts `date $(TS_FMT)`; + +#### setup #### + +setup-build.stamp: ts + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo ' DOC Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + @touch setup-build.stamp + +#### scan #### + +scan-build.stamp: ts setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Scanning header files" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)" >gtkdoc-scan.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) 2>&1 | tee -a gtkdoc-scan.log + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Introspecting gobjects"; \ + scanobj_options=""; \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + echo "gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options" >gtkdoc-scangobj.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options 2>&1 | tee -a gtkdoc-scangobj.log; \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + @touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building XML" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)" >gtkdoc-mkdb.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) 2>&1 | tee -a gtkdoc-mkdb.log + @touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + @$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building HTML" + @rm -rf html + @mkdir html + @mkhtml_options=""; \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + echo "gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)" >gtkdoc-mkhtml.log; \ + cd html && PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) 2>&1 | tee -a ../gtkdoc-mkhtml.log + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Fixing cross-references" + @echo "gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)" >gtkdoc-fixxref.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) 2>&1 | tee -a gtkdoc-fixxref.log + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building PDF" + @rm -f $(DOC_MODULE).pdf + @mkpdf_options=""; \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + echo "gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)" >gtkdoc-mkpdf.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) 2>&1 | tee -a gtkdoc-mkpdf.log + @touch pdf-build.stamp + +############## + +# we need to enforce a rebuild for the tests +clean-local: + @rm -f *~ *.bak ts gtkdoc-*.log + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + $(MAKE) distclean-local + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +.PHONY : dist-hook-local docs + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/bugs/docs/tester-docs.xml b/tests/bugs/docs/tester-docs.xml new file mode 100644 index 0000000..20ae84f --- /dev/null +++ b/tests/bugs/docs/tester-docs.xml @@ -0,0 +1,36 @@ + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + + + + Tests + + + + + API Index + + + + Index of deprecated API + + + + Index of new API in 0.1 + + + diff --git a/tests/bugs/docs/tester-overrides.txt b/tests/bugs/docs/tester-overrides.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/bugs/docs/tester-overrides.txt diff --git a/tests/bugs/docs/tester-sections.txt b/tests/bugs/docs/tester-sections.txt new file mode 100644 index 0000000..2669275 --- /dev/null +++ b/tests/bugs/docs/tester-sections.txt @@ -0,0 +1,88 @@ +
    +tester +GtkdocTester +BUG_530758 +MACRO_FUNCTION +MACRO_VALUE + +Bug165425a +Bug165425b +Bug324535 +Bug446648 +Bug512154 +Bug642998 +Bug644291 +Bug000000Scope +bug_411739_rettype + +bug_000000_va1 +BUG_000000_VA2 +BUG_000000_VA3 +bug_141869_a +bug_141869_b +bug_379466 +bug_380824 +bug_411739 +bug_419997 +bug_445693 +bug_460127 +bug_471014 +bug_477532 +bug_481811 +bug_501038 +bug_512155a_function_pointer_t +bug_512155b_function_pointer_t +bug_512155c_function_pointer_t +bug_532395a +bug_532395b +bug_544172 +bug_552602 +bug_554833 +bug_574654a +bug_574654b +bug_580300a_get_type +bug_580300b_get_type +bug_580300c_get_type +bug_580300d_get_type +bug_597937 +bug_602518a +bug_602518b +bug_602518c +bug_607445 +bug_610257 +bug_623968a +bug_623968b +bug_623968c +bug_624200a +bug_624200b +bug_638330 +BUG_656773a +BUG_656773b +BUG_656773c +BUG_656946 +bug_624001a +bug_624001b +bug_624001c +bug_624001d +bug_624001e +bug_711598 +bug_749142 +deprecation_notice +bug_741941 +bug_732689 +bug_783420 +gst_play_marshal_BUFFER__BOXED +BUG_791928 + + +GTKDOC_GNUC_CONST +G_GNUC_DEPRECATED +G_GNUC_DEPRECATED_FOR +GLIB_DEPRECATED +BUG_711598_DEPRECATED_FOR +bug_554833_new +BUG_731417_DEPRECATED +Bug730658 +G_GNUC_NONNULL +
    + diff --git a/tests/bugs/src/Makefile.am b/tests/bugs/src/Makefile.am new file mode 100644 index 0000000..77f9241 --- /dev/null +++ b/tests/bugs/src/Makefile.am @@ -0,0 +1,15 @@ +## Process this file with automake to produce Makefile.in + +if BUILD_TESTS + +noinst_LTLIBRARIES = libtester.la + +libtester_la_SOURCES = tester.c tester.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) + +AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) + +endif + + +-include $(top_srcdir)/git.mk diff --git a/tests/bugs/src/Makefile.in b/tests/bugs/src/Makefile.in new file mode 100644 index 0000000..2370a27 --- /dev/null +++ b/tests/bugs/src/Makefile.in @@ -0,0 +1,623 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bugs/src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libtester_la_LIBADD = +am__libtester_la_SOURCES_DIST = tester.c tester.h +@BUILD_TESTS_TRUE@am_libtester_la_OBJECTS = tester.lo +libtester_la_OBJECTS = $(am_libtester_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +@BUILD_TESTS_TRUE@am_libtester_la_rpath = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libtester_la_SOURCES) +DIST_SOURCES = $(am__libtester_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@BUILD_TESTS_TRUE@noinst_LTLIBRARIES = libtester.la +@BUILD_TESTS_TRUE@libtester_la_SOURCES = tester.c tester.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) +@BUILD_TESTS_TRUE@AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bugs/src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bugs/src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libtester.la: $(libtester_la_OBJECTS) $(libtester_la_DEPENDENCIES) $(EXTRA_libtester_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libtester_la_rpath) $(libtester_la_OBJECTS) $(libtester_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tester.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/bugs/src/tester.c b/tests/bugs/src/tester.c new file mode 100644 index 0000000..7be7be8 --- /dev/null +++ b/tests/bugs/src/tester.c @@ -0,0 +1,493 @@ +/** + * SECTION:tester + * @short_description: module for gtk-doc unit test + * + * This file contains non-sense code for the sole purpose of testing the docs. + * + * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it + * returns nothing. + * + * Some special characters need escaping. The tests should pass 100\%. + * Try a link containing a # char. + * + * + * more details + * + * Second paragraph inside subsection. + * + * + */ + +#include "tester.h" + +/** + * bug_141869_a: + * @pid: arg + * + * http://bugzilla.gnome.org/show_bug.cgi?id=141869 + */ +void bug_141869_a (unsigned pid) { + /* just silence a compiler warning */ + bug_481811((double)pid); +} + +/** + * bug_141869_b: + * @pid: arg + * + * http://bugzilla.gnome.org/show_bug.cgi?id=141869 + */ +void bug_141869_b (signed pid) { +} + + +/** + * bug_379466: + * @pid: arg + * + * http://bugzilla.gnome.org/show_bug.cgi?id=379466 + */ +void bug_379466 (int + pid) { +} + + +/** + * bug_380824: + * @arg: arg + * + * Returns a value. + * http://bugzilla.gnome.org/show_bug.cgi?id=380824 + * + * Since: 0.1 + * + * Returns: result + */ +int bug_380824 (int arg) { + return 0; +} + + +/** + * bug_411739: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=411739 + * + * Returns: result + */ +struct bug_411739_rettype * +bug_411739 (void) { + return NULL; +} + + +/** + * bug_419997: + * @const_values: arg + * + * http://bugzilla.gnome.org/show_bug.cgi?id=419997 + */ +void bug_419997 (int const_values) { +} + + +/** + * bug_445693: + * @pid: arg + * + * http://bugzilla.gnome.org/show_bug.cgi?id=445693 + */ +void bug_445693 (unsigned long pid) { +} + + +/** + * bug_471014: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=471014 + * + * Returns: result + */ +G_CONST_RETURN gchar* G_CONST_RETURN * bug_471014 (void) { + return NULL; +} + + +/** + * bug_552602: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=552602 + * + * Returns: result + */ +const char* const * bug_552602 (void) { + return NULL; +} + +/** + * bug_574654a: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=574654 + * + * Returns: result + */ +/** + * bug_574654b: + * @offset: skip this many items + * + * http://bugzilla.gnome.org/show_bug.cgi?id=574654 + */ +int bug_574654a(void) { + return 0; +} + +void bug_574654b(double offset) { } + + +/** + * bug_580300a_get_type: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=580300 + */ +void bug_580300a_get_type(void) { } + +/** + * bug_580300b_get_type: + * @a: value + * + * http://bugzilla.gnome.org/show_bug.cgi?id=580300 + */ +void bug_580300b_get_type(gint a) { } + +/** + * bug_580300c_get_type: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=580300 + */ +void bug_580300c_get_type() { } + +/** + * bug_580300d_get_type: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=580300 + * + * Returns: result + */ +int bug_580300d_get_type() { return 0; } + +/** + * bug_597937: + * @function_arg: value + * + * http://bugzilla.gnome.org/show_bug.cgi?id=597937 + */ +void bug_597937(void (*function_arg)(int arg1, char arg2, void *)) { } + +/** + * bug_602518a: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=602518 + * + * Returns: result + */ +long int bug_602518a(void) { + return (long int)0; +} + +/** + * bug_602518b: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=602518 + * + * Returns: result + */ +unsigned long int bug_602518b(void) { + return (unsigned long int)0; +} + +/** + * bug_602518c: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=602518 + * + * Returns: result + */ +unsigned int bug_602518c(void) { + return (unsigned int)0; +} + +/** + * bug_607445: + * @a: parameter + * @n: parameter + * + * http://bugzilla.gnome.org/show_bug.cgi?id=607445 + */ +long double bug_607445(long double **a, int n) { + return 2.0*n; +} + +/** + * bug_610257: + * @der: parameter + * @len: parameter + * + * http://bugzilla.gnome.org/show_bug.cgi?id=610257 + */ +signed long +bug_610257(const unsigned char *der, int *len) +{ + return 1L; +} + + +/** + * bug_623968a: + * + * test + * + * subsect + * test + * + **/ +void +bug_623968a(void) +{ +} + +/** + * bug_623968b: + * + * test + * + * + * subsect + * test + * + **/ +void +bug_623968b(void) +{ +} + +/** + * bug_623968c: + * + * test + **/ +void +bug_623968c(void) +{ +} + + +/** + * bug_624200a: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=624200 + * + * Returns: result + */ +const char * const * +bug_624200a(void) +{ + return NULL; +} + +/** + * bug_624200b: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=624200 + * + * Returns: result + */ +const char ** const +bug_624200b(void) +{ + return NULL; +} + +/** + * bug_638330: + * @arg1: arg1 + * @data: data + * @length: length + * + * http://bugzilla.gnome.org/show_bug.cgi?id=638330 + */ +void (*bug_638330) (void *arg1, + const unsigned char *data, + unsigned int length) = NULL; + + +/* internal function */ +gchar * +_bug_000000a (const gchar *name) +{ + return NULL; +} + +/* varargs */ + +/** + * bug_000000_va1: + * @name: a name + * @...: A printf-style message to output + * + * Outputs a message. + */ +void bug_000000_va1 (gchar name, ...) +{ +} + + +/** + * bug_624001a: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=624001 + * + * Deprecated: Use main() instead. + */ +void bug_624001a(void) +{ +} + +/** + * bug_624001b: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=624001 + * + * Deprecated: Use main() instead. + */ +void bug_624001b(void) +{ +} + +/** + * bug_624001c: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=624001 + * + * Deprecated: Use main() instead. + */ +void bug_624001c(void) +{ +} + +/** + * bug_624001d: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=624001 + * + * Deprecated: Use main() instead. + */ +void bug_624001d(void) +{ +} + +/** + * bug_624001e: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=624001 + * + * Deprecated: Use main() instead. + */ +void bug_624001e(void) +{ +} + +/** + * bug_711598: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=711598 + */ +void bug_711598(void) +{ +} + +/** + * deprecation_notice: + * + * Foo. + * + * Deprecated: 3.10: Use named icon "bar" instead. + */ +void deprecation_notice(void) +{ +} + +/** + * bug_741941: + * @object: the object + * @par: parameter + * + * http://bugzilla.gnome.org/show_bug.cgi?id=741941 + */ +void bug_741941(void *object, void *par) +{ +} + +/** + * bug_732689: + * @spec: the string specifying the color. + * + * Parses a textual specification of a color and fill in the + * red, green, + * and blue fields of a color. + **/ +void +bug_732689 (const gchar *spec) +{ +} + +/** + * bug_749142: + * + * The message's structure contains one field: + * + * int timeout: the timeout. + * + * + * + * Example usage + * |[ + * echo "Hello" | foo + * ]| + * + **/ +void +bug_749142 (void) +{ +} + +/** + * bug_783420: + * @in: input + * @out: output + * + * http://bugzilla.gnome.org/show_bug.cgi?id=783420 + * + * |[ + * #include + * + * int res; + * bug_783420(42, &res); + * ]| + * + * + * Subsection + * + * Lorem ipsum ... + * |[ + * #include + * + * int res; + * bug_783420(42, &res); + * ]| + * + * + */ +void +bug_783420 (int in, int *out) +{ +} \ No newline at end of file diff --git a/tests/bugs/src/tester.h b/tests/bugs/src/tester.h new file mode 100644 index 0000000..24a94cd --- /dev/null +++ b/tests/bugs/src/tester.h @@ -0,0 +1,566 @@ +#ifndef GTKDOC_TESTER_H +#define GTKDOC_TESTER_H + +#include + +/** + * Bug324535: + * @BUG_324535_A: enum 1 + * @BUG_324535_B: enum 2 + * @BUG_324535_C: enum 3 + * + * http://bugzilla.gnome.org/show_bug.cgi?id=324535 + */ +typedef enum { + BUG_324535_A, +#ifdef GTK_DISABLE_DEPRECATED + BUG_324535_B, +#endif + BUG_324535_C +} Bug324535; + + + +/** + * bug_481811: + * @x: argument + * + * http://bugzilla.gnome.org/show_bug.cgi?id=481811 + **/ +static inline double +bug_481811(double x) +{ + return g_random_double_range(x,x*x); +} + + +/** + * bug_501038: + * @a: value + * @b: deprecated value + * @_b: scrambled deprecated value + * + * http://bugzilla.gnome.org/show_bug.cgi?id=501038 + */ +struct _bug_501038 { + gint a; +#ifndef GTK_DISABLE_DEPRECATED + gint b; +#else + gint _b; +#endif +}; + + +#define _PADDDING 4 +/** + * bug_460127: + * @a: field + * + * http://bugzilla.gnome.org/show_bug.cgi?id=460127 + */ +struct _bug_460127 { + /*< public >*/ + gint a; + + /*< private >*/ + union { + struct { + gint b; + } ABI; + gpointer _reserved[_PADDDING + 0]; + } abidata; +}; + + +/** + * bug_477532: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=477532 + */ +GLIB_VAR guint64 (*bug_477532) (void); + + + +void bug_141869_a (unsigned pid); +void bug_141869_b (signed pid); + +void bug_379466 (int + pid); + +int bug_380824 (int arg); + + +/** + * bug_411739_rettype: + * @test: field + * + * http://bugzilla.gnome.org/show_bug.cgi?id=411739 + */ +struct bug_411739_rettype { + int test; +}; + +struct bug_411739_rettype * +bug_411739 (void); + +void bug_419997 (int const_values); + +void bug_445693 (unsigned long pid); + +G_CONST_RETURN gchar* G_CONST_RETURN * +bug_471014 (void); + +const char* const * bug_552602 (void); + +/** + * Bug446648: + * @BUG_446648_FOO: foo + * + * http://bugzilla.gnome.org/show_bug.cgi?id=446648 + */ +typedef enum _Bug446648 Bug446648; +enum _Bug446648 { + BUG_446648_FOO +}; + +/** + * Bug512154: + * @index: field + * + * http://bugzilla.gnome.org/show_bug.cgi?id=512154 + */ +typedef struct { + unsigned long index; +} Bug512154; + + +/** + * bug_512155a_function_pointer_t: + * @arg1: param 1 + * @arg2: param 1 + * @arg3: param 1 + * + * http://bugzilla.gnome.org/show_bug.cgi?id=512155 + */ +typedef int +(*bug_512155a_function_pointer_t) (unsigned int arg1, unsigned int arg2, + unsigned int arg3); + +/** + * bug_512155b_function_pointer_t: + * @arg1: param 1 + * @arg2: param 1 + * @arg3: param 1 + * + * http://bugzilla.gnome.org/show_bug.cgi?id=512155 + */ +typedef +int (*bug_512155b_function_pointer_t) (unsigned int arg1, unsigned int arg2, + unsigned int arg3); + +/** + * bug_512155c_function_pointer_t: + * @arg1: param 1 + * @arg2: param 1 + * @arg3: param 1 + * + * http://bugzilla.gnome.org/show_bug.cgi?id=512155 + */ +typedef int (*bug_512155c_function_pointer_t) (unsigned int arg1, + unsigned int arg2, + unsigned int arg3); + + +/** + * BUG_530758: + * + * + * + * Test + */ +#define BUG_530758 "dummy" + + +/** + * bug_532395a: + * @number: a number + * + * http://bugzilla.gnome.org/show_bug.cgi?id=532395 + * + * Returns: number + */ +/** + * bug_532395b: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=532395 + */ +G_INLINE_FUNC guint +bug_532395a (gulong number) +{ +#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__) + return G_LIKELY (number) ? + ((GLIB_SIZEOF_LONG * 8 - 1) ^ __builtin_clzl(number)) + 1 : 1; +#else + return 0; +#endif +} +G_INLINE_FUNC void +bug_532395b (void) +{ +} + + +/** + * bug_544172: + * @self: object pointer. + * + * http://bugzilla.gnome.org/show_bug.cgi?id=544172 + * + * Returns: result or %NULL. + */ +typedef char const * (*bug_544172) (char const *self); + + +/** + * bug_554833: + * @i: value; + * + * http://bugzilla.gnome.org/show_bug.cgi?id=554833 + */ +struct _bug_554833 { + int i; +}; + + +/** + * bug_554833_new: + * + * http://bugzilla.gnome.org/show_bug.cgi?id=554833 + * + * Returns: result + */ +struct _bug_554833 * + bug_554833_new (void); + + +#define GTKDOC_GNUC_CONST +int bug_574654a(void) GTKDOC_GNUC_CONST; +void bug_574654b(double offset); + + +void bug_580300a_get_type(void); +void bug_580300b_get_type(gint a); +void bug_580300c_get_type(); +extern int bug_580300d_get_type(); + +void bug_597937(void (*function_arg)(int arg1, char arg2, void *)); + +long int bug_602518a(void); +unsigned long int bug_602518b(void); +unsigned int bug_602518c(void); + +/** + * Bug165425a: + * @i: data as int + * @f: data as float + * + * http://bugzilla.gnome.org/show_bug.cgi?id=165425 + */ +union _Bug165425a { + int i; + float f; +}; +typedef union _Bug165425a Bug165425a; + +/** + * Bug165425b: + * @i: data as int + * @f: data as float + * + * http://bugzilla.gnome.org/show_bug.cgi?id=165425 + */ +typedef union _Bug165425b { + int i; + float f; +} Bug165425b; + + +/* + * BugXXX1b: + * @a: field + * + * No bug report + * +typedef struct _BugXXX1b BugXXX1b; +struct _BugXXX1b { + *//*< protected >*//* + gint a; + + *//*< private >*//* + gint b; +}; +*/ + +long double bug_607445(long double **a, int n); + + +signed long bug_610257(const unsigned char *der, int *len); + + +void bug_623968a(void); +void bug_623968b(void); +void bug_623968c(void); + + +#define _BUG_624199(struct_type, n_structs, func) \ + (struct_type *) (__extension__ ({ \ + gsize __n = (gsize) (n_structs); \ + gsize __s = sizeof (struct_type); \ + gpointer __p; \ + if (__s == 1) \ + __p = g_##func (__n); \ + else if (__builtin_constant_p (__n) && \ + (__s == 0 || __n <= G_MAXSIZE / __s)) \ + __p = g_##func (__n * __s); \ + else \ + __p = g_##func##_n (__n, __s); \ + __p; \ + })) + + +const char * const * bug_624200a(void); +const char ** const bug_624200b(void); + + +/* internal function and macro */ +gchar *_bug_000000a (const gchar *name); +#define _BUG_000000b (a) (a*a); + +#ifndef __GTK_DOC_IGNORE__ +extern int bug_512565(void); +#endif + +void (*bug_638330) (void *arg1, + const unsigned char *data, + unsigned int length); + + +/** + * Bug642998: + * @red: red color intensity, from 0–255 + * @green: green color intensity, from 0–255 + * @blue: blue color intensity, from 0–255 + * + * https://bugzilla.gnome.org/show_bug.cgi?id=642998 + */ +typedef struct { + guint16 red; + guint16 green; + guint16 blue; +} Bug642998; + + +/** + * Bug644291: + * @BUG_644291_START: foo + * @BUG_644291_TEXT: bar + * @BUG_644291_END: milk + * @BUG_644291_ATTRIBUTE: comes + * @BUG_644291_XMLNS: from + * @BUG_644291_ASSIGN_TO: cows + * + * https://bugzilla.gnome.org/show_bug.cgi?id=644291 + */ +typedef enum +{ + BUG_644291_START = '(', + BUG_644291_TEXT = '$', + BUG_644291_END = ')', + BUG_644291_ATTRIBUTE = '@', + BUG_644291_XMLNS = ':', + BUG_644291_ASSIGN_TO = '*' +} Bug644291; + +/* varargs */ + +extern void bug_000000_va1 (gchar name, ...); + +/** + * BUG_000000_VA2: + * @name: a name + * @...: A printf-style message to output + * + * Outputs a message. + */ +#define BUG_000000_VA2(name,...) + +/** + * BUG_000000_VA3: + * @name: a name + * @...: A printf-style message to output + * + * Outputs a message. + */ +#define BUG_000000_VA3(name,args...) + +/** + * Bug000000Scope: + * + * Opaque structure. + * "warning: Field descriptions for Bug000000Scope are missing in source code comment block." + * but not if we remove the blank line before "int b"; + */ +typedef struct _Bug000000Scope Bug000000Scope; +struct _Bug000000Scope { + /*< private >*/ + union { + struct { + /* comment */ + int a; + } ABI; + gpointer _reserved[4 - 1]; + } abidata; + + int b; +}; + +/** + * gst_play_marshal_BUFFER__BOXED: + * @closure: test + * @return_value: test + * @marshal_data: test + * + * test. + */ +void +gst_play_marshal_BUFFER__BOXED (gint * closure, + gint * return_value G_GNUC_UNUSED, + gpointer marshal_data); + + +/** + * BUG_656773a: + * + * https://bugzilla.gnome.org/show_bug.cgi?id=656773 + */ +extern const char* const BUG_656773a; + +/** + * BUG_656773b: + * + * https://bugzilla.gnome.org/show_bug.cgi?id=656773 + */ +extern const char* BUG_656773b; + +/** + * BUG_656773c: + * + * https://bugzilla.gnome.org/show_bug.cgi?id=656773 + */ +const char* const BUG_656773c = "bug"; + +/** + * BUG_656946: + * + * https://bugzilla.gnome.org/show_bug.cgi?id=656946 + */ +extern short int BUG_656946; + +#ifndef G_GNUC_DEPRECATED +#define G_GNUC_DEPRECATED +#endif +#ifndef G_GNUC_DEPRECATED_FOR +#define G_GNUC_DEPRECATED_FOR(a) +#endif + +void bug_624001a(void) G_GNUC_DEPRECATED; +void bug_624001b(void) G_GNUC_DEPRECATED_FOR(bug_624001a); + +G_GNUC_DEPRECATED +void bug_624001c(void); + +G_GNUC_DEPRECATED_FOR(bug_624001c) +void bug_624001d(void); + +#ifndef GLIB_DEPRECATED +#define GLIB_DEPRECATED +#endif + +GLIB_DEPRECATED +void bug_624001e (void); + +#define BUG_711598_DEPRECATED_FOR(f) G_GNUC_DEPRECATED_FOR(f) +BUG_711598_DEPRECATED_FOR(bug_711598b) +void bug_711598(void); + +#ifdef GTKDOC_TESTER_DISABLE_DEPRECATED +void deprecation_notice(void); +#endif + +#ifndef G_GNUC_NONNULL +#define G_GNUC_NONNULL(a) +#endif +void bug_741941(void *object, void *par) G_GNUC_NONNULL(1) G_GNUC_NONNULL(2); + +void bug_732689 (const gchar *spec); +void bug_749142 (void); + +void bug_783420 (int in, int *out); + +/** + * BUG_731417_DEPRECATED: + * + * https://bugzilla.gnome.org/show_bug.cgi?id=731417 + */ +#define BUG_731417_DEPRECATED 1 + +/** + * Bug730658: + * @BUG_730658_CAN_READ: Can read + * @BUG_730658_CAN_WRITE: Can write + * @BUG_730658_IS_DEPRECATED: Is deprecated + * + * https://bugzilla.gnome.org/show_bug.cgi?id=730658 + */ +typedef enum +{ + BUG_730658_CAN_READ = 1 << 0, + BUG_730658_CAN_WRITE = 1 << 1, + BUG_730658_IS_DEPRECATED = 1 << 2 +} Bug730658; + +/** + * MACRO_VALUE: + * + * This should be listed in the types and values section. + */ +#define MACRO_VALUE (1 << 1) + +/** + * MACRO_FUNCTION: + * @x: a value + * + * This should be listed in the functions section. + */ +#define MACRO_FUNCTION(x) (x << 1) + +/** + * _: + * @str: a string + * + * https://bugzilla.gnome.org/show_bug.cgi?id=753052 + */ +#define _(str) str + +/** + * BUG_791928: + * + * https://bugzilla.gnome.org/show_bug.cgi?id=791928 + * + * Stability: UndefinedTestValue + */ +#define BUG_791928 1 + + +#endif // GTKDOC_TESTER_H diff --git a/tests/check.py b/tests/check.py new file mode 100755 index 0000000..997aa6e --- /dev/null +++ b/tests/check.py @@ -0,0 +1,56 @@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2017 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import unittest + +from gtkdoc import check + + +class TestCheck(unittest.TestCase): + + def test_grep_finds_token_in_one_line(self): + result = check.grep(r'^(foo)', ['foo'], 'foo') + self.assertEqual('foo', result) + + def test_grep_does_not_find_token(self): + with self.assertRaises(check.FileFormatError) as ctx: + check.grep(r'^(foo)', ['bar'], 'foo') + self.assertEqual(str(ctx.exception), 'foo') + + def test_get_variable_prefers_env(self): + result = check.get_variable({'foo': 'bar'}, ['foo=baz'], 'foo') + self.assertEqual('bar', result) + + def test_get_variable_finds_in_file(self): + result = check.get_variable({}, ['foo=bar'], 'foo') + self.assertEqual('bar', result) + + def test_get_variable_finds_in_file_with_whitespce(self): + result = check.get_variable({}, ['foo = bar'], 'foo') + self.assertEqual('bar', result) + + def test_get_variable_empty_file(self): + with self.assertRaises(check.FileFormatError) as ctx: + check.get_variable({'foo': 'bar'}, [], 'foo') + self.assertEqual(str(ctx.exception), 'foo') + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/common.py b/tests/common.py new file mode 100755 index 0000000..26dd16b --- /dev/null +++ b/tests/common.py @@ -0,0 +1,79 @@ +# -*- python -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2017 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +try: + from unittest import mock +except ImportError: + import mock + +import unittest + +from six import PY2 +from gtkdoc import common + + +if PY2: + openname = '__builtin__.open' +else: + openname = 'builtins.open' + + +class TestUpdateFileIfChanged(unittest.TestCase): + + @mock.patch('os.path.exists') + @mock.patch('os.rename') + def test_NoOldFile(self, os_rename, os_path_exists): + os_path_exists.return_value = False + res = common.UpdateFileIfChanged('/old', '/new', False) + os_rename.assert_called_with('/new', '/old') + self.assertTrue(res) + + @mock.patch('os.path.exists') + @mock.patch(openname, mock.mock_open(read_data='bar')) + @mock.patch('os.unlink') + def test_FilesAreTheSame(self, os_unlink, os_path_exists): + os_path_exists.return_value = True + res = common.UpdateFileIfChanged('/old', '/new', False) + os_unlink.assert_called_with('/new') + self.assertFalse(res) + + +class TestGetModuleDocDir(unittest.TestCase): + + @mock.patch('subprocess.check_output') + def test_ReturnsPath(self, subprocess_check_output): + subprocess_check_output.return_value = '/usr' + self.assertEquals(common.GetModuleDocDir('glib-2.0'), '/usr/share/gtk-doc/html') + + +class TestCreateValidSGMLID(unittest.TestCase): + + def test_AlreadyValid(self): + self.assertEquals(common.CreateValidSGMLID('x'), 'x') + + def test_SpecialCharsBecomeDash(self): + self.assertEquals(common.CreateValidSGMLID('x_ y'), 'x--y') + + def test_SpecialCharsGetRemoved(self): + self.assertEquals(common.CreateValidSGMLID('x,;y'), 'xy') + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/empty.sh b/tests/empty.sh new file mode 100755 index 0000000..b4e824a --- /dev/null +++ b/tests/empty.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +if ! grep -q ^GtkDocTestIf$ empty/docs/tester-sections.txt; then + echo "Test for bug https://bugzilla.gnome.org/show_bug.cgi?id=705633 has failed." + exit 1 +fi + +gtkdoctest.sh empty + diff --git a/tests/empty/Makefile.am b/tests/empty/Makefile.am new file mode 100644 index 0000000..c854e6a --- /dev/null +++ b/tests/empty/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = . src docs + +if BUILD_TESTS + +check-local: clean + @rm -f docs/tester-docs.xml + +endif + + +-include $(top_srcdir)/git.mk diff --git a/tests/empty/Makefile.in b/tests/empty/Makefile.in new file mode 100644 index 0000000..d93da81 --- /dev/null +++ b/tests/empty/Makefile.in @@ -0,0 +1,657 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/empty +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = . src docs +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/empty/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/empty/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +@BUILD_TESTS_FALSE@check-local: +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am check-local clean clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +@BUILD_TESTS_TRUE@check-local: clean +@BUILD_TESTS_TRUE@ @rm -f docs/tester-docs.xml + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/empty/docs/Makefile.am b/tests/empty/docs/Makefile.am new file mode 100644 index 0000000..4733cb3 --- /dev/null +++ b/tests/empty/docs/Makefile.am @@ -0,0 +1,87 @@ +## Process this file with automake to produce Makefile.in + +# this tests bootstraps gtk-doc, that includes generating a default +# DOC_MAIN_SGML_FILE +# right now that fails with parallel make, as make cannot see that what is a +# dependency for another target is generated as needed +MAKEFLAGS = -j1 + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE=tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/tests/empty/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS=--deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --rebuild-sections + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS=--xml-mode + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS=--extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB=$(top_srcdir)/tests/empty/src/*.h +CFILE_GLOB=$(top_srcdir)/tests/empty/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES=config.h + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/empty/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/empty/src/libtester.la + +# include generic part +include $(top_srcdir)/tests/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += + +CLEANFILES += \ + $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE).types + +if BUILD_TESTS +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ + PERL5LIB=$(abs_top_builddir):$(PERL5LIB) +endif + +CLEANFILES += \ + tester-docs.xml \ + tester-sections.txt + +-include $(top_srcdir)/git.mk diff --git a/tests/empty/docs/Makefile.in b/tests/empty/docs/Makefile.in new file mode 100644 index 0000000..7055681 --- /dev/null +++ b/tests/empty/docs/Makefile.in @@ -0,0 +1,769 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 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@ + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/empty/docs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/tests/gtk-doc.make +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# this tests bootstraps gtk-doc, that includes generating a default +# DOC_MAIN_SGML_FILE +# right now that fails with parallel make, as make cannot see that what is a +# dependency for another target is generated as needed +MAKEFLAGS = -j1 + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE = tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR = $(top_srcdir)/tests/empty/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS = --deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --rebuild-sections + + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS = --xml-mode + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS = + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS = --extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB = $(top_srcdir)/tests/empty/src/*.h +CFILE_GLOB = $(top_srcdir)/tests/empty/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES = config.h + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/empty/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/empty/src/libtester.la +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# we don't install anything in tests +#TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + + +# include generic part + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) +DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \ + $(DOC_MODULE).pdf ts gtkdoc-scan.log gtkdoc-scangobj.log \ + gtkdoc-mkdb.log gtkdoc-mkhtml.log gtkdoc-mkpdf.log \ + gtkdoc-fixxref.log $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE).types tester-docs.xml tester-sections.txt +GITIGNOREFILES = \ + html.ref xml.ref + +@BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = \ +@BUILD_TESTS_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ +@BUILD_TESTS_TRUE@ PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ +@BUILD_TESTS_TRUE@ PERL5LIB=$(abs_top_builddir):$(PERL5LIB) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/tests/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/empty/docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/empty/docs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/tests/gtk-doc.make $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-am check-local clean clean-generic \ + clean-libtool clean-local cscopelist-am ctags-am distclean \ + distclean-generic distclean-libtool distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +check-local: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +docs: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +$(REPORT_FILES): sgml-build.stamp + +ts: + @echo >ts `date $(TS_FMT)`; + +#### setup #### + +setup-build.stamp: ts + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo ' DOC Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + @touch setup-build.stamp + +#### scan #### + +scan-build.stamp: ts setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Scanning header files" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)" >gtkdoc-scan.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) 2>&1 | tee -a gtkdoc-scan.log + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Introspecting gobjects"; \ + scanobj_options=""; \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + echo "gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options" >gtkdoc-scangobj.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options 2>&1 | tee -a gtkdoc-scangobj.log; \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + @touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building XML" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)" >gtkdoc-mkdb.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) 2>&1 | tee -a gtkdoc-mkdb.log + @touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + @$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building HTML" + @rm -rf html + @mkdir html + @mkhtml_options=""; \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + echo "gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)" >gtkdoc-mkhtml.log; \ + cd html && PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) 2>&1 | tee -a ../gtkdoc-mkhtml.log + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Fixing cross-references" + @echo "gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)" >gtkdoc-fixxref.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) 2>&1 | tee -a gtkdoc-fixxref.log + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building PDF" + @rm -f $(DOC_MODULE).pdf + @mkpdf_options=""; \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + echo "gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)" >gtkdoc-mkpdf.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) 2>&1 | tee -a gtkdoc-mkpdf.log + @touch pdf-build.stamp + +############## + +# we need to enforce a rebuild for the tests +clean-local: + @rm -f *~ *.bak ts gtkdoc-*.log + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + $(MAKE) distclean-local + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +.PHONY : dist-hook-local docs + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/empty/docs/tester-docs.xml b/tests/empty/docs/tester-docs.xml new file mode 100644 index 0000000..6531a77 --- /dev/null +++ b/tests/empty/docs/tester-docs.xml @@ -0,0 +1,43 @@ + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + + + + [Insert title here] + + + + + Object Hierarchy + + + + API Index + + + + Index of deprecated API + + + + Index of new API in 0.1 + + + + diff --git a/tests/empty/docs/tester-overrides.txt b/tests/empty/docs/tester-overrides.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/empty/docs/tester-overrides.txt diff --git a/tests/empty/docs/tester-sections.txt b/tests/empty/docs/tester-sections.txt new file mode 100644 index 0000000..ef56f8f --- /dev/null +++ b/tests/empty/docs/tester-sections.txt @@ -0,0 +1,9 @@ +
    +tester +GtkDocTestIf +FOO +test +GtkDocTestIfInterface +GtkDocTestIf +
    + diff --git a/tests/empty/src/Makefile.am b/tests/empty/src/Makefile.am new file mode 100644 index 0000000..77f9241 --- /dev/null +++ b/tests/empty/src/Makefile.am @@ -0,0 +1,15 @@ +## Process this file with automake to produce Makefile.in + +if BUILD_TESTS + +noinst_LTLIBRARIES = libtester.la + +libtester_la_SOURCES = tester.c tester.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) + +AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) + +endif + + +-include $(top_srcdir)/git.mk diff --git a/tests/empty/src/Makefile.in b/tests/empty/src/Makefile.in new file mode 100644 index 0000000..a65836a --- /dev/null +++ b/tests/empty/src/Makefile.in @@ -0,0 +1,623 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/empty/src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libtester_la_LIBADD = +am__libtester_la_SOURCES_DIST = tester.c tester.h +@BUILD_TESTS_TRUE@am_libtester_la_OBJECTS = tester.lo +libtester_la_OBJECTS = $(am_libtester_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +@BUILD_TESTS_TRUE@am_libtester_la_rpath = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libtester_la_SOURCES) +DIST_SOURCES = $(am__libtester_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@BUILD_TESTS_TRUE@noinst_LTLIBRARIES = libtester.la +@BUILD_TESTS_TRUE@libtester_la_SOURCES = tester.c tester.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) +@BUILD_TESTS_TRUE@AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/empty/src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/empty/src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libtester.la: $(libtester_la_OBJECTS) $(libtester_la_DEPENDENCIES) $(EXTRA_libtester_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libtester_la_rpath) $(libtester_la_OBJECTS) $(libtester_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tester.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/empty/src/tester.c b/tests/empty/src/tester.c new file mode 100644 index 0000000..20dc0b2 --- /dev/null +++ b/tests/empty/src/tester.c @@ -0,0 +1,33 @@ +/** + * SECTION:tester + * @short_description: module for gtk-doc unit test + * + * This file contains non-sense code for the sole purpose of testing the docs. + * + * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it + * returns nothing. + */ + +#include "tester.h" + +/** + * test: + * @a: arg + * + * lonely function + */ +void test (gint a) { +} + +/** + * GtkDocTestIf: + * + * test object + */ +/** + * GtkDocTestIfInterface: + * @parent: parent interface type. + * + * test interface + */ + diff --git a/tests/empty/src/tester.h b/tests/empty/src/tester.h new file mode 100644 index 0000000..a9f5515 --- /dev/null +++ b/tests/empty/src/tester.h @@ -0,0 +1,28 @@ +#ifndef GTKDOC_TESTER_H +#define GTKDOC_TESTER_H + +#include +#include + +/** + * FOO: + * + * The FOO. + * + * Since: 0.1 + */ +#define FOO "bar" + +void test (gint a); + +// test for https://bugzilla.gnome.org/show_bug.cgi?id=705633 +typedef struct _GtkDocTestIf GtkDocTestIf; +typedef struct _GtkDocTestIfInterface GtkDocTestIfInterface; + +struct _GtkDocTestIfInterface { + GTypeInterface parent; + +}; + +#endif // GTKDOC_TESTER_H + diff --git a/tests/fail.sh b/tests/fail.sh new file mode 100755 index 0000000..f91ec37 --- /dev/null +++ b/tests/fail.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +dir=`dirname $0` +suite="fail" +DOC_MODULE="tester" +failed=0 +tested=0 + +cd $dir/$suite/docs + +echo "Running suite(s): gtk-doc-$suite"; + +# tests +# check missing section description +# we can't just check for a missing "tester_nodocs" entry +grep >/dev/null "tester_nodocs:Long_Description" $DOC_MODULE-undocumented.txt +if test $? = 1 ; then failed=`expr $failed + 1`; fi +tested=`expr $tested + 1` + +# check missing section long description +grep >/dev/null "tester_nolongdesc:Long_Description" $DOC_MODULE-undocumented.txt +if test $? = 1 ; then failed=`expr $failed + 1`; fi +tested=`expr $tested + 1` + +# check missing section short description +grep >/dev/null "tester_noshortdesc:Short_Description" $DOC_MODULE-undocumented.txt +if test $? = 1 ; then failed=`expr $failed + 1`; fi +tested=`expr $tested + 1` + +# check enums +grep >/dev/null "EnumNoItemDocs ()" $DOC_MODULE-undocumented.txt +if test $? = 1 ; then failed=`expr $failed + 1`; fi +tested=`expr $tested + 1` + +# summary +successes=`expr $tested - $failed` +rate=`expr 100 \* $successes / $tested`; +echo "$rate %: Checks $tested, Failures: $failed" + +test $failed = 0 +exit $? diff --git a/tests/fail/Makefile.am b/tests/fail/Makefile.am new file mode 100644 index 0000000..ad34ec6 --- /dev/null +++ b/tests/fail/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = . src docs + +if BUILD_TESTS + +check-local: clean + +endif + + +-include $(top_srcdir)/git.mk diff --git a/tests/fail/Makefile.in b/tests/fail/Makefile.in new file mode 100644 index 0000000..b6e7ad0 --- /dev/null +++ b/tests/fail/Makefile.in @@ -0,0 +1,656 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/fail +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = . src docs +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/fail/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/fail/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +@BUILD_TESTS_FALSE@check-local: +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am check-local clean clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +@BUILD_TESTS_TRUE@check-local: clean + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/fail/docs/Makefile.am b/tests/fail/docs/Makefile.am new file mode 100644 index 0000000..8210a80 --- /dev/null +++ b/tests/fail/docs/Makefile.am @@ -0,0 +1,76 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE=tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/tests/fail/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS=--deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --ignore-decorators="GLIB_VAR" + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS=--extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB=$(top_srcdir)/tests/fail/src/*.h +CFILE_GLOB=$(top_srcdir)/tests/fail/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES=config.h + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/fail/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/fail/src/libtester.la + +# include generic part +include $(top_srcdir)/tests/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += + +CLEANFILES += \ + $(DOC_MODULE)-overrides.txt + +if BUILD_TESTS +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ + PERL5LIB=$(abs_top_builddir):$(PERL5LIB) +endif + +-include $(top_srcdir)/git.mk diff --git a/tests/fail/docs/Makefile.in b/tests/fail/docs/Makefile.in new file mode 100644 index 0000000..67c5fa5 --- /dev/null +++ b/tests/fail/docs/Makefile.in @@ -0,0 +1,762 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 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@ + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/fail/docs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/tests/gtk-doc.make +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE = tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR = $(top_srcdir)/tests/fail/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS = --deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --ignore-decorators="GLIB_VAR" + + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS = + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS = + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS = --extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB = $(top_srcdir)/tests/fail/src/*.h +CFILE_GLOB = $(top_srcdir)/tests/fail/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES = config.h + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/fail/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/fail/src/libtester.la +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# we don't install anything in tests +#TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + + +# include generic part + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) +DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \ + $(DOC_MODULE).pdf ts gtkdoc-scan.log gtkdoc-scangobj.log \ + gtkdoc-mkdb.log gtkdoc-mkhtml.log gtkdoc-mkpdf.log \ + gtkdoc-fixxref.log $(DOC_MODULE)-overrides.txt +GITIGNOREFILES = \ + html.ref xml.ref + +@BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = \ +@BUILD_TESTS_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ +@BUILD_TESTS_TRUE@ PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ +@BUILD_TESTS_TRUE@ PERL5LIB=$(abs_top_builddir):$(PERL5LIB) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/tests/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/fail/docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/fail/docs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/tests/gtk-doc.make $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-am check-local clean clean-generic \ + clean-libtool clean-local cscopelist-am ctags-am distclean \ + distclean-generic distclean-libtool distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +check-local: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +docs: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +$(REPORT_FILES): sgml-build.stamp + +ts: + @echo >ts `date $(TS_FMT)`; + +#### setup #### + +setup-build.stamp: ts + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo ' DOC Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + @touch setup-build.stamp + +#### scan #### + +scan-build.stamp: ts setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Scanning header files" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)" >gtkdoc-scan.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) 2>&1 | tee -a gtkdoc-scan.log + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Introspecting gobjects"; \ + scanobj_options=""; \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + echo "gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options" >gtkdoc-scangobj.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options 2>&1 | tee -a gtkdoc-scangobj.log; \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + @touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building XML" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)" >gtkdoc-mkdb.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) 2>&1 | tee -a gtkdoc-mkdb.log + @touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + @$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building HTML" + @rm -rf html + @mkdir html + @mkhtml_options=""; \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + echo "gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)" >gtkdoc-mkhtml.log; \ + cd html && PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) 2>&1 | tee -a ../gtkdoc-mkhtml.log + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Fixing cross-references" + @echo "gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)" >gtkdoc-fixxref.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) 2>&1 | tee -a gtkdoc-fixxref.log + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building PDF" + @rm -f $(DOC_MODULE).pdf + @mkpdf_options=""; \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + echo "gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)" >gtkdoc-mkpdf.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) 2>&1 | tee -a gtkdoc-mkpdf.log + @touch pdf-build.stamp + +############## + +# we need to enforce a rebuild for the tests +clean-local: + @rm -f *~ *.bak ts gtkdoc-*.log + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + $(MAKE) distclean-local + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +.PHONY : dist-hook-local docs + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/fail/docs/tester-docs.xml b/tests/fail/docs/tester-docs.xml new file mode 100644 index 0000000..f19f9f1 --- /dev/null +++ b/tests/fail/docs/tester-docs.xml @@ -0,0 +1,36 @@ + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + for &package_string;. + + + + + Tests + + + + + + API Index + + + + Index of deprecated API + + + + diff --git a/tests/fail/docs/tester-overrides.txt b/tests/fail/docs/tester-overrides.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/fail/docs/tester-overrides.txt diff --git a/tests/fail/docs/tester-sections.txt b/tests/fail/docs/tester-sections.txt new file mode 100644 index 0000000..a931f70 --- /dev/null +++ b/tests/fail/docs/tester-sections.txt @@ -0,0 +1,29 @@ +
    +tester_nodocs +
    + +
    +tester_nolongdesc +
    + +
    +tester_noshortdesc +
    + +
    +tester_brokendocs +MACRO_NO_ITEM_DOCS +MACRO_INCOMPLETE_DOCS +MACRO_UNUSED_DOCS +EnumNoItemDocs +EnumIncompleteDocs +EnumUnusedDocs +StructNoItemDocs +StructIncompleteDocs +StructUnusedDocs +func_no_docs +func_no_item_docs +func_incomplete_docs +func_unused_docs +
    + diff --git a/tests/fail/src/Makefile.am b/tests/fail/src/Makefile.am new file mode 100644 index 0000000..77f9241 --- /dev/null +++ b/tests/fail/src/Makefile.am @@ -0,0 +1,15 @@ +## Process this file with automake to produce Makefile.in + +if BUILD_TESTS + +noinst_LTLIBRARIES = libtester.la + +libtester_la_SOURCES = tester.c tester.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) + +AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) + +endif + + +-include $(top_srcdir)/git.mk diff --git a/tests/fail/src/Makefile.in b/tests/fail/src/Makefile.in new file mode 100644 index 0000000..ddf1f5d --- /dev/null +++ b/tests/fail/src/Makefile.in @@ -0,0 +1,623 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/fail/src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libtester_la_LIBADD = +am__libtester_la_SOURCES_DIST = tester.c tester.h +@BUILD_TESTS_TRUE@am_libtester_la_OBJECTS = tester.lo +libtester_la_OBJECTS = $(am_libtester_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +@BUILD_TESTS_TRUE@am_libtester_la_rpath = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libtester_la_SOURCES) +DIST_SOURCES = $(am__libtester_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@BUILD_TESTS_TRUE@noinst_LTLIBRARIES = libtester.la +@BUILD_TESTS_TRUE@libtester_la_SOURCES = tester.c tester.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) +@BUILD_TESTS_TRUE@AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/fail/src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/fail/src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libtester.la: $(libtester_la_OBJECTS) $(libtester_la_DEPENDENCIES) $(EXTRA_libtester_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libtester_la_rpath) $(libtester_la_OBJECTS) $(libtester_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tester.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/fail/src/tester.c b/tests/fail/src/tester.c new file mode 100644 index 0000000..876dc6c --- /dev/null +++ b/tests/fail/src/tester.c @@ -0,0 +1,70 @@ +/* + * SECTION:tester_nodocs + * @short_description: module for gtk-doc unit test + * @title: GtkdocTesterNoDocs + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ +/** + * SECTION:tester_nolongdesc + * @short_description: module for gtk-doc unit test + * @title: GtkdocTesterNoLongDesc + */ +/** + * SECTION:tester_noshortdesc + * @title: GtkdocTesterNoShortDesc + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ +/** + * SECTION:tester_brokendocs + * @short_description: module for gtk-doc unit test + * @title: GtkdocTesterBrokenDocs + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ + +#include "tester.h" + +/** + * func_no_docs: + */ +void +func_no_docs(void) +{ +} + +/** + * func_no_item_docs: + * + * Here we document the function but not the parameters. + */ +void +func_no_item_docs(int a, char b) +{ +} + +/** + * func_incomplete_docs: + * @a: a value + * + * Here we document the function but not all the parameters. + */ +void +func_incomplete_docs(int a, char b) +{ +} + +/** + * func_unused_docs: + * @a: a value + * @b: a value + * @c: an unexisting value + * + * Here we document the function and more than the actual parameters. + */ +void +func_unused_docs(int a, char b) +{ +} + diff --git a/tests/fail/src/tester.h b/tests/fail/src/tester.h new file mode 100644 index 0000000..70ff7da --- /dev/null +++ b/tests/fail/src/tester.h @@ -0,0 +1,109 @@ +#ifndef GTKDOC_TESTER_H +#define GTKDOC_TESTER_H + +#include + +/** + * MACRO_NO_ITEM_DOCS: + * + * Here we document the macro but not the parameters. + */ +#define MACRO_NO_ITEM_DOCS(a,b) (a+b) + +/** + * MACRO_INCOMPLETE_DOCS: + * @a: a value + * + * Here we document the macro but not all the parameters. + */ +#define MACRO_INCOMPLETE_DOCS(a,b) (a+b) + +/** + * MACRO_UNUSED_DOCS: + * @a: a value + * @b: a value + * @c: an unexisting value + * + * Here we document the macro and more than the actual parameters. + */ +#define MACRO_UNUSED_DOCS(a,b) (a+b) + + +/** + * EnumNoItemDocs: + * + * Here we document the enum but not the values. + * http://bugzilla.gnome.org/show_bug.cgi?id=568711 + */ +typedef enum { + ENUM_NO_ITEM_DOCS_1, + ENUM_NO_ITEM_DOCS_2 +} EnumNoItemDocs; + +/** + * EnumIncompleteDocs: + * @ENUM_INCOMPLETE_DOCS_1: a value + * + * Here we document the enum but not all the values. + */ +typedef enum { + ENUM_INCOMPLETE_DOCS_1, + ENUM_INCOMPLETE_DOCS_2 +} EnumIncompleteDocs; + +/** + * EnumUnusedDocs: + * @ENUM_UNUSED_DOCS_1: a value + * @ENUM_UNUSED_DOCS_2: a value + * @ENUM_UNUSED_DOCS_3: an unexisting value + * + * Here we document the enum and more than the actual values. + */ +typedef enum { + ENUM_UNUSED_DOCS_1, + ENUM_UNUSED_DOCS_2 +} EnumUnusedDocs; + + +/** + * StructNoItemDocs: + * + * Here we document the struct but not the values. + */ +typedef struct { + int a; + char b; +} StructNoItemDocs; + +/** + * StructIncompleteDocs: + * @a: a value + * + * Here we document the struct but not all the values. + */ +typedef struct { + int a; + char b; +} StructIncompleteDocs; + +/** + * StructUnusedDocs: + * @a: a value + * @b: a value + * @c: an unexisting value + * + * Here we document the struct and more than the actual values. + */ +typedef struct { + int a; + char b; +} StructUnusedDocs; + + +void func_no_docs(void); +void func_no_item_docs(int a, char b); +void func_incomplete_docs(int a, char b); +void func_unused_docs(int a, char b); + +#endif // GTKDOC_TESTER_H + diff --git a/tests/gobject.sh b/tests/gobject.sh new file mode 100755 index 0000000..2983140 --- /dev/null +++ b/tests/gobject.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +gtkdoctest.sh gobject + diff --git a/tests/gobject/Makefile.am b/tests/gobject/Makefile.am new file mode 100644 index 0000000..7eecd38 --- /dev/null +++ b/tests/gobject/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = . src docs + +if BUILD_TESTS + +check-local: clean + +endif + +EXTRA_DIST = examples/gobject.c + +-include $(top_srcdir)/git.mk diff --git a/tests/gobject/Makefile.in b/tests/gobject/Makefile.in new file mode 100644 index 0000000..4bde973 --- /dev/null +++ b/tests/gobject/Makefile.in @@ -0,0 +1,657 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/gobject +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = . src docs +EXTRA_DIST = examples/gobject.c +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/gobject/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/gobject/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +@BUILD_TESTS_FALSE@check-local: +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am check-local clean clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +@BUILD_TESTS_TRUE@check-local: clean + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/gobject/docs/Makefile.am b/tests/gobject/docs/Makefile.am new file mode 100644 index 0000000..c5b6bd0 --- /dev/null +++ b/tests/gobject/docs/Makefile.am @@ -0,0 +1,81 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE=tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/tests/gobject/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS=--deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --rebuild-types + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS=--xml-mode + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS=--path=$(abs_top_srcdir)/tests/gobject/examples + +# Extra options to supply to gtkdoc-mkpdf +MKPDF_OPTIONS=--path=$(abs_top_srcdir)/tests/gobject/examples + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS=--extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB=$(top_srcdir)/tests/gobject/src/*.h +CFILE_GLOB=$(top_srcdir)/tests/gobject/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES=config.h + +# Images to copy into HTML directory. +HTML_IMAGES = \ + $(srcdir)/images/object.png + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/gobject/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/gobject/src/libtester.la + +# include generic part +include $(top_srcdir)/tests/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += tester.types + +CLEANFILES += \ + $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE).types + +if BUILD_TESTS +TESTS_ENVIRONMENT = \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ + PERL5LIB=$(abs_top_builddir):$(PERL5LIB) +endif + +-include $(top_srcdir)/git.mk diff --git a/tests/gobject/docs/Makefile.in b/tests/gobject/docs/Makefile.in new file mode 100644 index 0000000..0bb78f4 --- /dev/null +++ b/tests/gobject/docs/Makefile.in @@ -0,0 +1,768 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 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@ + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/gobject/docs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/tests/gtk-doc.make +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module, e.g. 'glib'. +DOC_MODULE = tester + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +DOC_SOURCE_DIR = $(top_srcdir)/tests/gobject/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS = --deprecated-guards="GTKDOC_TESTER_DISABLE_DEPRECATED" \ + --rebuild-types + + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS = --xml-mode + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS = --path=$(abs_top_srcdir)/tests/gobject/examples + +# Extra options to supply to gtkdoc-mkpdf +MKPDF_OPTIONS = --path=$(abs_top_srcdir)/tests/gobject/examples + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# --html-dir=$(HTML_DIR) +FIXXREF_OPTIONS = --extra-dir=$(glib_prefix)/share/gtk-doc/html + +# Used for dependencies. The docs will be rebuilt if any of these change. +HFILE_GLOB = $(top_srcdir)/tests/gobject/src/*.h +CFILE_GLOB = $(top_srcdir)/tests/gobject/src/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES = config.h + +# Images to copy into HTML directory. +HTML_IMAGES = \ + $(srcdir)/images/object.png + + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +GTKDOC_CFLAGS = -I$(top_srcdir)/tests/gobject/src $(TEST_DEPS_CFLAGS) +GTKDOC_LIBS = $(TEST_DEPS_LIBS) $(top_builddir)/tests/gobject/src/libtester.la +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# we don't install anything in tests +#TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + + +# include generic part + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) tester.types +DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \ + $(DOC_MODULE).pdf ts gtkdoc-scan.log gtkdoc-scangobj.log \ + gtkdoc-mkdb.log gtkdoc-mkhtml.log gtkdoc-mkpdf.log \ + gtkdoc-fixxref.log $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE).types +GITIGNOREFILES = \ + html.ref xml.ref + +@BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = \ +@BUILD_TESTS_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ +@BUILD_TESTS_TRUE@ PATH=$(abs_top_builddir):$(srcdir):$(PATH) \ +@BUILD_TESTS_TRUE@ PERL5LIB=$(abs_top_builddir):$(PERL5LIB) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/tests/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/gobject/docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/gobject/docs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/tests/gtk-doc.make $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-am check-local clean clean-generic \ + clean-libtool clean-local cscopelist-am ctags-am distclean \ + distclean-generic distclean-libtool distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +check-local: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +docs: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +$(REPORT_FILES): sgml-build.stamp + +ts: + @echo >ts `date $(TS_FMT)`; + +#### setup #### + +setup-build.stamp: ts + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo ' DOC Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + @touch setup-build.stamp + +#### scan #### + +scan-build.stamp: ts setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Scanning header files" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)" >gtkdoc-scan.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) 2>&1 | tee -a gtkdoc-scan.log + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Introspecting gobjects"; \ + scanobj_options=""; \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + echo "gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options" >gtkdoc-scangobj.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options 2>&1 | tee -a gtkdoc-scangobj.log; \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + @touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building XML" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)" >gtkdoc-mkdb.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) 2>&1 | tee -a gtkdoc-mkdb.log + @touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + @$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building HTML" + @rm -rf html + @mkdir html + @mkhtml_options=""; \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + echo "gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)" >gtkdoc-mkhtml.log; \ + cd html && PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) 2>&1 | tee -a ../gtkdoc-mkhtml.log + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Fixing cross-references" + @echo "gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)" >gtkdoc-fixxref.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) 2>&1 | tee -a gtkdoc-fixxref.log + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building PDF" + @rm -f $(DOC_MODULE).pdf + @mkpdf_options=""; \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + echo "gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)" >gtkdoc-mkpdf.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) 2>&1 | tee -a gtkdoc-mkpdf.log + @touch pdf-build.stamp + +############## + +# we need to enforce a rebuild for the tests +clean-local: + @rm -f *~ *.bak ts gtkdoc-*.log + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + $(MAKE) distclean-local + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +.PHONY : dist-hook-local docs + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/gobject/docs/images/object.png b/tests/gobject/docs/images/object.png new file mode 100644 index 0000000..b7f4535 Binary files /dev/null and b/tests/gobject/docs/images/object.png differ diff --git a/tests/gobject/docs/tester-docs.xml b/tests/gobject/docs/tester-docs.xml new file mode 100644 index 0000000..05117ef --- /dev/null +++ b/tests/gobject/docs/tester-docs.xml @@ -0,0 +1,119 @@ + + + + %gtkdocentities; +]> + + + &package_name; Reference Manual + + The gtk-doc team. + + + for &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/tester/. + + + + This manual is published as public domain. + + + + + + Introduction + + This document is for testing purpose only. + It is generated from Docbook-XML. + + + Most of the actual text is quite non-sense. Don't pay attention. + + + + + + + Overview + + How to build the library + + + + + + API Reference + + Tests + + + + + + + + + + + Appendix + + + Object Hierarchy + + + + + Object Index + + + + + API Index + + + + Index of deprecated API + + + + Index of new API in 0.1 + + + + Index of new API in 0.5 + + + + + Glossary + A + + API + + Application Programming Interface + + + + X + + XML + + Extensible Markup Language + + + + XSL + + XML Stylesheet Language + + + + + + + + diff --git a/tests/gobject/docs/tester-overrides.txt b/tests/gobject/docs/tester-overrides.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/gobject/docs/tester-overrides.txt diff --git a/tests/gobject/docs/tester-sections.txt b/tests/gobject/docs/tester-sections.txt new file mode 100644 index 0000000..b1d5942 --- /dev/null +++ b/tests/gobject/docs/tester-sections.txt @@ -0,0 +1,81 @@ +
    +object +GtkdocObject +GtkdocObjectClass +gtkdoc_object_new +gtkdoc_object_set_otest +gtkdoc_object_frobnicate +gtkdoc_object_fooify +gtkdoc_object_do_not_use +GTKDOC_OBJECT_MACRO_DUMMY +GTKDOC_OBJECT_MACRO_SUM + +GTKDOC_OBJECT +GTKDOC_IS_OBJECT +GTKDOC_TYPE_OBJECT +gtkdoc_object_get_type +GTKDOC_OBJECT_CLASS +GTKDOC_IS_OBJECT_CLASS +GTKDOC_OBJECT_GET_CLASS +
    + +
    +object2 +GtkdocObject2 +GtkdocObject2Class + +GTKDOC_TYPE_OBJECT2 +gtkdoc_object2_get_type +
    + +
    +object3 + +GtkdocObject3 +GtkdocObject3Class +GTKDOC_TYPE_OBJECT3 +gtkdoc_object3_get_type +
    + +
    +iface +GtkdocIface +GtkdocIfaceInterface +gtkdoc_iface_configure +GTKDOC_IFACE_MACRO_DUMMY +GTKDOC_IFACE_MACRO_SUM + +GTKDOC_IFACE +GTKDOC_IS_IFACE +GTKDOC_TYPE_IFACE +gtkdoc_iface_get_type +GTKDOC_IFACE_GET_INTERFACE +
    + +
    +iface2 +GtkdocIface2 + +GTKDOC_TYPE_IFACE2 +gtkdoc_iface2_get_type +
    + +
    +types +GtkdocEnum +GtkdocEnum2 +GtkdocPlainOldData +GtkdocBoxedPlainOldData +GtkdocHelperEnum +GtkdocHelperStruct + +GTKDOC_TYPE_ENUM +GTKDOC_TYPE_ENUM2 +GTKDOC_TYPE_BOXED +gtkdoc_enum_get_type +gtkdoc_enum2_get_type +gtkdoc_boxed_get_type +GTKDOC_TYPE_BOXED_PLAIN_OLD_DATA +gtkdoc_boxed_plain_old_data_get_type +
    + diff --git a/tests/gobject/docs/tester.types b/tests/gobject/docs/tester.types new file mode 100644 index 0000000..f659b48 --- /dev/null +++ b/tests/gobject/docs/tester.types @@ -0,0 +1,9 @@ +gtkdoc_boxed_get_type +gtkdoc_boxed_plain_old_data_get_type +gtkdoc_enum2_get_type +gtkdoc_enum_get_type +gtkdoc_iface2_get_type +gtkdoc_iface_get_type +gtkdoc_object2_get_type +gtkdoc_object3_get_type +gtkdoc_object_get_type diff --git a/tests/gobject/examples/gobject.c b/tests/gobject/examples/gobject.c new file mode 100644 index 0000000..4b5942b --- /dev/null +++ b/tests/gobject/examples/gobject.c @@ -0,0 +1,21 @@ +/* example for gobject usage + * checkout the article at http://en.wikipedia.org/wiki/GObject + * + * This example is part of the release, that can be downloaded + * from ftp://ftp.gnome.org/pub/gnome/sources/gtk-doc/ or any mirror. + */ + +#include +#include + +gint +main(gint argc, gchar **argv) +{ + GObject *myobj; + + myobj = gtkdoc_object_new(); + g_object_set (myobj, "parameter", 5, NULL); + g_object_unref (myobj); + + return 0; +} diff --git a/tests/gobject/src/Makefile.am b/tests/gobject/src/Makefile.am new file mode 100644 index 0000000..a65fe01 --- /dev/null +++ b/tests/gobject/src/Makefile.am @@ -0,0 +1,17 @@ +## Process this file with automake to produce Makefile.in + +if BUILD_TESTS + +noinst_LTLIBRARIES = libtester.la + +libtester_la_SOURCES = \ + gobject.c gobject.h \ + giface.c giface.h \ + gtypes.c gtypes.h +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) + +AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) + +endif + +-include $(top_srcdir)/git.mk diff --git a/tests/gobject/src/Makefile.in b/tests/gobject/src/Makefile.in new file mode 100644 index 0000000..cac37ca --- /dev/null +++ b/tests/gobject/src/Makefile.in @@ -0,0 +1,631 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/gobject/src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtkdoc_jh_check_xml_catalog.m4 \ + $(top_srcdir)/m4/gtkdoc_jh_path_xml_catalog.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libtester_la_LIBADD = +am__libtester_la_SOURCES_DIST = gobject.c gobject.h giface.c giface.h \ + gtypes.c gtypes.h +@BUILD_TESTS_TRUE@am_libtester_la_OBJECTS = gobject.lo giface.lo \ +@BUILD_TESTS_TRUE@ gtypes.lo +libtester_la_OBJECTS = $(am_libtester_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +@BUILD_TESTS_TRUE@am_libtester_la_rpath = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libtester_la_SOURCES) +DIST_SOURCES = $(am__libtester_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE_FMT_CMD = @DATE_FMT_CMD@ +DBLATEX = @DBLATEX@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ELAPSED_FMT = @ELAPSED_FMT@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FOP = @FOP@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +HIGHLIGHT = @HIGHLIGHT@ +HIGHLIGHT_OPTIONS = @HIGHLIGHT_OPTIONS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +ITSTOOL = @ITSTOOL@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_DATA_DIR = @PACKAGE_DATA_DIR@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PACKAGE_DIR = @PYTHON_PACKAGE_DIR@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEST_DEPS_CFLAGS = @TEST_DEPS_CFLAGS@ +TEST_DEPS_LIBS = @TEST_DEPS_LIBS@ +TS_FMT = @TS_FMT@ +VERSION = @VERSION@ +XMLCATALOG = @XMLCATALOG@ +XMLLINT = @XMLLINT@ +XML_CATALOG_FILE = @XML_CATALOG_FILE@ +XSLTPROC = @XSLTPROC@ +YELP_LC_DIST = @YELP_LC_DIST@ +YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +glib_prefix = @glib_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@BUILD_TESTS_TRUE@noinst_LTLIBRARIES = libtester.la +@BUILD_TESTS_TRUE@libtester_la_SOURCES = \ +@BUILD_TESTS_TRUE@ gobject.c gobject.h \ +@BUILD_TESTS_TRUE@ giface.c giface.h \ +@BUILD_TESTS_TRUE@ gtypes.c gtypes.h + +#libtester_la_LIBADD = $(TEST_DEPS_LIBS) +@BUILD_TESTS_TRUE@AM_CPPFLAGS = $(TEST_DEPS_CFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/gobject/src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/gobject/src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libtester.la: $(libtester_la_OBJECTS) $(libtester_la_DEPENDENCIES) $(EXTRA_libtester_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libtester_la_rpath) $(libtester_la_OBJECTS) $(libtester_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/giface.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gobject.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtypes.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/gobject/src/giface.c b/tests/gobject/src/giface.c new file mode 100644 index 0000000..10625ce --- /dev/null +++ b/tests/gobject/src/giface.c @@ -0,0 +1,121 @@ +/** + * SECTION:iface + * @title: GtkdocIface + * @short_description: interface for gtk-doc unit test + * @see_also: #GtkdocObject + * + * This file contains non-sense code for the sole purpose of testing the docs. + * We can link to the #GtkdocIface:itest property and the #GtkdocIface::itest + * signal. + * An instance can be configured using the gtkdoc_iface_configure() function. + * + * I can haz pictures too! + * + * + * Home sweet home. + * + * + * Just incase you wonder, special caracters can be escaped with a \ like in \% + * or \# or even \@. + */ +/** + * SECTION:iface2 + * @title: GtkdocIface2 + * @short_description: interface with a prerequisite for gtk-doc unit test + * @see_also: #GtkdocObject, #GtkdocIface + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ + +#include "giface.h" + +/* constructor methods */ + +/* methods */ + +/** + * gtkdoc_iface_configure: + * @config: settings + * + * Configure a new instance + * + * Returns: %TRUE for sucess or %FALSE in case of an error + * + * Since: 0.1 + */ +gboolean gtkdoc_iface_configure (gchar *config) { + return(TRUE); +} + +/* class internals */ + +static void gtkdoc_iface_base_init (gpointer g_class) { + static gboolean initialized = FALSE; + + if (!initialized) { + /** + * GtkdocIface::itest: + * @self: myself + * + * The event has been triggered. + */ + g_signal_new ("itest", G_TYPE_FROM_CLASS (g_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET (GtkdocIfaceInterface,test), + NULL, // accumulator + NULL, // acc data + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, // return type + 0); // n_params + + g_object_interface_install_property (g_class , + g_param_spec_string ("itest", + "itest prop", + "dummy property for iface", + "dummy", /* default value */ + G_PARAM_READWRITE)); + initialized = TRUE; + } +} + +GType gtkdoc_iface_get_type (void) { + static GType type = 0; + if (type == 0) { + static const GTypeInfo info = { + (guint16)sizeof(GtkdocIfaceInterface), + gtkdoc_iface_base_init, // base_init + NULL, // base_finalize + NULL, // class_init + NULL, // class_finalize + NULL, // class_data + 0, + 0, // n_preallocs + NULL, // instance_init + NULL // value_table + }; + type = g_type_register_static(G_TYPE_INTERFACE,"GtkdocIface",&info,0); + } + return type; +} + +GType gtkdoc_iface2_get_type (void) { + static GType type = 0; + if (type == 0) { + static const GTypeInfo info = { + (guint16)sizeof(GtkdocIfaceInterface), + NULL, // base_init + NULL, // base_finalize + NULL, // class_init + NULL, // class_finalize + NULL, // class_data + 0, + 0, // n_preallocs + NULL, // instance_init + NULL // value_table + }; + type = g_type_register_static(G_TYPE_INTERFACE,"GtkdocIface2",&info,0); + g_type_interface_add_prerequisite(type, GTKDOC_TYPE_IFACE); + } + return type; +} + diff --git a/tests/gobject/src/giface.h b/tests/gobject/src/giface.h new file mode 100644 index 0000000..2883407 --- /dev/null +++ b/tests/gobject/src/giface.h @@ -0,0 +1,76 @@ +#ifndef GTKDOC_IFACE_H +#define GTKDOC_IFACE_H + +#include +#include + +/* type macros */ + +#define GTKDOC_TYPE_IFACE (gtkdoc_iface_get_type ()) +#define GTKDOC_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTKDOC_TYPE_IFACE, GtkdocIface)) +#define GTKDOC_IS_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTKDOC_TYPE_IFACE)) +#define GTKDOC_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTKDOC_TYPE_IFACE, GtkdocIfaceInterface)) + +#define GTKDOC_TYPE_IFACE2 (gtkdoc_iface2_get_type ()) + +/* type structs */ + +/** + * GtkdocIface: + * + * opaque instance of gtk-doc unit test interface + */ +typedef struct _GtkdocIface GtkdocIface; +typedef struct _GtkdocIfaceInterface GtkdocIfaceInterface; + +/** + * GtkdocIface2: + * + * opaque instance of gtk-doc unit test interface + */ +typedef struct _GtkdocIface2 GtkdocIface2; + +/** + * GtkdocIfaceInterface: + * @parent: this is a bug :/ + * @test: overideable method + * + * class data of gtk-doc unit test interface + */ +struct _GtkdocIfaceInterface { + GTypeInterface parent; + + /* class methods */ + void (*test)(const GtkdocIface * const self, gconstpointer const user_data); +}; + +GType gtkdoc_iface_get_type(void) G_GNUC_CONST; +GType gtkdoc_iface2_get_type(void) G_GNUC_CONST; + +gboolean gtkdoc_iface_configure (gchar *config); + +/** + * GTKDOC_IFACE_MACRO_DUMMY: + * @parameter_1: first arg + * @parameter_2: second arg + * + * This macro does nothing. + */ +#define GTKDOC_IFACE_MACRO_DUMMY(parameter_1,parameter_2) /* do nothing */ + +/** + * GTKDOC_IFACE_MACRO_SUM: + * @parameter_1: first arg + * @parameter_2: second arg + * + * This macro adds its args. + * + * Returns: the sum of @parameter_1 and @parameter_2 + */ +#define GTKDOC_IFACE_MACRO_SUM(parameter_1,parameter_2) \ + ((parameter_1) + (parameter_2)) + +#define _GTKDOC_IFACE_INTERNAL_MACRO /* do nothing */ + +#endif // GTKDOC_IFACE_H + diff --git a/tests/gobject/src/gobject.c b/tests/gobject/src/gobject.c new file mode 100644 index 0000000..21fc8f8 --- /dev/null +++ b/tests/gobject/src/gobject.c @@ -0,0 +1,458 @@ +/** + * SECTION:object + * @title: GtkdocObject + * @short_description: class for gtk-doc unit test + * @see_also: #GtkdocIface + * @Image: object.png + * + * > Two line + * > quote + * + * Offsets are time values to be added to local + * time to get Coordinated Universal Time (UTC) and should be + * "[±]hh[[:]mm[:ss]]". Dates are either + * "Jn" (Julian day with n between 1 and 365, leap + * years not counted), "n" (zero-based Julian day + * with n between 0 and 365) or "Mm.w.d" (day d + * (0 <= d <= 6) of week w (1 <= w <= 5) of month m (1 <= m <= 12), day + * 0 is a Sunday). Times are in local wall clock time, the default is + * 02:00:00. + * + * lang_COUNTRY@MODIFIER + * lang_COUNTRY\@MODIFIER + * + * This file contains non-sense code for the sole purpose of testing the docs. + * We can link to the #GtkdocObject:otest property and the #GtkdocObject::otest + * signal. + * + * When subclassing it is useful to override the #GtkdocObjectClass.test() + * method. The #GtkdocObjectClass.foo_bar() vmethod lets you refine your + * frobnicator. + * + * A new instance can be created using the gtkdoc_object_new() function. The + * whole lifecycle usualy looks like shown in this example: + * |[ + * #include + * #include + * + * GObject *myobj; + * + * myobj = gtkdoc_object_new(); + * // do something + * g_object_unref (myobj); + * ]| + * + * # Examples # {#examples} + * + * Here are a few examples. + * + * ## Example 1 ## + * + * You can also change parameters: + * + * + * + * + * This example serves two main purposes: + * + * - `test`ing conversion (`long description + * follows here`) + * + * - catching bugs + * + * [GTK](http://www.gtk.org) ![Some image](home.png) + * + * - having an example + * + * # Discussion + * + * This is a section with a heading without a trailing hash mark. + * + * > Do not confuse the GtkUIManager UI Definitions described here with + * > the similarly named GtkBuilder UI + * > Definitions. + * + * > Single line quote + * + * + * + * This list is here to ensure the parsing of the above list + * + * + * Doesn't change it. + * + * + * + * This example serves two main purposes: + * + * * testing alternate list syntax + * + * Don't match this as a link [ style | binding ][ : priority ] + * + * * not sure if we want this one + * + * A link + * + * An embedded docbook section + * Some stuff + * + * - A list + * + * - that is not recognised as markdown + * + * + * + * # Coda # {#this-is-an-id-tag} + * + * - One + * - Two + * - Three + * + * 1. This is a ordered list + * + * 1. This is a code block in a list: + * |[ + * GObject *myobj; + * + * myobj = gtkdoc_object_new(); + * // do something + * g_object_unref (myobj); + * ]| + * And another: + * |[ + * GObject *myobj; + * + * myobj = gtkdoc_object_new(); + * /* do something */ + * g_object_unref (myobj); + * ]| + * + * 1. Really + * + * Has a paragraph with a [link to the examples][examples]. + * + * 1. Is + * + * Nothing more to say. Except one more link: + * + * + * + * |[ + * switch + * │ + * ╰── slider + * ]| + */ + +/** + * SECTION:object2 + * @title: GtkdocObject2 + * @short_description: class with interface for gtk-doc unit test + * @see_also: #GtkdocIface + * + * This file contains non-sense code for the sole purpose of testing the docs. + * + * Internals + * ========= + * + * All the internal details go here or not: + * + * - single item list + */ + +/** + * SECTION:object3 + * @title: GtkdocObject3 + * @short_description: class that is mostly undocumented + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ + +#include "gobject.h" +#include "giface.h" + +/* property ids */ + +enum { + GTKDOC_OBJECT_TEST=1, + GTKDOC_OBJECT_DEP_TEST +}; + +enum { + GTKDOC_OBJECT2_ITEST=1 +}; + +/* constructor methods */ + +/** + * gtkdoc_object_new: + * + * Create a new instance + * + * This will only work if you have called g_type_init() before. + * + * + * Returns: the instance or %NULL in case of an error + * Since: 0.1 + */ +GtkdocObject *gtkdoc_object_new (void) { + return(NULL); +} + +/* methods */ + +/** + * gtkdoc_object_set_otest: + * @self: the object + * @value: the new otest value, whose description extends further than one + * line will allow + * + * Set the #GtkdocObject:otest property. This is a long paragraph. + * + * Oh, btw. setting the property directly saves us one method. + * + * Deprecated: Use g_object_set(obj,"otest",value,NULL); instead. + * Since: 0.5 + */ +void gtkdoc_object_set_otest (GObject *self, const gchar *value) { + +} + +/** + * gtkdoc_object_frobnicate: + * @self: the object + * @n: number of iterations + * + * Frobnicate the content of @self @n times. This implements a + * complex algorithm (http://en.wikipedia.org/wiki/Algorithm). + * + * + * Negative frobnication can lead to unexpected behaviour. + * + * + * + * Since: 0.5 + */ +void gtkdoc_object_frobnicate (GObject *self, gint n) { + +} + +/** + * gtkdoc_object_fooify: + * @self: the object + * @...: a NULL terminated list of arguments + * + * Fooify the content of @self. + * + * Returns: %TRUE for success + */ +gboolean gtkdoc_object_fooify (GObject *self, ...) { + return TRUE; +} + +/** + * gtkdoc_object_do_not_use: + * @self: the object + * + * Test a deprecation without additional message. + * + * Deprecated: 3.10 + */ +void gtkdoc_object_do_not_use (GObject *self) { + +} + +/* class internals */ + +static void gtkdoc_object_get_property (GObject *object, guint property_id, + GValue *value, GParamSpec *pspec) +{ + +} + +static void gtkdoc_object_set_property (GObject *object, guint property_id, + const GValue *value, GParamSpec *pspec) +{ + +} + +static void gtkdoc_object_class_init (GtkdocObjectClass *klass) { + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = gtkdoc_object_set_property; + gobject_class->get_property = gtkdoc_object_get_property; + + /** + * GtkdocObject::otest: + * @self: myself + * + * The event has been triggered. + */ + g_signal_new ("otest", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET (GtkdocObjectClass,test), + NULL, // accumulator + NULL, // acc data + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, // return type + 0); // n_params + + /** + * GtkdocObject::dep-otest: + * @self: myself + * + * Here's an example signal handler. + * |[ + * static gchar* + * otest_callback (GObject *o, + * gpointer user_data) + * { + * gdouble value; + * + * value = abs (o->value); + * + * return value; + * } + * ]| + * + * Deprecated: Use the #GtkdocObject::otest signal instead. + */ + g_signal_new ("dep-otest", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET (GtkdocObjectClass,test), + NULL, // accumulator + NULL, // acc data + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, // return type + 0); // n_params + + /** + * GtkdocObject::strings-changed: + * + * Something has happened. + */ + g_signal_new ("strings-changed", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + 0, + NULL, // accumulator + NULL, // acc data + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, // return type + 1, G_TYPE_STRV); // n_params + +#if GLIB_CHECK_VERSION (2, 25, 9) + /** + * GtkdocObject::variant-changed: + * + * Something has happened. + */ + g_signal_new ("variant-changed", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + 0, + NULL, // accumulator + NULL, // acc data + g_cclosure_marshal_VOID__VARIANT, + G_TYPE_NONE, // return type + 1, G_TYPE_VARIANT); // n_params +#endif + + /** + * GtkdocObject:otest: (type GList(GtkdocObject2)) + * + * Since: 0.1 + */ + g_object_class_install_property (gobject_class,GTKDOC_OBJECT_TEST, + g_param_spec_pointer ("otest", + "otest prop", + "dummy property for object", + G_PARAM_READWRITE)); + + /** + * GtkdocObject:dep-otest: + * + * Deprecated: use #GtkdocObject:otest property + */ + g_object_class_install_property (gobject_class,GTKDOC_OBJECT_DEP_TEST, + g_param_spec_string ("dep-otest", + "dep-otest prop", + "dummy deprecated property for object", + "dummy", /* default value */ + G_PARAM_READWRITE)); +} + +GType gtkdoc_object_get_type (void) { + static GType type = 0; + if (type == 0) { + static const GTypeInfo info = { + (guint16)sizeof(GtkdocObjectClass), + NULL, // base_init + NULL, // base_finalize + (GClassInitFunc)gtkdoc_object_class_init, // class_init + NULL, // class_finalize + NULL, // class_data + (guint16)sizeof(GtkdocObject), + 0, // n_preallocs + NULL, // instance_init + NULL // value_table + }; + type = g_type_register_static(G_TYPE_OBJECT,"GtkdocObject",&info,0); + } + return type; +} + + +static void gtkdoc_object2_class_init (GtkdocObjectClass *klass) { + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = gtkdoc_object_set_property; + gobject_class->get_property = gtkdoc_object_get_property; + + g_object_class_override_property (gobject_class, GTKDOC_OBJECT2_ITEST, "itest"); +} + +GType gtkdoc_object2_get_type (void) { + static GType type = 0; + if (type == 0) { + static const GTypeInfo info = { + (guint16)sizeof(GtkdocObject2Class), + NULL, // base_init + NULL, // base_finalize + (GClassInitFunc)gtkdoc_object2_class_init, // class_init + NULL, // class_finalize + NULL, // class_data + (guint16)sizeof(GtkdocObject2), + 0, // n_preallocs + NULL, // instance_init + NULL // value_table + }; + static const GInterfaceInfo interface_info = { + NULL, // interface_init + NULL, // interface_finalize + NULL // interface_data + }; + type = g_type_register_static(G_TYPE_OBJECT,"GtkdocObject2",&info,0); + g_type_add_interface_static(type, GTKDOC_TYPE_IFACE, &interface_info); + } + return type; +} + +GType gtkdoc_object3_get_type (void) { + static GType type = 0; + if (type == 0) { + static const GTypeInfo info = { + (guint16)sizeof(GtkdocObject3Class), + NULL, // base_init + NULL, // base_finalize + NULL, // class_init + NULL, // class_finalize + NULL, // class_data + (guint16)sizeof(GtkdocObject3), + 0, // n_preallocs + NULL, // instance_init + NULL // value_table + }; + type = g_type_register_static(G_TYPE_OBJECT,"GtkdocObject3",&info,0); + } + return type; +} + diff --git a/tests/gobject/src/gobject.h b/tests/gobject/src/gobject.h new file mode 100644 index 0000000..03f4262 --- /dev/null +++ b/tests/gobject/src/gobject.h @@ -0,0 +1,158 @@ +#ifndef GTKDOC_OBJECT_H +#define GTKDOC_OBJECT_H + +#include +#include + +/* type macros */ + +#define GTKDOC_TYPE_OBJECT (gtkdoc_object_get_type ()) +#define GTKDOC_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTKDOC_TYPE_OBJECT, GtkdocObject)) +#define GTKDOC_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTKDOCTYPE_OBJECT, GtkdocObjectClass)) +#define GTKDOC_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTKDOC_TYPE_OBJECT)) +#define GTKDOC_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTKDOC_TYPE_OBJECT)) +#define GTKDOC_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTKDOC_TYPE_OBJECT, GtkdocObjectClass)) + +#define GTKDOC_TYPE_OBJECT2 (gtkdoc_object2_get_type ()) + +#define GTKDOC_TYPE_OBJECT3 (gtkdoc_object3_get_type ()) + +/* type structs */ + +typedef struct _GtkdocObject GtkdocObject; +typedef struct _GtkdocObjectClass GtkdocObjectClass; + +typedef struct _GtkdocObject2 GtkdocObject2; +typedef struct _GtkdocObject2Class GtkdocObject2Class; + +typedef struct _GtkdocObject3 GtkdocObject3; +typedef struct _GtkdocObject3Class GtkdocObject3Class; + +/* in gtkdoc-scan::ScanHeader() we currently skip the enums, but output a decl +* to -decl.txt and -decl-list.txt for the struct +* If the symbol has no docs, we get a warning in -unused.txt for the struct, but +* not the enum +* +typedef struct GtkdocHelperStruct GtkdocHelperStruct; +typedef enum GtkdocHelperEnum GtkdocHelperEnum; +*/ + +/** + * GtkdocObject: + * + * instance data of gtk-doc unit test class + */ +struct _GtkdocObject { + GObject parent; + + /*< private >*/ + gchar *test_string; +}; + +/** + * GtkdocObjectClass: + * @parent: this is a bug :/ + * @test: overideable method + * @ping: can be used before calling the @test() function + * @foo_bar: lets you refine your frobnicator + * + * class data of gtk-doc unit test class + */ +struct _GtkdocObjectClass { + GObjectClass parent; + + /* class methods */ + void (*test)(const GtkdocObject * const self, gconstpointer const user_data); + gboolean (*ping)(const GtkdocObject * const self); + gboolean (*foo_bar)(const GtkdocObject * const self); +}; + +/** + * GtkdocObject2: + * + * instance data of gtk-doc unit test class + */ +struct _GtkdocObject2 { + GObject parent; +}; + +/** + * GtkdocObject2Class: + * @parent: this is a bug :/ + * + * class data of gtk-doc unit test class + */ +struct _GtkdocObject2Class { + GObjectClass parent; +}; + +struct _GtkdocObject3 { + GObject parent; +}; + +struct _GtkdocObject3Class { + GObjectClass parent; +}; + + +/** + * GtkdocHelperStruct: + * @a: field + * + * GtkdocHelperStruct + */ +struct GtkdocHelperStruct { + int a; +}; + +/** + * GtkdocHelperEnum: + * @GTKDOC_HELPER_ENUM_A: enum a + * @GTKDOC_HELPER_ENUM_B: enum b + * + * GtkdocHelperEnum + */ +enum GtkdocHelperEnum { + GTKDOC_HELPER_ENUM_A, + GTKDOC_HELPER_ENUM_B +}; + +GType gtkdoc_object_get_type(void) G_GNUC_CONST; +GType gtkdoc_object2_get_type(void) G_GNUC_CONST; +GType gtkdoc_object3_get_type(void) G_GNUC_CONST; + +GtkdocObject *gtkdoc_object_new(void); +#ifndef GTKDOC_TESTER_DISABLE_DEPRECATED +void gtkdoc_object_set_otest (GObject *self, const gchar *value); +void gtkdoc_object_do_not_use (GObject *self); +#endif +void gtkdoc_object_frobnicate (GObject *self, gint n); +gboolean gtkdoc_object_fooify (GObject *self, ...); + +/** + * GTKDOC_OBJECT_MACRO_DUMMY: + * @parameter_1: first arg + * @parameter_2: second arg + * + * This macro does nothing. + * + * Since: 0.1 + */ +#define GTKDOC_OBJECT_MACRO_DUMMY(parameter_1,parameter_2) /* do nothing */ + +/** + * GTKDOC_OBJECT_MACRO_SUM: + * @parameter_1: first arg + * @parameter_2: second arg + * + * This macro adds its args. + * + * Returns: the sum of @parameter_1 and @parameter_2 + */ +#define GTKDOC_OBJECT_MACRO_SUM(parameter_1,parameter_2) \ + ((parameter_1) + (parameter_2)) + +#define _GTKDOC_OBJECT_INTERNAL_MACRO /* do nothing */ + +#endif // GTKDOC_OBJECT_H + diff --git a/tests/gobject/src/gtypes.c b/tests/gobject/src/gtypes.c new file mode 100644 index 0000000..9177d72 --- /dev/null +++ b/tests/gobject/src/gtypes.c @@ -0,0 +1,77 @@ +/** + * SECTION:types + * @title: GtkdocTypes + * @short_description: other gobject types for gtk-doc unit test + * @see_also: #GtkdocObject, #GtkdocIface + * + * This file contains non-sense code for the sole purpose of testing the docs. + */ + +#include "gtypes.h" + +/* enum: class internals */ + +GType gtkdoc_enum_get_type (void) { + static GType type = 0; + if(type==0) { + static const GEnumValue values[] = { + { GTKDOC_ENUM_V1, "GTKDOC_ENUM_V1", "first" }, + { GTKDOC_ENUM_V2, "GTKDOC_ENUM_V2", "second" }, + { GTKDOC_ENUM_V3, "GTKDOC_ENUM_V3", "third" }, + { 0, NULL, NULL}, + }; + type = g_enum_register_static ("GtkdocEnum", values); + } + return type; +} + +GType gtkdoc_enum2_get_type (void) { + static GType type = 0; + if(type==0) { + static const GEnumValue values[] = { + { GTKDOC_ENUM2_V1, "GTKDOC_ENUM2_V1", "first" }, + { GTKDOC_ENUM2_V2, "GTKDOC_ENUM2_V2", "second" }, + { 0, NULL, NULL}, + }; + type = g_enum_register_static ("GtkdocEnum2", values); + } + return type; +} + +/* boxed: class internals */ + +static gpointer gtkdoc_boxed_copy (gpointer boxed) { + return boxed; +} + +static void gtkdoc_boxed_free (gpointer boxed) { +} + +GType gtkdoc_boxed_get_type (void) { + static GType type = 0; + if (type == 0) { + type = g_boxed_type_register_static("GtkdocBoxed", + (GBoxedCopyFunc) gtkdoc_boxed_copy, (GBoxedFreeFunc) gtkdoc_boxed_free); + } + return type; +} + +/* boxed plain old data: class internals */ + +static gpointer gtkdoc_boxed_plain_old_data_copy (gpointer boxed) { + return g_memdup(boxed, sizeof(GtkdocBoxedPlainOldData)); +} + +static void gtkdoc_boxed_plain_old_data_free (gpointer boxed) { + g_free(boxed); +} + +GType gtkdoc_boxed_plain_old_data_get_type (void) { + static GType type = 0; + if (type == 0) { + type = g_boxed_type_register_static("GtkdocBoxedPlainOldData", + (GBoxedCopyFunc) gtkdoc_boxed_plain_old_data_copy, + (GBoxedFreeFunc) gtkdoc_boxed_plain_old_data_free); + } + return type; +} diff --git a/tests/gobject/src/gtypes.h b/tests/gobject/src/gtypes.h new file mode 100644 index 0000000..20a7766 --- /dev/null +++ b/tests/gobject/src/gtypes.h @@ -0,0 +1,78 @@ +#ifndef GTKDOC_TYPES_H +#define GTKDOC_TYPES_H + +#include +#include + +/* type macros */ + +#define GTKDOC_TYPE_ENUM (gtkdoc_enum_get_type ()) +#define GTKDOC_TYPE_ENUM2 (gtkdoc_enum2_get_type ()) +#define GTKDOC_TYPE_BOXED (gtkdoc_boxed_get_type ()) + +/** + * GtkdocEnum: + * @GTKDOC_ENUM_V1: first + * @GTKDOC_ENUM_V2: second + * Since: 0.5 + * + * Enum values for the #GtkdocEnum type. + */ +typedef enum { + GTKDOC_ENUM_V1=0, + GTKDOC_ENUM_V2, + /*< private >*/ + GTKDOC_ENUM_V3 +} GtkdocEnum; + +/** + * GtkdocEnum2: + * @GTKDOC_ENUM2_V1: first + * @GTKDOC_ENUM2_V2: second + * + * Enum values for the #GtkdocEnum2 type. + */ +typedef enum { + GTKDOC_ENUM2_V1=0, + GTKDOC_ENUM2_V2, +} GtkdocEnum2; + +GType gtkdoc_enum_get_type(void) G_GNUC_CONST; +GType gtkdoc_enum2_get_type(void) G_GNUC_CONST; +GType gtkdoc_boxed_get_type(void) G_GNUC_CONST; + + +/** + * GtkdocPlainOldData: + * @n: Some integer member. + * @x: Some floating point member. + * + * Unboxed plain old data that should default to public members. + **/ +typedef struct { + guint n; + gdouble x; + /**/ + gpointer priv; +} GtkdocPlainOldData; + +#define GTKDOC_TYPE_BOXED_PLAIN_OLD_DATA (gtkdoc_boxed_plain_old_data_get_type ()) + +/** + * GtkdocBoxedPlainOldData: + * @n: Some integer member. + * @x: Some floating point member. + * + * Boxed plain old data that should default to public members. + **/ +typedef struct { + guint n; + gdouble x; + /**/ + gpointer priv; +} GtkdocBoxedPlainOldData; + +GType gtkdoc_boxed_plain_old_data_get_type(void) G_GNUC_CONST; + +#endif // GTKDOC_TYPES_H + diff --git a/tests/gtk-doc.make b/tests/gtk-doc.make new file mode 100644 index 0000000..5b54a72 --- /dev/null +++ b/tests/gtk-doc.make @@ -0,0 +1,231 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# we don't install anything in tests +#TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +EXTRA_DIST = \ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \ + $(DOC_MODULE).pdf \ + ts \ + gtkdoc-scan.log \ + gtkdoc-scangobj.log \ + gtkdoc-mkdb.log \ + gtkdoc-mkhtml.log \ + gtkdoc-mkpdf.log \ + gtkdoc-fixxref.log + +GITIGNOREFILES = \ + html.ref xml.ref + +check-local: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +docs: html-build.stamp pdf-build.stamp + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: All done" + +$(REPORT_FILES): sgml-build.stamp + +ts: + @echo >ts `date $(TS_FMT)`; + +#### setup #### + +setup-build.stamp: ts + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo ' DOC Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + @touch setup-build.stamp + +#### scan #### + +scan-build.stamp: ts setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Scanning header files" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)" >gtkdoc-scan.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) 2>&1 | tee -a gtkdoc-scan.log + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Introspecting gobjects"; \ + scanobj_options=""; \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + echo "gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options" >gtkdoc-scangobj.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) $$scanobj_options 2>&1 | tee -a gtkdoc-scangobj.log; \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + @touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building XML" + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + echo "gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)" >gtkdoc-mkdb.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) 2>&1 | tee -a gtkdoc-mkdb.log + @touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + @$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building HTML" + @rm -rf html + @mkdir html + @mkhtml_options=""; \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + echo "gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)" >gtkdoc-mkhtml.log; \ + cd html && PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkhtml --uninstalled --path="$(abs_srcdir)" $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) 2>&1 | tee -a ../gtkdoc-mkhtml.log + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Fixing cross-references" + @echo "gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)" >gtkdoc-fixxref.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) \ + gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) 2>&1 | tee -a gtkdoc-fixxref.log + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @ts1=`cat ts`;ts2=`date $(TS_FMT)`;tsd=`echo $$ts2-$$ts1 | bc`; \ + echo " DOC `$(DATE_FMT_CMD)$$tsd`: Building PDF" + @rm -f $(DOC_MODULE).pdf + @mkpdf_options=""; \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + echo "gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)" >gtkdoc-mkpdf.log; \ + PATH=$(abs_top_builddir):$(PATH) PYTHONPATH=$(abs_top_builddir):$(abs_top_srcdir):$(PYTHONPATH) ABS_TOP_SRCDIR=$(abs_top_srcdir) \ + gtkdoc-mkpdf --uninstalled --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) 2>&1 | tee -a gtkdoc-mkpdf.log + @touch pdf-build.stamp + +############## + +# we need to enforce a rebuild for the tests +clean-local: + @rm -f *~ *.bak ts gtkdoc-*.log + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + $(MAKE) distclean-local + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +.PHONY : dist-hook-local docs diff --git a/tests/gtkdoctest.sh b/tests/gtkdoctest.sh new file mode 100755 index 0000000..cf52bd9 --- /dev/null +++ b/tests/gtkdoctest.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +suite=$1 +dir=`dirname $0` + +cd $dir/$suite/docs && \ +env BUILDDIR=$BUILDDIR/$suite/docs SRCDIR=$SRCDIR/$suite/docs gtkdoc-check diff --git a/tests/mk_to_db.py b/tests/mk_to_db.py new file mode 100755 index 0000000..8cc5978 --- /dev/null +++ b/tests/mk_to_db.py @@ -0,0 +1,260 @@ +# -*- python; coding: utf-8 -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 2015 Christoph Reiter +# 2017 Stefan Sauer +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +import unittest + +from gtkdoc import md_to_db + + +class TestConverter(unittest.TestCase): + + def setUp(self): + md_to_db.Init() + + def test_main(self): + input_ = """\ +SUPPORTED MARKDOWN +================== + +Atx-style Headers +----------------- + +# Header 1 + +## Header 2 ## + +Setext-style Headers +-------------------- + +Header 1 +======== + +Header 2 +-------- + +Ordered (unnested) Lists +------------------------ + +1. item 1 + +1. item 2 with loooong *foo* + description + +3. item 3 + +Note: we require a blank line above the list items +""" + + expexted = """\ +SUPPORTED MARKDOWN +Atx-style Headers +Header 1Header 2 +Setext-style Headers + +Header 1Header 2 +Ordered (unnested) Lists + + +item 1 + + +item 2 with loooong *foo* +description + + +item 3 + + +Note: we require a blank line above the list items + +""" + + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expexted, output) + + def test_docbook(self): + input_ = """\ + + foo + +""" + + # docbook should stay the same + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(input_, output) + + def test_header(self): + input_ = """ +widget lifecycle, states and style. + +# Height-for-width Geometry Management # {#geometry-management} + +GTK+ uses a height-for-width (and wid +""" + + expected = """\ +widget lifecycle, states and style. +Height-for-width Geometry ManagementGTK+ uses a height-for-width (and wid + +""" + + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_lists(self): + input_ = """\ +bla bla +bla: + +- The channel was just created, and has not been written to or read from yet. + bla + +- The channel is write-only. + +foo +""" + expected = """\ +bla bla +bla: + + +The channel was just created, and has not been written to or read from yet. +bla + + +The channel is write-only. + + +foo +""" + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_paragraphs(self): + input_ = """\ +foo, +bar. + +foo, +bar. + +foo, +bar. +""" + expected = """\ +foo, +bar. +foo, +bar. +foo, +bar. +""" + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_reference(self): + input_ = """\ +The #GData struct is an opaque data structure to represent a +[Keyed Data List][glib-Keyed-Data-Lists]. It should only be +accessed via the following functions.""" + + expected = """\ +The GData struct is an opaque data structure to represent a +Keyed Data List. It should only be +accessed via the following functions. +""" + + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_reference2(self): + input_ = "a [foo][bar] b [quux][baz]" + expected = 'a foo b quux\n' + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_reference_empty(self): + input_ = "[][]" + # expected = '\n' + expected = '\n' + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_inline_code(self): + input_ = "a `abc`" + expected = 'a abc\n' + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_inline_code2(self): + input_ = "a `[][]`" + expected = 'a [][]\n' + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_code(self): + input_ = """\ +|[ + GdkEvent *event; + GdkEventType type; + + type = event->type; +]| +""" + + expected = '''\ +type; +]]> + +''' + output = md_to_db.MarkDownParse(input_, "") + self.assertEqual(expected, output) + + def test_plain(self): + input_ = u"""\ +|[ +frame +├── border +├──